Thursday, January 27, 2011

Developer Interview: Lips of Suna: What do you get when you mix Rogue with a dash of Minecraft, Steampunk, Cooperative gameplay, and a generous helping of tongue-in-cheek humour?

According to FOSS game developer and Lips of Suna project lead Ari Mustonen (aka Nekotaku, amuzen) the answer is the perfect, intelligent, witty, dungeon crawler. As luck would have it he, along with the Lips of Suna dev team and supporters, have set about the monumental task of realising this vision, reaching a major milestone yesterday with their 0.2.0 release.

For players, Lips of Suna, or LoS as it's known, is a cooperative online, persistent dungeon crawler/RPG, with deformable terrain, procedurally generated dungeons,seamless gameworld, actual player skills instead of leveling, and witty storyline giving the the player and any friends online the opportunity to do battle along side the world's five races as they descend into the depth of the dungeons of Suna to save their world. Unlike a lot of other RPGs/FPS of various flavours success will really depend on knowledge, cooperation, strategy as well as skill.

The Freegamer team caught up with Nekotaku yesterday:

FG: The obvious question, of course, is why FOSS?

Because it's fun and convenient. The FOSS game development circle is somewhat small and fragmented but that and people generally being friendly and open-minded makes it easy to get into it. You only need to play by the few simple rules and you're a respected member of the community. You can host your project for free on a number of open source development sites, you can borrow useful code from incredibly many projects, you sometimes get free coverage on some popular sites, you can get lots of new users with next to no extra effort by getting packaged by Linux distributions, and so on. All that just because you're FOSS. It's a great choice for a hobby project even if you're not into the ideology itself, I think.

FG: LoS has gone through a lot of changes and re-iterations over the years, what is your overall vision for LoS; what would you like to achieve and how has this changed from the original vision

The grand vision when we started the project was to develop a manga style cooperative multiplayer RPG that had no experience levels or other character progression mechanisms. We wanted to have fun time making a game that one can pick up at any time and play with one's pals or some random people without having to worry about being rejected due to not being in the same level with others.

I think that the core concepts still stand strong but the details were horribly blurry for the longest time. The grand vision itself is easy to set in stone but guessing how things will fit the big picture and work together in the more detailed level is challenging. Quite a few smaller ideas have been amended on paper as it has become evident that they won't work as is. There have also been several occasions when an idea already being implemented, despite sounding good on paper, turned out to be so infeasible that it required major changes or had to be ditched entirely.

FG: You have implemented a lot of rather cutting-edge technologies in the LoS engine; how has surfing the cutting edge treated you so far and what new tech would you like to see gain traction?

I'm not sure if any of it is really that bleeding edge. The graphics code is probably the closest to it, though since the graphics hardware I target is already one generation behind the capabilities of the graphics card I have, it hardly feels like that. Most of the things in other areas have been done before too by other games.

Lots of things I did were new to me, though, and I had lots of fun researching and testing them. Especially in graphics programming, the newer things tend to be very easy to use, to the point that I actually regret not going for OpenGL 3 earlier. For example, implementing hardware accelerated skeletal animations only took one day to get working. There's a number of nice features that help you speed up the graphics code while actually making it simpler.

I don't know if other projects should bother much with the fancy new technology. On the other hand, when you have modern graphics card, it would be nice to have games with pretty graphics but on the other I'd rather like to see games focus on the basic gameplay and the content rather than some engine features. However, if you're interested in the new tech, I think it's not a bad idea to dip into it a bit, learn something new in the process, and implement a couple of things that your game can use.

FG: What is your vision of the future of FOSS gaming? Where would you like to see it go, and where do you think it will actually end up?

I'd like to see FOSS games explore difficult and controversial subjects more instead of obsessing over moral and political correctness. I think one of the great things about games is that you can experience harmful and disgusting things without real harm. However, FOSS games offer nothing to people who crave for such experiences since it's all but impossible to even find a character who says "fuck" or to hear a dry mention of sex, much less to see the real deal.

I think FOSS projects generally have a great sense of professionalism and want to look very organized and serious. The ideas tend to be traditional and tame most of the time as well. Even though I'd like to see fresh and radical ideas for a change, I doubt it's ever going to be commonplace. People make the kind of games they like themselves and organize their projects to benefit their own needs. Career motivations and maintaining a neat public image of oneself are big factors so it takes a lot of courage and nerve to radically defy the status quo.

FG: LoS has a rather... unique... sense of art direction. Are there any specific inspirations design wise in that regard, and how do you think it has affected the development process?

The project was founded by two regulars of a tiny anime and manga community so the choice of art direction was pretty obvious back then. We never concerned ourselves about whether the mainstream would like the style and what they'd say if they didn't. It's just me now but I still don't let the external pressure limit the artistic freedom.

Actually, there's no external pressure to speak of. Everyone in the FOSS circle is so timid that you can go for years without anyone being able to find the words to bluntly say that nudity and panties offend or intrigue them. As long as you have thick enough skin to ignore the regular trolls, you could easily be even more blatant without any meaningful consequences.

Over time, the art direction has been affected a bit by a couple of other games, such as Oblivion and its mods. It's eye-opening to witness someone make the skimpiest armor and others not only not complaining but rather endorsing it hundreds of times and downloading tens of thousands of times. I think people with a more adult taste are a legitimate target audience for a FOSS game, and an easy one even since there's no competition at all.

FG: LoS has it's own custom written 3d and game engine, whereas there are loads of open source engines of all shapes and forms already in existance. Why did you choose to go this route, and would you do so again if you where to begin a new game project?

Learning new things as I develop is a big factor to me and graphics programming has always intrigued me. I think the biggest reason why I chose this route was the educational aspect. Researching all the new techniques and learning the ins and outs of different rendering techniques has indeed been a lot of fun. Studying and testing all the different things took quite a lot of time but the 3D engine code itself is only a bit over 9000 lines of C code currently. Writing that with the knowledge I have acquired wouldn't take very long so I think it'd depend on circumstances whether I'd write my own engine for any future project or if I'd use an existing engine.

Using an existing engine isn't always so easy either. If you have a very specific list of requirements and some of them are less common ones such as dynamically changing terrain, heavy use of paged geometry, and modifying meshes on the fly, it's hard to tell if any given engine will fit your needs and if it doesn't, how easy it'll be to add the required features. Other factors such as uncertain requirements, ease of integration, quality of documentation, complexity of the code base, and so on can also significantly impact how well the engine will work for you.

I use quite a few libraries already, though. ENet for networking, SQLite for saving and loading data, and Bullet for physics, for example. The smaller libraries are easy enough to use but Bullet is giving me a lot of trouble and I'm afraid that doing things such as collisions responses for the terrain properly would require doing something unsupported such as implementing your own collision shapes. It's quite a pain and terrain physics are quite broken as the result.

I don't think there's one right way to sort out the engine. If you think that you'll have more fun if you write the engine code yourself and you'd like to take the time to write an engine that solves the problem well, write it yourself. If you don't have interest in engine development and don't mind some rough corners getting on the way of development of the actual gameplay and content of the game, use an existing engine or glue several libraries together to make one. Whichever route you take, it'll still take several years to complete an ambitious project, I think.

FG: Terrain deformation, has become fashionable, through Minecraft's arrival (1 million units sold and all that).. We understand that LoS will feature deformable terrain, but work was done far prior to the Minecraft craze. What were your inspirations and in what areas in the game is terrain deformation used?

I think Nethack was the original source of inspiration. The idea was to support mining in a similar fashion, but in 3 dimensions, to allow players to move more freely and gather resources in interesting ways. Since then, Dwarf Fortress has done good job at utilizing the third dimensions and, judging by gameplay videos, Minecraft seems to have a lot of interesting ideas too.

I think 0.2.0 is the first time LoS has had any real success with voxel terrain. The previous iterations had serious scalability and usability issues but it's finally getting to the point that you can have a full-sized map without the game crawling to halt, and you can do something useful with it. Getting it to work has been quite an exercise of trial and error and finding compromises and it still isn't quite there yet.

FG: You and other projects such as 0ad have chosen to get playability and enjoyability in sooner rather than later. What are the advantages and do you reccomend adjusting development cycles for all FOSS projects? 

This may be an accurate statement in the grand intergalactic scope but from my point of view it took a long time until the actual playable bits started to emerge. I feel that LoS is actually the opposite since it wasn't much more than an engine technology demo until late last year, which is when I decided that the internals were good enough to be able to support the game. I think it'd be more accurate to say that LoS has simply chosen to get playable.

However, I do think that you should aim for playability as soon as possible, especially if you want to have contributors or have existing team members and you want to keep them around. If you're already working alone and don't have a lot of faith in your recruitment skills, it might be the same to get the most disruptive internal changes out of the way now when no one's around to get affected by them.

The timing can vary but you need to decide at some point that you're making a game rather than an engine, a technology demo, a portfolio or something else. Some genres are more forgiving about it than others but I think that at least content heavy game types and games with complex game mechanisms will never get done if you don't consciously start focusing on content and gameplay. RPGs are particularly nasty in that respect since with the engine alone you just have a fancy walking simulation and the interesting stuff is all content and intricate game mechanisms put together.

FG: 3 years of development is a long time, and you were involved from conception through the hard initial periods of coding without much in the way of tangibles to demonstarate and gather contributions with, through to to geting to the stage where the project is taking off. You would undoubtedly have garnered some insights on avoiding the slings and arrows of FOSS development. Any tips for FOSSers at the beggining of that journey?

This is probably the most useless tip ever but projects die when they're killed. I'd say the biggest factor determining how successful your project will be is how much and for how long you work on it. An hour or two of useful work per day with no end keeps the project healthy and eventually leads to success, whereas affairs with the opposite sex and other real world phenomena increase the chance of failure.
Now, following from that, I think that you as the developer are the primary audience of your own game. If you design the project so that you will love to work it for years to come, it's more likely to be a success than a project that's designed to appeal to the largest possible audience but the developer isn't ecstatic about it. This is because the former will probably finish whereas the latter will likely die when the developer loses interest.

FG: Who would you like to thank?

#freegamer for wasting so much of my time with all the interesting discussions and for allowing me to waste your time with random status updates and pointless rants

The LoS development comminity is a very accesible place with no formal obligations or requirements where people can come and contribute with feedback, 2d/3d art, music, scripts or code in whatever areas of the game they feel like. So head over to their forums, and visit their wiki.