RUMSHOT GUMDROP
Game Description
Rumshot Gumdrop is a 2D action roguelike where you delve deep into a rabbit hole of hallucinations constantly assaulted by a level that evolves from the decisions you make and the competency at which you perform.
This project focuses heavily on "Dynamic content creation" thus most of the systems have a dynamic aspect built within them.

MY CONTRIBUTIONS
This is a list of contributions to the project that I will be talking about in this document. Apart from those listed here I also had a hand in creating all of the art assets and some sound effects.
GAME DESIGN
Alongside my teammate Elcoms we tried to create a game that facilitates the use of dynamic content creation. One of the interesting things we tried to do was to not only have the game's difficulty be dynamic but also to allow the player some agency on how the difficulty of the game evolves.
SYSTEM DESIGN
The systems I was in charge of creating were related to gameplay and user experience. For gameplay, I was in charge of the player controls, power-up systems, and enemy behaviours. As for user experience systems, I tried to create a dynamic game feel system that can regulate the atmosphere of the scene.
UI/UX DESIGN
The UI/UX design for this project was an interesting challenge as we wanted to portray a sense of chaos. Thus, some of the information portrayed in the UI was left vague in order to create the UX we desired. Disclaimer, this project is meant to be a very early prototype so please forgive the UI for lacking polish.
PROJECT INFO
Team size: 2 | Unity Engine | Duration: 8 Weeks
Working hours: 10-15 hrs per week
Created by: Team JK
Members: Elcoms Khang Jun De & Koh Jin Peng

TEAM BACKSTORY
During the class's pitch presentations Elcoms and I noticed that our game pitches were both roguelikes being driven by dynamic difficulty. His pitch was more technically driven with a level generation based on cellular automata whilst mine was more experience-based where I wanted the gameplay to evolve based on player actions. Thus we decided to work together and incorporate aspects from both pitches to create a better project .
GAME DESIGN
In this section I will try to give some context to the project as a whole such as what are the goals for project, game mechanics, and dynamics.
HIGH CONCEPT
Rumshot Gumdrop is a 2D action roguelike where you delve deep into a rabbit hole of hallucinations constantly assaulted by a level that evolves from the decisions you make and the competency at which you perform.
PROJECT GOAL
To create an accessible game experience that pushes the boundaries of dynamic difficulty by allowing player control over core aspects on how the systems evolve.
AESTHETIC THEME
The theme chosen was "Drunkenness". We want to create a high energy mood and feel to the game and also dabble in the concept of impaired perceptions when it comes to our user experience(UX) in order to create something unique and exciting to set us apart from other games in the genre.
DESIGN PILLARS
DYNAMIC DIFFICULTY
Since one of the project goals is to be accessible to more casual gamers, the difficulty in the game must be able to accommodate dynamically.
PLAYER AGENCY
The game must provide choices for the player to make that will affect gameplay
CONTROLLED CHAOS
With a theme centered around a drunk guy's hallucinations, we want to ensure that a chaotic experience is perceived without the game's actual systems falling into chaos.
GAME LOOP
Core Game Loop
Rum Shot Gumdrop’s core game loop revolves around dynamic difficulty and giving player agency over how the difficulty evolves.
To start us off we have a basic core game loop where players progress in the gamespace, kill enemies and get more powers. To give players some agency over how the difficulty evolves we utilise a system we call choosing your poison. What this system does is it makes the player pick between 2 different power ups and gives the power not chosen to the opposition. This could manifest as enemies shooting more bullets or spikes that appear on platforms becoming larger. This way players are given a meaningful decision periodically as they are trying to predict and strategize for the future.

Injection of Dynamic Difficulty
Once the core game loop has been established, we then focus on how we can dynamically alter the game's difficulty in a meaningful way. The chart below is a simplification of how the system will work where the level generation will adapt not only to what powers the opposition obtains but also to player performance and a tension variable that represents how intense we believe gameplay is at any given time. Tension is derived from factors such as player health, enemy count, and etc...

GAME MECHANICS
PLAYER ACTIONS
SHOOTING
Primary mechanic
Shooting is based off the player to mouse cursor position.
The Clone power-up can give a new dynamic using this implamentation. For example, putting the crosshair closer/farther away will affect how the bullet path will behave if more than 1 emitter of player controlled bullets exist.

BREAKFALL
Pressing the jump key whilst in air will slow down the player’s speed of descent.
Primary mechanic
MOVEMENT
Secondary
Basic 2D left and right movement and a short jump so that players don't feel constraint by the lack of a jump action.
POWER-UP SELECTION
CHOOSING YOUR POISION
Primary mechanic
The way the power-up selection works is you get one and the enemy gets the other.
This creates a situation where players will want to create synergy within their power-ups whilst denying the enemy synergy in theirs. This may not always be possible due to RNG hence the name of the mechanic as they must make the best out of bad a situation.

POWER-UPS
For the power-up system, I took reference from the games Binding of Isaac, and Risk of rain to develop something that I believe is able to form interesting power synergies for both the player and enemies. The hardest part about designing this system was trying to ensure that powers were balanced and applicable to both parties.

DAMAGE UP
Power type: Stat modifier
Increases the damage done by each bullet shot by the player. Also increases bullet size to give players some feedback on their current damage.

SPREAD SHOT
Power type: Additive
Unlocks a spread shot ability that will fire off every 4th attack. bullets created by spread shot deal 50% damage of the original bullet. Increasing the level of this power will increase the amount of bullets fired.

RATE OF FIRE
Power type: Stat modifier
Increases the fire rate of the player character. Fire rate is measured in bullets per second. The base rate is 2 per second and each level of this power will increase this by 1.

HEALTH
Power type: Stat modifier
Increases the max health of the player character by 20% of its base value. The health power-up has a secondary effect of recovering the players health to full.

SHIELD
Power type: Additive
Unlocks a protective shield that negates 1 instance of damage when hit. Shields recharge at a rate of 5 seconds per charge. Leveling up this power increases the number of charges your shield can hold but also increases the time taken for each recharge.

CLONE
Power type: Companion
Creates a corporeal clone of the player that is invulnerable and trails behind them. Each clone will attack in unison with the player and deals damage equal to the player's damage stat but is unable to use any other power-up such as spread shot.
POWER-UP DYNAMICS
These are some of the considerations a player may have when selecting a power-up and how they will affect the gameplay. This is where we fulfill our design pillar of Player agency as these decisions will impact how the playthrough will turn out and what strategies/playstyles will be optimal.

DAMAGE UP
Good early and late game
High enough levels makes killing enemies quick
Weak against shielded enemies as damage is negated per instance
Weak against enemy hoards
If the enemy is allowed to many of these, they may end up killing the player very quickly once their shield goes down

SPREAD SHOT
Very powerful early game
Gives a balance of damage and damage instances
Effective against enemy hoards
Weak against high health enemies
Unlocks the ability for enemies to fire bullets hence a good early game strategy is to deny this from the enemy

RATE OF FIRE
Better in the late game
Requires a certain level of damage to become effective
Affects player clone's attack speed as well
Good against shielded enemies
With high enough levels of this and spread shot, enemies will start to create a bullet hell situation where players will either have to run through with their shield or try and destroy the bullets with their own

HEALTH
Recovers player health to full hence can be a life-saver at times.
Picking this power will mean less growth in player strength whilst compared to enemy growth
Allowing the enemy to get too much of this power will result in very tanky enemies making scoring difficult killing them will be difficult
The Destructible block's health also scales off this power making it harder for players to progress downwards if impeded by them

SHIELD
Very powerful at early levels but start to become redundant later as regen times for each charge gets longer and longer
Denying this from the enemy will prevent destructible blocks and small monsters from obtaining this power-up

CLONE
Weak early game but strong late game
Acts as a force multiplier for damage and rate of fire power-ups
If the player has too much of this power, clones may end up outside of the play area at times to prevent this from being overpowered
Giving the enemy many clones may result in a screen of them becoming a body shield to protect their originator
ENEMY TYPES & HAZARDS
In this section, I will go through the types of enemies and hazards in the game. I will briefly mention the role of each enemy type and some possible dynamics that do occur.
DESTRUCTIBLE BLOCK

Type: Obstruction
Destructible blocks are generated alongside platforms in order to impede the downwards progression of the player. These blocks appear more often and in denser formations as the game's threat level increases.
SPIKE

Type: Hazard
Spikes are placed on top of platforms and take on the role of stationary hazards. The damage a spike will deal to the player will determine the length of the spike.
Spikes create denial zones so players will watch their step when going down.
SNAILS

Type: Walker
Snails are the base enemy in the game and have no abilities/power-ups initially. They walk around and will chase the player if they get near. Since these have no powers, their behaviour will evolve only due to the power-ups discarded by the player.
CHICK

Type: Flyer
Chicks are the basic flying enemy type that will always seek to fly near to the player. They start the game with a minimum of one level in spread shot thus they will always have the ability to shoot at the player.
This enemy type serves as a harraser unit.
SNAKE

Type: Elite Walker
Similar to the snail in terms of behaviour, snakes are larger and they start of with a minimum of 3 levels in spread shot and 1 level in shields.
Because this enemy type is meant to be a elite unit, it lacks the ability to use the clone power-up.
SQUID

Type: Elite Flyer
Squids fulfill the role of mini-bosses. Since they are flyers they pose a greater threat than snakes as they can give chase to the player. A pack of squids is almost expected whenever the game's level generation decides to create an intense moment.
Squicks also lack the ability to use the clone power-up
GAME DESIGN CONCLUSION
To conclude the game design section. The goal of this project is to create a unique experience for players centered around the theme of "drunkenness" that includes dynamic content creation.
To add on, I also hope that the information provided will bring clarity and understanding to the design choices I go through down the line.
SYSTEM DESIGN
In this section I will go through the design processes for the systems that I created.
CONTENT OVERVIEW
ENEMY SYSTEM
There won't be a dedicated section for this system as it is just a basic AI class system.
The only interesting thing about this system is how enemies gain power-ups through the Power-up system and this topic will be discussed over in that section.
POWER-UP SYSTEM
This system controls how power-ups are given to the player and enemies. It also controls how the enemies are dynamically created through their pool of available power-ups.
DYNAMIC GAME FEEL SYSTEM
The dynamic game feel system focuses on anything related to the atmosphere and mood of the game. It controls elements from the background assets, HUD visuals, and platform decals to try and give off different moods depending on the situatiion.
KILLER SYSTEM
This system is tasked with helping players understand that enemies are being dynamically created in a way that brings life into the game. By using name generators I hope that this system is able to make the enemies in the game feel more personable.
SYSTEM DESIGN PIPELINE
This section will describe my general approach to system design.
DEFINE GOAL
Step 1
The first step of my system design pipeline is defining a goal for my system. For example, if my game requires NPC's walking around a busy street my design goal would be "a system that can simulate pedestrians on a busy street".
DEFINE VARIABLES
Step 2
Once I have a goal in mind, I then move onto figuring out what variables are needed to achieve my goal. Following the same example, I believe I will need to have the pedestrian density to populate the area and the time of day to control the population density as a start.
LINK THE VARIABLES
Step 3
With the variables defined, I then move on to linking them in a manner I find appropriate for achieving my goal such as linking the pedestrian density to the time of day and having the time of day be on a 24hr cycle where 12-noon is peak density.
INTERNAL TEST
Step 4
After linking all the variables I then do an internal test within the system itself to see if it works as intended before I connect it to the rest of the project.
EXTERNAL TEST
Step 5
Finally, once I am satisfied with the system on its own I will connect it with the other systems within the project to see if they achieve the intended result as a whole.
ITERATE
Step 6
This step can be done at anytime when results are not satisfactory, or when all other steps have been accomplished and I am trying to polish the project.
POWER-UP SYSTEM

OVERVIEW
The power-up system I use for Rumdrop Gumdrop is a "booster-only system" similar to the one seen in Risk of Rain. A booster-only system's key features include powers of varying types that can complement one another. These can also form power synergies where one power on its own may not be very good but when paired with another can create interesting power dynamics.
POWER-UPS
This section is a repeat of the one in the Game Design section for ease of reference.

DAMAGE UP
Power type: Stat modifier
Increases the damage done by each bullet shot by the player. Also increases bullet size to give players some feedback on their current damage.

SPREAD SHOT
Power type: Additive
Unlocks a spread shot ability that will fire off every 4th attack. bullets created by spread shot deal 50% damage of the original bullet. Increasing the level of this power will increase the amount of bullets fired.

RATE OF FIRE
Power type: Stat modifier
Increases the fire rate of the player character. Fire rate is measured in bullets per second. The base rate is 2 per second and each level of this power will increase this by 1.

HEALTH
Power type: Stat modifier
Increases the max health of the player character by 20% of its base value. The health power-up has a secondary effect of recovering the players health to full.

SHIELD
Power type: Additive
Unlocks a protective shield that negates 1 instance of damage when hit. Shields recharge at a rate of 5 seconds per charge. Leveling up this power increases the number of charges your shield can hold but also increases the time taken for each recharge.

CLONE
Power type: Companion
Creates a corporeal clone of the player that is invulnerable and trails behind them. Each clone will attack in unison with the player and deals damage equal to the player's damage stat but is unable to use any other power-up such as spread shot.
PLAYER ACQUISITION

HOW TO GET
Players get a chance to power from power-up stations that are generated into the level. The alternative way a player can power up is by completing the level they are currently in. This ensures that players cannot entirely refrain from obtaining power-ups in an attempt to deny the enemy.
CHOOSING YOUR POISON
As mentioned in the mechanic's section players are then given the choice to choose their poison, will they choose to create power-up synergy for themselves or try to deny the enemy.


HUD DISPLAY
Finally, after selecting a power-up, an animal with a colour the same as the power-up selected will appear on the left of the in-game HUD to represent the player's powers. Whilst another animal representing the power not selected will appear on the right of the in-game HUD in a similar manner to show the enemies pool of power-ups.
This form of conveying information can be considered unintuitive especially once the number of powers starts increasing but it was done with the intent of creating a sense of chaos that suites the drunken theme where things get messier and messier the drunker you become.
ENEMY ACQUISITION

POWER-UP POOL
The way enemies gain power-ups is slightly different. The reason for this is because every enemy on the level has a unique combination of power-ups derived from the pool. Thus every time an enemy is spawned, they will have to run a series of algorithms to determine what power-ups they have.
POWER-UP CALCULATION
The power calculation algorithm starts off with the game's current threat level. From this threat variable, I determine the number of power slots an enemy can have. In this case, "Doug the loaded snail" has at least 2 power slots.
Once the number of slots is determined, all power-ups in the pool are added to a list and the enemy will pick out powers at random. The amount of times the enemy picks from the list is equal to the number of power slots they have, and the powers they obtained cannot exceed the maximum level of said power in the total pool.


RATIONAL
The first reason for the use of such a selection algorithm is so the enemies created will dynamically evolve based on the power-ups in the total pool and the regularity of the powers will be reflected in this generation. Example, if there is a lot of shield in the pool, the chances of an enemy spawning with a shield is higher.
The second reason is so that enemies will spawn with varying power levels. For example, an enemy who puts 5 points into damage and 1 into shield like "Dick the macho snail" will only have 2 power slots filled, whilst another snail that added more into shield may have all its slots filled.
DESIGN CHALLENGES
TEN THOUSAND BOWLS OF OATMEAL PROBLEM
This challenge refers to how even when the system makes enemy power generation dynamic, it does feel like it is. This problem occurs simply because an individual enemy is not on screen for a long enough time that players can register the differences between them.
Solution:
Thus, to solve this problem I decided that there needs to be a visual difference between each enemy. Initially, I wanted to make each enemy grow little bits of decals that symbolise the powers they have but I quickly realised that this was out of scope as I do not have a dedicated artist.
Hence I settled on creating the elite class of enemies so that there is at least some visual difference in monsters so that the game wouldn't feel stale. Once the game didn't feel stale, players tended to be engaged for a longer period of time which allowed us more chances to make them notice that the enemies were in fact dynamic using the Killer system.
POWER-UP DENIAL
A problem I faced when developing this system early on was that players could power themselves up to a certain degree then stop getting power-ups completely. This created a stagnant game state as even when enemies were gaining more power slots, they were unable to get stronger as they always hit the max cap on powers.
Solution:
Added mandatory power-up selection at the end of each level.
POWER BALANCE
This issue is pretty much present in any system. The problem of having to balance the power-ups even ones so simple was quite the challenge. I was constantly faced with a single power being overpowered and nerfing it lead to it becoming either useless or allowing for another to take its place.
Solution:
In the end, my solution was pretty much one of brute force, every time an imbalance occurred I would simply bring out the nerf hammer.
However, the way in which I nerfed things most of the time was with their dynamics and not just pure number balancing. An example of this was the shield power. Initially, shields were overpowered as they would just keep regenerating. Thus I made it so that each charge or shield takes longer and longer to regenerate. This lead to an interesting situation where the strength of this power-up resembled a parabolic curve where early levels were great and later ones not so much.
DYNAMIC GAME FEEL SYSTEM

OVERVIEW
The Dynamic Game Feel System's purpose was to create a unique game atmosphere relevant to the drunken theme and current enemy power-up pool. This is to reinforce the information conveyed to the player about what kind of threats they may face.
An additional purpose of this system was to create something I call perceived difficulty. Perceived difficulty is essentially the player's perception that the game is difficult without there being any real threat to them in the game. I try to achieve this by putting a strain on the player's cognitive load by making the game screen look messier and messier as time went on. Thankfully this paired very nicely with the games theme.
This system contains the following sub-systems:
Aesthetic tiles
Background noise generator
Animal generator
AESTHETIC TILES
The goal of the aesthetic tiles sub-system is to dynamically populate the game scene with decals and props unique to the current enemy power-up pool. This is to create a sense of dynamic game feel as depending on the power-ups available to the enemy the game will look different.
The image below is an early example of how the system takes unique decals from the red column that represents the damage power-up and combines it with the decals from the green column to create a new game feel. The idea is that with 6 power-ups I will have 6 unique decals to permutate into however many combinations. These combinations although similar should create a slightly different feeling for each of them depending on how many of each power-up is present in the pool.
The design process of this system took much longer than expected due to asset design and creation. For example, when trying to recreate the effect of the low fidelity mockup below it quickly became apparent that I needed to find ways of modulating my art assets for the final version.

PROPS VS TILES
The aesthetic tiles system is broken up between, props and tiles both of which have their own behaviour. There are 3 types of each in order to have one for every power-up. Prop assets were assigned to non-stat modifier type power-ups and vice versa.

PROPS
Props appear on top of platforms in order to give the level layout a different silhouette. The way these propagate is by referencing the current enemy power-up pool. If the pool has a lot of power-ups that are linked to the bamboo prop, for example, you will start seeing a lot of bamboo in the game.
Each prop was designed in a way that they can stack ontop of one another in using sprite layering hence it is possible to create different looks by combining them together.
TILES
Tiles refer to a type of decal that appears on the platforms you stand on. Unlike props, tiles do not reference the enemies power-up pool but instead appear when the player has given the enemy a stat modifier type power. So for example if the player gave the enemy damage up, the platforms in the game will turn red with the tiles.
The reason for this is because stat modifier type power-ups are a lot less noticeable to the player. Hence, in order for these power-ups to feel more significant, I thought that it would be appropriate to make the game feel relate more to the power-up's signature colour.


PRIME EXAMPLE
Here is a good example of how the aesthetic tile system works. In the image, the enemy has access to a lot of the spread shot power-up (orange) and so the props in the game are all orange grass props. Furthermore, the most recent power-up obtained is health (green) so the floor tiles are green. Please ignore the green lighting in the back for the time being as it is not part of this sub-system.
BACKGROUND NOISE GENERATOR
The goal of the background noise is to create a drunken atmosphere for the game. As a reference to what this would look like I pictured a disco feel. Hence I used bright colours and pulsing images to create a dance vibe.

COLOUR VS NOISE
The background noise sub-system works with colour, and visual noise.

COLOUR
Colour is simply the background lighting's colour. This colour changes every time the enemy gets a power-up and it reflects the power obtained just like the tiles in the aesthetic tile sub-system.
This is done to create the disco feel of flashing lights and to reinforce the information of what power was just given to the enemy. This is especially useful when players were going too fast when selecting a power-up and neglect to see what they were giving the enemy.

NOISE
Noise refers to the little star decals you see in the background. These decals have several different shapes that alternate from each level. The decals also increase in density every time the player successfully clears a level.
This is to create the drunken feel of things getting messier and messier as the game goes on. Furthermore, these decals are animated to look like their pulsing to the beat of the music in the hopes that it will help create the disco dance feel.
BACKGROUND ANIMAL GENERATOR
The background animal generator's purpose is to once again create a drunken atmosphere through mess and to convey information on what power-ups are available to both the player and enemies.
The reason for using animal images and not more intuitive icons was a stylistic choice made to portray the feeling of impaired perceptions. Furthermore, being abstract in appearance also gives the game a more lively feeling as compared to proper power-up icons.


GENERATION STEP 1
To set up the generation, I first put together 2 spawning areas, one for the player's animals and one for the enemies. I used the sides of the screen as this was dead space at the time.
GENERATION STEP 2
Then as players select a power-up of their choice, the UI will animate towards the correct section of the screen. Once the movement animation is complete, a random animal will be created with a random rotation value and in the colour corresponding to the power-up that created it.


GENERATION RESULT
In this example I tried my best to pick up every rate of fire (yellow) power-up possible hence it is reflected that my power-pool is full of yellow animals whilst the enemy has almost none.
Also note how at such a late-game state, the HUD is extremely messy and it is hard to tell what is the actual number of power-ups. This reflects the drunken perception loss I was trying to create.
DESIGN CHALLENGES
FUNCTIONALITY OR FORM
The greatest challenge for creating the dynamic game feel system was balancing functionality and form. The nature of this system coupled with the drunken theme meant that creating the targeted game feel would go against many rules of UI design. Examples of the rules broken could be having too much clutter or even the non-existence of a reading font.
Solution:
My solution for this issue is definitely not perfect but it was to prioritise the UX rather than the effectiveness of my UI. Ultimately what we are trying to create in this project is an experience and not really a showcase of technical prowess.
LACK OF IDENTIFIABLE THEMES
This problem is referring to how the game feel system always ends up creating a garbled mess in the late game. I actually note this down as a design failure as the system was unable to achieve its goal of creating a unique game feel for each game state.
Solution:
My solution to solve this if I were to do it again is to start with an end goal in mind for each unique game feel, then create a system to achieve each outcome rather than trying to create a system that puts base elements together in the hopes of creating unique outcomes.
LACK OF DEVELOPMENT TIME
There were so many things I wish I could have done for this system, such as dynamic character sprites and maybe even dynamic audio. However, time simply did not permit.
If it were possible to do it again, I would probably spend less time on the aesthetic tiles sub-system and try to do something with the music instead as I've completely left that vector of game feel untouched by dynamic content creation.
KILLER SYSTEM

OVERVIEW
The goal of the killer system is to give players information about some of the dynamic aspects of the game. It does so by showing players the overall power-up pool and the individual power-ups of the unit that ended the playthrough.
To be frank, this system was not planned for at the beginning as we felt such a system would be more for polish rather than a necessity. However, after many playtests, it became apparent that players were not aware that enemies were evolving based upon the choices they made. Hence, I decided to implement this system to try and help players understand that the enemies are in face dynamically generated.
HOW IT WORKS

EVENT CALLING
This system starts off when the player gets defeated. When defeated an event is called to inform the game over screen who the killer was and what were the kilers stats.
NAME GENERATION
With the information at hand, the killer system then generates an appropriate name for the killer. To do this it first selects from a list of random names, in this case "Lisa". Then it generates a title that corresponds with this enemies most prevalent power-up type, in this case "Loaded" from spread shot. Finally, it identifies the type of enemy so the player can lean what this enemy is called.


RESULT
It is at this stage that I hope players would become interested in the stats and "personality" of the killer so that they would notice how each enemy that killed them is slightly different.
Personally if given the time I would have liked to use some story generation maybe using the stroylets model to help make the killer even more personable than it currently is however, there simply wasn't enough time to do so when it became apparent we needed this system.
SYSTEM DESIGN CONCLUSION
To conclude this section. I believe that the systems I managed to create for this project met their goals and I am extremely happy with how they turned out. However, given the time I would like to redesign how some of them work, namely, the dynamic game feel system. As I believe even though it achieved its goal of creating an appropriate game feel, it lacks the ability to make players realise its dynamic properties.
UI/UX
In this section I will go through the problems that came up when trying to create the intended experience and how UI played a part in this.
This is going to be a short section as UI design was not part of the initial scope for prototyping.
OVERVIEW
The plan at the beginning was to have all the dynamic elements of the game up and running then make a functional but disgusting-looking UI just for the sake of it.
However, once our dynamic systems were up, people were giving feedback that they didn't realise things were dynamic. Worst still, nobody could understand what on earth was going on with the power-up system and background animals appearing all over.

PROBLEM 1
Players do not understand what the colourful animals in the background represent and what they were for.
Theorised cause:
It is my guess that due to there not being any animations at the beginning when you select a power-up, an animal of the corresponding colour just appeared out of thin air.
SOLUTION
Instead of relying purely on the "Gestalt law of similarity" in the colour to create the link between the 2 elements. I layered on the law of proximity and continuity by animating the power-ups moving towards the animal as they are appearing on screen.


PROBLEM 2
Players did not realise that enemies were created using a dynamic power-up allocation system.
Theorised cause:
Because enemies stay on screen for a very short period of time, it is very easy not to notice the individual behaviours and simply thing that all enemies that look the same behave the same.
SOLUTION
This is an imperfect solution that seems to work. Essentially what I to give players a screen that tells them the stats of the enemy that kills them in the hopes that after a few playthroughs they notice each killer was different. In the ideal scenario, this will also drive player curiosity to learn and experience more of this project.
This is not the ideal solution as it requires the player to connect the dots on their own and if they were to play only once, they will never notice any difference.

UI/UX CONCLUSION
Wrapping up this small section, I do realise I skipped any explanation on font choice and music selection. I did this mainly because they were never a high priority due to project scoping and I simply used whatever felt like it didn't break immersion.
Long story short this portion has much to be improved.
POST MORTEM
In this section, I will try to go through what went right or wrong, and my biggest learning points of this project.
THINGS THAT WENT RIGHT
USER EXPERIENCE
Even though the UI and UX side of things were constantly clashing for dominance I believe that I made the correct design choice of prioritising the UX. I say this with confidence as during the later playtests sessions, feedback for the project was always matching the design intentions even when the feedback was negative.
I funny example of this was when a playtester got was ranting mid-playtest about how the background animals were just getting messier and messier. To quote "Dude! why would you do this. I feel as though I'm high on drugs". That comment is a close enough for me.
POWER-UP BALANCE
The balance of the power-ups is evident from our playtest's as we noted that most players have a different idea as to which power-up was the most overpowered.
Of course, it was a long and ardues process to reach this state in terms of iterating and testing and iterating again. furthermore, if I am being completely honest certain things like stat modifier type power-ups being on par with the additive/companion types were balanced mostly by accident. If I had to make a guess as to why I would attribute this success to our prior research on Risk of Rain, by borrowing some of the concepts I think we put our iteration process on the fast track.
VISUAL AESTHETIC
Going into this project we knew that we would have to create our own art assets if we wanted to pull off the ideal user experience. So when choosing the art direction I was very careful to choose a style that was easy to create and forgiving to inconsistency. That is why I chose flat colours and a black silhouetted style.
I hope I do not come off as someone who likes to pat myself on the back from this statement though as I genuinely feel that the visual aesthetic really helped to bring the project together.
THINGS THAT WENT WRONG
DYNAMIC GAME FEEL SYSTEM
In all fairness, the system met all of its goals when it came to dynamically creating a game atmosphere. However, upon looking back I realised that the goals I defined were wrong.
To be more precise, when designing this system I wanted it to have the freedom to create whatever the system deemed appropriate, and this lead to it always creating a mess as in truth a mess was appropriate in the late game. However, this faces the 10 000 bowls of oatmeal problem where even though the scene is technically unique, it generally looks the same all the time. This is very similar to the concept of convergent evolution in reality.
A possible workaround for this issue could be creating a system that has preset ideas of what the game should feel like then using some sort of utility function to choose between them. This could result in a better user experience as the user may perceive the game feel as being dynamic even if it in trust is not.
LACK OF AUDIO DESIGN
This mistake is more of a missed opportunity. In hindsight using different background music would have been a tremendous boon to the project, but alas Elcoms and I lack the expertise in music creation, and the music we sourced never truly hit the spot.
LACK OF ENEMY BEHAVIOUR PATTERNS
This is a failing mostly on my part. I was banking so heavily on the idea that the enemies could inherit different power-ups and behave differently depending on what they inherited that I neglected to consider adding more enemy base types so that the behavioral patterns would be more diverse.
When this issue was raised it was already too late to go back and rework the enemy structure thus, I did the patchwork fix of adding new visuals for the snake and squid enemy types. This only created the illusion of diversity when in actual fact the code behind them is all the same.
LEARNING POINTS
KEEP IT SIMPLE
Being a project for a course on dynamic content creation, it is evident that Elcoms and I went a little overboard in complicating matters that did not need it.
The best example is how the dynamic game feel system is so complicated with its various sub-systems yet is outperformed by the killer system which literally took an afternoon to implement.
RESEARCH PAYS OFF
Once again good reseach in the early phase of the project really paid off. I attribute our ability to iterate fast and communicate with one another to the research we did.
A fine example would be when the power-ups weren't working together as intended and we had to sit down and discuss what powers we should keep. We would reference our research and come to conclusions as to why the powers weren't working out and how we could
ALWAYS WORK NON-DYNAMIC FIRST
This is applicable when working on any dynamic system.
I say this because when designing the dynamic game feel system, I knew what I wanted to achieve but I didn't know what it would actually look like. As I mentioned before, I achieved my goal only to realise that the goal I set was wrong. It would have helped tremendously if I had initially created what the game feels would look like then make a system to achieve them rather than what I did.
INSPIRATION & REFERENCES
This section onwards contains research and references for the game design and system design done before starting on production.
BINDING OF ISAAC
The reference of binding of Isaac is used to understand the concept of its power up system.

POWERS & BOOSTERS SYSTEM
KEY FEATURES:
A power and booster system is identified by a structure of base powers that change the way the player character behaves and boosters that can augment said base powers.
An example of powers can be the basic “tear shot” and the more extreme “blood laser beam”. The player can only have one or the other at any given time.
An example of a booster can be upgrades such as attack speed boost or damage increase. These boosters are independent of any powerup and can be stacked upon one another. Boosters are also retroactive when changing the base power so, if a player were to swap from the basic “tear shot” to anything else, all boosters would be transferred.
An interesting thing to note about this game's power system is for each power up you pick up there is a slight visual change to your character. Example if you were to pick up a shoe that increases your damage, the character Isaac may put it on as a hat to show he now has the shoe’s power.
PROS
This sort of system is much easier to manage as the dynamics of each base power can be controlled. The main difference in the power level will be derived from the level of your boosters.
The choice between each base power is very meaningful if properly balanced as each power will have its own strength and weakness. This will provide players with meaningful decisions that will take to account both player preference and situational awareness.
CONS
This sort of system can feel stagnant after a while as players start to cherry pick their go to builds.
Content can be perceived as less dynamic as only the base powers will be taken to account as unique.
Does not mesh very well with the project's concept of adaptive powers.
TAKEAWAYS
Initially this was going to be the main reference point for our power up system however, after weighing the pros and cons. We concluded that this system would not be ideal. Though we do not intend to use this system, the feature of powers showing up on your character is intriguing and may tie in well with the dynamic game-feel we are trying to create.
DOWNWELL
Downwell will be researched mainly for its downwards progression model and how it manages scoring system.

DOWNWARDS PROGRESSION
KEY FEATURES:
The player moves down to progress:
This gives an interesting situation where players can only move in one direction without the need for invisible walls provided the metrics do not allow them to go back up.An interesting scoring dynamic would be to use progression speed as a factor:
The faster a player goes down the higher the score. this means better players with more confidence will earn more points compared to players taking their time and slowing down to see what comes next.Gunboots(Attack) when fired will slow down the player's descent:
This is to give the players an ability to slow down the fall and see what's going on as well as attack.Difficulty:
As difficulty increases, platform density increases. This will not only provide more spawning room for enemies but also force the player to move on platforms more often slowing their downwards progression.
PROS
Unique method of progression.
Interesting gameplay dynamics with room for creative exploration.
Single direction of progression makes PCG level content easier to generate.
CONS
Screen Space is under-utilised when showcasing information.
Downwards progression can be very unforgiving to new players as the movement of the character requires quick reflexes.
TAKEAWAYS
From our rough understanding, we can get an idea of how to implement a scoring system that utilises downwards progression. The system we came up form this research lead to the way we incorporated dynamic difficulty into our game loop.
RISK OF RAIN 2
Risk of Rain was researched for both its handling of difficulty and its power up system.

DIFFICULTY
KEY FEATURES:
Enemy damage and spawn rates based on difficulty. This increases over time, and it never decreases.
If spawn rates too high (ie causes bullet hell), we can make a “super” version of the enemy to reduce spawn number ( https://www.rockpapershotgun.com/risk-of-rain-difficulty )
PROS
Gives a sense of progression and a gradually increasing difficulty gives a better learning curve than most roguelikes.
Simple and effective.
CONS
No room for difficulty adjustment.
Content can be perceived as less dynamic as the “super” version is simply stats boosted and not a visual change.
TAKEAWAYS
While Risk of Rain has a good simple difficulty system that we can use as a base to start with, we will need to adjust it to our game mechanics and build an adjustment system on top of that.
POWER UPS
KEY FEATURES:
Booster only system:
Unlike binding of isaac where the player can change their base powers according to pickups, risk of rains primary power selection takes place in character selectionBoosters have varying types:
Companion types
These will make something follow the player to assist in combat
Health pools can be independent from player
Damage values are not affected other boosters on player
Additive typesStatus debuffs
On hit effects
Stat Modifier typesDamage up
Attack speed up
Crit rate/damage up
PROS
Even though 1 vector of power permutation is removed, this mode of powerups can seem more dynamic as the balance between each boosters potency is around the same.
Potentially outrages playthroughs. This occurs when players obtain certain powers in a manner that is improbable but insanely overpowered.
CONS
Difficult to manage as power permutations can be broken.
Content creation will be more taxing as each booster can be its own power in a way.
TAKEAWAYS
After looking at the pros and cons of Risk of Rain’s power up system as compared to Binding of Isaac, we have decided to base our system around this one. The main reason being the ability to add and stack multiple powers and have them all be meaningful in terms of power level is extremely beneficial to our core idea of giving the enemy powers you do not want