Category Archives: Uncategorized

Composing for the musically incompetent

This time I wanted to address a topic I find quite interesting, although I am no expert on it whatsoever.

I have always been an admirer of all kinds of musical genres and am certainly no exception in that regard. Despite that fact I never came across the opportunity to professionaly learn an instrument or really understand how to write and read music. Nonetheless from time to time there are some melodies building up in my head I would wish to be able to write down.

As we are currently developing games which are very much in need of a soundtrack backing up their gameplay and visuals there certainly is the opportunity for me to experiment. On top of that, financing a musician wouldn’t be possilbe for us at the time and finding the perfect fit for the team would take a hell of a lot of time or strike us as a miracle. So I thought to myself why shouldn’t I at least try something out. Can’t hurt can it? The first question in my musical adventure I recently began was, where to start?

After some time fooling around at the keyboard and trying to get some nice sounds from my guitar I decided it would be much easier for me to just do it digital. I have to say I am not entirely new to music creation tools, however professional composing is pretty much an unkown deep sea creature to me. If you are, like me, just somebody scratching on the surface of the audio world and you don’t feel the need to dive deeper it’s good to go for some free software that does the basic job.

I decided on using lmms (linux multimedia studio), because I was amazed by it’s diversity of functions and easy to use interface. I am an amateur at this, but if you ask me for my opinion I would say, it is a masterpiece of free music creation tools. Have a look at their site if you are interested.

Enough with the advertising and on with the actual topic. I won’t tell you anything about how to use that program or how to compose something because as I said I don’t have a clue about it, but what I will tell you are a few facts I realized while struggling with my first attempts.

As I was listening to some soundtracks for inspirational purpose, I was lying on the floor, my headphones on, eyes closed and picturing all kinds of images in my head. Previously I had the fear that I would not be able to do anything musical, but at that moment I realized that music is really just another way to describe feelings, landscapes, characters and objects to us. Listening to something makes me visualize a story in my mind, so I was certain it must work the other way round. With that new found courage, I decided on creating the musical background for my favourite environment in Reblobed: The old mining cave.

As I had already drawn the whole stage I had a lot of pictures to use as orientation. The first thing I wanted to hear on the track was something like water dropping from stalactites.

If you listen to that track it is nothing more than a simple bass, but with a picture in the back of your head it suddenly sounds like big water drops on an old piece of leather lying around in the cave.

As I was looking at my drawings and dream walking through that environment I saw a lot of smaller drops joining the big ones in leaving the ceiling…

… and maybe even hit some rusty metal pieces inbetween.

After only mixing those noises I had something quite rythmic and atmospheric put together.

So far, so good. At that point I still needed something melodic for the environment. I opened up the piano scroll within lmms and at first was at a total blank. I thought, I could use pictures in my mind to find the right sounds but how are pictures going to help me create a melody? Here I was sitting in front of my pc, with that same old fear of the unknown I had previously managed to ignore. After giving in to my frustration I went to look out the window, inhaled some fresh air and was about to end the days work.

Angry and bored I took the mouse and randomly began to put senseless notes on the scroll which turned out to be a great action. Within a second my frustration went away, because I had found something all too familiar on the screen. I was just drawing lines and forgot about the feared complexity of melodies. The next thought I had was: If I can simply draw melodies, how about trying to draw my cave level by using notes?

melody

Imagining stone tunnels winding up and down through a mountain, my melody became a curve of low and high points. Walking around in a dangerous cave, with a lot of pits to fall in, you don’t want to just run the whole way through. Inbetween the flawless walks, there are well needed slow downs.

At the end I felt like listening to the sounds of a mysterious labyrinth consisting of looping tunnels and me having a hard time finding my way out.

Finishing the track was a lot of fun and I am happy with the result. At the end I realized visualizing stuff can help a lot with music creation. One does not have to be an expert to get something working.

If you want to listen to the complete track click play below.

On communicating progress – Introducing RetroLeap

We have been silent for a long time. A very long time. A very very long time. In fact, according to facebook, it has been 233 days since our last post on the page. Our last release was the Spanish translation of 2D House of Terror, published 17.03.2013, more than 2 years ago and the occasional dislike and question regarding our activity suggests that many of you are wondering what exactly it is we have been doing all this time.
Well, i am about to break that silence, yet, lest there be any misunderstandings by anyone reading just the first paragraph, i want to make one thing abundantly clear right now: We have been and are still working on all of our announced projects(and more). We have not – and will not – abandoned anything and even though this post will, once again, not contain a release date, releases will undoubtedly happen. Lack of communication does in no way imply a lack of work – on the contrary. Although it has been reiterated time and time again, it nonetheless remains a fact that game development takes time, a huge lot of it (with more than two years being the norm, rather than an exception) and communicating its progress is not quite simplicity itself.

Sadly, despite the inherently graphical nature of its results, most aspects of the process of game design do not lend themselves all too nicely to quick presentations in short facebook posts with an optional image attached. In fact almost none do.
Visual art and music are a prominent exception, because results in those fields are largely self-contained and easy to appreciate even by those who never partook in their creation. Even in those fields, however, the beautiful simplicity begins to crumble once the progress advertised is no longer entirely new content but small, incremental improvements to existing one, which are just not quite as exciting to the average follower.
It gets much worse in my department, creating an engine and tools to control it. A simple screenshot of an unfinished program is just not very interesting or informative and whilst a short snippet of code might please a very small(albeit important) subgroup, it looks cryptic to all others and can therefore not be considered the best method of communicating a games progress.
How then could it be done? Videos showing developers at work, explaining the process whilst engaging in it, like the excellent and inspiring youtube series AiGD are certainly a valuable and fun option. However, even ignoring for a moment my apparent shyness and lack of confidence performing in front of a camera, composing those is a non-negligible investment of time and effort, a scarce resource in a team consisting of two full time students only. A resource we prefer to dedicate to the actual development.
Nonetheless, no matter how suboptimal it might be, any attempt at communication is undeniably better than no communication at all.

Which is why i intend to set right what once went wrong and start publishing blog updates on a semi-regular basis. I hope those are an improvement over way too shallow and short facebook posts, which could be interpreted less kindly, whilst leaving just a minor dent in our limited “free” time.
In this first one I shall simply get the readers1 up to speed and provide a general overview of all the areas I am currently working on. I will gladly go into more detail about specific topics in future posts(suggestions are welcome).

So, without any further ado, allow me to finally introduce the fruit of my labor, the child of my mind, the cause of many a sleepless night:

Retroleap Promo

This beautiful promotional picture was created by our wonderful graphics artist(as were all the logos) to help advertise the game engine powering both of our currently announced projects(Reblobed and Saviour), dubbed RetroLeap.
Whilst our previously released games committed the violent atrocity of intertwining engine and game content related code, we chose(after several complete rewrites) to use a better structured, more generic and flexible approach this time.2 Using an already existing engine, of which there are plenty, was never really an option, not only because of the obvious lack of Dreamcast support, but also for more personal reasons.
Whilst we take our work very seriously and do intend to eventually earn some money3, right now we are in the unique position of not having to. We develop games for many reasons: We want to entertain. We want to convey stories. We want to improve our society by advancing the appreciation of the most brilliant and engaging form of art ever conceived4 and maybe even make a small profit.
But mostly, we do it because its fun. Its our passion and as such we want to do it in the best, not necessarily the fastest, way possible. Utilizing something like Unity and trying to fit it to our needs, despite all its merits, is neither as fun nor as educational as building our own engine from scratch. We want to understand and control everything. We do care about performance. We do want to be the gods of our own imaginary worlds5
Due to this, a large quantity of time was invested in providing a high quality design and implementation of something fitting our needs perfectly. The result is a feature-rich, flexible, easy-to-use, efficient, component-based game engine optimized for 2D and running, among others, on Dreamcast,OpenPandora, Dragonbox Pyra, Ouya, Linux and Windows PCs and probably some more by the time we are done.6 Along with the retroleap engine itself, I wrote several tools for creating games and content, which is what all those smaller logos are for. A fellow dreamcast developer once wrote

“The best engine in the world is essentially worthless if it takes a low-level computer engineer to create anything worthwhile with it.”

a sentiment I very much agree with and which is confirmed by our own experience.
Consequently, our tools can be used to create complete (albeit simple) games without having to write even a single line of code and keeping with the theme of easily presentable information, lets view some “pretty”7 pictures of them in action:

RetroLeap Screenshots

Obviously, with more complex games, like Reblobed and Saviour, writing some game specific code is unavoidable, so some way to do this had to be provided. Extending RetroLeap in its native language(the wonderful C++, of course) is possible, but for short iteration times and quick and easy modifications embedding some scripting language was the natural thing to do.
Even considering the range of platforms we wish to support, there were several options available to us on pretty much all of them, most notably Angelscript and the de facto standard for game scripting, Lua. In the grand tradition of standards and for reasons not entirely dissimilar to the ones for not using an existing engine, i chose to ignore that and decided against employing any of them. At the time, I had recently become very interested in programming language and compiler construction and the idea of using a scripting language of my own design in our biggest project to date was quite intriguing.
In a commercial, profit-oriented environment it would be nigh impossible to set aside the time and resources for developing such a language and possibly delaying release, when a perfectly fine(and quite likely better) alternative is freely available and proven viable by countless successful projects. Luckily, in our current situation the time and resources used are entirely my own and i am free to spend them in any way i please, which is exactly what i did ;-).
Instead of showing off any code samples or explaining anything profound8 I will simply tease you with yet another one of those neat logos ;-)9:

Chronicle Logo

Everything mentioned above is in a functional state and in fact used to create our games. It is not, however, ready for release in any form yet, as it is incomplete, continually changed, extended and improved and doubtlessly contains countless bugs i am currently unaware of. It is what i spent most of my “free” time on in recent months and, as explained in the beginning of this article, not the type of work that makes for good(quick) advertisement. Of course we have been working in other areas, too, but those, like story development and level design, are equally hard to show off.10

I originally intended to end this article with some random piece of code used in our projects, because I am, after all, a programmer at heart, and publishing something without a single line of code feels like heresy. Sadly all short enough fragments considered were either just not particularly interesting by themselves or might require a post as big as this one to adequately explain. Doing so would certainly be interesting and fun, but rather contrary to this articles stated purpose. If, however, even a single one of our readers11 expresses his or her interest in reading a purely programming related post containing some fascinating C++ templates i would be more than willing to satisfy their curiosity.

Well, that’s it for today. How did you like our very first blog post? What would you like to read more about? What improvements would you like to see in future posts?
More C++ code? More C++ template code? More pretty pictures? More pretty pictures ;-)? Please tell us. Praise, any form of criticism, constructive or otherwise, suggestions, insults and threats of violence can be addressed in the comments or you can contact us directly via email, skype or xmpp.


  1. My insuperable optimism is demonstrated in this plural form ;-) 

  2. I have a half finished article detailing how our past mistakes guided most of our current design
    decisions. If anyone is remotely interested I can finish and publish it 

  3. Both Saviour and Reblobed are planned as commercial releases. This does not mean they wont be open source. 

  4. Video Games are art, don’t you dare question it! 

  5. Alright, i admit it, NIH-Syndrom might have played a minor role, too. 

  6. This might actually win some award for most buzzwords in a single sentence. Sorry about that. 

  7. The word “pretty” is – of course – a euphemism in this context, as the editors, whilst being useable, have some serious quirks in need of fixing and are not yet ready for release in any form. Also, dont pay too much attention to the content, it does not represent the real status of any game but was quickly thrown together to have something to show without revealing too much regarding any of our projects. 

  8. I will gladly elaborate in a future post if anyone is interested. 

  9. Everyone should have a graphics artist at home. Its so useful ;-) 

  10. At least without ruining parts of the finished product, especially with story driven games, like Saviour 

  11. That is, all of them ;-)