Capstone: Month 1 Week 3

This post covers the 3rd week of our Capstone project.

Screenshot of the (very early) prototype projectile weapon

This Week’s Tasks

This week I was tasked with creating the basis for a few key systems of the game:

  • Player Controller
  • Gun System
  • HUD

Player Controller

The player controller in it’s current implementation is fairly simple. I decided to use Unity’s official Creator Kit: FPS project as a jumping-off point. This project was brought to my attention by Krystara and it ended up being a great way to get started with the project. It provides both ‘best practices’ on making an FPS from the creators of the Engine, and some assets we can use for prototyping. We did not actually use the project as a base for ours, but have transplanted select items from it. I ended up spending a significant amount of my time taking this apart and figuring out how to make it work for our project, and I think it turned out quite well. I refactored parts of it to work better for what we’re going for, and removed parts that made it needlessly overcomplex. For our player controller specifically, this mix of the Creator Kit and my own code provides us with a solid base: movement, jumping, weapon switching and firing, and etc.

Gun System

Similarly as with the player controller, I started creating the gun system by looking at what the best practices used in the Creator Kit were. Again, after significant refactoring and cleanup, we now have a solid base gun system. While obviously the assets in the screenshots are placeholders (please excuse the programmer art), I was able to use some art assets from the creator kit such as particle effects and sounds to get the systems up and running. These will definitely be replaced long before release, but they are a great help early in development like this so I don’t have to spend my time looking for art. All that said, we now have a gun system that supports semi-auto and fully automatic fire, hitscan and projectile bullets, multiple ammo types, weapon switching and reloading, and etc. Currently I’ve created a few ‘test’ variation guns (SemiAuto Hitscan, Auto Hitscan, and a Projectile explosion wepaon). These will be replaced with actual guns in the coming weeks, but they show that the functionality is all there.

Screenshot of the semi-auto hitscan weapon

HUD

Finally, the HUD system. It is very simplistic currently but made in a way that is expandable for later. For the crosshair, I used Kenney’s Crosshair Pack. I’ve used this in previous projects and its a great free asset. Currently we’re only using one single crosshair from it, but there is a ton of options available. We may consider using different crosshairs per weapon later for example. There’s a good chance we will actually use this crosshair pack in production. The Weapon HUD on the other hand is fully a placeholder using the same UI sprites that the Creator Kit uses. It shows the name of the currently equipped gun, as well as current ammo and reserve ammo as you’d expect. This was mainly implemented now for debugging purposes, and will be completely overhau`led later with much more final assets.

Conclusion

Overall, I’m pretty happy with what I got done this week. For our first real week of work in the engine we have a rather decent amount to show. Maybe I am being overly ambitious but I beleive I can complete the majority of the currently planned systems for month 2 (Month 2 being weeks 5-8) significantly ahead of schedule.