This weeks Guest Blog Post comes from Nenad Katic all the way from Valencia, Spain. Born in Belgrade, Sebria, Nenad started his design studio called “No Sheet“.
Nenad was Director of Technology at Screampoint where he developed the world’s first real-time software for urban management. He shares with us the success of his first game and how Corona helped him embark on his interactive journey.
Hi, I’m Nenad, and I’ll cut the long introduction short: I was everything from architect to software engineer to fitness writer before I settled on interaction design with focus on games. My transition from designing spaces to design and facilitation of actual human actions has been a long process that was influenced by the research on design thinking, cognitive and positive psychology, and especially the work of game design theorists such as Jane McGonigal and Ian Bogost.
Their powerful argument that games can fix reality and address real world problems made me immediately see it as a big larger-than-life goal that I wanted to contribute to. However, before being able to actually create anything worthwhile, I realized I first needed to educate myself in the video games as a medium and as an art form. If you want to become a painter, you can’t become Anselm Kiefer overnight, and same goes for video games or any other discipline.
So I committed myself to a mission of learning game design on my own, and Spin Up is an equivalent of a 2nd term paper in my own autodidactic “virtual university”.
Making of Spin Up has been a delightfully amusing sequence of mistakes and failures that are to be expected from a first time game designer (although I did make one game before, Foosball Hero was a “freshmen” exercise in how to map a well-known physical game onto a flat digital medium, and it did not deal with creating a new game system itself).
And this is where Corona SDK fitted perfectly, because it allowed me to try things, fail and learn quickly from my mistakes, developing numerous prototypes simultaneously, which is something I couldn’t achieve by programming in C++ where my prototypes would require weeks or months of work instead of days. By working with Corona I am able to focus on playability of my game prototypes, instead of being sidetracked by technical aspects.
Unfortunately, so much has been said and written about Corona as a tool for people that didn’t want to bother to learn more complex languages, that it is often being -unfairly- overlooked by experienced programmers. Less talked-about fact is that there is actually quite of bit of design and engineering brilliance that went into making Corona such an accessible yet versatile environment, and that even experienced programmers can benefit from tight but smart Corona API and type-free LUA. For me, the best thing about Corona is that it simply made any programming effort completely get out of the way.
The greatest conceptual leap of Spin Up was to abandon level-based game progression in favor of the form of endless climber. This relieved me of having to do too much manual work and gave me opportunity to learn to procedurally create game world, with ability to use simple xml input to control and fine tune the progression of difficulty throughout the game.
Balancing the game between too easy (=boring) and too difficult ( =frustrating), and adding up challenge as player gets better at it, is a key design problemwhen making arcade games. It takes a whole lot of testing with as many people as possible, and a lot of and trial and error. Having an external file that described how the game was to unfold over time allowed me to experiment and drastically change gameplay by modifying a few parameters only.
Another feature that lent itself perfectly to spinning game mechanics was apseudo-3D environment. This perspective top-down view where floors crumble behind you added a lot of claustrophobia-induced panic and made the game more frantic than similar side-scrolling arcades. Although it might seem absurd to build a 3D game using 2D engine, there was a perfectly good reason about it: Spin Up could actually never have been made in a real 3D engine without heavy camera matrix transformations, simply because real-life perspective would look too distorted and impossible to play with ( yes, I did try it).
My development troubles didn’t stop there, though: I constantly had to wrestle against self-imposed feature creep, I was changing graphic styles all the time, I initially mistakenly underestimated replay value and appeal of things like career mode and unlock-able characters, I would go crazy spending hours on end fine-tuning difficulty settings, I did refactoring of almost entire code two times from scratch, and all other things that inexperienced game developers typically do. Finally I decided that this process needs to end. I took a good look at what I had and decided that the core gameplay was fun and worth the effort of polishing it. I identified key features -with great help from my beta testers, thanks guys you’re the best!- and trashed a whole of lot of secondary ones, and eventually succeeded in wrapping a product that was worthy enough to give myself a passing grade in this phase of my game design education
I’ll admit that this game still has to do very little with my ambition to make the world a better place through games but it’s an important learning milestone. And actually, Spin Up does contain an underlying story that is a dark-humoroussocial commentary on our wasteful material habits and planned obsolescence, that is one of the important global problems that upset me. Not many people will likely bother to read the in-game story, but for me it’s important that I’ve put it there because at least someone will notice and appreciate it.
If Spin Up was my 2nd term college paper, making the game that will help improve the real world will be my 4th year diploma work. Meanwhile, I hope to be able to afford going forward with my self-assigned 3rd term assignments, and if I happen to continue making games, Corona will surely plan a major part in my autodidactic game design education and app development practice !