Description:
My team and I built a game on top of the bare-bones “Prime Engine” provided by Artem Kovalovs. The task was given in the context of a course in networked multiplayer console game development. We were to create a networked multiplayer game of our choice, adding advanced features to the engine as necessary. That said, the bulk of the work was upgrading the engine.
Key features:
Obstacle navigation
Billboarded, pooled projectiles and index-based sampling from texture
easily extendable to a basic particle system
Some physics for characters and projectiles
Server-driven object loading
UDP Tribes networking stack
based on this paper
Prediction, rollback, and re-simulation for networked objects
characters move immediately without waiting for server response, then correct themselves by re-simulating up to the current time if server and client disagree
Time synchronization between clients and server based on packet round trip time
Dynamically adjusting packet size / sending frequency based on network conditions
Network debug settings and visualization
simulated packet drop, lag, etc.
Some upgrades to the graphics pipeline
keywords:
C++, Lua, Python, Networking (TCP, UDP), Multiplayer, Gameplay, Engines, Team Project, Git, Perforce, D3D11
Context:
Project
code:
Given the size of this project and the amount of the code which was not written by myself (the base Prime Engine), I suggest you look at selected code samples instead of the entire codebase.
You can find these samples on GitHub here, organized in folders by category. Of course, this means that any file references will almost all be missing or wrong.
If you really want to see the whole project, it is on Google Drive here (it’s over a gigabyte compressed!). Build instructions are here.
Description:
I built a basic game engine for a university course.
Key features:
D3D11 renderer
Multi-threaded animation system
Profiling
SIMD math library
Some physics
Lighting and shaders
Post-processing
Audio mixing
Description:
A quick 2D game I made to explore a shower thought I had about gravity. Uses SDL for platform layer.
Key features:
Sprite animation system
2D physics
Debug drawing (not in video either)
Custom memory allocator / manager
Level editor
keywords:
C++, 2D, Gameplay
Context:
Project
code:
Unfortunately lost to time
Description:
Here I have just put a collection of simple games I made for coursework. They are all 2D except for the last one. This was the first games class I took and is what got me interested in video game programming.
This collection contains my implementations of a bunch of classic beginner’s game projects including pong, asteroids, brick breaker, tanks, tower defence, temple run, and parkour. The 2D games use SDL and the 3D game uses OpenGL.
keywords:
C++, 2D, 3D, Gameplay
Context:
Coursework
code:
Full code and assets for all these projects can be found on my Google Drive here
to build, just open the .sln file and let VS build it
Description:
This is the first game I’ve written. I wrote it for my final project in a software development class. Due to some logistical complications, this entire project (code, art, sound, everything) had to be made in two weeks. Since I didn’t know any graphics libraries back then, I just rendered everything with Java Swing.
The game is actually cooperative networked multiplayer, and the multiplayer levels rely on mechanics like using other players as platforms. These necessitated implementing networked collisions.