A bit less work done in the last days. I don’t fell that motivated to work hard because only one thing left to do to meet the deadline of having a walking/shooting guy is making crouch animations. That’s easy and they are just placeholder animations. I’m waiting for Sigvatr to come up with new gostek graphics.
Posts from February 2009
4 days left. I got the old animation code working with the new one today. I changed a lot in the engine in the past months but the animation system will remain cause I’m quite happy with it (see videos on this blog). I partially completed our goal of having a running/shooting gostek by the end of the month. But there is still a lot of tweaking to be done to make it look good. Also all he does is just run, I want him to at least jump and crouch.
That was easy cause I already had code for it. The interesting part I have been doing also right now is the lighting and pixel shaders. While Sigvatr is polishing his normal mapping skills I completed the unified lighting model for Link-Dead. That means that the normal mapping pixel shader interacts with my shadow code. This means totally realistic lights. If you liked the videos I made some months ago with the light and fog, wait to see how this works with Sigvatr’s graphics and real-time 3D looking lights and shadows and effects. I’m really excited about this game.
When starting to create a game my whole philosophy is to get a gostek running and shooting as fast as possible. I’ve worked this way from day 1 which was more than 15 years ago. This is the single most important principle to get things going and to see where you are at. It’s almost a speed contest for me, I want to finally have a dude walking around and not have to think about all the things I will have to do.
What people do wrong:
– start a web page before having a gostek running
– announce the game before having a gostek running
– making the game menus before having a gostek running
– making a complete engine before having a gostek running
– optimizing code before having a gostek running
– endlessly changing game and code design before having a gostek running
– talking about your game before having a gostek running
– having a gostek shoot before he runs
– making an icon for the game before having a gostek running
I ran out of ideas, but I think you get my point.
Oh… what’s a ‘gostek’? Its slang for ‘dude’ in polish.
It seems that adding the pixel shader lighting with normal maps didn’t work as I expected. Basically there are two systems that draw on top of each other producing a result that can be described as dark shit (you may notice that we have a very strict descriptive technical language in our team).
So I faced a problem similar to what John Carmack had when he started coding Doom 3 – How to have a unified system of lighting and shadows maps?
I thought about it for a couple days and I got the answer. The problem is I don’t have any pixel shader graphic programming education so it seems I am reinventing the wheel every now and then. Like inventing something called Projective Texturing. So the lights and shadows should work fine now with normal maps if everything goes as I predict.
Btw. we have set a deadline for having a running/shooting gostek by the end of this month (read post above).
One of the topics on this blog has been art. Here is what Gurdjieff says about art. This resonates with me because it is exactly how I want my games to work. The experience must be objective! It must be universally awesome. Everyone that encounters a game like this should stand in awe, know and feel that this IS a work of art.
“I do not call art all that you call art, which is simply mechanical reproduction,
imitation of nature or other people, or simply fantasy, or an attempt to be original.
Real art is something quite different. Among works of art, especially works of ancient
art, you meet with many things you cannot explain and which contain a certain
something you do not feel in modern works of art. But as you do not realize what this
difference is you very soon forget it and continue to take everything as one kind of
art. And yet there is an enormous difference between your art and the art of which I
speak. read more »
I ran into some problems. There are some bugs with sprite flickering. I don’t know how to fix it yet, so until then my Untagged bar on the right might rise. Unless I find something else to do. I have to start working on animations for the dude.
In the meantime Sigvatr is polishing his normal mapping drawing skills.
Updated Box2D to newest code = working raycasting = working hitscan shooting weapons
Played around with creating debree from shots and bullet shells from weapon. Looks great but Box2D needs to be seriously optimized for this to work with hundreds of objects (if you played with my TestBox you’ll see it crashes when you throw a lot of balls). I have to think about this.
Normal mapping works. We’re officially using normal mapped sprites and backgrounds for Link-Dead. I still need to fix some bugs concerning this.
Sigvatr is working on weapon graphics and a completely new gostek. We didn’t like the previous one because I quote: “he looks like a robot made of poop”.
One of the most profound paragraphs I’ve read.
A quote by G.I. Gurdjieff:
‘[..]man’s chief delusion is his
conviction that he can do. All people think that they can do, all people want to do, and
the first question all people ask is what they are to do. But actually nobody does
anything and nobody can do anything. This is the first thing that must be understood.
- Everything happens
All that befalls a man, all that is done by him, all that comes from
- all this happens.
And it happens in exactly the same way as rain falls as a result
of a change in the temperature in the higher regions of the atmosphere or the
surrounding clouds, as snow melts under the rays of the sun, as dust rises with the
wind. read more »
Haven’t done anything real today.
I played a bit with shaders. I’m trying to think of a way to use normal maps and specular maps without having two maps (cause there is a need for more memory).
If you don’t know what normal and specular maps can do in a 2D game, in simple words: it is a way to shade 2D sprites and maps so that they are affected by lighting. There won’t be anything ‘flat’ in this game. Specular gives the impression of metallic objects. So all metal objects on maps and players (like weapons and armor) will shine. All these effects will be visible, especially with moving lights, such as when shooting.
Raycasting still doesn’t work, but fuck that I’ve got tons of other cool stuff done yesterday and today.
Finally after months of work we have realtime lighting with shadows while shooting with muzzle flash effects. It looks brilliant. Never seen a 2D game look this good.
And this is not all, because I’ve only just started working with pixel shaders. I think we’ll make heavy use of normal mapping, specular lighting and other awesome shader techniques.
If all goes well Link-Dead might be as good as this – http://www.youtube.com/watch?v=QVFkGqG9-4Y