top of page
Writer's pictureJack Self

Game Programming & 'Space Junk' Prototype

Hopefully you have all played a wide range of digital games – you may have also made a few yourself. For this week’s warm-up activity, we would like you to tell the group about one game genre or game mechanic you think would be relatively easy to program, and one which you think would be difficult. In both cases, please state your reasons – for example, is there built-in editor support for particular features, and what is the complexity of code required?


Figure 1: Forza Horizon 5 (2021)


From my experience, programming a character controller, 2D or 3D, can be relatively easy to implement (depending on how complicated you want to make it, of course, and it doesn't involve physics!).


My undergraduate lecturer once told me that racing games are the most difficult to create due to vehicle physics and complex AI. Add in multiplayer, and I can only imagine how difficult that would be to develop, which makes me appreciate games such as Forza and NFS! Personally, inventory systems have always been the bane of my game development life!


Game Programming Fundamentals

In the lecture 'Game Programming Fundamentals', Iain Lobb examines the programming basics and common concepts for implementing game mechanics through code. Although many online tutorials are available, Lobb encourages putting your unique spin on whatever it is you're replicating. Lastly, Lobb reveals that the game engine, Unity, is based on what is known as a 'composition programming model' - the name being something that I was not aware of before.


Tuning Game Mechanics

Figure 2: Why Does Celeste Feel So Good To Play? (2020)


Recommend watching this video when developing a character controller! It has incredible insights and underpins the significance of video game polish (see figure 2).


Common Pitfalls

Figure 3: 7 Game Design Mistakes to Avoid! (2019)


This video goes over common pitfalls and mistakes when designing a video game (see figure 3). For instance, Ask GameDev advises developers to keep their game idea simple and add to it later [ASK - Avoid Making Kingdoms!].

 

Challenge Activity - Interactive Grey Box Prototype

Date: 25th February 2023

Figure 4: Developer Room


This week is about 'Game Prototyping', which means Space Junk officially begins its development cycle! I started by opening a new 3D Unity project and programming the player controller, followed by the 'Suck Cannon' [TBD], the 'Gravity Gun' [TBD] and ammo crates (see figure 4). In addition, I threw in some sci-fi assets to get a 'feel' for the game. I like to do this early on so that it helps to retain my vision for the game.


Figure 5: First-Person View


Initially, I wanted to develop an FPS with full-body awareness, much like in other games such as Halo or Call of Duty. However, I am not planning on making a multiplayer game. Therefore, animating hands will be adequate for a first-person perspective (see figure 5). This ordeal made me think more about the game's scope. For instance, I had an idea to develop 'branching dialogue' - but why? That's time away from developing the FPS experience! I will intentionally keep the scope of this game as small as possible in the beginning so that I can add to it later.


Figure 6: Sphere Cast


The 'Suck Cannon' [TBD] consists of a sphere cast and a ray (see figure 6). Any tagged items that collide with the sphere cast will be 'sucked' and added to a list representing the gun's ammunition. Next on the agenda will be to develop character dialogue, enemy AI and menus.


Comments


bottom of page