During the course of Basics of Game Programming I managed to grasp a lot of different concepts of Game Programming and Development. Here’s a brief list of what I used and learned:

  • Using many different Unity API methods
  • Using ready-made prefabs and using them via scripts
  • Using ready-made sounds and music, and managing them via scripts
  • Using different Unity Packages such as Cinemachine, Input System, Mecanim and Animation Rigging, Particle Pack
  • Using Navigation mesh and Navigation mesh agents
  • Creating menus and panels with animations
  • Animating characters with ready-made animations from Adobe Mixamo. Editing animations with UMotion
  • Using animation events with animations
  • Inverse Kinematics to constrain animations
  • Coding different functionalities such as:
    • player movement and jump
    • item pickup and inventory system
    • Creating and managing a GUI (item hotbar, health)
    • most of gun functionalities
    • using items and weapons
    • Zombie AI
    • Health, damage and death
    • Enemy Spawner with states

Game Prototype images with captions

There is images to visualize the different functionalities that I coded. The game shown is a prototype project game that can be downloaded from here: Saving Steve

Hotbar and GUI

View of the GUI Start of the game

I coded a hotbar system that can take consumable items and weapons such as bullets and stores them on separate inventories. Bullets will be visualized on different slots than weapons. Active weapons will show their current magazine bullet count.

The GUI holds also players health icon. The heart icon color will be set darker and smaller with damage. There is also a skeleton image that will be shown gradually over the players avatar image.

Main Menu Scene

I animated a main menu with characters. Character animations are from Adobe Mixamo. The campfire light is also animated.

Game intro

Intro screen

I created an intro animation with animated text on a black screen.

Player states and Enemy AI

Player aiming a gun at zombie Zombie Action!

Player has two main animation states. First when player is not holding a weapon and second when player is holding a weapon. Im non-wield mode Player will be rotated towards his movement. In wielding mode the player is always rotated towards the mouse, where player is pointing his weapon at.

Enemies will wander player is far enough. If the player comes in range, the enemies start to run towards the player. When they reach attacking distance, the enemies will start attacking the player. If the player outruns and goes far enough the enemies, they stop pursuing the player.

Note in the image the player HUD change with damage.

Other screenshots of the prototype

Unity editor view

Image of the Unity Editor Image of the Unity Hierarchy window Picture of Player Inspector view Picture of Zombie Inspector view Image of the level. Designed by Juha-Matti Hietala.

Here’s some images of the development environment.

Git Insights

Git Insights

I coded about 2000 rows and did about 350 commits to the game prototype project :)