Jump to content

  • Log In with Google      Sign In   
  • Create Account

DareDeveloper's Journal



Scope Problem ... maybe?

Posted by , in Project Ideas 20 April 2014 - - - - - - · 666 views
project, procedural and 3 more...
Hi all,

after abandoning the simple game, I may have started something HUGE ... as in: a little too big as the next step, considering that it is just another "getting familiar with XYZ" project.

Eventually I want to create level, normal and depth maps through pcg methods and use WebGL & shaders for interesting 2D lighting effects.
It is not that there is no progress. I think what I have so far has potential ... but there are quite a few battles that need to be fought.
  • A map with 256 x 256 tiles is created randomly (so far the array stores values 0 and 1 only)
  • Cellular automation is used to get a smooth result
  • A landscape creator serves as a cursor into the map and it translates the map into renderable chunks
  • 25 x 3 images are rendered (map areas around the players position), so far only the level map is drawn in a very basic way, normal and depth map stay white.
  • So far the contexts are still 2D canvas contexts. A part of the landscape at the center is copied to the main canvas.
http://procgames.com/raidaces/

For some reason Firefox does not do the last part: transfer the image to the main canvas.
It does work for me in Chrome. Not sure if that is a bug in my code ... there is no error message shown by Firebug.

At least I know now that my Java approach with stream sources works in JavaScript as well:

For reproducible content:
var MIN_SEQUENCE_LENGTH = 40;
var MAX_SEED_VALUE = 123321;

//
// StreamSourceFixed
//
function StreamSourceFixed(seed1, seed2) {
	this.currentNumber1 = seed1;
	this.currentNumber2 = seed2;
	this.bufferSequence = "";
}

StreamSourceFixed.prototype = Object.create(AbstractStreamSource.prototype);
StreamSourceFixed.prototype.constructor = StreamSourceFixed;

//
// Methods
//

StreamSourceFixed.prototype.consumeChar = function() {
	return String.fromCharCode(this.consumeByte());
}

StreamSourceFixed.prototype.consumeByte = function() {
	this.updateBufferSequence();
	var number = parseInt(this.bufferSequence.substring(0,3)) % 256;
	this.bufferSequence = this.bufferSequence.substring(3);
	return number;
}

StreamSourceFixed.prototype.consumeShort = function() {
	this.updateBufferSequence();
	var number = parseInt(this.bufferSequence.substring(0,5)) % 32768;
	this.bufferSequence = this.bufferSequence.substring(5);
	return number;
}

StreamSourceFixed.prototype.consumeInt = function() {
	this.updateBufferSequence();
	var number = parseInt(this.bufferSequence.substring(0,10)) % 2147483648;
	this.bufferSequence = this.bufferSequence.substring(10);
	return number;
}

StreamSourceFixed.prototype.consumeLong = function() {
	this.updateBufferSequence();
	var number = parseInt(this.bufferSequence.substring(0,16)) % 9007199254740993;
	this.bufferSequence = this.bufferSequence.substring(16);
	return number;
}

StreamSourceFixed.prototype.consumeDouble = function() {
	throw "error_double_not_supported";
}

StreamSourceFixed.prototype.consumeBoolean = function() {
	this.updateBufferSequence();
	var number = parseInt(this.bufferSequence.substring(0, 1)) % 2;
	this.bufferSequence = this.bufferSequence.substring(1);
	return 1 == number;
}

StreamSourceFixed.prototype.updateBufferSequence = function() {
	while (MIN_SEQUENCE_LENGTH > this.bufferSequence.length) {

		this.bufferSequence += this.currentNumber1;
		this.bufferSequence += this.currentNumber2;
		
		var sum = (this.currentNumber1 + this.currentNumber2);
		while (MAX_SEED_VALUE < sum) {
			sum -= MAX_SEED_VALUE;
		}

		this.currentNumber1 = this.currentNumber2;
		this.currentNumber2 = sum;
	}
}

... and the random one:
//
// StreamSourceRandom
//
function StreamSourceRandom() {
	StreamSourceFixed.apply(this, [
		Math.floor((Math.random()*MAX_SEED_VALUE)+1),
		Math.floor((Math.random()*MAX_SEED_VALUE)+1)
	]);
}

StreamSourceRandom.prototype = Object.create(StreamSourceFixed.prototype);
StreamSourceRandom.prototype.constructor = StreamSourceRandom;




Getting to know the Canvas

Posted by , in Project Ideas 02 April 2014 - - - - - - · 655 views
Canvas, HTML, JavaScript, Tetris and 1 more...
I am familiarizing myself with JS and HTML5, Canvas first ... not WebGL yet.

The first thing I am trying to do is programming what I had in mind when I heard that there is a combination between Tetris and 2048.
Not sure if the game mechanics will make a lick of sense, but I want to know what it feels like.

Working Title: NPAA (Not Proc At All)

I have not managed to keep the code clean, so I will have to refactor soon.
I also need to look at articles about object oriented programming in JS.
What I have so far are procedures, procedures, global constants and variables and ... procedures ... and already the if/else statements annoy me.

So far I can cycle through the different block types and their rotations (with the arrow keys).
The delayed response to the user action is a feature, not a bug btw. Posted Image
In the actual gameplay the response will be immediate.

The next step will either be writing some ugly gameplay logic ... or researching and refactoring.

Posted Image


Game Jam Focus

Posted by , in Project Ideas 26 March 2014 - - - - - - · 681 views
game jam, web, procedural content and 1 more...
The last Journal Entry inspired a reply ... which inspired an Advert:
http://www.gamedev.net/classifieds/item/2992-game-jam-tools-team-effort/

My next steps will probably be in the web development / quick prototyping domain, no matter how we decide to follow up on the Game Jam Team effort idea. Some sandbox projects, feasibility studies and probably some tool development ... that does sounds like fun.

If at all possible I want the PCG rulebooks to play the role of an artist to some degree ... meaning I would like the content creation to be automated and an artist would just feed the rulebook some meta information (ideally).

What I can not shake is the desire to see where combining DOTA/LoL and Bomberman mechanics would lead.


Struggling ... what are the next steps

Posted by , in Project Ideas 24 March 2014 - - - - - - · 1,372 views
crossroad, decisions, language and 4 more...
Hi all,

for some reason my brain does not work the way I want it to work right now.
Guess work plays a role, it feels like a thought deadlock :-/ ... so here is a braindump for personal clarity.
I don't even know if I have posted something similar recently.

Probably the conflicting goals are one problem:
  • I want to finish something asap ... 100% and polish it ... don't even know why.
  • I want to apply lean startup principles and become an indie developer ... but I guess I am too chicken to ever actually do that.
  • I would like to write tutorials ... guess that is something I should forget about until there is actual demand. Right now I might have a hard time striking a nerve. Guess I should focus on writing Journal entries that are somewhat interesting instead ...
  • There are several things that I would like to use for my projects that do not exist yet. I kinda want to develop those as libraries, but I know that takes some doing and I would spend years on those projects.
  • I want to study stuff and apply what I learn. Using Voronoi Diagrams, Bezier curves, differnt kinds of algorithms etc in innovative ways sounds like fun ...
  • I want to create cool, actual games.
  • I want to create tools (a Content Studio that uses Procedural Content Generation).
  • I want to develop for Desktop PCs and Android ... but also get into web development with HTML5 and Web GL / Web CL.
  • I would like to team up with people, but again, I guess that is something that does not make sense right now.
  • I want the convenience and clarity of Java ... but also the control over memory management for features like Blender style RNA file loading / memory management.
What I an not interested in (at all):
  • Overly traditional game development without an innovation factor (I want PCG in there and something unique).
  • Invest a lot of time in learning a complex framework and figuring out particularities of existing software.
Guess that means ...

... wellll ...

nah braindumping did not help. I still don't know if I want to go for Java, C++/SDL or Web GL first ...
bleh


Starting a new project ... series

Posted by , in Project Ideas 18 March 2014 - - - - - - · 668 views
programming, project, procedural and 5 more...
I will try to squeeze some time into a project where I can bring several ideas together and just toy with them.
I registered the domain: http://www.procgames.com and I am working on a GWT based website.

The plan is writing a tutorial series while creating a framework for procedural content generation (and games that use it).
Maybe I will also write some tools that use it.

As always I have too many ideas and they all are too complex.
It does not help that my job takes up most of my time and energy.

What I do not want to write are step-by-step tutorials.
I want to summarize my thoughts in order to give beginners an idea of how programmers think.
I wrote pretty much the same thing some time ago ... just with a different kind of project in mind:
http://www.gamedev.net/blog/1692/entry-2256578-my-two-favorite-ideas/

I already have a rough GWT project structure in place. I just need a strategy for the server side.
Apache is running on port 80, it is a virtual server with Confixx where procgames.com is one of many domains.
I would love to run Jetty, but I don't know how to host the client via Confixx, deploy the server logic with Jetty and connect client and server through a REST API with AutoBean. I would consider using PHP to realize the relatively simple REST API - but I have too much respect of serializing as a JSON String that needs to be parsed by AutoBean on the client side.

There is also a frame for the procedural content generation library written in Java already.
I might apply the concept behind it to different languages.
The next step is coming up with a rough gameplan.


My two favorite ideas

Posted by , in Project Ideas 07 July 2013 - - - - - - · 576 views
tutorials, sports game, portal and 3 more...
Hi again,

I think I will replace the current content of the site ConceptWorld.org with a more simple site and take a lean startup approach to see if it can go viral without much effort.
The idea is that I can concentrate on developing the platform while a developing community creates the appeal of the world ... not doing my work for me, but working on their own commercial projects.
I will write more about the philosophy in the "Thoughts And Convictions" category. As a first project I think an anthology or a serial (published as an ebook ... and if the demand justifies it as a print version using the service CreateSpace) might be a great, first project.
Would have loved to program the server side with Node.js ... but I can't set that up (the redirect to port 8888).

The 2nd idea is working on a multiplayer sports game with a web portal behind it. That would mean people could play tournaments and keep track of their accomplishments.
The players would be controlled in a way that is comparable with Starcraft II micro. I would probably start with a soccer implementation but keep it abstract and generic enough to allow for other implementations.
The plan is documenting the whole development process and releasing the documentation as tutorials ... and releasing the code as open source on github. The focus would not be on the pogramming languages or the game mechanics, but on the big picture knowledge and the required skills like project management, programming concepts, software architecture, build process options / continuous integration and things like that (mentioning several other ways to do the same thing and showing links to further information).
People should be able to follow along while programming a very different kind of game.

I have 4.5 years of programming experience as a Java programmer, but I want to get into C++ again and learn some new things while working on the project. I am hoping to get feedback when I am stuck or when tutorials are wrong or incomplete ... so that this turns into a living community project.
Currently the plan is using
  • C++ and OpenGL for a game client
  • GWT, with Gin (for IOC) for a web portal
  • GWT, with Guice (for IOC) or Node.js for a game server
  • SCRUM for project management (yes, I like using that approach even as a lone wolf)
  • Maybe Jenkins for Continuous integration
  • Ant for the web server and portal build process, maybe Maven for dependencies
  • JUnit for web server and portal unit tests (maybe TDD - Test Driven Development)
  • Not sure which technology for the build process of the game client (should be portable Win, Lin, Mac ... mobile only if there is a smart way to support a gamepad - it might not work without the precision of a mouse)
  • GIT as the version control system
  • Is is allowed to release articles on Gamedev.net and another website?
The goals:
  • A 3D sports game (easy to learn, hard to master)
  • A portal website that stores results and maybe profiles with achievements
  • Maybe a coaching mode where players and teams can get better
  • A simple, generic game client engine
  • Tutorials that show the big picture of how you can think like a programmer
  • Maybe a simple local game server that allows for a single player mode.
If possible there could be a NeHe like site that shows implementations of the same thing with different technologies and different approaches that solve the same problems.

I might host a game server and add a supporter subscription feature to try to make some money at some point ... or sell the tutorials as an ebook or as video tutorials.


Some project ideas #001

Posted by , in Project Ideas 06 July 2013 - - - - - - · 657 views
ideas, tutorials, web development and 2 more...
Guess the title is supposed to be kind of funny ... I have way too many ideas and am probably going to dump a lot of them here over time.

I finally wrote some of my ideas down for a coursera.org course: Startup Engineering. This is the result:

1.) Project Management Social Network:

There are many networks and websites with project management like Kickstarter, Sourceforge and Google Project Hosting.
But one platform for them all would probably be a blockbuster startup.
The facebook of project management where you can
* browse categories
* recruit people
* manage your projects (scrum, todo lists, UML models, documents/spreadsheets etc)
* expose it to the world
* add crowdfunding possibilities
I am surprised that this has not been done properly yet.

Another thing that I am into, rapid skill acquisition, could be a part of that network, too. Think gamedev.net with all the articles.



2.) a) Meta Data Services:

The IT landscape will have to become more abstract and automated in the very near future (exponential thinking).
Everything is connected and the way development works currently won't work in the semi near future.
One thing that bothers me (has been bothering me for years as a Java Programmer) is how applications can't work together.
There are interesting things like PMML and other standards by the W3C but they don't take off.
There should be a pretty low level layer over the internet LAMP/WAMP setups that offer meta data services.
At some point computers will want to understand the world (Siri could be smarter, no?). We should create a model of the whole world that way.
Software should be written so that it can work with evolving models which it can retrieve directly from a UMLMS (UML management system) with UMLQL (UML query language).

b) Abstract Programming:
CASE (computer aided software engineering) software/services could use the Meta Data Services which that layer provides to generate code, build it and possibly deploy it.
At first people would design the software and how the builders turn the abstract software into compilable/deployable code.
At some point that can probably be automated that people won't have to program software anymore.



3.) Shared Intellectual Property World:

There is a lot of money to be made in the entertainment industry. Big franchises have a huge appeal because of that.
Many people want to jump on board with commercial products but they can't legally do that.
I would love to see a social network around an open effort that creates a world made up of shared intellectual property rights.



4.) Entertainment Studio:

See 2.) a) and take a look at procedural content generation. Virtual reality will play a really big role in the near future.
People want to enter epic worlds and the company that offers procedural content generation services will make a lot of money.
Those services can then be used to make movies, games, images and things like that.
With those services there could be a software that helps filmmakers with rapid prototyping for their movies.
As soon as there are databases with textures, animations, models and sounds
(hopefully captured by electronic pets and drones)
the quality will be good enough to create top notch movies in very little time.
I think it should already be possible to take little steps in that direction. Think MakeHuman and a better bridge to Blender.

That would be such a cool playground. Especially once cool things like multibody dynamics are added ...



5.) Fermi Scenario Social Network:

People don't play thoughts nearly often enough. Heard of TVP (The Venus Project)? They complain that they'd need data to take the next steps and start planning.
But according to Enrico Fermi we can estimate pretty much anything.
A social network that collects some data, lets users posts Fermi problems and lets others try to solve them might be fun.



6.) Sound From Scene Graphs

Getting the sounds for animated movies is pretty weird. This is a tough challenge, but solving that problem would be worth a lot.
There should be a ray-tracing equivalent for sound (wave tracing like that: http://blenderartists.org/forum/showthread.php?252708-E-A-R-Evaluation-of-Acoustics-using-Ray-tracin...)
that takes a scene graph and time as input and outputs sound. Something like that will be needed for VR products and would be great for the Entertainment Studio product.


Usually I would try to pull off a lean startup with the Shared Intellectual Property World, but webserver administration is totally too much for me.
(Also see my proxying to node.js thread: Mod Rewrite - Node.js).

Another thing I would love to start is writing a series of programming tutorials that show the big picture knowledge (how all the topics are connected, what angles there are to approach the topics and what problems certain technologies and solutions solve).
Guess it would describe different approaches to realizing certain project ideas - especially in the web development and game programming department.

And a site: commonsfiles.com with shared intellectal property and files released under creative commons licenses would be great, too. For example with a subdomain http://ouya.commonsfiles.com that holds conceptart, bitmapfonts, spritesheets and 3D models of characters for the OUYA that anybody may use in their projects.

Eventually I would love to get access to the new media world in some way.







PARTNERS