DevLog_07 User Guide & Documentation


User Guide

Name: Ampi The Antibiotic 

Description: 

In Ampi The Antibiotic you play as Ampi; an antibiotic with a mission to journey through the body and rid your host of both good and bad bacteria alike by spewing your toxic insides on them, in a fast-paced platformer filled with puzzles and traps.

Basic Gameplay:

The main character (Ampi) can run left or right, jump, and spew her toxic insides on her enemies. Hold the jump button to jump higher, or just simply press it for a shorter jump.

The goal is to kill a target number of bacteria on each level while doing your best not to let Ampi die. If Ampi runs out of health and dies, that’s okay! Antibiotics rarely cure a patient in one dose so more Ampi’s will line up to replace the one that is lost. All of your progress in the level will be retained on death, so you won’t have to go back and kill the same bacteria all over again. You can collect more ammo or health from any Ampi corpses you leave behind. You can also get more ammo after defeating a bacteria.


Once you have defeated the target number of bacteria all you need to do is complete the level! Watch out for traps though, like the Uvula of Death!

Make your way through the mouth, down the throat, and past the stomach to complete this prototype and cure the patient (for now).

Controls:

Controllers supported in Google Chrome. Safari on MacOS does not have controller support.

Input Device

Keyboard

Xbox

Playstation

Nintendo

Move

A,D, or Arrows

Left Joystick or DPad

Left Joystick or DPad

Left Joystick or DPad

Jump

W

A

Cross

B

Sprint

Left Shift

X

Circle 

Y

Attack

Space

B

Square

A

Rotate L (Level 2 only)

Q

L Shoulder

L1

L

Rotate R (Level 2 only)

E

R Shoulder

R1

R

Godmode

L

View

Options

-

Pause

Escape

Menu

Start

+

Game functions: 

You can control Ampi, moving left or right, or even jumping and attacking.

But don’t fall down the cracks!

Watch out for the bad bacteria! If you touch them, they’ll hurt you. If you get too close to their toxic gas, that will also hurt you.

Luckily Ampi can ATTACK! 

Watch out for acid traps!

The carrot boat will keep you safe!

Food is delicious, but if it hits you it will hurt!

This guy is also a trap!

You can jump through these platforms

If you die you will come back as a different colour!

The game will keep track of your kills, and on one level there is also a timer to complete the goal by!

Ampi has health and ammo, so don’t go wasting her precious toxic spew.

There is an optional godmode for the game. This will block all the traps and nothing can hurt you. You will also have unlimited ammo in this state! 

There is also the occasional checkpoint before a harder part of a level! 
 

Game screens:

This is the main menu, this is the portal to be able to start the game, go to settings, or go to a credits page!
 

This is the settings page. Here you can adjust the music and sound volume! It is set low to start with, as some players felt it too loud.
 

This is the credits page! Look at those jazzy Ampi’s flickering away.
 

This UI will pop up when you start a level.
 

Speaking of a level, here’s what the start of one looks like, complete with all the UI!

Here it is again with godmode/LindSlay Mode enabled!
 

Here’s a pause menu. You can skip the level from here if you really get stuck.
 

And finally, here’s the stats screen at the end! Can you beat my total playtime?

Documentation

Compare to Concept

Ampi has turned out pretty close to the vision I had for the game originally. There are a few minor game mechanics that I either ran out of time to implement, or changed my mind about implementing. One was the use of game buttons to open certain areas, or effect the environment. I couldn’t think of a great or realistic use of buttons inside the environments that I created for the first few levels. For example if I added a button to move a tooth to a certain position for platforming, it would be a bit of a departure from the slightly more realistic depiction of the body. I did stray quite a ways away from a realistic human body, but I think adding buttons would be a bridge too far. 

I also removed the need to kill good bacteria. While they would be easy enough to implement, they really would just be sitting ducks and easy for a player to kill. I don’t think it would add any sort of moral objection by the players and I think the methods required to make the player feel something while killing a good bacteria would be quite large to implement.

I removed the need for a time limit on the levels overall as it didn’t feel right for the game. The second level required a time limit as Ampi is literally falling down a throat and I don’t want that to last forever, as it would be a bit too unrealistic for my idea for the game. I also implemented an artificial timer-like section in the last level to give the player a sense of urgency. The rising acid is similar to a time limit section. So, I didn’t completely compromise that part of the original vision.

I also added some functions to the game that weren’t originally planned. I’ve made it so that when Ampi dies on levels 1 or 3, the level doesn’t reset. Instead, a new capsule is spawned in, which fits better with the theme of multiple doses being needed to cure a body of an infection. It is still possible to win the game in a single life/dose, however players aren’t punished for Ampi’s death.

I added the ability for bacteria to both passively and actively attack the player. This wasn’t in the original concept, however I found in early testing that enemies that don’t hurt the player feel pointless and offer no challenge. The other option would have been to increase the number of environmental dangers, and make the bacteria harder to reach with platforming, but I believe that would increase the complexity of the platforming outside the scope of the original concept. 

I believe the game fit the original concept in all other ways. It wasn’t a tight or precise platformer like celeste or super meat boy, it has come out looser like Donkey Kong or Rayman. The art, gameplay, target audience (6yrs+), and basic story were all kept to the original concept (outside of the above-mentioned minor changes). I feel the platforming, environment, atmosphere, and controls all fit with the original plan for the game as well.

Summary of Feedback from Testing Session

The testing session went very well with 9 testers playing the game and filling out the feedback form. Overall the players most liked the art of the game, idea behind the setting, platforming, and the fluidity of movement and control. These were the main positive aspects I was hoping players would enjoy, so it was really good to see those parts of the game score so highly.  

The constructive feedback was mainly based around difficulty, including the controls in some parts. More specifically the players were having a hard time with the damage output of enemies, the sudden shock of being pushed by the seeker enemies, and the low attack range of Ampi. Half the players also had trouble with the rotation controls in level two, and several players were hitting ‘space’ to attack, rather than ‘W’. I have fixed both of those issues since testing. The overall concept of each level didn’t seem too difficult for players with everyone scoring it highly in controls, and a few verbal compliments on level design. I was able to correct all of the key issues highlighted by players in their feedback and have gone into more detail on that in DevLog_06 Game Testing. https://josh-daniels.itch.io/ampi-the-antibiotic/devlog/615256/devlog-06-game-testing

I observed a lot of similar habits and problems that players had during testing, that they didn’t mention verbally or put in feedback forms. On first opening the game about 50% of the players immediately went to their PC settings to turn down the volume. I had already decreased music volume to 25% but I guess Unity runs loud, so I’ve lowered the default music volume to 10% now. I also noticed that people using Godmode were just attacking constantly, and running out of ammo. So I’ve made ammo infinite in this mode. 

Assets

Scripts

Asset

Purpose

Creator

Acid Reset

For a collision box to reset the rising acid on level03.

JD

Acid Trigger

For a collision box to start the acid rising on level03

JD

AmpiDead

Sets colour of dead Ampi on spawning so it matches the previous Ampi.

JD

attackBox

Controls all the attack boxes in the game and sets the attack values. Used for player, enemies, and acid.

JD

AutoDelete

Deletes any food that has decided to hang around too long, deletes after 10 seconds. Could be used on other items if needed.

JD

BoatController

Controls the movement of the carrot boat.

JD

Breath

Controls the wind movement in Level01.

JD

bridgeScript

Used for respawning the bridge every time Ampi dies, just in case it starts to sag.

JD

camBox

Will trigger a change of camera angle when the player enters this collider. Used near uvula.

JD

Collectable

Sits on the dead Ampi so the player can pick up more health and ammo off their corpse.

JD

EnemyController

Controls all enemy behaviours on level01 and level03. Controls the movement, attack times, what to do if bumping into object, how to chase the player, plus much more.

JD

EnemyController2

Controls all enemies on level02. Separate script to other levels as the enemies need to fall and their attacks need to be shorter here.

JD

Food

Controls the maximum fall speed of food.

JD

FoodSpawner

Controls the spawning of food in certain areas of level03. Has a timer to control the rate.

JD

GameManager

Manages all the higher functions of the game such as win states, stats, updating UI, assigning colours to Ampi, pause menu, lindSlayMode and more.

JD

InputManager

Manages all the control inputs, including when holding or pressing a button makes a difference. Based on Unity’s newest input system.

JD

MusicManager

Controls the music, audio, and volume. Is set as the only DontDestroyOnLoad object so also holds onto some values used for stats at the end of the game.

JD

Parallax

Controls parallax movement of layers.

JD + Adam Younis

PlayerController

Controls all of the player controls in level01 and level03. Also controls death states, hurt flashing, hurt states, raycasting, health and ammo management, animators, and so much more. About 500 lines.

JD + Jonas Tyroller (dampening of player movement when changing directions).

PlayerController2

Same as above but only for level02 so much smaller and more focused on falling and rotation for movement. 

JD + Jonas Tyroller

Art

Asset

Purpose

Creator

Ampi

The main player! Broken down into parts so that it could be skinned and boned for animation.

JD

Bacteria

All enemies are contained in this PSB file in separate layers and as individual sprites.

JD + Jessica Nunn

Food

All food is contained in this PSB file in separate layers and as individual sprites.

JD

LevelArt

Much of the ground, platforms, and signs are contained in this PSB file in separate layers and as individual sprites.

JD

MadeByJD

Just for the splashscreen.

JD

Particle

Used for particle effects, adds a nice black border so particles stand out more.

JD

Pixel

Used in other particle effects and any time a single filled block is needed.

JD

StomachG

Contains ground elements for the stomach, many different layers and sprites here. All white so can be coloured in game.

JD

Teeth

Exactly what it sounds like. Except just background teeth.

JD

TeethAndEdges

The ground teeth, gums, and edges/corners of gums.

JD

Uvula

It’s an uvula, just one big dangly sprite.

JD

Audio

Bleeps and Synths

For Level02

3xBlast

Christmas Synths

For the first MainMenu and Level01

3xBlast

Copycat(revised)

For Level03

Syncopika

Hit Sound

For when Ampi is hit

florianreichelt 

Animations

Asset

Purpose

Creator

AcidIdle

Acid default state.

JD

AcidRising

Moving the acid upwards when triggered.

JD

AmpiAttacks

Attack animation for the player

JD

AmpiDies

Death animation for the player

JD

AmpiInAcid

Drowning animation for the play (prior to death animation)

JD

AmpiL2Fall

The idle animation for Level02

JD

AmpiL2Attack

Attack animation for player in Level02

JD

AmpiL2Dies

Death animation for player in Level02

JD

AmpiRuns

Running animation for the player

JD

AmpiWalks

Walking animation for the player. Really just a slower version of the running animation.

JD

BactiAttack

Attack animation for the gassy enemies, also can be altered to control how long the attack lasts.

JD

BactiDie

Death animation for the gassy enemy

JD

BactiDie2

Death animation for the gassy enemies in Level02, needs to be faster than level01 and 03.

JD

BactiIdle

Default state for the gassy enemies in all levels.

JD

BactiSwimDie

Death animation for the seeking enemy

JD

BactiSwimIdle

Default state and for the seeking enemy

JD

BactiYAttack

Attack animation for the enemy stuck on the walls of Level02.

JD

BactiYDie

Death animation for that enemy.

JD

BactiYIdle

Default state for that enemy between attacks

JD

UIIntro

Animation for the intro to each level, helps to be animated as it is easier to fade in and out

JD

UvulaSwings

The beautiful swinging animation for the uvula

JD

Fonts

Asset

Purpose

Creator

BubblegumSans-Regular

Title text

 

Frijole-Regular

All other text

  

Materials

Asset

Purpose

Creator

NoFricNoSlip

Helps keep the player able to slide around a little, aided by dampening movement controls in PlayerController.

JD

ParticleMat

Use for the particle system.

JD

Prefabs

Asset

Purpose

Creator

Acid

The acid has many colliders and a particle system, easier to copy this prefab multiple times for level03.

JD

Ampi

The main player. Needs a prefab so we can respawn without having to restart the level.

JD

AmpiDead

Spawned in after the player death animation is complete, it allows the corpse to remain.

JD

AmpiLevel02Variant

Prefab for level02 Ampi, same as above.

JD

AntiGravity

Used in the breathing section. It was originally going to be antigravity like in one of the KIT109 tutorials, but was later repurposed as breathing.

JD

BactiBlue2

Gassy enemies in level02

JD

BactiRound

Gassy enemies in level01 and level03

JD

BactiSwim

The seeker enemy.

JD

BactiY

The enemy stuck to walls on level02

JD

Bridge

Used to respawn the bridge on player death.

JD

Carrot

It didn’t need to be a prefab at all, but I might want more carrots in the game in future.

JD

CheckPoint

Used in level01 and level03.

JD

DeathBox

Placed around areas of the game the player shouldn’t go, like the bottom of a pit. Instant death.

JD

FoodWaterfall

It’s just what it sounds like. A prefab used in the spawning of delicious food waterfalls on level03.

JD

Ground

This is a ground piece. 

JD

GrTooth1

The next 6 are all the same. Just different types of teeth used in level01 as ground.

JD

GrTooth2

As above

JD

GrTooth3

As above

JD

GrTooth4

As above

JD

GrTooth5

As above

JD

GrTooth6

As above

JD

GStomach

A ground piece for level 3, repeatable and customisable.

JD

LindSlayBox

Little boxes put in pits and acid to prevent the player from dying in godmode.

JD

Platform

The platforms player can jump through and onto.

JD

Uvula Variant

Most people have one uvula, but I made this prefab in case I want another one in a later level.

JD

WinBox

A collider box used in multiple levels. It triggers a win state and starts the process of loading the next level via Game Manager.

JD

Other

Asset

Purpose

Creator

PlayerControls

This is part of Unity’s newest input system. Used to map the controls more easily to various controller types.

JD

References 

Audio
Christmas Synth  - 3xBlast  https://opengameart.org/content/happy-synths-loop-with-slight-christmas-feeling
Beeps & Synths - 3xBlast https://opengameart.org/content/bleeps-and-synths
Copycat - Syncopika https://opengameart.org/content/copycat
Hitting in a face (player hit sound) - florianreichelt https://freesound.org/people/florianreichelt/sounds/460509/

Programming
Parts of player controller script modified from script by Jonas Tyroller https://www.youtube.com/watch?v=vFsJIrm2btU&t=10s
Parallax script modified version of script by Adam Younis https://www.youtube.com/watch?v=tMXgLBwtsvI

Fonts
Frijole-Regular https://fonts.google.com/specimen/Frijole?query=frij
BubblegumSans-Regular https://fonts.google.com/specimen/Bubblegum+Sans?query=Bubblegum

Leave a comment

Log in with itch.io to leave a comment.