Skip to content

A first-person shooter where time moves only when you do. Beware: stand still for too long, and you'll freeze as time slips away.

License

Notifications You must be signed in to change notification settings

CmpGameDevs/SUPERCOLD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SUPERCOLD

logo
Time may stand still, but the cold never sleeps.


Overview / Game Idea

SUPERCOLD is a first-person shooter where time moves only when you do. Beware: stand still for too long, and you'll freeze as time slips away.

  • Time only moves when you move.
  • Standing still for too long freezes your time, and moves time around you.

ScreenShots

logo
The freeze time mechanic in action, showing the distinctive visual effect when time slows down during gameplay.

logo
An overview of the level design, showcasing the environment and layout of the game world.

logo
Gameplay screenshot demonstrating the core mechanics, including player movement, weapon throwing, and enemy interactions.


GamePlay

SUPERCOLD-short.mp4


Game Controls

  • ⌨️ WASD: Move
  • πŸ–±οΈ Mouse: Look around
  • πŸ–±οΈ Left Click: Shoot
  • ⌨️ Space: Jump
  • ⌨️ Shift: Sprint
  • ⌨️ E: Interact (Pick up items)
  • ⌨️ Q: Throw item
  • ⌨️ R: Reload
  • ⌨️ C: Crouch

Game and Engine Features

1. Rendering Pipeline

  • Implemented a custom rendering pipeline using OpenGL.
  • In it we made implementations for:
    • Shaders
    • Mesh
    • Textures
    • Materials
    • Pipeline State
    • Transform
    • Sampler
    • Forward Renderer
    • Sky Renderer
    • Postprocessing Effects

2. ECS (Entity Component System)

  • Implemented ECS as a way to keep the game and engine organized following best practices and the recommend architectures.
  • Implemented deserialization of the game objects and components from config files. Using a custom AssetLoader.

3. Lightning

  • Implemented the following light types:
    • Directional
    • Spot
    • Point
  • PBR
  • Implemented HDR.
  • Implemented Bloom Filter.

4. Model Loading

  • For 3D Model Loading we implemented a custom parser in addition to using tinygltf and tinyobj.

Note

For feature work we plan to migrate to Assimp to handle more file types and models.

5. Postprocessing Effect

  • Freeze Effect: Controlled Bluish Vignette with frost textures with intensity controlled by game state.
  • Motion Blur: blur the current frame based on the prev and speed from the depth buffer to make a blur when moving.
  • Bloom Filter: Light Gaussian Blur.

5. Physics System (Using Bullet)

  • Collision Detection
  • Collision Response
  • Forces and torques
  • Gravity and friction
  • Ray Cast
  • Pick and throw
  • Full Physics Debugging Mode: Shows wireframes and collider.

6. Audio System (Using openal)

  • Soundtrack for each of the 3 levels and menu.
  • Sound effect for most actions.

7. Text Renderer

  • Implemented full text rendering system.
  • Used in:
    • SUPER COLD/HOT: flash screens
    • MENU
    • GUN PICKME

8. FPS (Character) controller

  • Movement
  • Movement Smoothing
  • Camera Movement Smoothing
  • Head Bob: when idle and when moving
  • Sprinting
  • Crouching
  • Jumping
  • Stamina/Cooldown: for jumping and sprinting
  • Picking/Throwing Guns
  • Shooting
  • Reloading

9. Time Scale Mechanics

  • When you stand still everything will move slow around you.
  • When moving it will start to get faster.
  • When sprinting it will get even more faster.
  • If stay still for more than 20 seconds you will freeze and die.
  • If got shot you will die.
  • If you killed all enemies you can move to the next level.

10. Skeletal Animation System (WIP)

  • This is still a work in progress.

Building and running

Pre-requisites

  • Make sure cmake, c++ compiler, vcpkg is installed.
  • Install openal-soft with vcpkg

Building

  • Build the project for linux or windows.
./scripts/build_linux.sh
or
./scripts/build_windows.bat

running the game

./bin/GAME_APPLICATION -c ./config/app.jsonc

Contributors


Marwan Alhameedy


Moamen Hefny


Youssef Mehany


Amir Kedis

πŸ”’ License

This software is licensed under MIT License. See License for more information.

About

A first-person shooter where time moves only when you do. Beware: stand still for too long, and you'll freeze as time slips away.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5