Friday 6 July 2012

Project "Lead"

What is Project "Lead"?

Lead is a small project I work on every so often to explore game development aspects and to keep my programming skills sharp. At the time of writing it is a very rudimentary top-down shooter platform which I hope to eventually evolve into a small game.

Which programming language do you use and why?

I use C# with the XNA tool kit when programming with Lead. XNA provides many tools and libraries which allow me to get into core gameplay development very quickly. C# is also one of the first programming languages I was taught and as such is the one I am most familiar with.


What features does Lead have currently?

Currently Lead has a lot of the fundamental basics of a shooter in place. The character is controllable and the camera follows them correctly. They also correctly collide with walls and obstacles without passing through. The player can also fire a weapon which can trace impacts and deal damage to targets.

Why did you choose to rotate the camera with the character?

Lead is an experimental platform for my ideas. Typically, top-down shooters have the camera positioned directly over the player with no rotation. The problem with this perspective is that it makes it difficult for enemies to sneak up and surprise the player. I'm a big fan of tactical shooters and survival/horror games, as such I wanted to experiment with a more focused camera perspective.

I considered using a kind of "torch" mechanic to only light up the area ahead of the player, but I realised that it might be equally effective to simply position the camera in front of the player. I also settled quickly on the idea of rotating the camera with the player to get around the issue where players using widescreens would see further depending on the camera position.

Demonstrating how the player can see further in some directions with a widescreen

What technical aspects have you explored during development?

During development I've had to look into simple collision detection, including circles, boxes, etc. I've also had to look into camera transformations, specifically a format which allows both triangle primitive transformations and for use in XNA's SpriteBatch class. More recently I've also looked into raycasting for dealing with weapon mechanics, including polygon and circle intersections.

What features are you planning on working on next?

I'm planning to get more in depth with weapon mechanics including recoil/spread, animations and variable firing modes (automatic, burst, etc.). After that I'll be looking into rudimentary AI to create some enemies, which will likely grow to involve pathfinding and enemies reacting to stimulus (such as gunfire). After that I'll likely start working on incorporating some proper art assets and a minimalistic HUD.

No comments:

Post a Comment