General Big Projects Small Projects About Contact

Servous

The Goal

In a group of 5 Game Developers, create a playable game in about 2 days for a Game Jam with the theme being 'Fragile'.

Challenges

Getting a concept together really quick.
Working in a team without any artists.
Making sure that the game is playable in time.

The Concept

As we were brainstorming about ideas for the theme, we came up with a waiter, trying his best to bring the drinks to a table. If he wasn't careful, he would break those drinks.

With this concept in mind, we needed to bounce ideas off each other.
I had something in mind like 'Hand Simulator', where the player has to control an arm/hand to accomplish their goal.

We all liked this idea so we decided to go for it.
With the end result being, your hand moves automatically because you are 'nervous' (yes that's where the name comes from, it is also a wordplay on Serve Us).
This moving hand will make the drinks fall over. If this happens, the drink breaks.
You need to serve as many drinks as possible before the time runs out!

Servous_Banner

The Code

The Code can be seperated into different pieces: Movement, Drink Handling, Arm Movement, Menu System.
Out of all those things, I partly worked on the Drink Handling, the Arm Movement, a MiniMap and the Menu System.
We also decided to pick Unity for this, as it was going to be easier for us to work together.

The Server movement is actually automatic!
Thanks to that, the player can fully focus on balancing the serving tray to keep the drinks alive. It uses some pathfinding to go from one checkpoint to another.
Every table has a checkpoint, and around the walking path there are also some checkpoints to avoid cutting off the path.
The Server will go to the checkpoint of the bar first, and then if they receive the drinks, go to that table.
If all drinks break while he's on his way, he will turn back. (this sometimes glitches out)

Once the Server is at the bar, they will get a random amount of drinks (between 1-4).
The pathfinding uses this number to find a random table with that amount of people sitting around it.
The drinks have a collider on the top/sides. Once this hits something, that isn't another drink, it will shatter into pieces.
Once the Server arrives, we count how many drinks are left alive. You get 1 point per drink, and also get some extra seconds.
I didn't work on the spawning of the drinks, more on the collision/physics of them, but this was a pain in the ass to get right.
Mostly because of the movement. The Server never really stays still, so there were times that the drinks would spawn inside the serving tray, causing them to instantly break.

The player can steer the serving tray using the movement of the mouse. This worked flawless at first, but there was a major problem.
The tray only moved when you made it move. Resulting in the game being way too easy and not really fun.
So that's where I come in to play.
I made a script that would automatically move the serving tray based on the mouse position in the screen. If the mouse was steering to the left, the tray would move to the right, same for the opposite.
This sounds really easy at first, and that is exactly what I thought too. But it turns out, when you move the tray and then try to countersteer it, it really messes with the game.
It took me a couple hours to get right, but eventually I got it working. The tray was alive!
If the player holds the mouse centered, the tray will keep moving, forcing the player to relocate the mouse.
The tray does have a limit in the rotation, this is to avoid really weird movement. This can result in a cup of coffee still being balanced when at the max angle.

The MiniMap will indicate where you are in the level and where you are going towards.
As for the Menu System, this is just the average Menu System in Unity, nothing special.

Servous_01

Other Things

Obviously the Code isn't all there is to a game. So what else was there?
There also was: Assets, LevelLayout, Animation, NPC's and dressing up the Itch.io page.
And out of those things I did solo'ed the LevelLayout, Assets and the Itch.io page.

Since we didn't have an artist in our group, we took the easiest way out and used an asset pack that I had laying around.
So the first day I fully spent on importing those assets and dressing up the Level, so that this was checked off and didn't need anything else.
This way I could fully spend the next day programming on the things that also mattered the most.

The animations are also really basic animations from Mixamo.
When the game starts, every chair will get an NPC to liven up the place.

In Conclusion

In the end, I'm really happy how this game turned out!
I didn't really believe we would get such far in such short time, especially without any artists to provide assets.

With that said, this also was my first actual group project.
We didn't really know where to start or how to keep a source control.
None of us had any experience with sharing a repository when using GitHub.
Because of this, it really turned out to be a big learning experience.

When this was finished, I asked if I could make this open-source, and everyone was down for it.
So if you want, you can visit the code on GitHub.

You can play this game yourself ofcourse!
Down below, you will find a button that will link you to the Itch.io page. There you will find the controls and a download button.