Posts from October 2009
I think I’m a Cowboy Coder (http://ping.fm/9owS3)
Quick physics test for Link-Dead showing bouncing balls and working very fast collisions. http://ping.fm/28LQ8
Solving problems by using intelligence
Programming is just arrangement of structures and data. If a problem/block arises it is either:
– because you are constrained within the limits of the structures you are using (like using an external programming library) or
– because you have not planned out how to cleverly arrange the structures you are using
Example:
I was using an external programming library called Box2D. It is a physics library. My game is not a physics game but it has elements of physics in it (like flying and colliding objects). Yet it is a game mainly defined by game logic and playability rules which are not “physical”. One of the biggest problems I had (it has been months, what you see in the test version is something working but buggy) was choosing between walking past and climbing stairs. This is a very hard problem if you are working with a physics library because physics are deterministic. There is no choice for a human, it is just math, so you must build tricky work-arounds. Which sometimes work sometimes not, anyway they are a pain in the ass. I got fed up with it and decided to write my own code for dealing with this from scratch.
What I did:
A physics library holds only collision data for a map that describes the position, size and structure of walls and floors. It is built only for the purpose of stuff bouncing off inside a map. I need more. That’s why I made my own collision data structures which keep more information. For example for each floor/wall/stairs I hold information where does it connect to and which direction I can walk on it. This is very useful for the stair climbing problem as well as very good data for AI bots.
To end this a final note:
The Greatest Optimization Method Ever – All algorithms can be bypassed by arranging data differently.
Ponder on this for a moment. I managed to eliminate hundreds of checks of a Line-to-Line collision algorithm per second just because I did what I described above. Hell, I didn’t even need to write the damn algorithm at all! I don’t like programming algorithms – I like programming games – which is in fact – just arrangement of structures and data.
According to my postulate “Don’t do what a computer can do for you” I want to automate my blogging. Why write if a computer can show what you’re doing. I need a program that sits in the tray and takes screenshots every couple of seconds and uploads it on a website with a gallery. Is there a software like that out there? If not does someone have spare time to do something like this?
If you’re wondering what’s up with Sigvatr. We haven’t really done anything for a couple months together and we officially split up a while ago. As the project moved on it became apparent that we are very similar to each other yet have very different goals (namely make our own game). Hence we can’t work together anymore. Eric is now learning to program and I am learning how to make procedural art.