Want to see some of my projects? Keep scrolling down, and feel free to try them all out. All source code is available on my Github, with instructions on how to compile / run projects that require more advanced setup.
Reload, Shoot, Block! is a browser based 1v1 game based on the traditional Rock, Paper, Scissors. Players can create a lobby by visiting the webpage and share the link with their friends, where upon the friend loading the link both players will start battling it out! Architecturally, Reload, Shoot, Block! follows the client - server pattern, with the clients communicating via JSON messages to the server using Websockets. To ensure correct format, both the server and the client utilise Typescript's interface system to ensure the object being converted to a string (via JSON.stringify) contains the correct types.
Binoctal Hexadecimal is a browser based game testing your knowledge of base conversions between bases 2, 8, 10, and 16. With three difficulties to choose from and instant feedback on whether you converted correctly, Binoctal Hexadecimal is an invaluable tool that I designed to aid in studying different bases and how to convert between them. This project taught me about event handling, states, and forced me to learn base conversions so as to verify the questions were answerable. As per usual, I went with Bootstrap to make the game presentable so as to focus more on functionality of the game itself rather than aesthetics.
Based on John Conway's Game of Life, Game of Life is a browser implementation of the same ruleset that Conway invented with configurable options such as tick speed (how many milliseconds until the next generation is calculated) and grid size. The grid is scaled to the browser size, and thus can scale to any device, ensuring playability across a number of devices. This project had its own challenges and pitfalls during development, especially with regard to the grid system. Having to scale to a variable width and height in addition to a variable grid size posed quite the challenge, but is now complete thanks to many coffee breaks and midnight revelations.
Waverr is an online trigonometric graphing calculator that supports sine and cosine functions with custom parameters. This project relies more heavily on math knowledge than programming, but was an interesting experiment regardless. To draw the function, Waverr uses the user's accuracy input field to determine how many points along the horizontal axis should be drawn and calculated. For each point, its physical x position on the screen is converted to a corresponding position given the domain. Once converted, this position is fed into the user defined trigonometric function where the y position is determined. A point has been determined, and a line is drawn from the previous point to this current one, and the process repeats until the desired amount of points have been calculated and drawn.
Sins of a Modding Empire is an upcoming project that intends to make installing and changing mods in Sins of a Solar Empire: Rebellion simpler and more intuitive. On first launch, SoaME will automatically detect the installation directory of Sins as well as the location to install mods. In the event either of these steps is unsuccessful, the user will be prompted to manually locate these resources. Future features involve storing mod installation status (not installed, installed, active, etc.), a custom 'mod' script that will inform SoaME what steps it should take to install a mod, ability to enable / disable mods within a collection, and more!