Conor O'Brien
AboutContactProjectsPapers

Projects

A page dedicated to going into a bit more depth on some of the coding projects I have worked on, from various points throughout my life. I have been programming for quite some time, and have maintained a GitHub account since June 2015, so some of the projects vary in quality. This list is incomplete, and I will update it as I have time. They are sorted from most to least recent by start date.

Contents

  1. PoLi, a polyrhythm-based rhythm game
  2. Infinite Automata, a roguelike endless bullet hell.
  3. Entropy of Life, a Hackathon project to simulate a novel derivative of Game of Life.
  4. Quartic, an assembly language that compiles to 4.
  5. more-random-animals, a small API for delivering pictures of random animals.
  6. YGOPRO Custom Card Maker, a user-friendly Yu-Gi-Oh! custom card designer.
  7. stacked, a stack-based, postfix language that runs in your browser.

PoLi (PlayDemo VideoDevpostGitHub)

March 31–April 2, 2023

For hackathon Cypher VIII, I created this browser-based Rhythm game from scratch. While the game is in continuing development, the logic began with extensive functionality, including event-based beatmaps, dynamic graphs with automatic inbetweening, all featured in the linked demonstration video.

Infinite Automata (YouTube demo)

February 15–May 6, 2022

A collaborative effort I led as part of a William & Mary Game Design class, with William Cross, William Kyle, and Raymond Wang. Infinite Automata is a roguelike bullethell in the vein of games like Enter the Gungeon and Realm of the Mad God. This is the sum result of only four months of effort, and consists entirely of original visual assets. Built in C++ using the libraries SDL2, tinyxml2, and Box2D.

In addition to leading the team, I contributed primarily to the wave control logic, some XML file parsing, and the GUI design.

Entropy of Life (GitHubDevpost)

March 25–27, 2022

For hackathon Cypher VII, I collaborated with Jonathan Ruxton to create a visual application using Java's swing components to simulate Conway's Game of Life, but where the borders between cells can break down as a result of extended activity. The application also features an implementation of Sandpiles.

I primarily worked on the display aspects of the application, while my partner worked on the logic of generations. We also had invaluable assistance from Tetra, who helped us generate and solidify the idea during the Hackathon.

Quartic (GitHubEsolang)

November 2021

Quartic is a programming language with assembly syntax that compiles to the esoteric language 4. The most interesting challenge in 4, and by extension, Quartic, is that there is a finite memory of 100 cells, each containing an arbitrarily large integer. I designed Quartic because I wanted to prove 4 to be Turing Complete by proof of emulation, utilizing bigintegers as arbitrarily large data structures. To this end, I needed a simpler, more controlled way to organize my efforts. This file (snippet pictured above left) is an interpreter for the Turing Complete Boolfuck language, storing the data tape as a very large integer. The corresponding compiled 4 program is pictured above right.

I wrote the Quartic compiler in Ruby, and it is able to compile to 4 and to D, and, by extension, to an executable file. The same compiler framework is also used to generate a "prettified" version of 4, and can help unobfuscate existing 4 source code files into (more) readable, commented code. The esolang page linked above features Quartic's specification, including basic arithmetic commands, loops, branching, and preprocessing instructions.

more-random-animals (Demo WebsiteGitHub)

July 2021

Made to address a lack of animals in AnimalsAPI, this API features requests for randomized images of a variety of animals.

YGOPRO Custom Card Maker (WebsiteGitHub)

March 2020–June 2020

A custom card editor commissioned by the owner of YGOPRO The Dawn of a New Era, developed using Neo New Card maker as a base. Built with React, the editor works in your browser and offers the most customization, accuracy, and accessibility of any Yu-Gi-Oh! card editor publicly available.

stacked (InterpreterREPLGitHub)

December 2016–present

A stack-based programming language written in JavaScript. Written with keeping both readability and concision in mind. A simple passion project started in December 2016, the language has grown to include quite a lot of functions. If you are interested in learning the syntax of the language, I would recommend reading the wiki and maybe perusing the standard library, as I the current language command documentation is sparse at best.