top of page

Programming

IGO720 Game Development - Week 3 - Development

_______________________________________________________________________


Figure 1: Programming Illustration (Rosero Dionova, 2022)

_______________________________________________________________________


This weeks main focus is all about programming, also referred to alot of the time in game developent as scripting. Unless you're like myself and just see a collection of 0s and 1s. Essentially that is what makes up programming. A mixture of maths and instructions from technology that turns it into a sequence of actions and methods. Every game has its fair amount of code to run gameplay mechanics, enabling a player to control the character and interact with items within a virtual world. One thing to always consider when scripting a game is 'How do game mechanics get implemented through code?'. Not everything is also text-based, there are all sorts of plugins that make scripting alot more easier to comprehend.


Such as the Unity game engine add-on called Playmaker (Hutong Games LLC, 2018) which uses finite state machines (Brian Wirtz, 2021) to build each component for your game to function in a flowchart style, without needing much prior knowledge of programming fundamentals. Last week enabled me to consider the game I want to make. I just need keep a balance between what I aim to develop, compared to what I CAN develop. Implementing gameplay mechanics without any design or art can be quite dull with no contextual impact on the games concept, A skilled hunter who takes on contracts to rid the streets of criminality. Reading that over gives me further hype, but the reality is if the concept will meet the ending prototype in each area. Only time will telll over the course of this module.

_______________________________________________________________________


Genre or Mechanic


The spark forum for this week encouraged us to share our views with the rest of the course, one game mechanic or genre that would consider relatively simple to program, as well as one that would be more complex. I have experiemented alot more recently over the last few years with a range of titles not just for research, but for fun and learnt there is a comparison in the way developers implement mechanics, especially in previous titles from the same company. It is something they build upon over the years until it gradually sticks to player expectations.


I have strong interests in story-driven games like The Town of Light (LKA, 2016). The use of story with emotional aspects that relates between the player and the character is engaging. Whether this being singulated events or grippingly narrative cutscenes. The simplicity in game mechanics usually results into a walking simulator, but with horror and thriller aspects to enhance the overall experience. I learnt this developing my final major project and found the player mechanics reletavily simple to program in relation to player interactables and triggered events as the story was explained in a visual approach.

_______________________________________________________________________


Figure 2: The Town of Light, 2016. LKA. [Online] http://www.thetownoflight.com/

_______________________________________________________________________


In a similar contrast, I consider RPGs to be an intriguing genre to develop. I stated that my original game idea would be inclining towards the Fable franchise (Lionhead Studios, 2005), which gives a shallow role-playing in a linear style for ease of heroic exploration. Looking over this idea now, I did not consider the major requirements to make an RPG prototype with the range of systems to program, such as progression for player strength and abilities, inventory for world or quest items and combat with various classes of enemy AI and types of attacks to animate (Cloudy Heaven Games, 2018).


Key mechanics like this are expected of players that are familiar with RPG or strategy games since these particular type of systems are what make up that specific genre. This would require alot of organising, as well as following a structured approach. I like to implement the foundations of a game, disregarding any built-in support that may assist in setting up an ideal system for mechanics because I feel I would not be gaining anything out of sourced material. I definitely consider developing a genre like this in the future with alot more time and knowledge.

_______________________________________________________________________


Figure 3: Fable, 2005. Lionhead Studios. [Online] https://store.steampowered.com/app/288470/Fable_Anniversary/

_______________________________________________________________________


Ryōshi Grey Box Prototype


The activity for this week is by far the most interactive one going. We've been tasked to use a game engine, as well as programming method at our own preference to develop an interactive 'grey box' prototype, to demonstrate the previously proposed idea mechanics from the game outline activity. This enables us to experiment with third-party assets to assist in the foundations of an idea like tutorials, templates of character controllers. There is a wide range of material to choose from when it comes to open-sourced. I decided to use the Unity game engine, followed by C# as my programming method as I am familiar with the code syntax of C-based libraries and the interactive project layout of Unity which has always made me feel productive during other projects.


Figure 3: Ryōshi Project Test Scene (Kyle Cornwell, 2022)

_______________________________________________________________________


I decided to look through my range of references that assited in my skills audit acivity from the orientation week (Kyle Cornwell, 2022). I started off with scripting some simple player movement through the built-in character controller (Brackeys, 2020), with camera rotation using Unity's effective tool of Cinemachine. I experiemented with the range of cameras included such as Freelook and VirtualCamera to capture the feel of engagement when controlling the character. I settled with a Freelook as the main camera setting, followed by a VirtualCamera to navigate when aiming the player's pistol.


My main concern was how the parkour settings would function when moving the player as I intend to implement jumping over obstacles, as well as wall climbing-buildings. This took a few iteration attempts to ensure the ideal movement process is sufficient during gameplay. I had to reconsider using a character controller as this will prevent the player from climbing walls due to the standard settings and capsule shape since they are used more for going up stairs or slopes in first-person games (Pxl Dev, 2021). This lead me to following a tutorial that uses an off-shoulder third-person perspective through Cinemachine camera display, along with rigidbody and collider components attached to the player (Samyam, 2021).


This would allow me to incorporate some climbing mechanics for my ideal design. This lead me to having a suitable player setup to develop upon. I moved onto researching how I wanted the climbing to function. Bearing in mind, this has to bridge between appealing and interactive to the environment. I was inspired by a short iterative video on climbing mechanics similar to The Legend of Zelda Breath of the Wild (Nintendo, 2017) where Link climbs surfaces in an adventurous and efficient style. The tutorial however had it's compatability issues since its opern-sourced project was in a more updated version of Unity, which did not match the long-term support version I was running (Madalaski, 2021).


Figure 4: The Legend of Zelda Breath of the Wild, 2017. Nintendo. [Online] https://www.zelda.com/breath-of-the-wild/

_______________________________________________________________________


I decided to analyse the code and breakdown the third out of fourth interation of climbing from the video and attempted to replicate this for my own project. This worked to a degree as the player could move in all directions across a face of the building. The major issue I encountered was attempting to setup a player state change between walking, climbing and falling mixed together with my initial movement setup. After some refinements, the player was colliding with a wall and moving upwards but gravity pulled its current position straight to the wall when pressing space. Initially one tap triggers a jump for the player, followed by a double tap to connect to the wall and activate the trigger state.


This was not something I was prepared to have as my climbing mechanics. After some longer consideration and mixing various methods, I decided to scrap this attempt since this was causing a complex issue that would have resulted in a mixed mechanic that gives less appealling gameplay which only climbs up one face of a building and limits my intial parkour elements. I settled with a simple method where the player move towards a wall and move up holding the forward key (Noblob, 2022). This works for a temporal measure as I intend to update this to ensure each face of a building is climbable (Dapper Dino, 2019). The next mechanic on my list was weapons. I originally stated in my design outline that the player will have a samurai sword and a pistol.


I managed to setup the pistol mechanics, whilst setting up the VirtualCamera that switches between third person and aim perspectives. The sword in its current state, is a simple use of animation that is set to run if the player has equipped it and pressed attack with the left mouse click. (FPS Builders, 2020). The sword and pistol both have the ability to destroy an enemy using collider deteciton on Unity's tagging of various objects. At this point, it felt like my idea was gradually piecing together with the player mechanics working to a buildable measure. I mentioned in my last activity that the goals and scores for this game is to seize control of the city districts through contract missions.


This made me consider how I wanted to implement the phone system, similar to the Grand Theft Auto series (Rockstar Games, 2013) to accept contracts and feature as the primary source for activating missions (Aggrovated Snail, 2020). I consider this idea to be at my level to implement as not many titles express a real-world gadget into the game world, which I find quite empty due to the levels of potential detail and an edge of realism. To demonstrate how the phone system will work, I set up a simple panel of UI and animation where the phone would appear to access with internal apps like camera, depending on the low poly style I will implement as the art direction needs to be consistent.


Figure 5: Interactive Phone System Example (Kyle Cornwell, 2022)

_______________________________________________________________________


To make an adjustment to my design outline, I wanted to include a mini map to assist the player in navigating around the districts to cover the current location and waypoints of missions, once activated by the phone (Aggrovated Snail, 2020). This was accomplished by angling a top down view of the player with that follows during gameplay, as well as using a raw image on the UI canvas on the right hand side of the screen. I have set an ideal size to avoid disruption of gameplay. At this point I should be considering some ideas towards the story elements. I still intend to create a hidden backstory that unravels as the game progresses, dropping the occasional piece of information during or after a contract that links to the player's purpose in the game.


This will be captured an animated cutscene to set the story in motion, followed by unexplainable answers to keep a further enagagment during gameplay. Even just getting to this point in development, I found the implementing of mechanics enjoyable, disreagrding the issues with climbing which will be improved in the weeks to come but for now, this settles the foundations of my initial idea and I have to say, I didn't think it would reach to playable. Below is a short video of my interactive grey-box prototype to demonsrate the current mechanics in its first playable build.

_______________________________________________________________________


Figure 6: Ryōshi Grey-Box Prototype Video (Kyle Cornwell, 2022)

_______________________________________________________________________


Reflection


This week has been a challenging one as the start of development is officially underway, meaning it will only get harder provided that I stick to my schedule and prioritise my tasks. I will aim to cover the scripting side first to ensure the functionality is executable before starting to implement any other game elements. I look forward to continuing the progress of this project as it has been a balanced start from just a vague idea, coming to life slowly but steadily. I shall be incorporating some narrative design next week which will I feel will be positive since I like creative flow of stories in my games and how I can tell it through the character and environment. This still feels like an alien project since I'm usually use to the comparison of a walking simulator with multiple genre components, but I feel confident where this project can take me, as well as the knowledge I will gain from it.

_______________________________________________________________________


References:


Playmaker, 2018. Hutong Games LLC. [Online] Available at: https://hutonggames.com/ (Last Accessed 21/04/2022)


Brian Wirtz, 2021. Improve Your Design Skills with Unity Playmaker (The Main PlayMaker Strengths). [Online] Available at: https://www.gamedesigning.org/learn/unity-playmaker/ [Last Accessed 21/04/2022]


The Town of Light, 2016. LKA. [Online] Available at: http://www.thetownoflight.com/ [Last Access 21/04/2022]


Fable, 2005. Lionhead Studios. [Online] Available at: https://store.steampowered.com/app/288470/Fable_Anniversary/ [Last Accessed 21/04/2022]


Cloud Heaven Games, 2018. Why Is It So Hard to Program RPGs? [Online] Available at: http://cloudyheavengames.com/hard-program-rpgs/#:~:text=The%20thing%20about%20these%20types,you%20can%20do%20custom%20scripts. [Last Accessed 21/04/2022]


Kyle Cornwell, 2022. Game Design. [Online] Available at: https://www.kylecornwell.com/post/game-design [Last Accessed 21/04/2022]


Brackeys, 2020. THIRD PERSON MOVEMENT in Unity. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=4HpC--2iowE&t=295s


Pxl Dev, 2021. Unity 3rd person controller. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=HMuhqNo5PZ8&t=223s


Samyam, 2021. 3rd Person Shooter Controller with Cinemachine & Input System - Unity Tutorial. [Last Viewed 21/04/2022] https://www.youtube.com/watch?v=SeBEvM2zMpY


The Legend of Zelda Breathe of the Wild, 2017. Nintendo. [Online] Available at: https://www.zelda.com/breath-of-the-wild/ [Last Accessed 21/04/2022]


Madalaski, 2021. CLIMBING IN UNITY | ZELDA BOTW TUTORIAL - INTERATIVE DEVELOPMENT. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=W3z8RpbU-kE


Noblob, 2022. Wall Climbing | Unit 3D. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=Zs2zgOMizfo


Dapper Dino, 2019. Creating Genji - Wall Climb and Shurikens - Part 3 - Unity Tutorial. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=TaUwBy6GOJE&t=1099s


FPS Builders, 2020. How to Make a Basic but Effective Knife Melee Attack in a Snack Time. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=oAhgEbznVss&t=1s


Grand Theft Auto V, 2013. Rockstar Games. [Online] Available at: https://www.rockstargames.com/gta-v [Last Accessed 21/04/2022]


Aggrovated Snail, 2020. GTA Tutorial - Adding a phone. [last viewed 21/04/2022] Available at:https://www.youtube.com/watch?v=U6Mf_D9Ua2g&list=PLvLDB-mGAf7r-OcH_uyKQFv59CJkcKYMU&index=79&t=21s


Aggrovated Snail, 2020. GTA Tutorial - adding a basic minimap. [last viewed 21/04/2022] Available at: https://www.youtube.com/watch?v=Q2P1VA_Dt3k&list=PLvLDB-mGAf7r-OcH_uyKQFv59CJkcKYMU&index=77&t=417s

29 views0 comments

Recent Posts

See All

Comments


bottom of page