Repo for my website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
2.0 KiB

2 weeks ago
+++
author = "Maik de Kruif"
title = "UnEngine"
start_date = 2022-11-09
end_date = 2022-12-22
company_name = "Personal"
company_url = "https://maik.dev"
cover = "img/portfolio/unengine/screenshot.png"
description = "Together with three other students, I built a game engine from the ground up using C++. To put our engine to the test, we also developed a fun racing game."
skills = [
"Low level programming",
"Game engine architecture",
"Event-driven programming",
"Networking",
"Teamwork",
]
[source_code]
engine = "https://github.com/Systems-Programming-in-C-Minor/engine"
game = "https://github.com/Systems-Programming-in-C-Minor/game"
server = "https://github.com/Systems-Programming-in-C-Minor/server"
+++
Together with three other students, I built a game engine from the ground up using C++. To put our engine to the test, we also developed a fun racing game.
The racing game offered a variety of features: AI-controlled opponents that challenged players, controller support for a more immersive experience, local multiplayer for split-screen fun, and online multiplayer capabilities using a game server.
To add variety and replayability, we included multiple maps and game modes. Players could race on different tracks, each with its own unique challenges, obstacles and sound effects.
Our game engine was crafted using C++ and SDL2, and provided the foundation for our racing game. We adopted an event-driven architecture, allowing our engine to efficiently handle various inputs and events. To create a realistic experience, we implemented physics calculations for collisions, speed, and traction.
To enhance the audio experience, we developed a sound engine that allowed us to incorporate a variety of sound effects into our game. To optimize performance and memory usage, we implemented texture pooling, which efficiently manages and reuses textures. Finally, to enable multiplayer functionality, we integrated networking capabilities into our engine, allowing players to connect and compete with each other online.