Deep Rock Galactic is a 1-4 player sci-fi co-op shooter taking place in a procedurally generated and 100% destructible caves on an extremely hostile alien planet. You play as a team of badass dwarven space miners, out to complete missions for your corporate overlords and to collect as much gold, gems, and other precious minerals as you possibly can before you're overrun. To complete your tasks, you're equipped with a wide variety of severely hard-hitting weapons as well as a slew of hand gadgets. Set up turrets, call down supplies, build staircases up walls, or simply just drill your way to your objective - the choice is yours! The best bit about the game is that progression eventually comes down to beers and cosmetics!
I am at the forefront of research and development of Unreal Engine modding for Deep Rock Galactic. I write documentation and guides for others to learn and follow the methods that I do and don't come up with.
The image above depicts the BluePrint for one of my mods, called IYDRASYACH (bit of a mouthful I know, but it's based off a voiceline in the game).
I have created a few mods; audio and Blueprint are my two main methods that I play with. Sorry artists, but modelling isn't really my thing :P
If you go to DRG's modding portal page, mod.io, and look for the mod author Buckminsterfullerene (me), you will see that I have a couple mods in the top 20 (as of writing this article).
I am indirectly responsible for many of the audio and BluePrint mods for DRG because I created first the written audio and blueprint modding guides, then the blueprint video tutorial series guide.
From these guides, I think I have developed a very good skill of documentation - something that unlike most people, I really enjoy doing. Teaching and helping people is one of my passions, and this definately shows when helping other DRG modders.
Here's the introduction video for my BP modding tutorial series:
This series is still ongoing and I have plans for a few more videos in the future.
I have also developed a few tools for the DRG Modding scene, like helper scripts and modified a dumper for C++ reflected headers. These can be found on my alternate GitHub account.
My TODO list for the next few months is very long currently:
Guides | Mods | Tools |
---|---|---|
Write/record better packing/unpacking guide | Finish IYDRASYACH | Fix chat : 1 bug on modified dumper |
Remove the BPMM legacy/alternate loading method from BP video and written guides | Fix IKS bug and implement DRGLib's DRG widgets for BTC | Work more on reflected dumps branch on modified dumper |
Chase up on people for BP modding tutorial series;
|
Work on DJDwarves;
|
Fix writing to file C++ wrapper |
Make video tutorial on C++ wrapper for BP mods | Fix MeatMorning Music Pak mod boss music and volume levels | Write FAQ Discord bot |
Explain how dummying soundclasses work in audio guide | Work on 10x randomiser mod | |
Port cp_orange to DRG level |
I learned and tested the new Lumen and Nanite technology from UE5 by creating a beautiful Creek scene crafted using assets off Quixel Bridge.
These houses for example were built from individual assets on Quixel Bridge - the entire houses themselves were not taken. The bridge across the creek, for example, uses the window boarding for floor planks.
As I created this project not long after UE5 went out into beta, there were still a few bugs, like materials not instancing correctly. So I had to find work arounds to these problems using my (at the time) fairly limited knowledge of the engine.
The fantastic thing I loved the most from creating this specific scene in UE5 is the realtime lighting change. You can hold Ctrl + L and use the mouse to move the sun in realtime! The shadows and the lighting changes exactly how you would expect it to change, without having to wait for any lighting to be baked at all!
Another thing I love about UE5 is its new UI. It looks SO much better than UE4's UI, and the panels are a lot more responsive and easier to manage.
Here's a couple of little demo recordings showing off the scene and the Lumen technology:
This is a prototype of an Object-Oriented program that simulates a contactless store, with individual shoppers, stocks, and items. Through a modular commands system, it allows the user to add as many sims as they like, and in turn as many shoppers inside selected sims as they wish. Each simulation has its own isolated stocks, which the shoppers interact with. The user can order stocks to specific simulations, remove simulations and shoppers, show specific simulation or
shopper information, and save & load simulations to external files. Because of the modularity of the commands system, new commands and features can easily be added to the program.
The original idea of the program was that it followed the same Just Walk Out shopping model that Amazon has been developing with trial shops in London. These shops enables shoppers to enter a store, buy their items and just leave without physically paying. The idea is to eliminate the whole checkout lines part of shopping, which helps bring fast and convenient checkout experiences.
When designing this program, I had a couple of problems to think about. Firstly, how would the simulations run and allow user input? There were a few possible methods:
Simulation ID,Paused?,money in account#Stock item name,Stock item cost,Stock number items#Shopper ID,Shopper name,Shopper age,Shopper weight,Shopper height,is shopper in store?~Item name,Item cost,Number of itemsOr:
1,0,55.2#apple,4,23+banana,1,50#1,joshua,19,45,180,1~apple,1.2,3+banana,0.8,4:2,andy,21,55,175,1~watermelon,2.3,1
There were a fair few commands that I wanted to implement in order to properly show off what the prototype could do once the basics classes were implemented. It took me a while to think of everything I thought I needed at the time (a lot more features could then easily be added on top), but here's the class diagram showing the relationships and the commands I had in mind:
Simply put, Advent of Code is a set of 25 puzzles that release for the 25 days of Christmas in December every year. Puzzles increase in difficulty slowly as the month progresses, with Day 25 usually being the most difficult problem. Every day, the puzzle is split into two parts, where the second part always builds on top of the program you made for the first part.
Every year there is a story that progresses as each day passes, usually something to do with saving Christmas!
You can do the puzzles in whichever language you please, so in 2019 I got up to Day 13 with C#, and in 2020 I used Python. A friend of mine did each day in a different language in AoC 2020!
Every player can make a private leaderboard, or join some if they have the codes. In 2020, I was in 7 leaderboards. Points are worked out based on your rank of finishing the puzzle, where the first person gets N points (where N is the number of users on leaderboard), second gets N-1 points etc until the final gets 1. This encourages competitiveness although unfortunately it unlocks at 5am UTC (midnight where the creator lives). The good side is that by Day 10, the puzzles reach a difficulty where many people cannot finish them and so it comes about skill rather than speed (although in 2020 all the puzzles were quite easy until Day 15).
The Advent of Code 2019 event was based around saving Christmas in the Solar System. The first day story context setting reads:
Santa has become stranded at the edge of the Solar System while delivering presents to other planets! To accurately calculate his position in space, safely align his warp drive, and return to Earth in time to save Christmas, he needs you to bring him measurements from fifty stars. Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck! The Elves quickly load you into a spacecraft and prepare to launch.This sets the scene of the event quite nicely, as the story is of course very important throughout the event.
Advent of Code 2020 was a bit different, story-wise, than the other events, because it was all about getting Santa to his vacation island for a nice break from constantly saving Christmas! Although he does do some super criminal things along the way... *cough* hacking airport security, stealing passports, getting on plane without bording pass *cough*. Here's the first day story context setting:
After saving Christmas five years in a row, you've decided to take a vacation at a nice resort on a tropical island. Surely, Christmas will go on without you. The tropical island has its own currency and is entirely cash-only. The gold coins used there have a little picture of a starfish; the locals just call them stars. None of the currency exchanges seem to have heard of them, but somehow, you'll need to find fifty of these coins by the time you arrive so you can pay the deposit on your room. To save your vacation, you need to get all fifty stars by December 25th. Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!Many funny moments were had in this story!
Game Maker's Toolkit (GMTK) is a video game analysis series which examins and explains aspects of video game design to encourage developers to improve their crafts and viewers to appreciate the games they play more. You can find their YouTube channel here. Every year, GMTK host a big game jam on itch.io, with an increasing number of thousands of participants and submissions (5,369 entires and 143k ratings in 2020).
This year, the theme was "Out of Control". The theme could be interpreted in any way. Teams had 48 hours to create a game that could run on Windows or in browser, via any method. The majority of code had to be written during the jam but art and assets can be used within legal rights and credited. Afterwards, the games were rated by the public over a week long period, and then the top 100 rated games sent to the GMTK creator, Mark Brown, to pick his top 20.
For me and my 2 friends, this was our second game jam. Our first was during GMTK 2019, where we created a small game about morse code saving a sinking ship. It wasn't very good but it was the first time any of us had built anything complete in Unity (I had worked on projects before but never finished them).
So for this year, at least we had more experience with Unity, coding in general, and game design. We spent the first evening brainstorming for ideas and came up with a good few. But the best idea was the most simplistic: You shoot a bullet and it ricochets forever. That way, if you shoot too many bullets, you lose control of the level and you make things very difficult for yourself (to not get hit by your own bullet).
We decided on a top-down view, and the levels would be simple to get through - just kill all the enemies and reach the goal under a certain amount of time, without being hit by one of your own or an enemy's bullets. This ended up being quite fun. We had another of our friends make the music (he is very talented, go check him out) and another friend make the art for the main menu, level tiles, bullet, goal and character/enemy models. Overall there were 4 of us working on the project; Me and Daman56100 on programming, Senor_Saas on art & programming, and Evan on music. We all went to the same school. You can watch a short demo of me playing it here:
You can view the GMTK submission page for the game here, or the main game page here (only downloadable for Windows... sorry Linux users. We tried to get a WebGL version working but couldn't get the resolutions right). Overall, we placed 605th out of 5,300 submissions! I think that was a very good result given our lack of experience making games.
This is the project that I chose to take on for my University's Term 1 Python Project. The projects could be anything of sensible scope. I chose this project because I wanted to do something mentally challenging that would solve an actual problem (and I didn't want to do a text-based adventure game that half the year was doing).
For another course module, I noticed that there weren't any online Boolean Expression Simplfiers that produced the Sum of Products (SOP) simplification. Therefore, I set out to create a solution that would not only solve this, but also be quick given many, many variables. This was especially important, given that the typical method to obtain a SOP simplification is through Karnaugh maps which is simple for a human to visualise and work through, but is terribly inefficient after 5 or 6 variables. Because I wanted my program to work for 10 or 20 variables, I had to use the Quine-McCluskey algorithm. I also used Petrick's method for further SOP simplification.
First, the user must input their expression of choice.
The program supports 4 different tokens per operation, and three operations, as you can see in the image above. They can be used interchangably. The variables don't just have to be single letters - they can be any words or digits as long as there is no space seperating them (otherwise they would cause a parse error).
Then, the program will parse the expression into an Abstract Syntax Tree (AST) that the rest of the program can then read.
In order to carry out the QM algorithm, the program must then work out the context of the variables in the truth table and whether or not each row is True or False. Using this truth table generated from the expression, the program can then generate the required minterms (prime implicants) to be grouped through the algorithm. The algorithm is then run on the minterms to work out the essential prime implicants, Petrick's method is applied to further reduce these, and the output is produced.
Yes. I created this originally for my University's Term 1 Web Dev project, but I decided that I liked the layout and kept building upon it. At the time of writing this section, I chose to complete the website and all the features I currently wanted, within just basic HTML/CSS/JS. However, in the future, I would like to use frameworks, probably React + Styled Components. If you are interested in the code used for this website, everything is open-source.
Haikus are a type of poetry, originally from Japan. They must contain 17 (Japanese) syllables over 3 lines, in a 5-7-5 pattern.
The program takes in 4 inputs; 2 nouns, an adjective and a verb. The program will then use these words alongside a word bank to create the poem. Every poem generated, even with the same set of words will be different (unless you get lucky and see the exact same one twice in a row, but given the number of words to pick from those chances are very low.) The program will also automatically replace your words with words from the word bank if your word is too many syllables for the line. It will also try to keep to 17 (Japanese) syllables although is not yet perfect.
Ok... it isn't perfect... :)
BobbyBot is a small little bot for Discord I made in 2018. Coded in JS using discord.js, it's small and only offers a few useless but perhaps fun (for 5 minutes) commands. I used it to teach me JavaScript, JSON parsing (for the weather checker) and so I could get in on the useless Discord bot action.
Useless commands include:
An idle game developed in C# WinForms alongside a 65,000-word, 350-page report (Teacher grade: A*).
This project is really, really long. I absolutely love writing documentation, as you can see from the length of the documentation.
You can find the project source code + documentation here.