Wayward Preacher
Design. Code. Create. Preach.


Check these out!

Mistakes I made while working as a programmer – part 2/2

Introduction - part 2/2

In the last post, I’ve described problems with teamwork and work organization. Let’s continue that subject for a bit more and then get to more technical matters. 

Work organization

Temporary solution is good enough as long as nobody complains.


In theory it shouldn’t happen. In practice, often happens that temporary workaround becomes final solution, especially when a deadline comes around. If there’s no other way, or you’re creating prototype or demo – sure, no problem. Temporary, quick solution is good enough but I dare you, mark it somehow (i.e. // TODO: temporary fix/solution) ! Do some forementioned code review after a while for heaven’s sake! It’s not uncommon that other programmer or even you will add a new functionality which will rely on temporary workaround, which won’t work in given case. That will cause creating a workaround to push forward that will raise the technological debt. So verily I say unto you, the sooner this temporary hack will be fixed the better.

You can read more about it here:


Resting on our laurels.


So you think you can code? Let’s assume – yes. People around you think of you as a team member, not only “the member”? OK. Do you respect you QA as thyself? Great! And you think that’s enough? Au contraire, my brother and sister. IT is rapidly growing – probably it’s the most dynamic business in the world. If something is rushing forward that much, you cannot stay in place. No other business may truly say, that If you’ll stop, you’ll definitely stay behind. And it’s going to hurt. Badly. So, when you do your bare minimum at work, it’s time to pull your socks up and start the real work – new solutions, new programming languages, design patterns, technologies, engines, frameworks, standards, etc. Every kind under the sun!

I’m not saying that from now till the day you die, you’ll have to work or study without any break. No, no, no – watch an episode of your favorite soap opera or 50+ images of cookies that look like cats on boredpanda. But let it be one episode and not half of the season! Change proportions of your time-wasting activities and guilty pleasure into something more mind-expanding. It may be a podcast, there is a ton of great lectures from IT conferences. Maybe you’ll find some inspiration or a solution of a mind-boggling problem?

You can read more about it in these posts:





Programming technique

I’ll optimise code from the start, because there will be no time for fixes later.


“Premature optimization is the root of all evil” – words said by Donald Knuth are still true nowadays. You will need to fix your code anyway. It’s just going to happen. There is no perfect code. Refraining from premature optimization does not mean you can be sloppy! It doesn’t mean that you cannot speed up in any way as well! If you’re not coding for yourself (which happens in most commercial products), code needs to stay clear, readable and flexible enough, to be developed later. That’s it.

You can read more about it here:


Code is unreadable? But it works? Leave it alone, then.


Rarely only one person works on given part of a code. That’s why variable names like a, b, a1, etc. which won’t say anything about their purpose, won’t help anybody. And when you’ll start working again with that code after some time.. without documentation… comments… well… Good luck. You don’t know how to write good, readable code? Take a look how current project is developed. If it’s a big company, it is likely to have coding guidelines. Those might turn out to be priceless or even mandatory to follow. Even if you do have your own coding style, it won’t hurt to analyse other people’s approach. It may actually be a good supplement in parts, where your solution is flawed.

You can read more about it in these articles:




Comments in code are for lamers.

Of course, since we want to write code that doesn’t require comments a thisspecialflagtodosomethingawesome variable name is crystal clear and convenient to write. Especially when function has a couple of thousands of lines and is heavily nested. There is no possibility for you to make a mistake. Code commenting doesn’t hurt! You don’t have to describe every effective code line separately. In most cases a method will consist of code blocks, which have some responsibility. If it’s not big enough to be factored out, leave a comment, so that a person, which will work on that code later won’t have to wonder “what the hell author was thinking here !?” Tom Van Vleck (founder of MIT Computer Science and Artificial Intelligence Laboratory, computer security specialist), once said:


Don’t be like Tom…

You can read more about it in these articles:




KISS is just a band name.


Believe me, instead of one method of several thousands of lines; it’s better to have a couple of methods thousand lines each. And still it’s a bit too much. Keep It Simple, Stupid – the beauty lies in simplicity. Seriously, eliminating bugs with less granulated code is much easier in the long run.

If you’ve found big chunks of code with single responsibility factor it out into separate method. That single responsibility of a method or class should be your rule of thumb in code design. That allows you to give that portion of code a proper, compact name that doesn’t need much of a comment since it’s self-explanatory… You see where I’m getting with this, don’t you?

You can read more about it in these articles:



Those nested ifs in loops and methods are so picturesque…


Maybe they are pretty, but the moment you make mistake and remove wrong code block indicator (e.g. bracket in C++) you’ll be pulling your hair out during debugging. I’ve personally learned that nesting should be avoided as much as possible. Of course to reasonable extent.

For example – in the beginning of a method, instead of writing:

We can do it like that:

That will allow us to check all initial conditions for method to succeed.

In loops, for example, instead of:

We can do it like that:

Of course this approach isn’t right in all the cases. We should be extra careful here about creating appropriate conditions.

I won’t waste time on refactoring.

That sentence is actually equal to “I will waste my time to fix this whole mess after writing sloppy code.” If the methods are too long – extract the code. If you’re repeating yourself – adapt and make a common method to be used in different places. It’d be easier to debug later, to read through, to optimize. You’ve found a place to fix during wandering through the source files? Do it, if it won’t take you the whole day, of course. It’s really worth it!

Some time ago, I was working in a project, where around 40% of the code has been removed and it still worked! Not only doing it did not take a lot of time in comparison to the whole project, but the code was faster and much more readable. Aside from practical reasons, removing code is so much fun…


You can read more about it in these articles:




Memory leaks? Why bother? It’s just couple of bytes…


What is a memory leak? To put it in a simple way, it’s a state, where after creation of given object and working on it, you don’t delete it but you loose all references to that object, so it gets out of your control. If that object is referenced by other objects memory management mechanisms (e.g. Garbage Collector) won’t remove it. Even shorter: we clog our memory with objects we can’t control. Often operating system after closing entire application will have to cleanup after us.

This state is really harmful, because many mistakes of that kind may overflow operational memory and produce faulty or unexpected behavior. Currently many IDE’s have memory control tools to analyze code and detect possible memory leaks. What is more, in many of those cases we may be able to find an actual line in code which caused given problem. A simple solution to that problem is just cleaning up after yourself. In C++, for example, every pointer with new initialization should have its own delete. New standards, however, point out that it’s better to use std::unique_ptr which will deallocate the object pointed during leaving given scope (method, block or life of an object).

You can read more about it in these articles:




Code will be done, when I’ll be satisfied with it.


No, you won’t. If you’re satisfied with your code, you’re doing it wrong. The cornerstone is doing your task according to the spec and within a given time period. If you did, leave it. You can improve the code indefinitely but in most cases the time you can spend on given task is limited. Besides, the more time you’ll spend on testing, the better. Finding perfect balance between doing the actual coding and other stuff like testing, formatting, improvements, etc. needs some experience. That is why it’s better to set up your own deadline. You have to get the work done in a month? Try to do it in 2-3 weeks. Even if you mess up or change of specification will happen somewhere along the way, you’ll have 25% of extra time for damage control.

You can read more about it in these articles:





As you can see, a lot of bad things happened and if I went deeper, I could’ve find twice as much. The sooner you’ll find your own mistakes and eliminate them the better. Nothing probably will change overnight but at least try to get a hold of those bad habits and start to work on them. By doing that you’ll become better programmers, employees and colleagues. It’s better to learn on someone else’s mistakes than on your own. So: a bit of discipline, planning, empathy and cleaning after yourself will make your life easier. People around you shouldn’t complain either. I hope that seeing mistakes above you’ll be able to avoid them in the future.


Graphics used in this article are properties of their respective owners:










Mistakes I made while working as a programmer – part 1/2


I’m working as a programmer for a few years. I have experience in small teams as well as companies with over a hundred of employees. I’ve been working not only in gamedev but no matter of the company’s profile or team size, I’ve noticed a specific type of behaviours over the years. Those behaviours in many cases were negatively affecting my work and my coworkers.

I’d like to highlight something from the start: those remarks might seem really trivial. However, I think that everybody was or might be at a certain point in career, where a given mistake have been made or it might happen in the future. Errors which I’ll point out here, won’t be only connected with programming but also with so-called soft skills or certain work attitude. Those mistakes will be my personal ones but I’ve also noticed them among my colleagues. My opinion about them might be highly arguable, of course. What is more, if you haven’t made those mistakes in your career – that’s great. And if no one pointed them out to you, that’s even better.


Quality Assurance / testers are my worst enemies.

The biggest nonsense I’ve heard in my life! The worst thing about it is that many teachers, books, and your surrounding will repeat it and put it into your head. QA verifies your work and points out mistakes. Of course, having to revert and fix your code again because a tester has found something will annoy you. It will annoy you even more, when they’ll rub it in your face. But then – let it be a motivation for you to not give them satisfaction next time. Analyze again different use cases, double or triple check your code. Try to break it! If you’ll work properly with QA people, your code will become much better with every patch.

I’d like to mention a book that’s really worth to read, written by Nassim Nicholas Taleb titled:  “Antifragile: Things That Gain From Disorder.”


Taleb is a statistician and risk assessment specialist. His books revolve around mathematics, philosophy, sociology and reveal surprising relations between things around us. In the book mentioned above, the author introduces a new term: “antifragile”, which describes a state of an object, which meets random external factors. Due to those factors given object builds up immunity with every new challenge. Obviously, it’s a strong simplification of the matter, and I do recommend the lecture. In our field, I’d like to stretch that term to the code. An iterative and creative process which is bouncing back between code programming and testing hardens the code – just like a piece of glass. It becomes more and more antifragile, which benefits the entire project. Appreciate it, accept it, and work on it.

I’m surrounded by idiots, so I’ll do it my own way.


You have to be quite impertinent and self-confident to say that out loud. Even if your superior might not be qualified enough, you cannot just not follow established specification. If you think that proposed solution is wrong or impossible to achieve in given time, state your arguments and try to come to some agreement. The boss is not technically savvy but leaned into marketing area? Show the errors in a spec from his side. Not strong enough to fight it through alone? Talk to colleagues, who can help. Believe me, you don’t want to make your boss unhappy on purpose.

You can always say: “Everybody has the right to be wrong.” But it works both ways. Nobody is infallible. If you think that your solution is better, prove it. However, take other side’s opinion into consideration. Having 5 years more of work experience doesn’t make the younger colleagues idea automatically wrong. If somebody has a better solution, which won’t cost a lot to carry out – accept it, admit it, say thank you. It’s not a hard thing to do and may profit in the future.

You can read more about it here:


Why should I get along with others? I won’t waste my time for dealing with people…


In relation to the previous paragraph – basic life motto: “Don’t be a dick.” If you’re not a communicative person – you don’t have to be! Nobody expects you to be the heart and soul of the community. Just try not to be rude to your colleagues and don’t gaze at your own navel. You don’t know the moment you’ll be in trouble and need. If you’re going to annoy everybody around, don’t expect a helping hand from anyone. Sometimes it’s worth to spend half an hour of your precious YouTube time on helping somebody.

You can read more about it here:


Work organization

Why do I need the specification? I have it all in my head!


If you really think that way, to be honest, your specification is in completely different place. Along with your code. You have an idea? Some design? Plan? WRITE IT DOWN.

Analyze pros and cons of given solution, describe expected input and output. Believe me, most of the errors can be eliminated before implementing anything.

Of course it shouldn’t be art for art’s sake, and simple issues don’t need an epos of additional description. But those few lines of comment before writing any code might come in handy, especially when the spec will change over time.

Moreover, always demand specification detailed enough for you to know what to do from the beginning to the end. Something is wrong or unclear? Ask, ask and ask again.

You can read more about it in those articles:



Programmers shouldn’t test their own code.


The most popular approach, which, sadly admitting, sometimes I still have, and then bitterly regret. You’ve written a code with a given spec? Great. If you didn’t have one, you have wasted another moment of your life. Specification should always describe what you can expect from code and what are the limitations.Knowing that – try to break it for starters. Go with some edge cases or some “impossible” or “too obvious” input. Don’t waste the time of QA team. You should know already they’re not your enemies.

You can read about it in those articles:



My code is a snowflake, and my functionalities are like my children.

Every programmer thinks, that his code is perfect. At least in the beginning. That’s the perfect application of Dunning-Kruger effect. In a nutshell: “The less you know, the more confident you are about what you say or do.”


In time, you’ll notice much more initial problems during coding, anticipate possible loopholes. To have better perspective about it, find your own year-old code. Or even older, if you can. I do it myself sometimes. Then I think: “Jesus, they should’ve got me fired for that piece of crap!” but in a different perspective I see how much I’ve got better from that time.

The sooner you’ll realise, your code isn’t the National Treasure and even after weeks of hard work, your dear precious will land in dumpster, the better. This is your blood and sweat, may be even your Magnum Opus but in most cases you don’t decide whether anybody would ever see it. Be prepared for that.

Why would I ever need a code review?


Yes… Legendary code review. A thing that should be mandatory everywhere but in practice even the biggest corporations think it’s redundant. If you don’t know what is it exactly, let me explain. After you finish writing a piece of code, before going to QA, another programmer (in most cases more qualified colleague or programming lead), goes through your code changes assessing them in terms of style and functionality. If some standards are not met, the reviewer writes down suggestions and sends the changes to the original author.

You cannot even imagine how easily you can eliminate bugs that way, even before first QA testing session. Of course if it’s done properly. Even if your company does not conduct it officially, ask your colleagues to have a glimpse on your code before sending it further. It might even be after some time but have a second opinion somewhere. Alternatively – try to acquire a habit of checking your old changes, from a week before for example. Spend just a little while to double check and verification. Maybe QA haven’t found something? It might also pay off some of the technical debt.

You can read more about it here:


Time underestimation will show I’m a professional. I’ll work some overtime, and everything will be alright.

Firstly: no, it won’t. If you’ve declared 2 weeks for a task and after a half of that time your code doesn’t work on expected input, you’re screwed. Why? Code review, tests, patches, code merging… You’re really screwed.

Secondly? There’s no second point to it! Run to your superior on the double and ask for additional time. Otherwise, you will look something like that:


And with every additional hour at work you’ll be hating more and more your project, your work and yourself as a bonus. Pareto principle has application here as well. Twenty percent of work results (everything mentioned above) will take eighty percent of total work time.


Respect it, respect your work and yourself. Believe me, burning out your health won’t improve quality of the final product and the only person that will be in loss, is you.

Summary, part 1/2

This part described basic problems of working with other people and organizing yourself. Next part will continue that subject and finish up with some more technical elements.


Graphics used in this article are properties of their respective owners:










PGA / GIC 2016 report – part 2/2

Saturday, October 22nd – design, marketing and voxels

Continuing previous post, Saturday started with a closed presentation of a really great game, then continued with really great lectures and finished with awesome party. Let’s get started!

Closed presentation of Lost Ember

PGA logo

Game made by Moonshade Studio from Germany which has feeling of a mix of Okami and Journey. Even in pre-alpha state, the game looks really good, has a beautiful style and seems a bit enigmatic. From my point of view, it’s a game worth keeping eye on. You can support it on Kickstarter here.


Surviving Indieapocalypse with Michał Marcinkowski

PGA logo

A magnificent presentation about current state of gaming market and how hard is to stand out from many other productions. Speaker laughed at theory of synergising between market, demand and quality, analyses of what gamers do want (or rather why we do not know what they want, actually). He presented in very funny and unsettling way how developing games currently looks like on examples. The main conclusion is that we do not have a golden rule for success – we can’t just predict what people might like when we will finish our product. And no fame, experience and marketing won’t guarantee a success. Even really good game with really great reviews can be a financial failure. “The only way to know if your game sells, is to sell it” – that was one of the golden rules. Usage of Early Access, Kickstarter, short / episodic release is strongly advised for indie developers to shorten development time and keep financial stability. Also that way we can determine early on whether the game will have a chance on the market.

Winning the unwinnable : How to promote and sell your game with Albert Pałka and Joanna Buganik-Pałka

PGA logo

This adorable pair described a proper approach for indie developers to sell the product. They’ve explained that promotion is not marketing and how communication with people is essential for success. During the lecture, Albert and Joanna touched topics like: pitching, selling ideas and many other vital aspects of successful marketing. Aside from mentioned unique cases, the basis for the successful game launch is a plan that covers time way before the actual launch. I’ve learned a few great tips how to use social media in a proper way. To sum up – this lecture was a pure gold!

Sparse Voxel Octree usage in video game development with Szymon Jabłoński

PGA logo

Engine programmer at 11 bit studios, creators of Anomaly series, This War of Mine and Frostpunk described the general ideas of SVO usage. Voxel is a known idea – a volumetric / 3d pixel, a part of the 3d space, which can be used as graphics issue solver. In early years, this technology couldn’t be used as real-time solution, but now we may use it’s advantages. These structures, however, are really memory demanding and still a bit complicated. Luckily there are methods to optimise them. SVO is a kind of compression method and hierarchically data storage which is really useful for Level Of Detail features  (optimization for rendering of large areas that lowers quality of graphics in the distance to prevent from wasting resources on details we won’t see). The most interesting idea is the Unlimited Level Of Detail methodology that could handle unlimited number of objects without having problems to manage the level of detail of these objects and provide even the destructibility of them. This could be the future of efficient rendering but still it’s a work in progress as author described. I hope that Szymon will succeed! To conclude, SVO can be perfect for continuous LOD management, object fracturing, voxel objects rendering and many others. Presentation was a bit tricky to handle but very valuable and interesting. Here’s a link to his paper about it.


Don’t hate cheaters. Use them! with Robert Maroschik

PGA logo

An unique approach for balancing game design – to use game trainers. Many people cheat during single player gameplay, often when they’re stuck in the game, or just don’t have the time to focus on the hard part. Because Megadev’s data gathering from their trainer software, developers can deduce what parts of the game design are poorly balanced or can be changed / improved. Robert provided great examples of problems that can be found by cheat usage and therefore fixed by developers. This brings back memories of early programming experiences and computer engineering learning. It was really great and informative presentation.


Procedural levels in Jupiter Hell with Kornel Kisielewicz

A great set of procedural concepts that are used in Jupiter Hell game that will be coming out soon. By using layouts and synergised algorithms developers can generate levels that will rarely repeat at all. The procedural generation doesn’t apply only to the layout of the level but also detail outlook and order. There were many interesting tips that I’ll definitely apply when I’m going to work on some project with procedural levels.


After very informative day, I ended up at Twitch party, which lasted till the early morning. I’ve met many wonderful people there, shared thoughts and drinks – it was really great!


Sunday, October 23rd – law and stupidity

After quick reboot, the last day of conference started. Thanks to Techland’s coffee stand, people were able to live through the day :D.

Lectures about legal issues in game development with Kamila Dulska, Michał Pękała and Rafał Malujda

Most developers are very passionate people, rarely thinking about legal layer of gamedev business. Kamila Dulska talked about forms of businesses that developers might establish to work on their games without any legal problems. This was a fountain of priceless knowledge that every developer might benefit from. After presentation, I went to discussion panel, where I heard many interesting legal cases and exceptions that were presented by listeners which were worth remembering. Speakers pointed out that the best way to dodge basic problems with copyright law
is to formalize at least in a basic way terms of cooperation within team.

Artificial Stupidity with Aleksander Kauch

A great set of most popular algorithms used in game development, A*, Dijkstra, MinMax etc. Also it was pointed out that sometimes it’s not the matter of AI being perfect but rather to make mistakes in a way that feels human. Nothing new here, but still great reminder of programming knowledge.


Making use of genetic algorithms in game development with Mateusz Pilski

PGA logo

Speaker explained basics of genetic algorithms (PID, fitness functions), definitions and how they work. Presented how they can be applied in game development: AI adjustment, balancing game design and strategies, simulate ability in RPG games, various visual effects and automated A/B testing. List goes on and on! Really interesting approach that’s definitely worth testing and applying in productions.


PGA logo

These were 3 truly magical days filled with really informative lectures, meeting amazing people and great parties in-between. If somebody I met there reads this – thank you from the bottom of my heart for sharing time, thoughts, laughs and wisdom. Events like this are really inspiring and shows that gaming industry is a business for really passionate people that motivates to be a part of it in any way possible. Thank you all!

PGA / GIC 2016 report – part 1/2

What and where?

GIC – Game Industry Conference was held between 21st and 23rd October 2016 along with PGA – Poznań Game Arena. Whole conference was placed in MTP – Międzynarodowe Targi Poznańskie on several halls along the whole complex. It was stunning experience from the gamer’s as well as developer’s point of view. Developers counting in hundreds and gamers in tens of thousands – what could’ve been better?

PGA logo
GIC logo

Friday, October 21st – games first!

The first day started for me with PGA VIP day, since every developer with Developer Pass had early access to the PGA halls. Thanks to that, I could visit every interesting place without pushing through the crowd. Firstly I went through publisher halls to see exhibitions of Techland (Shadow Warrior 2), Microsoft (Forza Horizon 3) and many others.


Shadow Warrior 2

A magnificent game made by Flying Wild Hog from Warsaw. Full of action, explicit humor with beautiful graphics and great gameplay. Aside from really impressive stands and enormous Toro wandering around, publisher had crazy idea – pink balloons in a shape of… erm… “Wang”. So the #wangfestpga began. People running around with those, fighting with Toro (including myself) – pure madness!


Forza Horizon 3

Then, I’ve played a bit with Forza Horizon 3. I do not own Xbox One yet, but surely this would be one of the first games to buy. Tremendous graphics, great driving mechanics, fast cars, great feeling of speed and really big area covered with events to play. One of the best driving games of the year!


Next off, the great Indie Developers Zone, where they showed off their new productions. Developers from Kraków: Two Mammoths, Awesome Games Studio, iFun4all and Bloober Team were my first to visit.

Indie Zone


Archaica : The Path Of Light

Based on the mechanics of Laser Light in really mystical environment, a beautiful journey of puzzles made on in-house engine by two brothers from Kraków. It’s full of great mechanics and mind-teasers. From what I’ve heard, it’s coming up in early 2017. Can’t wait to see it released!


Badass Hero

A rougelite platform shooter made by Awesome Games Studio. Procedurally generated levels, comic book feel and “simple to play, hard to master” mechanics are their keys to success. Be sure to check it out too – it is going to be a very addictive game!


Serial Cleaner

Game made by my previous employer, iFun4all. A bit similar to Party Hard, with magnificent style referring to 70’s, puzzle-arcade game. You’re playing a cleaner-for-hire to mop up crime scenes before police analyses the crime scene. You’re wrapping up bodies, cleaning up the floor, etc. whilst hiding from police. Great game – I sincerely recommend it! What is more – game won a Best Game Video of PGA 2016. Congratulations!


Layers of Fear

Game made by Bloober Team, somewhat similar to horror walking simulator like P.T. telling the story of twisted painter. Great, dense atmosphere that keeps you at the edge of the seat till credits. A really great horror experience!

Then, I moved a bit west to look at games made by Artifex Mundi (Bladebound), Anshar Studios (Detached) from Katowice and Monster Couch (Die For Valhalla) from Poznań.


Mobile Hack’n’Slash RPG from Artifex Mundi – a real beaute & brute at the same time. Don’t get distracted with really appealing graphics, some parts of this magical world are really hardcore. Gameplay is really fun and intuitive. Also – game is free to play, so it won’t hurt to just try it. Warning – it makes you sink into for hours!



A true original from Anshar Studios – Player vs. Player VR experience in space. Game focused on survival in remote space station. At first it’s a bit unsettling but it gets better and better with every minute. If you’re planning to buy VR gear, it’s a must-have!


Die For Valhalla

If you’re old-school gamer, who remembers Golden Axe or you’re a bit younger but you’re into games like Castle Crashers or Alien Hominid – Die For Valhalla is the one and only for you! Don’t get fooled by comic-style outlook – this game is bloody, can be hard but most of all – it’s really fun to play! Two thumbs up!


After playing around a bit, I went through other halls revolving E-Sport – CS:GO, Tekken and LoL were the most promoted ones. Also, around it there’s the whole sponsorship industry, hardware (AlienWare, Razer, SteelSeries), streaming services (the great Twitch hall) and other brands that benefit from game industry. Last but not least – nerd gadgets and other merchandise – there’s no doubt in people’s drive to express what kind of games, comic books and movies are their favorite. Where’s demand for that, there are people willing to make profit. T-shirts, hats, mugs, jewelery, toys, figures – every soul’s desire!

Pronounced [gik]

After walking around among halls, first lectures were coming up, so I went to GIC hall to take my badge and educative part began.


Progress of Japanese Game Industry over my career with Takashi Tokita

PGA logo

The man behind Chrono Trigger and early instances of Final Fantasy series talked about his amazing career and how industry changed in Japan over 30 years. He told about his inspirations and what are his latest projects. He also pointed out that today is much harder to be original and to be seen in much larger game market than ever before. Even if he’s the creator of big AAA titles, he expressed his favor of independent developers whose productions can introduce great new ideas and they’re not afraid to take a risk.
After lectures, I visited my friends at business stands from Huuuge Games and Sperasoft among others. The first day was coming to an end with Huuuge Games Developer Party, where people could refresh old contacts and make new ones by the pint of beer and ton of laughs. Some party it was, indeed! Luckily, karaoke videos have been deleted ;P

Next part describing second and third day of events is available here.

Game Design Study: Music Games. Part II


In the first part of this article, I was talking about foundations of music games. Second part will tell the story of unusual interfaces that were developed over the years – from arcade machines to tons of plastic under your roofs. From drums, guitars and other instruments, to the touch in your smartphones and portable consoles with finally moving your body in front of the TV set.
In most cases, we will only see a slight evolution in mechanics on the software side. The secret lies in the hardware. But is it really just that?

Let’s add some toys to the mix

Dance Dance Revolution (1998 – arcade)

Evolved version of DDR played on set of buttons for two players. Level : Asian.

Beatmania mentioned in the previous part was only the beginning. The music games madness began. Next step lied really in step – Dance Dance Revolution started in 1998 and still is the No. 1 hit in Asian arcade saloons. Up to this day, DDR has over 100 official version on almost all available platforms. The drill is easy – four directional buttons, directions coming from the bottom of the screen (opposing to Beatmania) and crazy dancing routines. How’s that exiting? The main thing is, that we do not play it on the gamepad or with hands at all! We use special dance mat and we have to step onto appropriate buttons.

Samba de Amigo (1999 – Dreamcast)

Samba de Amigo

Game created by Sonic Team with the most original accessory then – a set of maracas. On screen, we have a set of 6 indicators that reflect shaking up, mid and down for both left and right instrument. Markers for a correct behavior were going out from the center of the screen and moving in the direction of one of the six circles. Let’s keep in mind that mechanics – we will see that later on. Game drew attention by having a really cute, colorful outlook and catchy songs to play with. I really recommend checking that out.

Guitar Freaks (1999 – arcade, PSOne and PS2 later on)
DrumMania (1999 – arcade, PS2)
KeyboardMania (2000 – arcade, PS2)

Guitar Freaks

DrumMania v6 arcade machine

Another game from Bemani that proves Konami made some games in the past and they were really great and innovative. This is the first game with a plastic guitar as a controller (that’s right youngsters – Guitar Hero wasn’t the first one). Three buttons and pick lever for strumming with the outlook of Beatmania created quite a hit. What is more – game was quite demanding because we had to strum notes with appropriate accuracy to get the points.
While software side remained very similar, DrumMania interface consisted of five-part percussion set: hi-hat, snare, high tom, low tom and cymbal. What is notable – we could really print out music highway of that game and use it as drum tablature.
Actually, the most complicated form of Bemani games was KeyboardMania – we had to get along with twenty-four-key keyboard. Aside from a lot wider music highway, gameplay remains the same.
We could also link Guitar Freaks with DrumMania and KeyboardMania which was resulting in the first ever created Rock Band type game (sorry kids – team play with plastic instruments also was invented by Bemani). That form was most common in Asian arcade saloons.

Donkey Konga (2003 – GameCube)

Donkey Konga

That is an odd one. With the game we receive a bongo set on which thump the left one, right one, both or clap (thanks to the microphone inside). So still we have 4 actions, music highway this time in horizontal manner, some well-know hits and we’re ready to go. Even if the gameplay is not most original one, bongos make it really enjoyable.

Guitar Hero (2005 – PS2)

Guitar Hero III : Legends of Rock

Made by Harmonix, creators of Amplitude, Guitar Hero is one of the most best-selling music games ever, with tons of iterations and DLCs. The mechanics evolved a bit from Guitar Freaks – we have now 5 lanes on music highway but we are not measured by accuracy – all we have to do is to hold appropriate key and strum the lever in specific time window. Also, instead of falling vertically from the top of the screen, indicators were coming out of the depth of it.
Keen to eye graphics and sort of story in the background were nice add-ons but the best element of GH series is song lineup. It had it’s highs and lows but everybody could find something interesting. Some of the iterations had a few small mechanics added – for example GH III : Legends of Rock had accelerometer in guitar so when we had a possibility to fire up double score mode not only with the button but also by the Slash-style guitar wind up to vertical position. Cute little thing.

Rock Band (2007 – PS2)

Rock Band 2

Another Harmonix game, created after Guitar Hero trademark was given to Neversoft and other developers. It was an evolution of GH idea by adding vocals and drums to the guitar / bass combo. No significant changes in mechanics was compensated by multiplayer mode for 4 players at once. Again, music lineup was really great with additional iterations and DLCs.

All we need is a little touch

When we’re out of the plastic, and we don’t want to sit down in front of a big screen or we’re simply on a trip, portable consoles and smartphones come to the rescue! I won’t talk here about simple Guitar Hero clones or ports of the games that were described before (one notable mention – Rock Band : On Tour for PSP takes the Rock Band interface but the gameplay is more Amplitude-like). The biggest change for music games was a touch interface. At first – there were no difference in core gameplay – we still had some buttons on the screen that were rigged somewhere in the bottom of music highway, but then a new ideas appeared.

Elite Beat Agents (2006 – Nintendo DS)

Elite Beat Agents

A tremendous game made by iNiS, creators of Gitaroo Man. Once again, we get a really great, wacky graphics and a crazy story of government agents that help people through dancing. This is one of the first games where we do not have static buttons or indicators on the screen. What is more – we do not use any physical buttons. Markers for correct behavior dance around the touch screen, their shape and additional elements indicate what kind of action we have to do with our stylus: simply tap the focusing circle or hold and follow the moving marker or spin around till we load up some energy bar. It only looks easy on the surface, because we have less actions. However, with all types of markers dancing around the screen we have to do our best to even hit appropriate marker not to mention to hit it perfectly. If you have DS, you have to play it!

Rhythm Heaven (2008 – Nintendo DS)

Rhythm Heaven – all mini games present in game

At first sight, this game is a hybrid of Wario Ware type game with music. We do not really play any known music tracks here. Instead we have a quite big set of mini games with their own musical compositions and rules – from making robots to guitar lessons. Interface mostly focuses on touch screen (tap, hold, follow) but sometimes uses side buttons (e.g. in guitar lessons we use it to bend the strings). Really fun to play with, especially for quick sessions in the bus or train.

Cytus (2012 – iOS, Android, PS Vita)

Cytus – and this is not the hardest level to beat…

Game created by Rayark, a Taiwan game company developing mostly on mobiles. Aside from great aesthetics and a strange plot, Cytus has over 100 songs (including variations) and quite original gameplay that somehow reminds Elite Beat Agents but adds its own flavor. Here we have multiple indicators in form of circles the suggest appropriate action – tap, hold, follow. Since markers appear with the speed close the light (I mean it – hard mode is really hard here) a black line dances around the screen and to keep our score up, we have to commence specific action exactly when the line meets our marker. Therefore, often we have to press two buttons at once and smudge over the screen at the same time. Music lineup is rather strange and consists of Asian pop – electronic – orchestra – drum ‘n’ bass fusion, but still game is really intoxicating.

Taiko Drum Master (2001 – arcade, 2004 – PS2, 2005 – iOS)

Taiko Drum Master on iOS

Title strictly refers to traditional Japanese instrument – Taiko Drum and tries to reflect its mechanics – hitting the center of the drum, side of it, hit it repeatedly or simultaneously with both mallets. Console version had a drum replica with mallets to play, for mobile version we can use pens. Music line-up is quite good and graphics is very stylish but again, most of the fun lies in unusual device or using touchpad as one.

The all-seeing eye

When we’re tired of playing with plastic toys or tapping touchscreen, another way of having some fun with music is getting up from a couch and start moving your body in front of camera. Everybody knows Dance Central but, in fact, it is not a first music game with camera interface. You will notice here how similar some titles can be from software side to the games mentioned before.

EyeToy : Groove (2003 – PS2)

EyeToy : Groove – one of the few gameplay videos we can find on YouTube

Dancing game from SCE London Studio (we’ll hear more from them later) that used EyeToy Camera to play. Standing in front of it, we had 6 indicators placed around the player (up, mid and down for both hands) and music markers coming from the center of the screen, which is very similar to the Samba de Amigo. We had a few actions that you already heard about: simple touch, drag hand in specified direction and hold the marker for a short period of time. Sounds familiar? Interface was clear and simplistic, track list really satisfying with focus on funk / soul / pop music. Really fun to play or to stand aside and watch someone playing it, just like other games from EyeToy series.

Just Dance (2009 – Wii)

Just Dance 2014 edition multiplayer gameplay

Music game from Ubisoft firstly published on Nintendo Wii, later ported on other platforms started the trend of the dancer on screen making a routine to which at the bottom of the screen pictograms showed the correct poses and actions. Concept was really great but because of Wii controller limitations in precision, notes were poor. Pictures and routine video had a focus on one hand in which we had to hold the controller. Posing and moving it around was rewarded with points depending on precision. Port for PS3 with usage of PSMove solved the problem of movement detection and altogether the tracklist was great as well as actions to commence. Sine it’s a Ubisoft, many iterations were published, despite mediocrity of most of them. After Dance Central success, Kinect version has been developed and tried to compete with Harmonix’s title.

Dance Central (2010 – Xbox 360)

Dance Central 3

Again, our beloved Harmonix created a bestseller. DC is probably the best dancing game so far. Thanks to the Kinect’s precise detection, dancing routines and pictograms used the whole body for giving instructions and rewarding proper actions with points. Keen to eye graphics and marvelous track list as well as many single and multiplayer modes are in stock. A superb party game.

Child Of Eden (2011 – Xbox 360, PS3)

Child of Eden on X360

Amazing title from Tetsuya Mizuguchi, the father of REZ, which will be more closely described in the last part of this article. We travel through space and shoot strangely looking entities that spawn and move to the music, which was created specifically for this game by Mizuguchi’s band. By eliminating enemies (we have three shooting modes to do it) we induce the change of the background music. PS3 version used PSMove to aim and shoot, X360 used Kinect and that interface was more interesting – we used only one hand to aim with shooting circle and then pushed the hand like a Jedi to shoot. Shooting mode switch was commenced by clapping. Simple but brilliant gameplay, very original outlook and great compositions resulted in a big success, especially for Microsoft’s console.

Disney Fantasia : Music Evolved (2014 – Xbox 360, Xbox One)

Disney Fantasia

And our final game of choice made by… Harmonix. Really – 90’s maybe belonged to the Bemani’s creations but the new millenium is totally owned by the big H in terms of music games. Fantasia was created for Kinect and refers to the Disney’s movie of the same title, especially, the part titled “Sorcerer’s Apprentice”, in which Mickey Mouse was taking lessons from the wizard name Yen Sid with great synchronized music accompaniment. In this game, we mostly use well-known mechanics from Elite Beat Agents or EyeToy Groove, so taps and waves of many sorts. What is different about this game is that every music piece is divided into sections like vocal, keyboard instruments, drums, etc. (I wonder, what was their inspiration… ?). Then we choose each of this section’s version made by handful of DJs and composers. Doing that we create our own mix to play with. We also choose additional instruments during gameplay to raise our score multiplier. On top of that, game looks really magical and has that exact feeling during gameplay. If you’re open for a music’s wide variety you have to check it out!


We can notice here the evolution of accessories and games’ mechanics developed from well-known ideas to the completely new ones. Especially starting from touch and camera interfaces, where music highway has been disposed of and made place for all-over-screen markers. Going further, at the peak of current dancing games evolution, the marker is player’s whole body which is quite an accomplishment. From the underneath mechanics point of view, we still have pre-designed levels mostly, but some development here is also present – Music Evolved simply as it may be, allows to create our own remix of the music track. Influence of the music on the game’s world and other way around (as in Child Of Eden) is a really interesting topic, and will be described in detail in the future. Next post will refer to the music games with educational values. Why? We will find there some really interesting mechanics that will lead us straight to the final part of my study. Till next time!

Game Design Study: Music Games. Part I


Playing with melody and rhythm dates back to ancient times (and not meaning early 60’s or so).
Since people had developed first musical instruments and realized it’s a great form of spending leisure time, music’s expansion and evolution began.
No wonder that the game industry took up the topic very early. First music games were developed in 1970s, for example Simon electronic game:

source: https://upload.wikimedia.org/

From then, many electronic and video games came up, challenging people’s sense of melody and rhythm. I’m not going to do here a history lesson, so I won’t be going over games in completely chronological order. I’d rather categorize games into several subtypes based on distinctive features and draw some conclusions from it. We’ll see how it goes.

I’m all about the… rhythm

First music games revolved around the beat. In most cases the target was to press button at the right time, which was indicated by specific marker shown on the screen. The evolution of that idea went through a lot of changes, but the core stays the same even now. Let’s see how rhythm-focused games evolved.

PaRappa the Rapper (1996 – PSOne)
UmJammer Lammy (1999 – PSOne)

Rhythm game about the rapping dog was quite a hit because of it’s great aesthetics and taking up rap music boom as the music background. We had an indicator going on the straight line filled with moments, during which we had to press corresponding buttons. At some parts we had a place for “freestyle” which will be used later by a few games. The difficulty level was well-balanced, reward system for score perfection was great and music was really catchy. It’s worth checking out even today.
UmJammer Lammy is almost the same but hits on the rock music and freestyling here is more rewarded. Gameplay seems pretty much the same. However, it gave us multiplayer mode which is worth mentioning.

Beatmania (1997 – Arcade, 1998 – PSOne)

Arcade version

Game made by Bemani, a Konami’s division (yes THAT Konami that everybody “loves” nowadays). Firstly introduced to the world through an arcade machine with DJ-like interface consisting of 5 buttons and a turntable, later simplified to gamepad interface on PSOne. From that game we can distinguish a “music highway”, which will appear in numerous games later on. In Asia further iterations are staggering hits until now. Some of those were published in U.S. and Europe with the soundtrack adjusted to respective markets. Not everybody like jazzy-funky-electronic J or K-Pop, right?

Space Channel 5 (1999 – Dreamcast)

This is the game closest in mechanics to Simon mentioned in the beginning (I’m serious) but in weird, Japanese, sexy way… We commence different actions (dance, shoot, etc.) by memorizing what happens on the screen and acting according to the rhythm. The funky feeling of the music and gorgeous graphics (at that time) provided existence of another iteration and ports to other consoles. It’s sad that Dreamcast dropped dead somewhere along the way – we could’ve seen more of the Ulala (our main character) now.

Frequency (2001 – PS2)
Amplitude (2003 – PS2)


Ah… my personal favorite from Harmonix (we will talk about them later…). Tremendous soundtrack and another iteration of “music highway”. This time simplified and complicated at the same time. Song is split into separate parts: drums, vocal, guitar, etc. Each part has only three buttons to press and look after. Also, when we hit 2 subparts without mistake whole part for a short period of time plays automatically – sounds easy? Watch the video and think again. We had to plan and switch between those parts to have a fluent music playthrough. Also, along the way we have quite a few bonuses to make our life easier (slow-motion, autotrack) or double our scores, which added another sense of tactics to the game. Also, we had multiplayer here in which bonuses were a bit different and instead of helping us out in some cases, they made our opponent’s life harder.

Mad Maestro (2001 – PS2)

That game was a piece of work. Not only the soundtrack consists mostly of the best of a classical music pieces but that game really used analog possibilities of PS2 Dual Shock (yes – if somebody didn’t know that – DS2 was recognizing degree of the button pressure).
Mechanics at the first glance was quite easy – four buttons, keep the rhythm. But there’s more – we have to watch the accent meter to apply appropriate pressure to the buttons.
Quite a feature to consider, right?

Gitaroo Man (2001 – PS2)

This is one of the best rhythm-based games because of the humorous story, nice, stylish graphics and unconventional approach to the gameplay sequences – it’s like a set of quick time events where simple movements were mosty connected with geometric buttons and guitar gameplay with solos corresponded to analog stick movement. Indicators for movement were bouncing around the whole screen but kept focusing at the center with geometric buttons. Instructions for analog sticks however looked like a melody way to move along. Some of these elements are now parts of the touch-based games but we’ll talk about them later.

Patapon (2007 – PSP)

Japan Studio One always busted through new doors on every Sony gaming system. This time, imagine this: you’re a god of the mysterious tribe called Patapon. You communicate with them through drums by pressing specific combination of buttons in 4/4 rhythm. There’s no actual indicator on the screen which button we press when. The only helpful tip is the regular blinking screen’s edges. And finally: it’s a 2D real time strategy with the side view. Sounds crazy? It is, but in a good way. This game will make you bounce that 4/4 rhythm even if you’re not playing it! It will test your sense of strategy, economy and above all, rhythm. One of the best games on PSP console and in my opinion, one of the best music games. Ever. Patapon, aside from simplicity and original usage of rhythm had a distinctive feature – even if we have hearing loss or don’t feel beat at all, that blinking rhythm indicator made the game accessible for everybody.

First summary

So what’s the conclusion here? All of these games have pre-designed levels, some of them have music tracks specifically made for. The gameplay, however original may seem, is mostly focused on playing according to the rhythm. Games presented above, in terms of music / rhythm gameplay gave us concepts of the music highway used in many titles later on, focusing indicators, philosophy of “simple interface, complex level”, shared / split screen multiplier with gameplay add-ons to make competitive gameplay more interesting. Many of these elements we’ll see in other games that I’ll describe in further posts.

Feel free to comment and share your thoughts especially if you’ve found any rhythm-based game with some original features that I haven’t mentioned here.

In the next part I’ll write a few words about music games with unusual interfaces.

Update: second part is here…

So it begins…

Hi, I’m Grzegorz (Greg if somebody will have problem pronouncing my name right ;P). Since I felt confident enough to start my own company and share my experiences, I’m starting this site.
Here I’ll try to share some thoughts about my work, game development industry and provide progress on my own projects. Stay tuned!