A Decade of Game Development

Happy New Year everyone! It’s 2020, meaning it’s the start of not just a new year but a new decade (unless your one of those people insistent that the decade starts on 2021)! Needless to say, it has been a full ten years, and it’s fitting that nearly ten years earlier I started working on a computer game for an Extended Project at my Sixth Form project. I did a brief summary of what I’ve done over the last decade on Twitter, but I figured I’d write about what my experience with game development has been like. I won’t write in detail about every game and related projects I’ve ever worked on (at this point it’s 48, not including some of the game jam projects that didn’t get finished), but to give some highlights. You can check out all the games I’ve worked on here, as well as the academic stuff here.

First game

I’ve always enjoyed playing video games, and it had crossed my mind on a number of occasions to have a go at making my own one. Problem was that I struggled when it came to trying new things on my own so if I didn’t have someone to instruct me, I’d get lost and eventually give up. I remember looking through DarkGDK and an old 3D game engine, and the tutorials were confusing so I stopped after a few days. Even when I was 16, I didn’t even think of being a programmer or a games developer (I originally wanted to be an electrical engineer) until one day where I took a class that was meant to demonstrate what you’d learn if you took Computer Studies as an A-Level course. Having a good teacher who could walk you through writing code (in Visual Basic .NET) effectively got me to consider taking up programming instead.

Game development was something else, I remember at the start of the year there was plenty of encouragement to do what’s called the AQA Extended Project, which is basically an assignment that students have a year to create on any given (approved) topic of their choosing. It’s the equivalent of half an A-level grade, and it’s advertised as being good on a University application because it’s extracurricular work. I remember in one of the numbers of presentations that the teacher speaking about it saying something to the likes of “You can do a project on almost anything, such as something you do on a daily basis like taking care of an animal, a certain subject you’re interested in, or a particular hobby you have. One year, someone made a computer game for their EPQ, if you want to try that, you can.” and almost immediately on my mind, I thought I should try that.

For the report, I looked at a number of tools at the time and stumbled onto Game Maker 7 (I later moved to Game Maker 8 when that came out). I read on a couple of websites that it was used in secondary schools for creating games, and it looked like you simply needed to understand flow charts in order to do stuff so I downloaded it and tried the tutorials. For the time, they must have been the most straightforward and clearest tutorials I’ve ever used. It took me less than a day to make a vertical scrolling shooter similar to 1942 just from following a PDF document, so I figured for the project I’d turn it into a horizontal scrolling shooter. I was also a fan of a sprite-based Final Fantasy webcomic called 8-Bit Theater by Brian Clevinger, so I figured I’d use Final Fantasy sprites and make it a fan-game: 8-Bit Theatre: Black Mage is in a Shooting Game.

Looking through all my documents, I think it’s safe to say I might have been a bit too ambitious for a first project. According to the design document I wrote for it, I was hoping to create eight levels, each with a boss battle (in the end, I only managed two levels and one boss battle). I even gave the game a full plot synopsis even though I never found the time to implement a game’s storyline. The game was also purely developed using the Drag and Drop visual scripting tool, which did enough that I wanted to do although more experienced Game Maker developers don’t even touch it and do everything almost entirely through Game Maker Language. That being said, I did try some of the more intermediate tools within Game Maker such as Timelines and Paths, and the boss I did end up making was massive. Regardless, it was definitely a learning experience, and it was a fun project to do in-between school, homework and a part-time job as a school cleaner. The teachers definitely thought that my game, even in an incomplete state, was an accomplishment and recognized that I had skill and drive. In some aspects, I probably had a bit too much drive, I made a gameplay video of it and put it up on a Youtube channel, pretending I was a games company called YARGHgames (I’m pretty confident it was an acronym but I cannot recall what it actually stood for). Still, we all have to start somewhere. I did try to remake this game back in 2018 for a games jam, and although I never went further than the original, I think the fact that I could remake what was more than a year of work back in 2010 in around a single week in 2017 shows I must have improved somewhat.

University

When it came time to apply for University, wanted to do Games Programming as a career, with the hopes that I could write code for games on the major video game consoles. I originally chose to do games specific courses, but my parents insisted that I go to the more general computer science route instead. Neither of my parents had much of a background in computers and didn’t think there was a good chance in getting into games, and in fairness neither did my A-level teachers. My cousin was the one who recommended me to look into Staffordshire University because of the games and computer courses, and I made it my first choice. I enrolled as a Computer Science student in the latter half of 2011, and after taking an optional module in games programming I decided to transfer before the end of the first semester (I was able to convince my parents that I should do it, and early enough so I don’t have to do additional modules to catch up).

Most of my work was purely academic, the most game-like stuff was a Pac-Man clone and one where you controlled a goldfish. I did pick up a lot of stuff using Microsoft XNA and C#, as well as some early 3D programming using OpenGL (with the really old framework GLUT) and then later DirectX. I even spent three months at a Summer Camp in Hawley, Pennsylvania where one of the activities I did was teaching C# and XNA. I didn’t try to make proper games until two things happened: Game Jams and Microsoft.

First one was Global Game Jam 2013, I went mostly because I knew two of my friends were taking part. Staffordshire University was the largest GGJ site in Europe for a number of years, so you got to see a lot of people get involved. Joining one of my friend’s team, we worked in XNA to create this top-down driving game we named Anarchy Ambulance in a similar vein to crazy taxi, except you’re running people over and delivering their hearts (incidentally, this was the same GGJ where Surgeon Simulator was made). It was a terrifically fun project to work on and it remains one of my favourite team-projects I’ve worked on, we were able to get a lot done and had a laugh doing it. I didn’t think it was entirely possible to get the game done in two days, but James and I managed to pull off all the coding stuff, even the collision with rotated bounding boxes. It was received fairly well at the time because of its morbid concept, I remember years later seeing it featured on a showreel the University Games Design faculty played during open days for a few years after. I’ve gotten into doing game jams since that day, because there is a lot of creativity and drive to finish a game in a short amount of time, having to decide what’s worth implementing and what stuff needs to get polished.

The other one was Microsoft’s Windows Games Ambassadors, a programme that was set up to encourage students to build gamedev portfolios by writing games to Windows 8 and Windows Phone 8 and submitting them to Microsoft’s digital store. One of the requirements for the role was to make multiple games yourself to demonstrate and work on your own portfolio, so I made a couple such as BOOM, a game where you defend people from fireworks. There were a lot of good experiences I had while working as one of their ambassadors, from getting free devices (such as a Nokia Windows Phone which remained my smartphone for years) to attending events like EGX as one of Microsoft’s crew. It did give me an early look into building games for mobile devices in particular, as well as have early experiences with submitting games to storefronts (one that I’ll get more used to later on). I still get updates from other members of the team and almost all have worked in games in some capacity, such as with Unity, Playground Games and Supermassive, as well as other technical fields such as VR and Medical.

IBM

During the second year of University, most students were looking for an internship or student placement. At the time, games industry internships were hard to come by and often were available late into the year, so I started off by applying to big software companies. After a few rejections, I applied to IBM. I had a lot of help with the application process, from the University’s careers team to an old friend from Sixth Form (who was already working for IBM at the time) and my sister. I remember having to fill in application forms with answers that could be compiled into an essay and going to the Hursley offices for interviews, a presentation and multiple group exercises. I got accepted and decided to work at the Hursley office as it was their main software engineering hub in the UK starting in August 2013.

Despite the day-job having nothing to do with games (I worked in the RDM, which was one of their data management teams), the work environment was built to be relaxed enough that employees could spend half of their time in different parts of the building to attend other things like courses to pick up skills (I did a few C++ and PHP courses at the time), conferences, as well as events that ran to help the local community (called Givebacks). I did two of the more popular Givebacks, one was teaching a local primary school IT once a week and the other was making a game for a competition called Blue Fusion. I pitched a game called Clean Commuter where you learned programming by giving a car simple commands, with the goal of making the car reach a goal in the fewest possible moves. It became one of the selected games and I was appointed team lead, so along with assisting with writing the game’s visual side (other programmers worked on mechanics and network multiplayer parts) I also had to manage the team and make sure the game was ready in time for the competition. It was a struggle at first, but things got a lot more comfortable once a plan was put in motion and the work got into a routine.

Untitled-1

I was also working on Secret of Escape around that time, beginning as a game jam project with the premise of “What if there was a stealth game which you had to complete as fast as possible?” (I somehow forgot Metal Gear Solid: VR Missions had existed). Since I liked the concept I thought I’d make it a proper game. Because of my work at IBM, I had to keep the work outside of my spare time and hold back on releasing it, which did help in some areas. This was also the first game I made an attempt at showing in a public setting with the first Norwich Games Expo and the Indie Zone at London Gaming & Anime Con. I also got to show the game unofficially at one of the early Indie Zones at Insomnia Gaming Festival, after I found the guy running it by chance and told him I was an indie game developer (networking was a funny thing back then).

In retrospect, I’m not surprised the game didn’t do so well as it wasn’t exactly a game you could easily get into and hardly stood out. I also thought to add easter eggs that no one would find was a good idea, having one or two for a laugh is fine if they are easy to find with a bit of messing around but I put in a bunch that only I would know or someone if they had to dig through the project, Not to mention putting it on Desura and IndieGameStand not long before both services would shut down when Steam was starting to do Greenlight wasn’t a good decision, at least it’s still free on itch.io and was nominated for a games industry award. It’s also the time were two of my personal favourite solo game jam entries came from, Galaticus from GBJam and Glow Drop from Ludum Dare.

Final Year

After I finished my year at IBM, it was back to University for one last year. I did end up branching out a bit more by doing engine and multiplayer game development alongside more 3D programming. After spending most of my time with C# in the first two years, and Java in my placement year, I went almost entirely into C++ for the third year, with a few modules in C#. Two key projects at that time for me were the Junior/Senior project and the final year project.

The Junior/Senior project was Staffordshire University’s biggest game design course, with students from every games course (including Games Programming) being eligible to take. For the entire year, teams would make a single game. Each team was made up of sub-teams such as tech, art, design and sound, and each member had roles assigned to them, including a producer and director role. The team I was in was called Ironworks and after a few weeks of making concepts, we went with making an auto-runner where one player had to finish a course while the other player had to sabotage them.

As I was the only person studying in Computer Games Programming in my team, I was assigned as a senior tech, meaning I worked under a lead tech and handled some of the more advanced parts of the game while the three junior techs worked on the less advanced parts. I remember our team being unfortunately unbalanced, as outside of the tech team and producers was one animator, one sound designer and mostly concept artists. Lack of animations was such a problem, that I took the initiative of writing small scripts to make the player look more animated when it moved. I remember the tech team joking that no matter what happened, our game was at least gonna look great. What made the course particularly special that year was that Epic Games sponsored the course and granted every student early access to Unreal Engine 4, so through the year we got new updates and would often raise issues with the engine that would get fixed in the following week if we were lucky.

It was also probably one of the longest and most intensive courses, being around four hours per week on a single day with an hour in-between, excluding any unscheduled sessions to get the game ready before the deadline. Because of my course having Junior/Senior technically being part of a separate module to every other course, I was only required to attend the first two hours whilst everyone else had to attend the four hours. I stayed home after finishing the first two hours after the first day, and I ended up feeling bad for leaving everyone else to work so from the next week onwards I decided to stay for the entire four hours like everyone else, spending my hour break quickly going home to have a pizza before heading back to campus. Apparently, I was one of the few games programmers that actually did this, and maybe the others had other modules as a priority but I personally enjoyed spending four hours a week working on a big fancy looking game.

The Final Year project was the big chunk of the final year, as well as my degree. Everyone had to do a thesis on something related to the course they were on. I had a small interest growing in procedural content generation as the topic was growing in interest around the time (from Spelunky to No Man’s Sky), so I thought of using that as my topic. That quickly developed into level generation and an idea of building a tool that could help with generating levels. Doing a thesis required a lot of taking notes and writing down alongside with doing a project. I had to research a number of different algorithms and methods from academic papers and conference talks, alongside learning to use GUI, Unit Testing and file-format frameworks to create the tool. Thanks to the industrial placement at IBM, I got used to treating University more like a full-time job in some aspects, so even on days where there was little to no lectures or tutorials to attend, I’d go to campus in the morning and spend most of my time in the library until 5pm when I got home, made dinner and do stuff in the evenings. In the end, I had submitted an 80+ page bound essay with a fully functional level editor that used algorithms such as L-Systems, Hilbert Curves, Cellular Automata (plus ones I created myself) as well as a tiny demo where you had to find gemstones in a randomly generated cave. To this day I’m not sure what I’m more amazed by, either the fact that I was able to get it all done despite the thesis document getting corrupted, almost losing everything, and my computer exploding thanks to a faulty power supply (and accidentally damaging the hard drive twice when trying to fix my computer), or that I was able to get a first-class degree at the end of it all.

After I graduated, I was looking for work. I did get more rejections than I did when applying for an industrial placement, but I was given an offer to work for a company that made games in C++ using computer graphics on dedicated video betting hardware. I started working there in August 2015 and I’m still working there four and a half years on.

Gemstone Keeper

Going back to that little demo, I decided to look into it a bit more after graduation and kept working on it even after starting a new job. It was much different from what Gemstone Keeper ended up being, the exploration was much a part of it (because I wanted to demonstrate the level generation) but because I’m a fan of arcade shmups, the gameplay in that demo was much more rigid and focused on getting a high score than traversing caverns, collecting gemstones and finding the exit.

After I finished my thesis, I was getting more interested in roguelike games, where there is more of an emphasis on preserving your character and planning your route, as opposed to the games I typically play where you go straight in, guns blazing. As I got more into them, the more I felt I should focus on the exploration and the relaxed vibe, and was part of the reason why the game has its ASCII aesthetic. I’ve always had this concept of an arcade shmup combined with RPG elements in my mind, but I couldn’t get an idea for it to fit. Next thing I know, I play a few traditional roguelikes like Angband and DoomRL and suddenly, an idea just clicked.

There was a lot of experimentation and trial-and-error to get the ASCII art to look right, although I did anticipate that early on because I always like to develop a game where there was a considerable challenge that was a part of it. All the ASCII art is generated in-game using a single font file: the design of sprites, objects and walls were planned out and then I wrote out which characters should be rendered and where individually. Unfortunately with the nature of fonts, you cannot guarantee that the individual characters would be rendered in the right place, so eventually, I wrote out a function to print out all the generated textures so I could properly inspect them and make necessary adjustments.

Moving from the demo’s original framework of Allegro to SFML was a good move, in the long run, it’s a much nicer framework to work with. It also meant I had to structure the engine in order to get what I wanted. I take a lot of influence in my game engine architecture from Flixel (and it’s more modern equivalent HaxeFlixel) because I like how it’s built from simple pieces, where everything you see in the game is either a basic object, a physical object or a group like it’s purely the entity part of an entity-component system. Although I have tried to write a framework in the past with Ricoh2D, it was working on Gemstone Keeper and taking inspiration from HaxeFlixel that lead to Vigilante, my own game framework that I take pride in. I don’t believe creating your own engine yields an output superior to those who make games in a proprietary engine, but there is something I find satisfying in being able to control as much of your system as possible, to the point where you can find issues in the lower-level part and fix them as soon as possible.

I was worried through most of the Steam Greenlight experience since, despite the criticisms of the quality of most entries meaning the bar was pretty low, there was still that worry that not enough people would like the game enough for it to get through. Accepting an offer to be part of a Groupees bundle did help, even at the cost of the value of my game, as I feel that was mostly what got the game accepted onto the Steam store. It’s a shame that Steam has put less effort into quality control since dropping Greenlight for a direct fee. Despite a fairly rocky launch (I decided to launch the game a day before my birthday in 2017, whilst at Rezzed, and then ended up having to release several patches after I got back home because there were several bugs), I still feel like the game did really well. After all of my experience, I moderate my expectations, yet I was still chuffed to see statements saying how many copies were sold in the first few months.

I was aware of anticipated information on the upcoming generation of game consoles during University (PS4, Xbox One and Nintendo Switch), but it wasn’t until info came out about Nintendo Switch supporting OpenGL that I thought there was a possibility of bringing one of my own games to the console without the help of Unity or another game engine. It was about half a year after launch that I wrote a lengthy pitch about bringing over Gemstone Keeper for the Nintendo Switch, but I heard nothing. I did contemplate following up or trying again, as a few game developers I knew advised, but I wasn’t up for the possibility of radio silence. That was when I decided to do more game jams, particularly in 2018 where I did one game jam a month. Then in late 2018 I got an email from Nintendo asking if I still wanted to bring Gemstone Keeper to the Switch, I responded yes and so starting in 2019, I got my opportunity to develop games for a major games console.

Along with porting over SFML, I decided that the graphics need to be upgraded as the Switch was an HD console, so the game needed to be HD too. The game was originally built at half the 720p resolution, but upgrading involved more than just doubling the size of everything. All the positions, sizes, the movement calculations and other details had to be checked by hand, line by line. It was all worth it in the end.

I’ve gotten to show the efforts of the past year at two large game expos (the news of the latter blowing up on Reddit) and had my work written about in the game development magazine Wireframe.

What’s next?

The thing is, I’m honestly not sure. I said a few months earlier that I want to make my next game a Nintendo Switch exclusive, and I do have an idea or two, but even more than a month after accomplishing a goal that had been in my mind for 10 years, I’m struggling to find an answer to “What will I do now?” I’ll still maintain Gemstone Keeper as long as its necessary, and after only doing one Ludum Dare last year I want to get back into doing game jams, but right now I feel like I’ve just peaked a mountain. I think I’ll just find out where the wind will take me.

If there is anything that I want to show people from writing all this, is that getting to achieve your goals takes a lot of work. I’m as guilty as any other novice in his creative minefield in starting out expecting to make something much bigger than I was capable of. I needed good guidance, support and to take a lot of opportunities to get the experience I have today, and I’m nowhere near done. You might get lucky, but I wouldn’t rely on it. It might have taken 10 years for me to get a game onto a Nintendo console, but at least I have 10 years to look back on.

Time to see what the next 10 years will bring me.

Glow Drop DX and Global Games Jam are Out!

Over the last week, I’ve technically had to prepare for two releases, and guess what? Both games are out, and I’ve updated the game menu to include links to them! It’s pretty cool how both games were originally made at 48 hour game jams, and both are being updated as we speak. Feel free to read on about my experiences with Global Games Jam this year, and try out these two releases as soon as possible, all feedback is awesome!

Glow Drop DX

We Are Surrounded

Continue reading

University and Glow Drop DX Update

So as of today, the first semester of my final year of University is down, two more semesters to go! All exams are finished, and three assignments are done, all that’s left so far are the marks, two assignments due in second semester and a Final Year Project (which I also did a midpoint review yesterday). This is awesome for me as it means more work for the FYP and other game dev stuff, and I can schedule out the other work that I need to do.

Continue reading

Ludum Dare Results Comparison

So the results are in! So awesome to see the final scores and see what games got in overall, and see where everyone else’s results are on the rankings. Since this is my third successful Ludum Dare, I thought I’d try a little comparing to see how much I did better (or worse) at this point. Then for future Ludum Dare entries I can then add in those results and probably build a chart to see my progress.

The Results

Ludum Dare 27 (Ten Seconds) – 10 Second Paper Flight

Ludum Dare 29 (Beneath the Surface) – Under Maintenance

Ludum Dare 31 (Entire Game on One Screen) – Glow Drop

My Comments

So while the ranking don’t appear to have changed, the average score for most categories has improved. The only category to have gone down considerably over the three LDs was Humor, although in fairness since my game wasn’t intended to have humour so I could’ve omitted the category. I’m also one of the people that got 100% coolness which is an awesome surprise, it means I’m (technically) listed on the results page. At the moment I’m balancing University work and turning Glow Drop into an Android and Windows Phone release as Glow Drop DX. So hopefully you might see more from me in the future?

Ludum Dare 31 Favourites So Far!

So after rating 100 games for Ludum Dare, I thought I’d talk a bit about a few of my favourites from the jam. They may not be the best out of the competition, but these were the ones that I find have an aspect of good entries that each of these succeed at.

Tightrope Theatre

This is the entry done by brilliant flash game developer Jussi Simpanen, aka AdventureIslands. He always does games for jams big and small and his entries usually bring a quirky design and incredible polish to them, and this one is no exception. In Tightrope Theatre you must travel from A to B, all while riding a unicycle avoiding fire, spikes and the ground below. The entire game is 24 levels long, and feels very complete for a game done in two days, although you kind of wish there was more. Knowing that Jussi tends to add new stuff to his entries every now and then, maybe there will be more to this entry.

Jumping ‘n Jumping

This is an example of how you should achieve an innovative game in 48 hours, you use one mechanic with a unique spin and give it as much potential as you can. In this case, the mechanic of the game is jumping, and the unique spin is that your jumps are limited, but will increase depending on how you play. Eduardo uses the mechanic in a room where you have to jump to survive and you get this gem.

Screen Mover

Most game jams have a theme, and as a developer you are free to interpret that theme to whatever for your game: you can use a literal route (in LD31, that would mean literally running the entire game on one screen), the metaphorical route or the technical route. With Screen Mover, Sh1rogane decided to go beyond literal and technical with the theme to produce something that may look like a simple platform prototype, until you quickly realise you have to move the game window to progress. The only issue with this idea is that keyboard input it locked while the window moves, but the post jam version does fix this.

The Hyperbeam

Sometimes you don’t have to make a game that’s fun to make it a good entry, you can tell a story, show off some great music or in this case, make some really beautiful graphics. The puzzle game elements are clever, but this game is really good at showing off bloom and neon. It just makes it look wonderful, and the music is really soothing as well. As you may tell from my entry, I love neon glow, and this game does a great job at showing it off.

Swotch

If all else fails, just make a game that is fun to play, and make it addictive for an added bonus. This game’s style reminds me a lot of Terry Cavanagh’s Super Hexagon, and since the developer is planning an Android/iOS release, I recommend him get Chipzel to do music for the game.

Don’t forget to play my entry Glow Drop if you haven’t already.

Ralph Baer & Ludum Dare 31

https://i1.wp.com/www.vintagecomputing.com/wp-content/images/interviews/baer_harrison_pong_3_large.jpgI would first like to start this post by talking about Ralph Baer, wildly known as the father of video games who passed away on December 6th. Since 1966 he always had the idea of games that can be displayed on television screens, and developed what he calls “the brown box” which had rotary controls and played a simple tennis game with two panels and a square ball. This patented idea eventually got picked up by TV manufacturer Magnavox and became the Odyssey, wildly considered the first video games console. Along with essentially founding computer and video games as we know it today, he also invented the classic electronic game Simon (and its sequel Super Simon) and carried on developing and tinkering with electronic prototypes, giving him 150 patents to his name.

He lived a full life and his work has lead to the creation of the largest entertainment history, and lot of gamers and game developers are where they are today because of his work.

So last weekend was Ludum Dare, the 31st bi-annual 48-hour games jam. The theme for this one was “Entire Game on One Screen”, a bit basic for a theme but it’s much better than the joke theme that got a lot hype in the voting stages (no snowmen please!).

You can play my entry right now, it’s called Glow Drop and it’s a physics based puzzle game, just click the image below to go to the Ludum Dare page!

I initially wanted to develop my entry using HaxeFlixel, but software issues struck and I was unable to use it, and since on the Saturday I spent most of my time developing on a train to London with no wi-fi, I decided to switch to using Construct2.

While I didn’t really feel motivated to using Construct2 again after spending over a year developing a certain award nominated stealth game using it, turns out for the game I ended up making it was worthwhile. Construct2 has one of the most easiest physics set up out of any engine I’ve used, and since the entire game has to be on a single screen, it’s much easier to manage a visual layout than a coded game state

Since I was out with friends and family for most of Saturday, I was hoping to release for the 72-hour jam. However, when I noticed that most of the game and the graphics were finished with four hours remaining, I felt like I could pull it off and upload for the compo, and I succeeded!

I’m already getting positive comments so far, so I might use a day or two from my Christmas break to polish the game more and release it as a mobile game! If you guys like the idea let me know if there is anything I could add/change to make it work!

https://i0.wp.com/ludumdare.com/compo/wp-content/compo2/407933/21252-shot2.PNG https://i2.wp.com/ludumdare.com/compo/wp-content/compo2/407933/21252-shot3.png