Selected Work and Code Samples
engines.png

Gameplay and Engines

 

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

  • 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

keywords:

C++, Engines, D3D11, HLSL, Multithreading, Animation, Physics, SIMD

Context:

Coursework

code:

  • You can download the code from Google Drive here

    • to build, open Game/Game.sln and build with VS

  • Or if you don’t care to build it, you can look at just the code without assets on GitHub here


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.

keywords:

Java, 2D, Platformer, Gameplay, Music, Art

Context:

Project

code:

  • The code is on GitHub here

    • build instructions are in the README

  • You can download the pre-built single-player-only version (play as guest) here. It is an executable .jar, so you will need the Java RE