=CLICK 2 VIEW OTHER STUFF  


GAME DESIGN II



( NO AI WAS USED IN THE WRITING OF THIS PAPER )


It WAS used to organise my own thoughts into a step-by-step plan of action and to help with programming syntax, as those are two things that my brain makes incredibly difficult.

 





WEEK 1 + 2 #fortune



BRIEF

This semester we are taking part in a game jam and are tasked with completing the development of a new playable prototype following a different theme EVERY TWO WEEKS for a 6-week period.

The first fortnight’s theme is FORTUNE.
I will refer to my first game of this project as “Fortune”, OR game1 for the remainder of the paper to make things clear, following the same naming conventions for the other themes, GAME 2 Argument and GAME 3 Juice.







CONCEPT PHASE

To begin on #Fortune, I thoroughly brainstormed and conceptualised the majority of my game's logic using pen and paper as shown in the following scans...

click 2 view images in fullscreen


I find myself visualising a finished state of the game from the very start of the project and massively simplifying it from there. moving around and interacting with the elements I intend to create and introduce mentally.

While visualising, I quickly bug/playtest the game in my head, figuring out what would be enjoyable for the player as well as being possible within the engine.

I HEAVILY consider the psychology of the player when creating the rules and mechanics for my games.
The reason we are making a game is to provide a unique and enjoyable experience to the player.
This MUST be considered in EVERY SINGLE aspect of your game.
These are the variables which decide your players engagement and the overall success of your creation.

This leads into my PERSONAL MISSION as a game designer, which is to showcase consistent visual and auditory uniqueness through acts of experimentation in my work, while using a growing knowledge of game design and the human mind to introduce and display these aforementioned concepts in a palatable and engaging way, also enlightening players of a wider message I strongly believe in.






When I design a game in my head, I somewhat understand everything I visualise mechanically, which gives me a level of confidence to picture certain problems I will likely run into and their solutions before going through with implementing and finding the same thing out.

I do this almost obsessively until I fully understand how I will go about creating each system in a way that is achievable for me; I cannot stop thinking about it until I feel assured in my plan.

During this phase, ideas often clash mechanically.
One of the essential challenges for a game designer (or any artist) is that they must maintain a steady flow of ideas, images, observations, resources, and motivation in order to succeed.

It is also imperative that we only keep what is important and discard what isn’t.

Well over half of the ideas I write down and spend a considerable amount of time experimenting on are not used in the final product of the game and are often even forgotten to be documented due to the spontaneity of the work.

It is the same for the code and art in my projects.


QUICK GAME EXPLANATION

#Fortune is a game about gathering the largest sum of money possible by exploiting the systems around you until you either die by starving, getting hit by a car, or being consumed by the NPCs around you for your wealth.

The primary way to make money is by gambling with lottery tickets.
Each ticket type is bought at a different cost and has unique rewards with different statistical chances for each item.
(which is all freely adjustable with 1 single modular lottery script)

If the player purchases enough of the highest tier tickets, they will eventually receive the FORTUNE.
and win an obscene amount of money which triggers the game-ending sequence.

In order to get money to buy lottery tickets, the player can do a number of activities, such as...

   

LOOTING TRASH CANS

(PRESS E ON TRASHCAN, WITH LONG DELAY UNTIL PLAYER CAN LOOT AGAIN)
Chance for:
Food
Cigarette

Teir 1 lottery ticket



BEGGING PEDESTRIANS

(PRESS E ON PED, WITH MEDIUM DELAY UNTIL PLAYER CAN LOOT AGAIN)
Chance for:
Varying amounts of money depending on person type


   

WORKING AT THE OFFICE

(PRESS E ON COMPUTER, WITH SHORT DELAY UNTIL PLAYER CAN LOOT AGAIN, IN EXCHANGE FOR STAMINA AND HUNGER)
Chance for:
Varying amounts of money depending on promotion type




WORKING FROM HOME

(PRESS E ON COMPUTER, WITH SHORT DELAY UNTIL PLAYER CAN LOOT AGAIN IN EXCHANGE FOR STAMINA AND HUNGER)
Chance for:          
Varying amounts of money depending on pc setup, which can be upgraded in item store
store



DEVELOPED PLAN

With my entire plan conceptualised, I not only prompted through text but also voice chatted with an LLM. I used ChatGPT and explained to an absolutely painful level of clarity what I would like to achieve, why, and how, using the notes I have created and the strong idea I have of the game mentally.

I make sure to specify every single aspect of the creation process as well as prompting it to gather any extra information it may need from me through extensive questioning.

I continue to communicate with the model until I am absolutely certain we share the same vision.
I assign its skills, telling the AI it has master-level game design and programming skills and it has been a top-tier professional in the industry for decades. It, of course, agrees.
I ask it to convey extensive testing and add debug logging in anything it gives me.

Once everything is ready. I ask for an incredibly detailed step-by-step plan on how I can execute my plan.

This lays all of my ideas out in a realistic chronological order. filtering out everything unnecessary and keeping what we agree is pivotal.

I continue to converse with the AI to develop an incredibly clear understanding of how I can complete this task.
Once I am confident in my ability to execute the game effectively, I begin!

(I have used the LLM to interactively create a customised to-do list IN THE CORRECT ORDER for my needs.)



PROJECT SET UP

To begin, I created an empty 3D URP project on Unity 6 LTS.
I then imported the default Unity first-person controller into the scene.
(I used this based on the flexibility it provides in relation to the time it takes to set up.)

I decided to use the character controller component as opposed to the rigid body component because I don’t have experience with it yet and would like to expand my knowledge.

I organised the hierarchy to include a parent for the...  
   PLAYER,
    ENVIRONMENT,
        LIGHTS,
        BUILDINGS
    INTERACTIONS.
   SYSTEMS,
 ETC.


I also adjusted the file structure of my project, making sure I had folders for...
   !scripts,
   animations,
   materials,
   models,
       NPCS
       MAP
       CARS
   textures, and
   z.addons.


(I use ! and z to ensure that scripts are always at the top and addons are always at the bottom of the file view)





MODULAR SYSTEMS

This time, I developed my scripts with fast creation in mind from the start.
I found with my last project that I was stuck using non-modular systems, and as a result, I had to hard-code many variants of the same scripts, which is wasteful both in my time and the game’s performance. To counteract this and make my game more designer friendly, my scripts are structured around creating public fields that are able to be adjusted in the inspector on the fly, then turned private after the details are locked in if necessary.

Creating numerous systems with customisation in mind also gives me the ability to use non-final imagery and assets, as it can always be changed easily.
 


PlayerMoney.CS
(commented)

DESIGNER FRIENDLY RESULT IN INSPECTOR:




GamblingZone.CS
(commented)


DESIGNER FRIENDLY RESULT IN INSPECTOR:






PlayerHunger.CS + PlayerStamina.CS
(commented)


DESIGNER FRIENDLY RESULT IN INSPECTOR:





SliderImageUpdater.CS
(commented)





DESIGNER FRIENDLY RESULT IN INSPECTOR:











BASE-LINE UI SETUP
I created placeholder UI to test out prototype loop, Excuse the naming conventions...





BASE-LINE MAP SETUP

I morphed the starter scene into a general idea of the map I intend to make. I quickly modelled and imported a simple grey box version of the map to test functionality.  


VIDEO


REFLECTION

What went well
  • Scripts for first game are Functioning mechanically on a very basic level
  • Modular design allows for fast and frictionless adjustments to variables
  • I am loving the project so far

What didn’t go well
  • I was hoping to have the first game completely finished by week 2 but I still need to throw together some visual representation of my idea so it can make sense.


WEEK 3 + 4 #ARGUMENT


CONCEPT PHASE (pen and paper)


IDEA:


I would like to FINALLY figure out how to create a split-screen co-op game in Unity where both players have control of their OWN cameras. I want the game to accept inputs from any device. meaning both players can be using a controller or one using a mouse and keyboard, etc.
Shockingly, all resources I can find online are for this in 2D. If it's a 3D scene, both sides of the screen share the same
camera perspective.
This has been a challenge of mine for quite some time, as Unity’s new input system is incredibly confusing for me to understand. The reason being the terminology they decided to go with.

You must create input actions.
for the input action asset –
This is where you choose the input that each action contains.
which requires the object to have an input component,
with code detailing said inputs,
the inputs that are decided within the action asset.

This is absolute word vomit to me!!

The goal in the development of this game will be overcoming this challenge, as well as creating a basic objective for the players to express/interact with each other.

Both players take control of a king arguing for their land and defending their castle.
In order to win, a player must push the other off the map using an animated slapping hand which they are equipped with.


IN ENGINE PROTOTYPING

To make this prototype, I will modify the default Unity third-person controller to instantiate a second prefab of the player whenever a new device’s input is triggered.

A problem I foresee will be getting both players to take input separately.

For player instantiation I will assign each input a player ID number and set the amount of prefabs based off this integer.
Assigning inputs will work using the same logic.

After both players are controllable, I will attach a hand to each of them, create a hitbox around them, and write a script to detect if a hand hitbox enters the enemy's player collider.

If the collider hits, I will apply an experimented-upon amount of gravitational force to the rigid body of the player who was collided with.



DEVELOPMENT


GAMEPLAY (turn sound down)


MORE FORTUNE WORK

I wanted to finish implementing the visual representation of my first week’s game, so I spent my extra time for this Fortnite doing so! as it was the initial purpose of the project.



I spawned numerous primitive shapes.
I then textured these flat shapes to create...

- paths,
- roads,
- rugs,
- wooden flooring,
- carpet,
- brick,
- drywall,
- windows,
- grass patches,
- store fronts,
- ally ways,
- sky scrapers,

- advertisments,
- signage,
- doors,
- electronics
- trashcans,
- etc!

I arranged these building blocks into the game world I orginally envisioned.
I started desiging an experimental UI in unity.
I also created a script to display gameplay at any chosen resolution and aspect ratio.


For the UI, I took numerious images of a pack of cigarettes and mcdonalds fries, to represent the players stamina and hunger.


I masked everything out of the backgrounds, edited the images to my liking,
and created a script that can display the unity slider component as a chosen amount of 2d sprites.
I imported these images as individual sprites and everything worked as expected.

- I felt incredibly relieved that my goal in the project was achieved!!!




FINAL GAMEPLAY DEMONSTRATION


REFLECTION

What went well

  • Game 1 is complete!
  • Game 2 is complete!
  • I can finally make my desired future genre of split screen coop games now!            (the new input system isn’t that bad) 

What didn’t go well
  • I am sad I didn’t get to add art to game 2 but I need to be realistic with my work. art was not my focus of this game, therefore I had no need for it to be done

  • The new unity input system was incredibly confusing to figure out and took mulitple days of painful frustration to fiture out how to get players to have individual movement, as well as any other actions I want in the future.

I ended up FINALLY learning how it works from this video:





WEEK 5 + 6 #Juice






CONCEPT PHASE (pen and paper)




IDEA:


I was having a lot of trouble coming up with a quick and simple idea for my juice game, but after a few failed concepts, I landed on creating a cookie clicker clone where you start the game with NO JUICE, no responsiveness, no colour, no sound, pixelated graphics, etc.

As you click on juices that spawn in different locations on the screen, you will earn money, which can be used to purchase upgrades. These upgrades will add more “juice” to the game, like sound effects, music, animations, colour enhancements, and even mechanic adjustments to make the game more satisfying or responsive!

I believe that game juice can be condensed down to…
how the player's character feels,
how enemies/objects feel,
the sounds which are made,
and the imagery that is displayed
For my game, I have simplified these concepts into single words.


PLAYER
OBJECTIVE
SOUND
VIBE

After obtaining every upgrade the player will be able to “accend” and complete the experience!

because I was short on time and the purpose of the work is in the juice, I used AI to structure the following code based off my poor attempts at making the same thing:


CODE





DEVELOPMENT VIDEO



GAMEPLAY (TURN SOUND DOWN)


REFLECTION

What went well

  • Game 3 is complete!
  • Development was a breeze
  • I was able to express the developed and stylised concept of juice with very minimal programming

What didn’t go well  
  • Documentation was VERY DIFFICULT, as I am someone who finds it excruciatingly difficult to write my thoughts in this format. taking over 2x the amount of time it took to make the actual games. I love to speak my ideas through the art itself, and keep exuding far too much energy to achieve this in a circumstance that doesen’t necessarily require it.
  • I wish I could’ve added more juice elements like camera shake and animaited elements to the objective.