Nadia the Otherworldly – New Year New Redot Game Jam – 14 Day Game Jam

During a two week period two friends and I developed a short game with the theme “it takes two” for the Redot Game Jam. We used the Godot game engine and sprites from a mixture of different sources, including custom made for this game. I primarily worked on general programming and assisted with level design by making components for puzzles and features.

You can download and play the game on itch.io here:
https://itsedg.itch.io/nadia-the-otherworldly

COLORBLIND – Mini Jam 62 – 72 Hour Game Jam

Over the weekend a friend and I created a short, challenging, and fun platforming game. It is named COLORBLIND. We used the Godot game engine and a simple sprite sheet from Kenny.

Screenshot from in game
Screenshot from in game

You can download and play the game on itch.io here:
https://richyrich515.itch.io/colorblind
We plan to release an update to the game in the future to add some QoL features like a timer for speed running the game.

ULTRAVIOLENT 2D – MizJam1 – 48 Game Jam

Last week I spent 48 hours working on a game named ULTRAVIOLENT 2D. I made the game to submit to the first Mizizi game jam on itch.io. I made the game in Godot and I am enjoying my time with the game engine a lot. I will continue to use it in the future for sure.

ULTRAVIOLENT 2D is a top-down shoot ’em up style game where you fight an endless horde of enemies with an arsenal of weapons at your disposal.

Screenshot from in game

You can download and play the game from itch.io here:
https://richyrich515.itch.io/ultraviolent-2d
I hope you enjoy it! Good luck and have fun!

Game Engine Development – Capstone Project

For my final project in the GDP program at Fanshawe College, I put the work from both semesters into one engine and made a small tech demo with it.
The engine started from the starter code we were given in Graphics 1 and grew from there.

  • Deferred rendering: lighting is done in a second pass, and transparent objects are drawn after it
  • Skeletal animation: walking, strafing, falling and dancing, picked from what the player is doing
  • Level of detail: trees swap to simpler models in the distance
  • Smoke particles
  • Post-processing: edge detection, blur and night vision
  • Texture macrovariation to hide repeating textures
  • One uber shader for everything
  • Physics with Bullet, loaded from a DLL behind an interface. The same interface can run my own physics library.
  • Textures load on background threads
  • Audio with OpenAL, plus ImGui for debug panels and Assimp for loading models
Locomotive with a long smoke trail
Night vision post-processing
Edge detection, with detailed trees up close and simpler ones in the distance

Download and try it here:
https://richyrich515.itch.io/richard-woods-gamejam-techdemo

Code:
https://github.com/RichyRich515/OpenGL/tree/Graphics

FPS Tech Demo – Physics Final Project

For my physics final I made a small first person demo using Bullet Physics.

  • Boxes, cylinders and cones (crates, barrels, pylons, a train)
  • Three constraints: the train slides along its rails, the bell swings on a hinge, and the pipe spins freely with a cone twist
  • First person controller: walk, jump, and jump off other objects
  • Shoot small fast spheres that knock things over
  • A powerup that makes the bullets bigger and faster
  • Sounds for shooting, the bell and the powerup (disabled for the video, sound mixing was very loud…)

Path Finding – AI Project 3

For the third AI project, a gatherer collects crystals around a map and brings them back to its base.

  • Dijkstra to find the nearest crystal
  • A* to path back to the base
  • The map is loaded from a file, with walls the gatherer has to path around
  • It keeps going until every crystal has been collected

Multithreaded Texture Loading – Gems Project 2

For the second Gems project I moved texture loading onto background threads.
The test scene has 200 textured cubes. The textures load in the background while the game keeps running, and the main thread uploads one finished texture to the GPU each frame (OpenGL only lets the main thread do that). A mutex keeps the threads from loading the same texture twice.

Launch to playing went from about 5-6 seconds to about 1 second.

https://github.com/RichyRich515/OpenGL/tree/AI_Project3

Cloth Simulation – Physics Project 4

For physics project 4 we added soft bodies to our physics library.
We built the basic cloth in class, nodes connected by springs. I put it into my library and added on to it.

  • Cloth settings come from the JSON scene file
  • Balls push the cloth around when they go through it, and it settles back to rest
  • Broad phase: a bounding sphere around the cloth so balls only check against the nodes when they’re close
  • Wind that blows on and off in a sine wave

It can get unstable on slower computers. Turning down the number of nodes helps.

The wind is turned up in the video so you can actually see it. In the original it was too weak to notice.

Lojam2020 – A2B

This past weekend I participated in the official London Game Jam 2020 (Lojam)
I, together with 3 other members of the Fanshawe GDP program, set out and created a 2D platformer game centered on the idea of changing the world to an alternate version to complete puzzles or jumps.
We used the Godot game engine to build the game and export to playable HTML5/Javascript build

The game is playable in browser on itch.io at https://d1000100.itch.io/a2b

A2B Demo Video

The source code is viewable on github at: https://github.com/RichyRich515/A2B-Lojam2020
See other game submissions here: https://itch.io/jam/lojam-2020
Click here to see an article about the event