ETHAN CROOKS

Past Projects

DnD Dice Parser July 2021

A DnD dice syntax parser and interpreter à la Roll20, written in Rust.
I've written hackish parsers before, but after learning about the Nom library I decided to have a go at doing it "properly".
Also doubling as my first sizable project in Rust, I found using Nom to lex the input and parse into a syntax tree to be really satisfying to implement.

PRAPI - Lightroom January 2021

A model loader and lighting engine as another OpenGL exercise.
I learned how to work with Assimp to read 3D model files, and how to implement the Phong reflection model using multiple lights.
I got started with Powershell, using a script as a build system.

On Demand Minecraft January 2021

A system to host a private Minecraft server which shuts down when no-one is online to save money. Users can log into a website to turn the server back on again when they want to play.
Made using Flask and AWS's API. A very fun project to make, where I learned a lot about Linux services and how to Unix-like programs communicate with each other.

GMTK2020 - Total System Failure July 2020

A single-stick shooter where your ship's systems get hacked.
Made over a weekend for the 2020 Game Maker's Toolkit games jam.

OpenGL Spaceship Game May 2020

An infinite runner spaceship game as an OpenGL exercise. This is my first fully functional OpenGL game, where I experimented with shaders and chunk loading.
Making games "the hard way" has been really fun and interesting, strengthening my understanding of the underlying systems in game engines.

OpenGL Mandelbrot Set February 2020

A quick exercise in fragment shaders in OpenGL.
I've recently been getting to grips with OpenGL through this tutorial - this is my first project from that which I'm fairly proud of. I'm very excited to work with shaders some more in the future!

The Wall of Voyages January 2020

I built an online quest manager for the DND group I am a part of. Using Flask and Bootstrap with a Redis database, it allows people to create, join and manage quests.
I also experimented with Discord bots, setting up automated announcements and commands.

TDEMO - Steamcraft November 2019

Made in a team of 4 over 3 weeks, I got to grips with Unity's prefab system to create a ship designer. I really enjoyed making this - with the little logical challenges involved with making sure each configuration is valid, bringing the ship data from scene to scene, and creating a user interface intuitive enough to make ship building easy.
While playing, individual ship components can get damaged and broken, affecting how your ship handles.

TDEMO - Spookhouse October 2019

Made in a team of 4 over a week, I experimented with 2D lighting systems to create a tense atmosphere. I found it worked very well given the limited timeframe we had.

TDEMO - Grapplebox September 2019

The first game I made at university! We were given a week to make a game with a single control. I experimented with rigidbody physics in Godot, making a 2D sandbox which you can grapple around using your mouse.

Online Spellbook July 2019

Using Flask and Bootstrap, I built an online spellbook for the DND group I am a part of. As more homebrew spells were added the static pages we were using became increasingly unwieldy. This site has filters making finding spells a lot easier.

Minmax Chess AI 2018

After reading about min-max strategies in AI, I tried out making my own implementation with a Chess AI in Python. It worked better than I expected, building a decision tree and looking several moves ahead. It can beat me, although admittedly I'm not very good at chess.

Super Hexagon in TIC-80 November 2017

A clone of one of my favourite games made in the TIC-80 fantasy console. It was really fun to make, lots of tricky geometric challenges with the TIC-80's limited drawing commands. I really want to come back to this project and flesh it out more since there's a lot I've learned since this projects, especially after working with similar engines like Love2D.