Institute of Computer Science
Courses.cs.ut.ee Institute of Computer Science University of Tartu
  1. Courses
  2. 2025/26 fall
  3. Computer Graphics (MTAT.03.015)
ET
Log in

Computer Graphics 2025/26 fall

  • Main
  • Lectures
  • Practices
  • Projects
  • Test
  • Results
  • Links

Casino Escape

Repo link: https://github.com/Batku/computerGraphics
Video: https://drive.google.com/file/d/1xEGtByrk2oiHSRDtn56BbEywEMSGTjh2/view?usp=sharing
Made by Hendrik Aarma, Kevin Näälik, Kert-Kristofer Kljutšnik

Description

The game is a horror like game, where you are chased by loan sharks while stuck in a casino.
Only way out is to win enough money to pay off the sharks before they feast on you.


Computer Graphics

- Models made in blender
- Screen shader for the horror vibes
- Procedurally generated world


How was it made?


Procedural generation

It works by first generating a 2d grid with random non colliding rooms and
then starts connecting them with a chance of a extra connection.
Then it populates the rooms by populating the empty grids in the rooms with casino props
After the 2d grid is fully generated and populated we start rendering it in 3D following the grid.
Sections of corridors that pass through rooms or go next to them will be without walls,
this expands the rooms and gives them a more open vibe and makes the rooms less boxy.


Shader

We implemented a screen shader inspired by Buckshot Roullete.
To feed into the horror and underground industrial vibe.
It has random flickering, chromatic aberration and distortions with
some retro effects like vigenette, tint, scan lines and film grain.


Casino Models

Casino props were relatively straightforward to make based off reference images, but most of the time
was spent on creating a Human like model as it was the first time doing so.


Human Model


1. Modelling

Since this was my first time modelling a human-like object, I had to research different approaches.
I found that the method that worked best for me was using reference images aligned on the X, Y, and Z
axes and mirroring the mesh, starting from a cube. Although the topology of the model is far from
anatomically accurate, I am satisfied with the result I achieved for a first attempt.

2. Clothing

While researching how to apply clothing to a model, I found several different methods.
The first approach I tried was shrinkwrapping the clothing directly onto the model;
however, I was not satisfied with the result. Although some angles looked fine,
there were always other angles where z-fighting occurred. I then experimented with cloth simulation,
but I abandoned this approach because it relied heavily on physics and would be difficult to export
for use in a game engine. Eventually, I decided on a simpler solution: extruding the relevant faces of the model and
assigning a different material to represent the clothing.

3. Rigging and Animating

Rigging was introduced during the course, but I had to research animation techniques independently.
Although there was an easier option available using the Rigify add-on,
I chose not to use it because it generated a large amount of data that was difficult to understand.
Instead, I created my own rig manually. Animating the model was relatively straightforward,
as I followed a YouTube tutorial that explained how a human-like character is supposed to walk.
Using this guidance, I achieved a reasonably convincing walking animation.
Afterward, I created an idle animation on my own.

Screenies

How to compile

1. Install latest version of Godot (4.5.1 as of writing)
2. Clone the project from github
3. Import it to Godot and run it

How to run (windows)

1. Install from https://drive.google.com/file/d/1oxCbTmg9P-qVmri_Edn-R_4yP2rpFjEE/view?usp=sharing
2. run

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment