James Keats
Game Programmer
Associate Software Engineer at Vicarious Visions with 3 years of professional C++ experience.

Capstone - Week 2

By: James Keats | 11 September 2017

Weekly State of the Repo

The past week was spent implementing a couple different prototypes in Unity, each of which focused on a single mechanic with the plans to later build them out to full gameplay.

The first, Prototype 1, was the “Western Gunslinger” idea from last week. The prototype simply entailed a capsule “character” that could move with the left joystick of a controller and looked with the right, with controls like games such as “Overcooked”. Mechanics-wise, the player had to keep a ball in the center of a UI element that tried to pull it left and right, almost like the grinding mechanic in most Tony Hawk games. The longer the ball was in the middle, the faster the character’s gun would spin and the more damage it would do.

Prototype 2 is one that I didn’t talk about last week (though it involves some of the same mechanics), but was another one of the team’s top ideas. It is a first-person shooter where the player can alter the stats and way their weapon works on the fly by picking up modifications for it; the most similar game I am familiar with is Fallout 4. We haven’t fully decided on the gameplay for this idea yet (ideas include a typical “corridor-runner” FPS or an arena-style battle) but the core mechanic of the part switching is fleshed out enough for a deeper prototype, although the one in V0.01.03 is just a static camera with a debug menu for changing the scope and barrel of the gun, and a target to see how the stats change dynamically.

“Turning ‘Oh Shit’ into ‘Oh Yeah!’”

During our class midway through the week, we presented our top ideas to our professor and class. The consensus on the team was that, because of several factors, we underperformed for this presentation and that we can, and will, do better. The result of this presentation and feedback session was a total shift of our focus. We met the next day and threw out a bunch of our concepts and all of our narrative ideas, and decided to start from scratch with the core mechanic that everyone agreed was the most interesting: the dynamic weapon building.

For the next stage of Capstone, it is necessary to build 3 working gameplay prototypes (among myriad other requirements). Our original plan was to have two of them done this sprint by building off the existing prototypes, then spend a week on the third, and one week refining and building our documentation and deciding which to go forward with before challenging. After the feedback session, we dropped this plan and instead decided that we would build 3 different prototypes based on the gun-building mechanic, with secondary mechanics and gameplay goals as disparate as possible. Thus, the plan for this week became to focus on building as complete of a framework as possible for these three prototypes, without having a “deliverable” prototype at the end, so-to-speak.

Thus, this week has been focused on the following key items:

  1. All first-pass weapon parts are implemented and working.
    • Weapon parts can update and replace stats dynamically.
    • Weapon parts can be easily tweaked by the design team.
    • The “firing mechanism” can even alter the projectile fired by the weapon (hitscan, grenades, rockets, etc.)
      • Projectiles like grenades and rockets should support splash damage.
    • Weapons have a clip size, current amount in clip, and support reloading with a placeholder reloading animation.
    • Weapon parts in the environment can be “picked up” and are immediately equipped.
    • All 5 weapon variables specified by the design team are implemented and work as expected.
    • All 4 weapon part slots specified by the design team are implemented.
  2. The IWeapon interface is usable by player code and AI code without any changes.
  3. The player has a full first-person controller.
    • Aiming, walking, jumping, and crouching all work as expected by any FPS player.
    • Speeds/amounts for all the above can be easily tweaked by the design team.
    • Interact (on the “E” key) works as expected by any FPS player.
    • The player should have a HUD that displays ammo information and health information.
    • The player’s weapon has recoil and kicks up while firing.
    • The player dies and can restart when their health reaches 0.
    • The controls work for mouse/keyboard, and a PS4 controller.
  4. The placeholder target displays all damage info and is “killable” (i.e., breaks).
    • An “aggressive target” holds a gun and shoots at the player. Player takes damage.
  5. Everything that needs some sort of animation or VFX should have a placeholder item that can be swapped out later.
    • Includes UI, reload animation, gunshot effects, player damage effects, etc.
  6. An event/notification system exists for tracking player kills and deaths.

Items in bold have not yet been completed at the time of posting, but the sprint doesn’t end for another three days. This list of deliverables has been the bulk of my work this week, and it’s felt like a much better stride has been hit than the week before. I am confident that, although we got off to a rocky start, the next few sprints will go much more smoothly and the product we deliver in the end will be of an even higher quality for it.

Back to blog