I have planned out an interesting escape story of act I. Each map will parody classic games (without cloning them) ... I was always looking for a way to inject some humor. I think its a great way to tell my story.
Wednesday, August 17, 2011
This is a triumph...
A quick update with a couple of pics of the first map. Its a Portal parody. My original idea was to have the whole first act (1/3 of the game) as training levels and it would be one big Portal parody...but when I went to make the maps, well, let's just say Portal is rather bland and I decided it was overkill to have that many training levels...best to just have one and get on with the story!
A matter of scale
Wow! Has it been a month, already?
Anyway, just as a quick update of my progress, I have made some major changes...
1) New map editor written in C#/XNA. This is speeding things up. Its amazing how much more you can produce when you don't have a slow, clunky editor killing your creative buzz.
2) Shadows! After putting it off for ages, I decided to attempt adding shadows to my HLSL shader code. After 2 days of coding, I finally got it happening...and it was worth the effort!
Basically, the technique I am using is called Shadow Mapping. It is fairly straight forward: Draw the view from the lights' point of view, but only store the depths and store this in a shadow map. Then, draw from the camera's point of view, testing each pixel against the depths in the shadow map. If the light is farther away than the entry in the shadow map for that pixel, then something is closer and it is therefore in shadow.
Of course, this is drawing an extra frame per light. It has reduced my framerate down from 60fps to 25fps for just 10 lights. Not bad for unoptimised code. I have a few tricks up my sleeve to get the framerate back up.
3) I have changed the scale of the game, relative to the player. Previously, I was working on a tile of about 1 metre square. Only one thing can occupy each square (well, 2 things: a block and an actor). It meant that all detail had to be in the model, and I found myself making thin and thick walls, etc. After playing Sega's Spiral Knights, I can see that it is much better to reduce that scale. So, the character models are bigger, filling the square...and the block models are smaller, half the size. Of course, this makes the maps smaller, but I may introduce several maps per map (if that makes sense), such as elevators that take you to the next map. Would also be good for hiding secret areas, etc.
4) I have added a scale attribute to blocks, so I can have the same block as a 1x1 or a 2x2 (or any size really). Will make the game lighter: why draw 4 blocks when I can draw a 2x2.
5) The point of view has changed to be higher. This is so you can see more of what's going on, and to stop the camera being blocked by walls as it will be well above them....it also negates the need to draw ceilings.
Sorry that there are no screenshots for this update because I am working on the final solid version of the first map. The changes have lead me to redesign sections of the game engine (which is a good thing). Some things need a rethink (such as the now 1x4 doorways), and I want to polish things up before releasing screenshots. So, maybe in a day or so....
Anyway, just as a quick update of my progress, I have made some major changes...
1) New map editor written in C#/XNA. This is speeding things up. Its amazing how much more you can produce when you don't have a slow, clunky editor killing your creative buzz.
2) Shadows! After putting it off for ages, I decided to attempt adding shadows to my HLSL shader code. After 2 days of coding, I finally got it happening...and it was worth the effort!
Basically, the technique I am using is called Shadow Mapping. It is fairly straight forward: Draw the view from the lights' point of view, but only store the depths and store this in a shadow map. Then, draw from the camera's point of view, testing each pixel against the depths in the shadow map. If the light is farther away than the entry in the shadow map for that pixel, then something is closer and it is therefore in shadow.
Of course, this is drawing an extra frame per light. It has reduced my framerate down from 60fps to 25fps for just 10 lights. Not bad for unoptimised code. I have a few tricks up my sleeve to get the framerate back up.
3) I have changed the scale of the game, relative to the player. Previously, I was working on a tile of about 1 metre square. Only one thing can occupy each square (well, 2 things: a block and an actor). It meant that all detail had to be in the model, and I found myself making thin and thick walls, etc. After playing Sega's Spiral Knights, I can see that it is much better to reduce that scale. So, the character models are bigger, filling the square...and the block models are smaller, half the size. Of course, this makes the maps smaller, but I may introduce several maps per map (if that makes sense), such as elevators that take you to the next map. Would also be good for hiding secret areas, etc.
4) I have added a scale attribute to blocks, so I can have the same block as a 1x1 or a 2x2 (or any size really). Will make the game lighter: why draw 4 blocks when I can draw a 2x2.
5) The point of view has changed to be higher. This is so you can see more of what's going on, and to stop the camera being blocked by walls as it will be well above them....it also negates the need to draw ceilings.
Sorry that there are no screenshots for this update because I am working on the final solid version of the first map. The changes have lead me to redesign sections of the game engine (which is a good thing). Some things need a rethink (such as the now 1x4 doorways), and I want to polish things up before releasing screenshots. So, maybe in a day or so....
Wednesday, July 13, 2011
The eyes have it
After running my new models past my art consultant, I got feedback that the eyes looked funny. Like they were very surprised. LOL. So, I have changed the heads slightly. They are now smaller with rounded tops. I have also added eyelids, which I believe have made the world of difference. They allow me to have more expression in the absence of eyebrows.
I have also started a Minion/Guard type character...top marks (6 out of 6) for anyone who can tell the 60s TV show it references :)
I have also started a Minion/Guard type character...top marks (6 out of 6) for anyone who can tell the 60s TV show it references :)
![]() |
Minion/Guard |
![]() |
Scientist |
Friday, July 8, 2011
Back with a vengeance
I'm back. I decided to take a 2 month break from the project. This was because the project had just moved from engine development to actual game development and I was not happy with how the game was progressing. It was not something I was comfortable putting my name to. No amount of effort was going to fix the project's problems, because I couldn't put my finger on what the problem was....I was just spinning my wheels and not getting anywhere.
Sometimes this happens, and you need to take a break and come back with fresh eyes. This allows you to see the forest, not just the trees, so to speak.
During my break, I had several epiphanies:
I have already redesigned DEMII into a simpler style, and designed 2 other character models. Once I have the design thought out, it only takes an hour or so to adjust the basic model template I have made into the character! I have thought up 9 possible characters (including both enemies and NPCs). So far I have DEMII, a random scientist (perhaps this will become the mad doc, himself) and a native girl (not yet named, but she will be a key NPC in the village levels).
Note: They all have the same expression in these pics, but in-game, they will change.
Sometimes this happens, and you need to take a break and come back with fresh eyes. This allows you to see the forest, not just the trees, so to speak.
During my break, I had several epiphanies:
- The game was looking crap because it was a mix of styles. Realistic models here and deliberately retro models there. The retro stuff was looking like crap against the realistic stuff...but if it is ALL retro, then it becomes obvious to the player that that is the intention and it therefore looks good (despite not being ultra modern), because the player "gets it".
- I was seeing games, such as Lego Star Wars having 120+ characters and wondering why I was struggling making a second character. Sure they had their IP with 6 movies worth of pre-thought-up characters, but it would have been a great effort making all of those models!. No it wasn't! The way they went about it was brilliant: Have one basic model and just change the textures (and occasionally, the helmet, hair, etc).
- Replayablity: Although I already had the concept of locking areas (with lava, water, toxic waste) and the player needing a required element to access (shields), the Lego games used doors that can only be opened by specific characters that are not available in Story Mode, or by using helmets. This is nothing new, after all Doom had red/blue/yellow access cards to open those doors, which is the same thing, just now you have to unlock something on one map, so you can use it on another. I can replicate this via security ID cards.
- Upgrades: I always wanted DEMII to have upgrades, but could not think of a good way to implement them. Then I realised that upgrades are present in most modern games under various aliases: Lego Star Wars has "Extras", GTA4/Red Faction Guerrilla/etc have "Cheats", Deus Ex had "Augmentations". These are abilities that are unlocked during gameplay and give the player the option to change an aspect of the game. I have already thought up a number of them, eg Ice that dosen't melt, various automapping tools, regenerate HP from SP, etc.
- I don't need missions to tell a story ! Missions limit play: once they are done, why would the player want to do them again? Better to give a less restrictive map and have one main goal to achieve, to push the story forward, coupled with a number of mini-goals to make the player explore and require multiple runs, etc.
I have already redesigned DEMII into a simpler style, and designed 2 other character models. Once I have the design thought out, it only takes an hour or so to adjust the basic model template I have made into the character! I have thought up 9 possible characters (including both enemies and NPCs). So far I have DEMII, a random scientist (perhaps this will become the mad doc, himself) and a native girl (not yet named, but she will be a key NPC in the village levels).
Note: They all have the same expression in these pics, but in-game, they will change.
![]() |
Scientist |
![]() |
DEMII |
![]() |
Native Girl |
Tuesday, May 3, 2011
Animation:Every silver lining has a cloud.
I wanted to spend today writing the missions code. But I wasn't happy with XNAnimation's shader. It's concept of point lights (with no attenuation) and lack of directional light, made it look like crud. Apparently, once upon a time, XNAnimation did have attenuated point lights but because some crappy ATI cards couldn't handle the shader, the number of instructions had to be reduced. So, point light attenuation was taken out. I can think of a ton of stuff that should have been taken out before that! Maybe less lights? Unloop the light code?
Anyway....I spent today writing a new technique for my shader to replace the XNAnimation fail-fest. Which was frustratingly simple, in the end. But, of course, I had to go through a long process of debugging to figure out things like: animation not working on skin but worked on normals, and why DEMII's legs were on top of her head :D.
Anyway....I spent today writing a new technique for my shader to replace the XNAnimation fail-fest. Which was frustratingly simple, in the end. But, of course, I had to go through a long process of debugging to figure out things like: animation not working on skin but worked on normals, and why DEMII's legs were on top of her head :D.
Thursday, April 28, 2011
Success with animation
- I have had major success in getting an animated mesh that I made working in DEMII ! This is huge as it is the last major milestone/hurdle for the game engine to overcome. It opens up a world of possibilities for enemies, etc, etc. All it took was fixing the Milkshape exporter in DeleD and implementing the XNAnimation library.
- I am also finally happy with the camera control. After
playingresearching other games (GTA4, RF:G, JC2) and trying to work out what they are doing different (GTA4's camera works well indoors for a third person game)...and copying. Now the camera orbits the player in 2 dimensions and sticks to walls. So much better than pushing it up the wall (sea sickness, anyone)?
- I have added a few new levels. The most interesting of which is a massive pyramid that DEMII must climb, only the steps are broken in places. So, she has to walk around the edges and find a path up. It kind of reduces the game to a platformer, which is a great bit of variety, me thinks. Think the old C64 classic Nebulus. There will be alternate paths, traps and hidden things, also....and a push puzzle on top!
- My recent GTA4 "research" has also given me a lot of insight into how to do missions without an inventory. Basically, when you have to "get item X", you are really telling the player "go to location X, where I will display item X". Location X can therefore be a trigger tile.
The other major type of mission, in GTA4, is the good old bloodlock ie kill a particular enemy or all enemies in a location.
Using combinations of these, with dialog triggers throughout, can be quite entertaining story telling. A real eye opener!
Tuesday, April 19, 2011
Animation Woes/Rant
A new version of Blender has been released 2.57. Improvements include not having an interface that looks like it was designed by an epileptic chicken, and having a plug-in interface that can actually run plug-ins, and not just say "Script Error" or "I can't find Python despite every other program using it just fine". Major downside: Old plugins don't run, and (of course) the useful ones haven't been ported over. In other words: different shit, same smell.
Which brings me back to DeleD. This free editor may not be as powerful as Blender, but it is far easier to use, and, you know what, it gets the job done. Its major flaw is that you can't get the animations you make out into the world. The only way to save the animations is in its own DXS format. The only exporter that exports animation was to Milkshape...and even then animation export was broken. I say "was", as I invested yesterday downloading the source, tracking down a copy of Delphi7, building an XP virtual machine, and fixing the exporter....then I realised it was 3AM. LOL
I can now export to Milkshape, which will allow me to export to animated .X or .FBX. Which is a stupid workflow. Why should I use an excellent, alive and free 3D tool (DeleD) then export to a so-so, not so alive, and not free 3D tool (Milkshape) just to export to a free game framework (XNA). I think a new entry on my to do list will be to get the DeleD .X exporter exporting animations. Then I can pants off Milkshape.
Anyway, I'm off to look into getting this animation into the game.
Which brings me back to DeleD. This free editor may not be as powerful as Blender, but it is far easier to use, and, you know what, it gets the job done. Its major flaw is that you can't get the animations you make out into the world. The only way to save the animations is in its own DXS format. The only exporter that exports animation was to Milkshape...and even then animation export was broken. I say "was", as I invested yesterday downloading the source, tracking down a copy of Delphi7, building an XP virtual machine, and fixing the exporter....then I realised it was 3AM. LOL
I can now export to Milkshape, which will allow me to export to animated .X or .FBX. Which is a stupid workflow. Why should I use an excellent, alive and free 3D tool (DeleD) then export to a so-so, not so alive, and not free 3D tool (Milkshape) just to export to a free game framework (XNA). I think a new entry on my to do list will be to get the DeleD .X exporter exporting animations. Then I can pants off Milkshape.
Anyway, I'm off to look into getting this animation into the game.
Subscribe to:
Posts (Atom)