The Great C++ Exodus – The Weight of Learning (Part 3)

Hey everyone!

Woah, a month passed. Oops?

If you’ve been following this recent story, you’re probably wondering what’s been happening with the side project. The honest answer is, nothing. It’s not exactly a pleasant thing to have to admit, but at least it’s not coming from a place of laziness.

As you might know, or might have guessed, Justin and I are still in school, to varying degrees. I’m in school 5 days a week working toward a degree, and Justin is in coop doing the same thing. We’re both crazy busy all the time.

Now, this doesn’t mean that we don’t have time to work on side projects. But it does make it a little difficult to push yourself to learn more when your life is already completely focused on learning. What this comes down to is the situation that we’ve been in for the past month. Working hard, learning a lot, and making no progress on our C++ journey.

Having acknowledged this, we’ve made a decision. The exodus will halt for the time being, at least as far as Magnesium Ninja Studios is concerned (I’m working on a C++ game this term regardless). What we’re going to do instead is change this side project to a GameMaker game, and develop it from there.

You might find that this is a move that goes contrary to what we’ve been discussing recently. My answer to that is a wishy-washy “yes and no”. We’re still incredibly inspired and excited to start working in C++, but we acknowledge that we have limits. However, making games is something that we’re still eager to do, and to be honest, this past month has been a serious case of withdrawal for me personally.

The compensation I’ll offer is that we’re taking this side project as a good reason to start improving our development, design, and promotion capabilities. We’re going to get better at this game making business, and we’re going to make something that’s bloody awesome.

You’ll see more about the side project in the future. I’m not going to make promises about when or what, but it will happen. If our lives are kind to us, progress will be plentiful. Look forward to it, and fear not; the exodus is far from over.

We’ve just found a side quest, is all.

See you all soon!


The Great C++ Exodus – A Slight Detour (Part 2)

Hey guys!

Today I’m going to talk briefly about our trials and tribulations so far in development. To summarize what’s happened since the last update: We’ve decided to tackle a smaller project to help us get a feeling for C++ game development before we attempt to develop Tomorrow’s Horizon completely from scratch.

The New Project

To help ourselves get a better understanding of C++ game development, we’re starting a side-project. We’re developing this side project using Angel2D, a C++ engine designed for game jams. This helps us avoid the low-level details of developing an engine, and instead lets us devote our time to understanding how to best apply C++ data structures and classes to game development.


We haven’t yet solidified the details of this side-project, so stay tuned for that. What we do know is that it will be a 2D, platformer game with elements of random generation.

Source Control Problems

The discovery of Angel2D was a blessing for our motivation levels. Unfortunately, adding Angel2D to Git was not. We spent a fair few hours struggling with getting commits to work properly with the pre-existing Angel2D projects, only to discover that an issue with a build file was using absolute file paths instead of relative paths.

After fixing this issue and updating our .gitignore file, we managed to get commits working properly and did some test pushes.


What we have to show for ourselves at the end of all this isn’t particularly impressive, but it’s indicative of a bright future not only for this side-project, but for our learning.


Hello world! It’s good to be here.

See you all soon!


We’ve Got An Itch

Hey everyone, Justin here!

Just a quick announcement that we’ve decided to move all of our games from various file-hosting sites to a centralized portfolio at Many have described this site as the bandcamp of indie games, and it should make it much easier to manage and download our games in the future.

Our profile can be found here:

Every game we’ve worked on as a team is up there, right now, for the low, low price of absolutely free! If you have some time to spare, we’d greatly appreciate you checking them out.



The Great C++ Exodus – Getting Started (Part 1)

Hey everyone!

I said I would spend some time talking about our C++ port as it progressed, and so here we are. Part 1. ‘Oorah.

Why C++?

Perhaps the first question that comes up with this port is why? Why are we taking the time to start from scratch like this, after having spent so long developing the game in GameMaker.

The primary reason for me is that C++ gives me the ability to do actual, competent technical design. GameMaker is technically Object-Oriented, but not in a way that I find valuable or clear. I feel that GameMaker is a fantastic way to approach the concept of game development and programming, but not a place to truly excel.

Moving to C++ gives us the advantages of true Object-Oriented design. What that will eventually mean is that I can develop the game faster, more efficiently, and more intelligently. It also means that ports are more likely to happen, and that integration with popular web services is in the cards.


What are we using?

For development, we’re using a number of tools:

Justin and I are both using Visual Studio 2013 for our compilation and programming. We’ve chosen Visual Studio mostly because we’re familiar with it and how it works.

We’ve decided to use SFML to develop this project. It allows us to focus on game development, instead of nitty-gritty of operating systems.

We’ve chosen SourceTree and BitBucket to handle our version control needs. Version control is an interesting and very broad topic, and we’re very slowly digging our way into its secrets.


First Steps

The first issue that popped up for us was perhaps the most basic issue: How do we start this project?

Developing a game in GameMaker is fairly simple to start with. GameMaker handles most of the complicated stuff for you. It creates the window, handles your game loop, and renders things for you. The biggest challenge for us so far has been internalizing how exactly these things work in a more basic environment.

I’ll talk more about game loops and rendering in the future. We’re still working through it. Our biggest goal right now is to learn how to design and develop this basic aspect of the game in an optimized and efficient way. It wouldn’t do to build an entire game upon a faulty core.


I expect us to make mistakes as we go through this process. This is our first time approaching game development from this angle, and it’s something that is relatively complex. I’m okay with the mistakes though; they’re the best way to learn.

What we’re doing now

Our time at the moment is being invested into rendering. The main game loop exists and is functional. Our priority is to design the rendering process properly, so that it stops being something that we need to think about in the future.

I’ll be back fairly soon with Part 2, discussing the game loop and rendering more in-depth. Hopefully these posts continue to interest you! If you have any insight or thoughts on what we’re doing, feel free to let us know.

See you all soon!


Some much needed Vitamin C

Hey everyone!

We’ve been absent for the better part of the past few months, and that kind of sucks. School and work absorbed basically all of our time, which also sucks. In the time that we’ve been gone, we’ve made some decisions, as well as progress. Allow me to enlighten you:

We’ve decided to make some design changes. We’ve been having issues with our initial design and have been struggling to realize it in a fun way for a while. These changes will be explained more in depth in the future, but for now, let me explain with the following.

Our goal for the future of Tomorrow’s Horizon is to transform it into more of a strategic game in which you make specific choices about the path you take through the world, and then fight to obtain rewards that will help you achieve victory.

Vague! Wait for more details. They’re coming, I swear.

The second big change we’ve decided to make is the conversion of the game from GameMaker to C++. It’s a change we’ve been wanting to make for a very long time, and we’re going to go through with it. It will result in a large development set back, but we’re already refactoring a lot of the game due to design changes, so I feel like this is a beneficial move.

What does this mean for the game? It means better optimization, faster development time (once we’re up and running), better potential for DLC and cross-platform release, and easier third party integration.

What I’d like to do for the time being is start up a semi-frequent development diary on the process of converting this game into C++. This is our first time developing a game in C++, and I’m sure we’ll make plenty of mistakes and discoveries. We’d love to have you along for the ride.

The first of these posts will come along soon. Hopefully you enjoy them, and maybe you’ll learn something with us as we fight our way through this new frontier.

See you all soon,


Full Stop

Hey everyone,

As a sort of continuation of last week’s post, we’ve decided that (at least for the time being) Tomorrow’s Horizon is going to go on a hiatus. We’re too busy at the moment to give the game the time it needs to grow into something great, and I’d rather we wait until we have more time than try to stuff in little bits of disjointed work whenever we can.

My apologies for the delay, but it’s important for us to focus on our education as well. I hope we can get back into development soon! There will likely still be blog updates for random events / developments, so don’t count us off as dead. We’re not dead!

See you all soon.



Hey everyone,

There won’t be an SAS update this week because we got absolutely nothing done on the game. We’re kind of swamped with work as the crushing (not really that crushing) reality of school/work settles back in. I’m not exactly sure what we’ll do just yet, but obviously we’ll let you all know!

Stay tuned for more exciting school drama.