Tuesday, 22 January 2013

Project "Lead" Update #5

Update #4: http://ahamnett.blogspot.co.uk/2012/11/project-lead-update-4.html

What features have you added since the last blogpost?

Generally the focus has been on polishing the mechanics and systems already in place, as well as continuing to introduce and update assets for existing content. In particular, I've been working on implementing some more environmental entities like props and decals to further improve the level.

The time I've spent refining the weapon mechanics, AI and gameplay has really benefitted the overall experience. In addition, it's always impressive to see how much simple content additions can improve the overall effect. In particular was the addition of the ambient music and the road crossings, both of which really helped in making the level feel like less of a box and more of an actual location.

What technical aspects have you explored for these features?

One aspect that came up a lot during these past few weeks was the idea of resolution independancy, i.e. making the game work on multiple resolutions and still look roughly the same (HUD not taking up more/less room, view distance not being larger/smaller depending on resolution).

I had to spend a lot of time working with the rendering code to ensure that both sprites and primitives could scale to fit the resolution. I ended up rewriting most of the SpriteBatch rendering to use the same projection matrix as the primitives, ensuring that they were scaled the same way.

Lead v0.072 - 1080p
Lead v0.072 - 720p
Further, it's also helped me brush up on more fundamental programming concepts such as interfaces. I restructured the drawing code into two lists, one for primitives and another for sprites. As such, I redesigned entities to inherit either an IDrawableSprite or IDrawablePrimitive interface to help easily determine which of the lists any entity would need to be in.

What features are you planning on working on next?

One of the last things I worked on recently was a very basic particle emitter system. Currently it's an extremely rough implementation that's only used to create simple blood splatter effects when characters are hit. I plan to continue working on this system, refining the implementation and adding more types of effects. In particular, I want to create hit effects for props and other static objects by using a part of the texture as the particle sprite, similar to Minecraft.

As always, I also want to continue adding assets to the game. I want to finally implement some proper player and enemy sprites, as well as continuing to populate the level with props and decals. I'm also considering adding some more weapons as currently there are only 3, including the starting pistol. I may investigate projectile weapons such as grenade and rocket launchers to create a more varied arsenal.

No comments:

Post a Comment