Programming
C# and Python are the languages I have the most experience in, including libraries like Pandas, Numpy and MatPlotLibrary (and Discord.py, extensively).
​
I consider myself conversational in C++, Java and JavaScript, on the occasion I need them for the task at hand.
​
To keep this separate from the "Engines" section, it will only include things explicitly unrelated to Unity and Unreal engine. I apologise in advance for any expletives in the code comments.
01
Literally Just Pong
This is approaching 10,000 lines of C++, using the SDL2 graphics interface.
Easily the most complex project in this category, because the goal was to make a completely flexible game engine. Rather than explicitly developing pong, this features a Unity-style interface from an abstract 'GameObject' class with Start() and Update() functions, as well as attachable colliders and a hidden self-scaling render queue.
Example of a blank object
The Main Loop
02
Factorio Mods
Wube's Factorio is one of my favourite games, and has a very active modding community. My mods are extremely minor, but took me several days to figure out and I take a lot of pride in getting them to work.
​
To summarise, I enjoy a mod called "Hexi's Inline Ore Processing", which is a way of increasing productivity from ores by adding new machines and extra refining steps. The problem is some of the biggest mods (Space Exploration and Angel's Smelting) both too have things for this, but none of them are compatible.
​
I had to learn how Factorio works, as well as how all of the mods in question - especially considering Hexi's automatically detects and accounts for ores added by mods - in order to bridge them. Additionally, although Factorio itself is in C++, the mods are all written in Lua, a language I am generally unfamiliar with.
Trying to figure out if the slot is labeled "small", "medium" or "large"
03
Image Recognition Ai
Takes a screenshot of a Hunt: Showdown lobby showing equipment and identifies what the guns, tools and traits are, for later comparison with performance in the match.
​
While setting up TensorFlow for this purpose, I realised it was preparing for minor corruptions,​ such a recognising a human face from different angles and rotations, but these images are, in theory, the same every time.
​
It's an image recognition AI from scratch (in python).
Output when given the screenshot above. Detects skins and contraband status as well. 24/26 accuracy, or 92%
​
The main functionality is recursively lowering the margin of error between the input and a library of possibilities until a particular option hits a percentage confidence threshold. As an optimisation, it identifies the size of a weapon (large, medium or small) before identifying the specific weapon.
​
Far from perfect, but it still works with ~80% accuracy. Modding in some kind of API would naturally be far more efficient, but this would most likely trip the anti-cheat. Testing different shaders on the images may also help the accuracy, such as pure black and white.
gator legs
conduit
04
Discord-Google Sheets Bot
The original concept behind this bot was level tracking, where a user would gain 1 point per message sent in the server.
Later on, this expanded to include utilities like currency conversions, managing roles and cosmetic name colours, and games to gamble points. The name for points, 'social credit', as well as other Orwellian functions, began as a joke but quickly stuck in the community.
I achieved this with a Google Sheets API called GSpread, meaning I can easily show the database to other devs who are interested.
​
As the community is primarily a group of YouTube content creators, YouTube channel links are scraped with regex from a user-maintained #introductions channel, and once I learn more about the YouTubeAPI, it's planned to be used for data analytics.
​
The most valuable takeaway from this project is a greater understanding of asynchronous python, and learning how to host a script on a Rasberry Pi.
​
​
*The bot is the bank that the winnings are drawn from to keep the economy in check. As a measure to stop it running out, as well as for my amusement, a loss means the bot takes the entire bet, but a win only has a 95% return.
*
05
Discord Scrubber
A basic script I used to use as a method to use X (formally Twitter) without having to open the website, out of spite.
When I write a new status, it pulls the text and tweets it, as well as posting the emote as an image (not that I recommend it - tweeting a huge emote can be jarring to look at)
​
Other Discord and Twitch bots I've made include welcoming new chatters - with custom messages if they're well known - and pulling information from HowLongToBeat.com and Steam for a quick recommendation from your own library. I learnt many things, like how the Steam RestAPI is an absolute dumpster fire.
06
Consoleapp 2
The first proper project I ever did, and the first piece of code I was ever proud of. I'm just too sentimental to take it off this list.
​
A text-based dungeon crawler in C#, featuring 11 enemies, 9 unique bosses (and unique AI), and 31 different weapons to find, loot and buy across the map, and in-depth combat mechanics such as status effects and team fights.
​
The overall combat system uses a Darkest Dungeon-style system of 4 different moves with special effects and accuracy/damage modifiers. For a more in-depth explanation, see the GitHub page.
Yes that's the default Visual Studio name