I code things and play games
My biggest project ever. Comprised of four separate bots with hundreds of commands, describing this as only one project greatly understates the diversity of features offered across the bots.
This project has not only stretched my programming ability but tested and developed my skills in games design, marketing, working closely with users and driving a project forward in innovative and exciting ways.
Find out more about each of the bots below:
Moderation & Utility
Kernel is a multipurpose bot with a wide range of useful features, from moderating your discord server to lots of genuinely useful features
An Assortment of Fun Features
Spectral contains a wide variety of fun features, from minigames to dog pictures to in-game stats
A Text-Based Game
A fully-fledged text-based RPG where you can collect resources, build things and make more resources
A Pokémon Game
A custom Pokémon game designed for Discord that borrows much of what made the original games good but innovates in some key areas to be more suitable for the platform.
This project was how I learnt to code, but I've learnt so much more. This is why I thought I'd dedicate a little section here containing a bit of what I've learnt along the way.
|TODO||This table is a bit rubbish. It's inconsistent, a bit all over the place and a bit too long. Don't worry, I'm sure I'll get around to improving it...|
|Games Design||I've been the sole designer for two distinct games, including using a massive spreadsheet to balance things (it's not easy...)|
|Marketing||I'm responsible for marketing the bots, including making a website and purchasing appropriate ad spots.|
|Fun Comes First||It doesn't matter how many really cool features your game has, if it just isn't that fun then people won't play it.|
|Writing Maintainable Code||The importance of and ability to write maintainable code is something that only comes with experience programming (and trying to read your code a few years later!)|
|Quality Over Quantity||Improve your existing features, don't add new ones (disclaimer: this is less fun)|
|Listening to Customer Feedback||I've always listened to feedback, however I have since learnt that listening to feedback isn't always the best idea. Having a strong vision and sticking to it is just as important.|
|Ease-of-use Matters||I knew things being easy to use was good but I didn't realise quite how much this mattered. Often people don't have that much patience (and no, for some reason they can't just read the damn help command!)|
|UX Design||I've chosen the command syntax for many different commands. The biggest thing I've learnt - consistency really matters. Even if it's worse, keep it consistent. People expect similar commands to behave in similar ways.|
|Simplicity vs Ease-of-use||Just because something is simple and elegant doesn't mean it's intuitive. A simple design can be a confusing design.|
|Customisability||Not everything has to be customisable. Most people just don't care. Stop wasting your time making something customisable if most people won't use it.|
|Give it a go!||You never know what you can achieve until you try. I have been amazed at how many brand new ideas I have managed to bring to Discord through this bot, don't be afraid to try something new. If it doesn't work, who cares?|
Read the blog post for more information
70,000+ lines of code
A fully automated school timetabling system where teachers choose how long they want for each lesson. More description about what it does (it's actually pretty cool)
To facilitate this, a genetic algorithm is used to simulate natural selection and generate a feasible timetable within a short time frame. I had to evaluate many different heuristic algorithms...
This was my A-Level Computer Science Coursework. This means it involved producing a write-up to explain the development process. You are welcome to download this and have a read.
Considering I had to do a write-up, this project made me give extra attention to every piece of code I wrote as I checked to ensure it was clearly readable and maintainable. I wasn't the only one reading this code. I was also made to think more about the theory behind everything I was doing and carefully justify it in a 250-page write-up. While frustrating at times, this did force me to think about programming in a new way and has made me a more competent programmer.
More description here. More description here. Words words words. Blah blah blah
X lines of code
Collaborative Code Jams
Teams of 5
Each year, the Python Discord Server runs a Summer Code Jam. In these events, randomly allocated teams of 5 people are given just over a week to create something using a given technology that fits a theme.
In each of these code jams I have led a team of people to create a cool project in a way that is fun and inclusive for everyone.
More description here. More description here. Words words words. Blah blah blah.
|Theme||"It's a bug, not a feature"|
A totally generic, average platformer with nothing out of the ordinary... obviously...
Part of the submission included producing a short video about the project.The Video
Find out more on the GitHub repo
|Theme||"Think inside the box"|
|Using||A Command-Line Interface|
We began to make a physics-based game where resizing the terminal window would change the level. This could bounce balls off it or change the dimensions of objects to solve a puzzle.
Unfortunately, this project was too ambitious and was not finished within the available time. Nevertheless, we had a lot of fun and learnt a lot in the process.
These projects aren't the most advanced and many were very quick to make, often solving a very specific problem in a short amount of time. Nonetheless, you may find them useful.
Reaction Time Tester
A lightweight ad-free reaction time tester that runs in your browser and doesn't track you.
I created this because most online reaction time testers are bloated and have a more complicated interface than necessary. This one only has the necessary features, and of course, is ad-free!
Try it right now in your browser!
Some very niche typing-related things that may help if learning to touch type, such as:
Alternatively, follow the links for some better websites.
Past Paper Analysis
Record time spent on each question as you complete a paper and analyse it to spot patterns.
Note: This project is simple, modifying spreadsheets via a command line interface (I developed this when I should've been revising for A-Levels...)
Not finished. Let me know if you work on it further.
With only 16kB of memory, the micro-bit forces you to think much more carefully about optimising your program.
Outer Wilds is the most innovative game I have ever played.
It manages to have a unique knowledge-based progression system that is executed so perfectly in an unbelievably accurate space setting. The soundtrack is great. The visuals are great. Play this game.
Not convinced yet? Read my review (or someone else's, I don't mind...)
May 21 ????
I think the playtime speaks for itself - this is such a fun game. Think Factorio in 3D but you can build cool buildings and experiment with different styles of architecture until you've completely forgotten you're meant to be building factories!
I've built some really cool things (in my opinion at least). Check them out below!
Oct 21 - Present
Psychonauts 2 was such a refreshing game, just pure fun. Not too difficult platforming, great visual style, great writing and an engaging storyline. And the most imaginative level design I have ever seen. Would recommend to anyone who is looking for a chilled out game.
Before Your Eyes
In a similar vein to Outer Wilds, this is a game you can only play once. And it's only 90 minutes long. Oh, and whenever you blink it skips time, so it's literally impossible to play the whole of this game.
Sounds like a gimmick, right? Wrong. The blink interaction fits so perfectly into the narrative of the story as you explore a child's memories as they grow up.
If you've got a spare 90 minutes, a webcam (I used DroidCam with my Android phone) and are ready to cry (half because of the brilliant emotional story, and half because you're desperately trying not to blink and your eyes are now hurting a lot), I can't recommend this game enough
Red Dead Redemption 2
RDR2 has the worst controls in any game I have played. The combat is either easy or frustrating, with nothing in between. The missions are so linear, giving no room for creative thought.
You'd think now that I don't like this game. Wrong. The characters in RDR2 are the most memorable and well developed characters in any game I have played. The story and writing are simply incredible. The cinematography in cutscenes is innovative and the graphics supercede some modern titles. The open world is vast and has plenty of things to do. The truth is, when I reflect on RDR2, the issues above are just so insignificant in comparison to the strengths of this game.
Having said all this, RDR2 is a slow game. This isn't a criticism - it wouldn't be the same if it was faster-paced, but this will make the game less attractive to some people. It took me about 15 hours before I was fully invested into the game and it takes about 50 hours to complete. And if you don't enjoy games that blur the line between video games and film, you may not enjoy this title.
Overall, while this may seem like a mixed review, Red Dead Redemption 2 is brilliant and is well-worth checking out if you enjoy long open-world games.