This page has...


Some info about why I'm writing this

Usefull resources to get started

Open source projects

Some thoughts on some games I've worked on

This page hopes you're interested in...


Games and gaming

Computers and programming

Creating something new

Learning something along the way

This pages assumes you...


Have some knowledge of gaming, common genres, etc

Have a basic understanding of programming, ideally C#

Want to buid games


About me

Who am I and why have I made this

My past in game development

I've been programming for close to 10 years now, and it all started with games. Well, no. That's not entirely accurate. It all started with Lego and robots, But what opened my horizont, and what made me never want to stop is games.

I was 14 when through some weird connections I've found out that I could actually make games. Sure, I always knew there must be a way to make them, I just never thought that I could make one.

At this point my knowledge of programming was basic at best. I knew some things, and read most of a book (some of which made some sense), but making games is how I learnt a good chucnk of what I know today of programming.

Games are such a fascinating medium. It's the perfect mix of creative arts, design and engineering. It's a world where with very little knowledge someone can build great things, but where there is no limit to the things you feel you need to learn. Even if making games is not what you are going to do your entire life (like myself), you will have solved fundamental problems and have tackled challenges of all sizes, which you will be able to use in the rest of your career.

Long story short, I've spent quite a few years making games under the brand of RedCubeGames. It was the games "company" that wasn't more than just an alternate name for me making games. But it sounded good, so I used it.

I've made games big and small, some projects lasting for a few hours, some lasting many months. Here I'd like to share with you some of it, for you to learn from it and for me to reminisce.

Why write this now?

When you're reading this COVID-19 might be a long gone memory of the past, or the singular event that shapes life.

The current reality is that this virus has forced everyone to stay at home, which means that a lot of students suddenly need something to do from home.

This is the reason the C3 Foundation the organisers of the <19 Freestyle Computer compatition approached me to write something about the game I've entered into their competition many years ago, which turned into this general resource for game development.

Where am I now?

In case you were curious, since making these games I've got myself a degree in Robotics Engineering and now working as a Software Engineer, but from time to time, I still make games, mostly as game jams, or helping out in other peoples projects.

While I stopped working on games every day, it's not something that I could ever leave behind, so who knows, one day I might get back into it again, for more than just a few weeks.

If you'd like to get in touch, ask questions or just chat about your projects, I recommend using LinkedIn.


Getting started

Some advice on where to start, and how to build your first few games

Your first projects

So you want to start making games. Excellent! Fair warnings: your first few games won't be as impressive as you want them to be. But you'll be proud of them, and that is what's important here. You'll have a lot of learning ahead of you, but you need to get started somewhere.

To start making games, you'll need a game engine. While you could start from scratch and build one, it's not a smart idea, and it'll cause you a lot of pain. I recommend Unity. It's free, it's well supported, it has a fantastic community of people building things, and it supports 2D as well as 3D, on all platforms imaginable

Next, you'll have to start learning your tools. Look at the tutorials in the resources section, and start discovering what is possible. However, watching tutorials is not making games. As soon as you have a grasp of what's going on, start creating your own games. Set yourself a goal, like making a character move, and don't stop until you get there. Google is your friend, and most questions that are asked during the start of a game developers journey have already been answered on some forum.

Now that you're creating your first game, there are a couple decisions that need making, to have a direction of what your game will be like.

I know you'll want to make the next 3D puzzle adventure or cutting edge shooter. I know I did. But be sensible. Start small. Don't try to rush into a 3D game, unless you already have a good idea of 3D modelling. Go 2D, and just make some pictures in your editor of choice. And try to keep your scope narrow. Realistically, you won't start making an open world action shooter, unless you have a good few years behind you. Try making something, that you can Realistically finish before the heatdeath of the universe.

Finishing a project is more difficult than you would think. Most games are abandoned after the initial rush of excitement of a new project. That is why keeping your focus on a simple game is so crucial. You can keep starting projects, but you'll learn more from actually finishing one.

On the other side of this coin is setting a goal and stopping there. Don't let feature creep take over. You don't need to add more mechanics to your core game. Finish your game and show it to your friends, than move on to the next idea, the next project.

Every time you start a new project try to learn something new. Try something you haven't done before. Genre, mechanic, theme, setting, technology, whatever it may be, you don't want to get stuck making the same game over and over again.


Resources

Some resources I've found usefull in the past for learning Unity, Game Design, Programming and places where I've found inspirations for ideas

Unity tutorials

  • Official Unity tutorials

    While this wasn't always the case, right now, the official Unity tutorials are absolutely brilliant. From beginner to expert, thay have videos and written articles about anything that their engine is capable of.

  • Quill18Creates

    This is how I got into game development. Some of his videos might be slightly outdated, but he as full game projects with every step along the way to get there. While I don't recommend just following along his videos, I recommend watching them, and learning from them for your own projects

  • Sebastian Lague

    His Coding Adventures series is genuinely one of the most impressing set of videos I've seen on this topic. Yes, some of them are quite advanced, but he presents them in a simple, easy to understand manner, and everything he does is free to download

Development resources

  • textures.com

    If you decide to go on the 3D route, you'll need textures unless you're a big fan of flat colours. Well, textures.com has quite a few of them. By which I mean literarly thousands. And you get free credits every day to download texture quality photos.

  • Incompetech

    Kevin MacLeod's Incompetech might be the most frequently use source of free music on the internet. If you've spent more than 5 seconds online, you've probably heard one of his songs playing in the background. It's really all free, just try picking one that wasn't used by nineteen thousand different YouTubers already.

  • Paint.NET

    Onto development tools. Paint.NET is my prefered Photoshop alternative, with has all the features you might need but it's simple enought that you don't need a new pair of eyes after opening it.

  • 3DS MAX

    Again, if you choose to go 3D, you'll need some sort of 3D modelling program. You can use Blender, but 3DS MAX is the superior tool, and it's free for students. Just for the love of god don't use it as a CAD software for engineering projects like I did. It's a terrible idea.

Get inspired

  • Game Developers Conference

    GDC features dozens of amazing talks from all your favorite games studios talking about their games, challenges they overcome and fantastic retrospective postmortems.

    While they are not directly applicable for getting started in game development, some talks are way too dry for a beginner to understand, they are fascinating looks into how the big boys do it.

  • Yahtzee's Dev Diary

    Yahtzee Croshaw game developer, writer, reviewer extraordineer's series on creating a game every month. He talk a lot about what makes a good game, code ideas of Game Design, primary and secondary gameplay loops and various challenges of game development.

  • Ludum Dare

    Creativity flurishes under constraints. GameJams are a perfect example of this. You have 72 hours (or 48 if you're really hardcore) and a theme to build a game. Any game. That's it. No time for feature creep or pondering approaches. It's just you and your team and a simple idea to be turned into a prototype. Some of my best memories of game development comes from doing a Jam with friends.


Games

Here is a selection of my games that I think are worthy of discussion.

Rect is a local multiplayer game I've worked on in 2014. Each player plays as a rectangle (hence the name), the objective is to colour as much of the board as you can within the time limit.

Yeah. Damn. 2014. This wasn't my first major-effort game (that was Altair), but this was the first where I wanted to take this game dev thing seriously. Which meant also doing all the things around game development, like dev diaries, trailers, media, etc. This was mostly done on IndieDb, a great game sharing site for independent games. Actually, it still has all my diary entries if you wish to see more of the development process. It also paid off taking the things around it seriously. I remember when I've logged in one day to check my download statistics, I've seen this crazy spike. I couldn't belive it! As it turns out, because of having a competent game profile, with pictures, regular releases and articles, I got featured on the IndieDb homepage. I think that was my proudest moment of game development to that point.

This was also the game I've submitted to the <19 freestyle programming competition.

Today, I've played it again, with my flatmate and my girlfriend. You know what, it's still a good game. I was genuinely surprised. I remember it being a loads of fun playing it with friends in highschool while I was working on it, but yeah, it still holds up. I can see some bugs, it's far from perfect, but it's a really solid little game. You can download the final version from the link below. Be warned, the final version also has LAN multiplayer, but I have no idea if it still works. I couldn't get it working. But LAN was never the main focus.


Download Rect (Win) - Indie DB

Now in terms of actually loading it in Unity, I have some bad news. Given that it was 6 years ago, the Unity UI Engine and networking Engine that this was using was fully depricated. If you're feeling brave, you can dowload an older version of Unity from the Unity Archive. I used 4.6.6, so you should use that or above. In terms of source code, here you go. Don't expect to see best practices. As I look back, I cringe at all the horrible solutions, but that's what 6 years of extra experience gives you I guess.

What is of worth learning from this game, is not really technical. I'd summarise it in these key takeaways:

What you should try with the source code:

You're welcome to show me what you made out of it. Email me on tituszban@gmail.com, or message me on LinkedIn.

Elevator is a mobile game where you controll elevators to deliver players to their floors, published May 2014

One day at some mall I was waiting for someone and watched this pair of elevators going up and down. This was around the time I started seeing the algorithms behind everyday things. I started wondering what was the logic behind the how the next floor is selected, and how it would change, if the algorithm knew ahead of time exactly how many people will board, and which floors they were going to. That was about the time I realsied that this sounds pretty fun, and I should make a game out of this. So I did.

This was the typical side project, that got out of hand. After that first burst of inspiration I started working on this to take a break from my big project at the time (Altair). Yes, I took breaks from game development, with more game development. After an initial proof of concept, where people wanted to go to floors, got in to the elevator, and got out on the right floor, and you could tell the elevator to go to floors I felt like I was onto something.

There were a couple difficult things during the prototype. Difficulties that face a novice developer, but to this day I remember the satisfaction of solving these problems. Generating random people, getting the elevator to snap to floors correctly, but the one that I remember the most, was a simple yet annoying issue: Once the elevator arrives on a floor, each person starts moving towards a random position inside the elevator. If the elevator leaves before reaching that position they go back to where they started (so you can't prepare people near the door, but leave them there). However, if they were inside the elevator car, but not yet at their desired position, and the elevator leaves the floor, they ran out of the moving elevator. This was clearly wrong, but the solution, obvious it may be for the reader and for me now, was quite difficult. I did find the right way, checking before turning back, if already inside the elevator, and continuing if so, but also setting the elevator as the parent early, so the person isn't left behind.

After having completed the prototype, and realising that I have a solid primary gameplay loop, I started focusing on secondary parts of the game. I came up with objectives, calibrated people's speed and how quickly they start to get angry and leave. This was also around the time I came up with powerups. You may sense a theme in my early games, I love(d) powerups! They added a sufficient amount of extra exictement, however, thinking back some of them should have been permanent, as certain levels are just impossible without activating some right at the beginning. Spoilers if you actually want to play the game. (If you're interested, you could try and fix these issues. Try downloading the game, and see what happens if you modify the people and the powerups.)

This was followed by the thirtiary loop, setting up levels, creating different backgrounds, multiple elevators, persisiting money, etc. And right there, in a couple months, you have a pretty solid game. What's next?

The first game I actually published! As it turns out, publishing a game to Android is cheap and easy. Like really cheap. At the time of writing it's $25. Which is not nothing, but also negligable compared to some other platforms. That is $25 as a one of, not per game. If you're serious about game development, and intend to publish games onto android, it's 100% worth the cost.

I definitely thought it was worth the cost. Porting over to Android was not easy, but Unity makes it as simple as it could be. And there it was. Out in the world, my first published game. I couldn't wait to tell the everyone I knew. Some did download it, which as it turns out is really helpful, as that initial interest the Play Store interprets as it being a relevant game, and it goes ahead and recommends it in the store.

Throughout its life it had quite a bit of success at least by my standards. At its peak it had a couple thousand people download it from all over the world. And ratings! Oh, the ratings, yes the first few were my friends. Obviously. But as time passed, I started getting random people rating it! Yes, some people didn't like it, or didn't understand it, which always happend, but on the whole it got positive ratings, and I was happy! A couple years ago it was pulled due to some play store changes that I didn't update the game for. I missed the emails, and it was far in my rearview mirror. But you know what, I went back, fixed the Play Store listing, and you can go and download it from here. Yes, you'll get a warning, that it's for an old Android version, but it still mostly works.

Get it on Google Play

So what about other platforms, IOS more specifically? Well, to publish on IOS you have to pay $99 a year as a store fee. Which while makes sense for professional developers, it's a bit steep for a hobbist such as myself. Also, you have to have some Apple computer and even a Mac Mini will set you back $799 which I'd rather spend on anything else. You may decide that it's worth if for you, but it wasn't for me.

This too, is an older game, so you'll have to grab an older version of Unity from the Unity Archive. For this too, I've used 4.6.6, and it worked just fine. You can download the full source from here

Key takeaways:

What you should try with the source code:

You're welcome to show me what you made out of it. Email me on tituszban@gmail.com, or message me on LinkedIn.

A note on monetisation: as you may see, there are no ads, no microtransactions in this game. Not to say I didn't consider or even experiment with avenues of monetisation, but at the end, I decided that it wasn't right for this game. This was a passion project, but as such, I want to be able to move on once I'm finished. I was much happier with a great pure experience, than something cluttered with ads. You may chose to monetise your games. And yes, something that you've worked hard on is a great feeling, but keep in mind, why you're making games.

Altair is a 3D first-person exploration-puzzle game I've worked on 2013-2014 as my Year-long project in highschool.

Oh boy. The story of Altair is more a cautionary tale. I've discovered the world of game development at around mid-2013. I was amazed. I thought I could do anything. I was wrong. After building a couple prototypes for moving around in first person, I thought it was a good idea to start working on a full length first-person game as my year-long project. That seems perfectly reasonable. I was wrong. I thought I should start writing lore, come up with characters and a story, design a map, and of course, fill it with puzzles. Because that's what a game is supposed to be. Wrong. Wrong. Wrong. Luckily the friends who I was pitching ideas to convinced me not to do my original idea, which was a Portal-like puzzle platformer with some witty AI. That would have been an even bigger disaster. Here is a hint: you may think you're as funny as professional writers with years of experience, but you're not.

Here is just a taste of all the things I've tried to include in this game, and got wrong

Certanly every one of these issues could've been avoided or fixed, but not all of them, or at least not in one year. I bit of more than I could chew, and than stubbornly kept at it, not seeing most of these flaws on a project that I've dedicated so much time to. Based on how critical I am with this project now, you might think I consider this project a failure. I don't. Don't get me wrong, I don't think I've made a good game, but I've learnt so much from this, that at the end of the day I'm happy I've tried this. And you should be too, because it's a mistake you don't have to make.

If looking at the above list of failiures you still think, that you want to attempt a big, feature length 3D game as your first, you know what I understand. I also thought that "to hell with anyone who thinks otherwise, I'm building the game of my dreams!". I do hope, that you listen to me, and start small. I am so much prouder of some games that I've built in a weekend, than this that I've worked months on. But if you insist on building something big, at least try to learn from it, as much as you could. Here are some of the things I've learnt from this project:

You can get the source code from this link if you really feel like exploring this disaster of a game. Unity 4.6.6 from the Unity Archive as for some of the others. I don't think there are really key takeaways here, other than to start small, and build games you can actually finish. Or build your dream game, I won't stop you!

There is no list of things you should try with the source code for this project. You can try fixing some of the issues, but it's not worth your effort, instead, tell me about one of your projects that turned out to be a disaster, because it was too big. Tell me about what you've learnt from it! Email me on tituszban@gmail.com, or message me on LinkedIn.

Artificial is a 2D narrative driven arcade game I've developed with a couple others for the Indies VS Pewdiepie gamejam in November 2014

A bit of context about game jams and this one in particular. Game jams are special. While they're technically competitions, it's more an opportunity for free creative expression. There's a common saying that creativity flourishes within restrictions. Game jams are the embodiment of this idea. You have 48-72 hours, and sometimes a concept/theme (but not always). And with that blank canvas, you're invited to build something. It's stressfull, and sometimes what comes out isn't spectecular, but sometimes, something special is created. You also get to experiment with ideas and collaborate with new people. This game jam in particular was the Indies vs Pewdiepie gamejam in 2014. This was a one of game jam hosted by online game hosting site gamejolt with YouTuber Pewdiepie. At this point he was already a well known creator, but it was before he became a YouTube superstar, and before his various controversies.

I think this was my first proper game jam and I took it very seriously. I've recruited two artists and a musitian, just on some online forum, and got my best friend involved to do some design and writing. Funny story, during the first day of the jam I was busy recieveing an award for Rect in the <19 freestyle programming competition, but I ran off right after the award ceremony, to go over to my friend's and work on this game. I've always cared more about building things than recieving praise for them.

Please note, as this is a story heavy game, and the following discussion will contain spoliers for said story, I strongly recommend playing it first, and than reading this. Here is a link for it: Artificial on GameJolt

From this point, I'll assume that you've played the game. So there we were, my friend and I and two artists online, looking for an idea. It's difficult to pinpoint, what inspired us to do create this game, but there are a couple things that lead us to creating this game. First of all, round this time both me and my friend were obsessed with Thomas Was Alone, a brilliant, werid indie platformer by Mike Bithel that featured some amazing characters who were also happend to be rectangles. This inspired the antrophomirfisms of the characters and the style of the narration. Second, we had two really talented artists, who have completely different artstyles. It's a game jam. You can't interview people, you take artists as they come and come up with something to fit them. This inspired the split world idea, so both of them can work in their own style. Last, my friend was a brilliant writer even at this point, so we decided to make this a story focused game.

The first big obstacle we overcame was getting a voice-over artist. At this point I was a huge fan of HocGaming, a YouTube channel mostly doing Kerbal Space Program gameplay. It was ran by Harv, who has an amazing voice. We've emailed him early into the project, asked him if he wanted to do the voiceover, and to our surprise, he said yes. This sealed in that we wanted the game focusing on narration.

So let's talk about the game itself. Wanting to do multiple smaller games, we've decided to make them simple acrade games, simply so there'd be nothing to explain for the people, instead they can understand each of the four games, just by looking at them. Shoot the baloons, save the people, escape from the lava, find the objects in the maze. which could very easily lead into, through the collapse of their reality, the real objective of the four characters, defend the city, destory the towns, escape from the firewall and provide hacking support. If you haven't played the game, I imagine this last sentance was very confusing.

So step one: create the four games, and a way to jump between them. Step two was, having a slider, to controll the probability of "reality peaking through", which required the randomised replacement of sprites, with a given probability. And then step three was, wiring up a narrative. This was the first time I ever had to do this. It was not easy. I still remember clearly, the deadline was 7 in the morning on a Monday, and from around 10 o'clock last night all I did was story scripting. Everything else was done, the artists and composers did a top-notch job, and delivered everything on time. All the animations in place, all the soundeffects triggering. Harv also delivered an amazing set of narration files. It was all in place, I just had to make it bring it all together. At this point I was at home, and from 10 to 7 the next day, I was scripting the story up, with my friend kept the life in me by chatting over Skype. But it was done. It worked and we watched the upload bar racing the end-of-jam countdown. I'm gratefull to my mum that I didn't have to go to school that day.

To this day, this is one of the games I'm proudest of. It came together beautifully. Not to say that it's perfect. I've plaid it today, and while I was wowed by how well it still worked, I realised that it was increadibly difficult. I've failed some levels over a dozen times. And it makes one of the mistakes that underpolised games oftem make, that if you replay a level, you have to listen to the same narration over-and-over again. The only thing saving it, was how good Harv sounds, but I can see how this could have been really annoying. It also fails to explain why some screens get locked. I've realised that the person who was different, the black balloon, the gold nugget and fourth thing to find in the maze were the reason this happened after I've plaid, by reading a text file in there. The red border communicates that something is going on well, but what is that thing should've been better explained. Lastly, the biggest mistake of all, which is somewhat related to it being too hard, was that two of the games were not really necessary. Nothing happens, if you don't save the people as the ambulance, and you can just hide in the corner from the cars, so Natalie can be ignored. And poor Glen, while he wants to provide support, if the player has no time, they can't use him to help the others. I think there should have been more significant gaps, where the player have time to fix up the other games with Glen.

As always, get the full source code and an older version of Unity (4.6.6) from the Unity Archive to see this project for yourself.

So what are the key takeaways from all this?

What you should try with the source code:

You're welcome to show me what you made out of it or any of your game jam games. Email me on tituszban@gmail.com, or message me on LinkedIn.

Lasers is a puzzle game I've worked on in 2015.

Lasers was really a passion project of mine. For a long time, I had this obsession with seeing lasers bounce back from a reflective surfice at a perfect angle. So with a couple games in the can, I wanted to make one, where you get to play around with bouncing lasers all over the place. I also wanted to make a puzzle game and I wanted to make another mobile game. So, the concept of Lasers was born.

You may see many similarities in art style to my other games, where I was doing the art. Flat primary colours, simple shapes and names that tell you exactly what to expect from the game. Art was never my strong side, but with these at least got me a point where the game was stylish, even if not pretty.

As puzzle games go, especially level based and for mobile, the steps in development are fairly straight forward.

  1. Come up with a core mechanic. In this case it was lasers reflecing from surfaces, going from an emitter to a target.
  2. Create a set of levels using this core mechanic, starting at the very simple to the more complex.
  3. Introduce new conecpts and mechanics (obstacles, multi colour lasers, black holes, portals, splitters, etc)
  4. Create a set of levels using just this mechanic, to let the player have an intuitive sense to it.
  5. Create a set of levels that use a combination of previous mechanics in combination
  6. Repeat from step 3.

Working on puzzle games are always tricky. Because what you think you'll be doing is coming up new mechanics, which is the fun and enjoyable part. What you really be working on most of the time, is designing levels. Which is a lot more difficult. For each new mechanic you introduce, you should probably have at least 5-10 new levels. So you can see, you will spend most of your time on levels. And designing puzzle levels are very difficult. It's a balancing act between difficulty, ranging from the trivial to the impossible and satisfaction, creating puzzles that feels good to solve. My recommendation, is before you decide to do a puzzle game of your own, master level design in other puzzle games. There are numerous that have level editors and community sharing. Practice making levels in those games and share it with friends and the community. Once you are skilled at creating compelling levels, then you should start thinking about creating your own mechanics.

Alongside the puzzling aspects there were a couple other parts I was working on. I was trying to do some sort of story. Why? I don't really know. What I ended up with was a weird, existential storry line, where the tutorial text starts to gain consciousness and tries to figure out the meaning of it's existance. It all lead up to the introduction of the level editor. Yes, there was going to be a level editor, and community map sharing. How? I don't think I've figured that out, other than encoding the levels in a strange sort of encoding of my own. I haven't discovered JSON or XML at that point. Looking back what was quite strange, is that even tho there is a level editor, the actual maps of the game didn't use it. It was an afterthouth, after having handrolled most of the map on various levels. Also there was going to be proper mobile integration with achievements, leaderboards and so on. And I was trying to do monetisation. Yes, you may see references in the game for calculating where ads shouls go, and a strange approach to having adds you can turn off where if you do the game tries to shame the player. That was a silly idea.

However, as I was adding more and more side features, I lost sight of what was important, which is is creating a compelling puzzle game. And that's what killed this project at the end of the day. A lot of the later levels, turned into pixel hunting. Trying to find the one right layout to solve the level. I made a mistake, that's so common to bad puzzle games, where the difficulty of the level isn't coming up with the solution, but actually executing it. It didn't help, that I kept introducing mechanics that amplified minor movements (such as the black hole and the splitters) while precision was already the issue on earlier levels. In hignsight the solution was probably to make the cubes rotate on discrete angles, to eliminate this issue, but that would've required a complete rework of all of the levels.

I didn't end up publishing Lasers. I am happy, that I've worked on this idea, but there is so much I which I've done differently. Here are some of the takeaways from this project:

Get the full source code and an older version of Unity (4.6.6) from the Unity Archive to see this project for yourself. It's important to note, which took me a bit to figure out as well. If you want to start from the menu, and play the full game, not just individual levels, you have to start with the Startup scene, not the Menu scene. It creates some important GameObjects that I didn't bother to instantiate in the menu if they're missing. Something you could try to fix! Other things you can try:

You're welcome to show me what you made out of it or any of your game jam games. Email me on tituszban@gmail.com, or message me on LinkedIn.


License

What can I do with the projects here?

Can I publish these games?

No.

Can I use parts of the code in my own original games?

Yes

Can I use any of the assets (sounds, images, story writing, etc) in my own projects?

No. A lot of the assets here I have not made myself so I cannot let you just use them.

So can I use all the code with my own assets and publish those?

...No.

Can I run the projects, try them, learn from them?

Yes, that's the point.