In this section, I wanted to detail some of my older projects along with some more recent projects that I've been working on.
The first projects that I made were .bat terminal games and simple games on scratch. Sadly, since my .bat files died with my old laptop, and my scratch account is inaccessible due to my email getting hacked a few years ago, I won't be able to showcase them here.
My first big project was probably this game called "Rickroll Simulator."
While my friend and I were attending a summer camp together, he joked that I should turn rick-rolling (a recently popular trolling method) into a game. I took the suggestion seriously and made this: a game about checking your email and dodging rickrolls.
It features an email panel to the left with a giant "It's a RICKROLL" button if you suspect the email is trying to rickroll you. To the right, there are these "rickroll detectors," which get used up when you click on them and display the rickroll status of the current email in the terminal (in the bottom right). The terminal also featured some simple commands and debugging features for testing the game.
However, I didn't really know much about mobile-responsive websites at the time, so the entire website kind of breaks if you use any sort of different screen size.
After making this game, I created a few more websites, slowly learning more about HTML, CSS, and JavaScript.
For example, this is a simple stopwatch that I made using .hta files.
And this is a chess website that I made with a chess JS library and a background that I made in Blender. The table was a free asset that I downloaded and the donuts were from the famous Donut Tutorial by Blender Guru. I just used a physics simulation to scatter them.
I also followed a few tutorials to make simple functional apps, like this ToDo list app.
As I transitioned into middle school, I started experimenting with making games with THREE.js and CANNON.js
Below is a simple procedural game that I made using these libraries.
I also started experimenting with cubemaps in the background.
This is a simple parkour course that I made as a game concept. For some reason, CANNON.js kept having a bug where the player would bounce high into the air. At the time, I wasn't able to get it to work well, but I might revisit the original game idea in the future!
The last project that I have from this era was this demo portal scene. I designed the tile level in Blender and imported the assets as .glb files. At the time, I think I was experimenting with the CANNON.js physics and getting the portals to teleport the player.
Although I still worked with websites sometimes (shown below is a file management project that I coded before realizing that web browsers are sandboxed), I was moving toward using game engines at this time.
One of the first games that I made with Unity was this swimming-themed typing game.
If you finished typing in time, the game would continue, but if you ran out of time, you would get a results screen shown below.
At the time, I was watching a lot of DaniDev and tried to make a similar demo game on my own. I made this level in the Unity editor and actually modeled the Heckler and Koch model in Blender.
In this demo, I was experimenting with Unity's different graphics settings, although the use of these high settings significantly slowed down performance.
The most recent Unity demo that I could find is shown in the image below.
Although I remember making more, I couldn't find any other files in my laptop's hard drive or in my various USB drives. After Unity, I tried to migrate to Unreal Engine (because of Unity's pay per pay scandal), but didn't do much with the engine because of its performance cost.
During this period, school was taking up more and more of my time, so it would be a while before I made more projects.
During my freshmen year of high school, I started taking CS50 courses. I thought that some of my final projects would be notable to share here (without the code, of course).
This was my final project for CS50x. It's a colliding box simulator, inspired by a video from 3Blue1Brown. The idea was that boxes with specific ratios would compute pi in the amount of collisions between the two boxes.
My final project for CS50P was a physics-based gravity game. The red circles repulse the player (the black circle) and the blue ones attract it. The goal of the game was to get the player to the green circle (the goal).
For my CS50 Web final project, I made a course builder. The owner of a course could add or delete elements from a course, and I even added a node system for custom logic.
More recently, I've made a few smaller projects.
This is a Mandlebrot set that I rendered with a custom Python script. It technecally supports generating images with Perturbation Theory, but my renderer isn't optimized enough for that to be remotely useful (it does make the output look weird though!).
I've also messed around with web scraping, although I haven't found much use for it in my projects.
Over the summer of my rising junior year, I read a few books about OpenGL, raytracing, and general programming techniques.
Here's a render that I did from Ray Tracing in One Weekend.
For future projects, I want to implement a fluid solver from Fluid Flow for the Rest of Us and do more HackClub related projects. I also have plans for improving my course builder idea and making an image to sheet music software.