Professional Documents
Culture Documents
Juice and Satisfaction Journal
Juice and Satisfaction Journal
Juice and Satisfaction Journal
Date: 02/01/2022
This is a weekly based Journal created for Game juice Project course as supervised and lectured
by Peter Jürgensen at UE Berlin, Germany (Game Design)
Week 01
The first week of course was the introduction course to Game Juice. We were asked to watch two
interesting videos. Both videos showcase how much games can be enhanced by using different visual and
audial tricks. The videos show how a bland game feel much better using different techniques.
The first video by Jan Willem Nijman (Vlambeer) “The art of screen shake” showcases how a boring bland
game can be drastically changed through years of experience of making lot of games.
lower enemy hp
more enemies
bigger bullets
muzzle flash
faster bullets
less accuracy
hit animation
enemy knockback
permanence
camera lerp
camera position
screen shake
player knockback
strafing
little shells
more bass
random explosion
faster enemies
more enemies
even higher rate of fire, camera kick (move camera in opposite direction of shooting)
bigger explosions
game balancing
For the second video we had Juice it or lose it - a talk by Martin Jonasson & Petri Purho. The video also
seemed to talk few things like one from Jan. They talk about sound, tweens, animation, impact effect
(smokes) and screen shakes.
During the lecture we were introduced to juice and how it can be implemented and how it shouldn’t.
We were also given the briefing on the projects and its requirements.
For the next week we were asked to form a group and start prototyping on a very arcade like project.
Week 02
This week we were supposed to start prototyping with a newly formed group. I joined in a group with
Our first step would be brainstorming and push our ideas for the project. The group decided to come up
with a concept on their own and see whose concept we could use or what old project we could juice up.
I started sketching my ideas. My first idea was:
1. A fishing games
2. Mechanics would be very guitar hero rhythm game where you press buttons as displayed on the
screen.
3. Much bigger he catches more button you must press
4. I also thought about things I add as juice. Which were initially sounds, screen shake on fish on a
hook or wrong button press.
Then we sat down for meeting with the group on what can be done.
So our initial idea would be top down shooter or one of the puzzle game Nina did in a Game a
Week course.
Week 03
We started working on the project this week.
Our goals this week would have the basic mechanics done with some enemy.
I setup a scene and implemented the characters script that Martim had made and started playtesting
and fixing bugs.
Nina and Sunny worked on the level design. I presented them the idea of how it can be setup.
Since it was supposed to be set on diner, I found this 2D layout for a diner.
This week we were still fixing the bugs from the previous week builds and tweaking
I also did props like tables for the scene. I talked with the group and decided to switch the project to
Universal Render Pipeline so that we could add ambient 2D lights to the scene.
Also worked on the sounds and tweaked the eq to balance out the loud sounds. Also added bit of
variance by adding pitch shifts.
This week we created the first build and had it play tested.
I went on balancing the enemies. Since we had three different types of enemy I added varying speed to
the enemy and added varying hp for each enemy.
The pathfinding on the enemy was still a big issue and continued tweaking and tried fixing them.
I had initially added astar pathfinding for the enemy but realized that the base pathfinding had to be
changed for our game.
We also added damage display on hitting the enemy which was coded by Martim and tweaked a bit
what he had implemented.
In terms of visual changes, I added state machine for the player and enemy animation.
Week 06
This week I decided to work on enemy eye following the player.
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EyeFollow : MonoBehaviour
+{
A dd a co m ment to this li ne
+ }
+ void eyefollow()
+ {
+ Vector3 playerpos = Character.transform.position;
+ Vector2 direction = new Vector2(
+ playerpos.x - transform.position.x, playerpos.y - transform.position.y);
+ transform.up = direction;
+ }
+}
This was not implemented since the eyes would clip out as the enemy would follow the player. Seemed
to only work if the enemy were static.
Added a physics to the bottle and plant props so the player would have some other objects on the scene
that one can interact with and also added feedbacks on the interaction like sounds and the object
behavior.
• Since there was issue where the player could still camp a corner and finish the wave
easily. Adding this new boss enemy would prevent the player from camping.
• Also fixed the tiles and props in the scene that would block enemy movements in the
scene.
• Also fixed enemy behavior where they would be stuck behind the props if the player
stood still. But still there was few moments this would reoccur.
Audio changes I made this week:
• Added new attack sound since the previous one didn’t represent the shooting of the
spatula
• Added death sound and death screen sounds.
• Added new enemy death sounds
Week 07
The week also started fixing the bugs and tweaking the previous builds.
Implemented the animations created by Nina and setup a proper state machine for the animation and
added script to trigger the animation.
Also changed the control on press down to shoot. The player no longer need to bash the mouse button
for shooting.
Also added wave-based spawner so that enemy would not spawn constantly but rather in varying
waves.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+using UnityEngine.UI;
+[System.Serializable]
+public class Wave
+{
+ public string waveName;
+ public int noOfEnemies;
+ public GameObject[] typeOfEnemies;
+ public float spawnInterval;
+}
- void Update()
+ private Wave currentWave;
+ private int currentWaveNumber;
+ private float nextSpawnTime;
+
+ private bool canSpawn = true;
+
+
+
+ private void Update()
{
+ currentWave = waves[currentWaveNumber];
+ SpawnWave();
+ GameObject[] totalEnemies = GameObject.FindGameObjectsWithTag("Enemy");
+ if (totalEnemies.Length == 0 && !canSpawn)
+ {
+ currentWaveNumber++;
+ canSpawn = true;
+ }
+
}
+
+
+
+
+ void SpawnWave()
{
+ if (canSpawn && nextSpawnTime < Time.time)
{
+ GameObject randomEnemy = currentWave.typeOfEnemies[Random.Range(0,
currentWave.typeOfEnemies.Length)];
+ Transform randomPoint = spawnPoints[Random.Range(0, spawnPoints.Length)];
+ Instantiate(randomEnemy, randomPoint.position, Quaternion.identity);
+ currentWave.noOfEnemies--;
+ nextSpawnTime = Time.time + currentWave.spawnInterval;
+ if (currentWave.noOfEnemies == 0)
+ {
+ canSpawn = false;
+
+ }
}
+
This script also to easily add enemy waves and also allowed us to control what enemies to
spawn each wave.
Week 08
This week we fixed the previous week bugs and further worked on balancing the game.
Also added animation to the heart for the HP so that it would beat per the background music tempo.
Also created a volume slider for the volume control and added its element in pause menu.
The rest of the group were also heavily working on polishing the game checking visuals and colliders or
any other issue.
• To work fresh on a concept rather than trying fix the old concept. For me this was the
enemy pathfinding, I wish I would have worked a completely new system mid-way through
the project rather than constantly fixing the old one.
• Game Juice in general and how, when and why/why not to implement them
• Balancing, level design and rational design thinking
• Sound Layering
• Animation state machine and scripting triggers
• Particle effects and instantiation
Week 10
This week we were to decide on a final project which had to work around with being a Physics based
game. I wanted to do the project on my own this time. So, I started prototyping my ideas
My first idea was a golf game which would have monster and creature obstructing the shoot.
I realized this project would be bit out of scope with lot of elements like the design of the world and
script the various monster that interact with golf ball.
And I decided on working on something new. I found this interesting Unity asset with basic fps and
parkour movement and started planning on gameplay around this base structure.
Sadly, found out that it would be not allowed to work on a solo project and decided to work together
with Nina and Sunny again and also asked Martim to join in.
Week 11
We had a brainstorming session where we were pushing our ideas and concepts.
Sunny and Nina already seemed to have a mechanics prototype working with gravity switching as the
core mechanics.
Then we finally decided we would further work with the gravitational switch mechanics and create
either puzzle style or platformer like games.
For this project I would work on Game design, sound design, Level design and coding.
Week 12
For this week I worked on the main menu and played around with shader effect for the menu scene and
also started working on Audio Manager and created a guidelines so other team member could also
implement sound easily.
This allowed the team members to easily implement layered sound without sound feedbacks and sound
glitches.
Also worked on a respawn system and added the guidelines and asked the team member to create
prefabs on each component of the game so that we can start prototyping level quickly.
Week 13
For this week I decided to work on the gameplay a bit. Nina was at point working with old mechanics
and creating tutorial level out of it. I was thinking on how the flipping mechanics would create a fun
game play. So, I created a small prototype level with a hazard and enemy (since we already had decided
we would implement some sort of enemy).
“I was working on the project this morning. I did like our earlier idea of enemies in space and puzzle but i
just came with a small concept that would use the same mechanics we have but add bit flavor to the
game
This idea was discarded since it seemed for the game play somehow felt like Wilmot's Warehouse game
but platformer style.
Week 14
This week started to design very platformer like concept for a level.
This was very much inspired from VVVVV in terms of level design and added the enemies.
For this prototype we had initial 4 puzzle level design by Nina and the platformer like level from me
along with a laser mechanics that Martim was working on.
We were all separately working on ideas and hoping it would work together and could be used
somehow in the levels.
New Mechanics:
Moving platform
We had during brain storming talked about implementing some sort of escalator.
While trying to concept use of that idea. I decided to make platform that player and stick to move along
with it.
Added sound feedbacks to the player and the platform and the hazardous red lava element.
Week 16
This week team were working on the art assets.
And I was testing the level and fixing the known issues present in the game.
We also had a lengthy level design meeting where we sketch our ideas on how it could be.
The art assets were also implemented, and post processing were added.
Week 17
This was the Playtest Evening where we present our prototypes.
I switched the old assets in the scene with the new artworks.
We were very much satisfied with the feedbacks and could see the issues I the game too.
Week 18
This week I wanted to iterate on the old game design and add a puzzle component to the game.
So decided to use the platform component to work with the box’s elements.
And also created a button door system that would enable some sort of puzzle design.
Week 19
It was during the holidays, and we took a break from the project.
Final Weeks:
Since it was clearly visible that Nina and my level design were completely different in terms of how
gameplay worked. We took time together to work together and sketch out various component of our
levels and make a cohesive design.
All the levels were quickly sketched out before implementing them in unity.
The level now seemed consistent and game play added decent puzzle levels.
I implemented the level design and Nina started working on implement the rest of art assets at this
point for the final delivery.
During this time, we had a issue with the git where all the progress made by Nina were not there while
merging due to which we weren’t able to implement all the asset at the end.
Meanwhile I also added a ending scene so we get the context of the narrative.
I am satisfied with the outcomes of both project while we had different issue throughout the design
process, I think we as team managed to work out the flaws. I should reflect that the lack of
communication in the group was obvious, we would have the meetings and seem to work completely
separately. This was the reason where we were not aware of who was doing what now.
And any update presented would be at the end before playtesting which would leave very little
playtesting within the group itself.
In terms of technical learning, I learned to work with sound managers and feedback instantiation with
both projects. While level design was not was interest these projects allowed me to deepen my interest
in Level designs.
The course not only helped us to create Juice but feedbacks and lectures from Peter allowed us to learn
about overall game design, about consistent design, rational level construction and agency in games. We
received a course into how interface and control are important which we would usually neglect and
importance of core game loop.
Overall, the since the project weren’t as perfect as we wished it to be. We gained a lot of experience on
what to focus on and how to approach problems.