ContributionsDevelopmentGame DevelopmentIndieOnlinePostmortem

Somyeol: Going HD and Making an Engine Together with a Game

August 6, 2014 — by Industry Contributions

main

ContributionsDevelopmentGame DevelopmentIndieOnlinePostmortem

Somyeol: Going HD and Making an Engine Together with a Game

August 6, 2014 — by Industry Contributions

Brain Connected is a German-based independent game developer studio founded in 2011 by Jannik Waschkau and Kolja Lubitz making games for mobile, TV, and PC platforms. Both being programmers and not good in creating art, they are currently looking for an artist to join the team, and telling how they managed to get to the point where they are now with their game Somyeol.


Everything started at the Global Game Jam 2011 where we developed a prototype of a platformer game which would later become Somyeol. Before the Jam, we had hardly any experience in game development, with our only project being an unfinished racing game which we programmed for fun alongside our studies. We stopped working on it in favor of Somyeol.

An iOS App for $0.99 Because Everyone Else was Doing It

Somyeol was released in the end of 2011 as a paid app at a price of $0.99 for iOS, because a lot of other gaming apps were doing it. As we were, and probably still are, an unknown developer, we didn’t attract a lot of attention and hardly anyone was buying our game. Because of that, we came to the conclusion that we had to make our game free-to-play with in-app advertising to reach more audience. That went a lot better, and around two years later, we can say that we are very happy to have gathered more than 1 million downloads over all platforms with our first game. While not commercially viable, we have made a few bucks and gained tons of experience about game development.

screenshot_2013-10-02_21-51-06
Somyeol was first released as a paid app for iOS because everyone else was doing it

Somyeol HD: OUYA and Roku Because They’re Not Crowded

Somyeol was designed and optimized for pre-Retina iOS devices with little processing power. It runs perfectly fine on a device with only a 400 MHz single core CPU. The game is written in C++, which is a pretty fast programming language. The graphics have very low resolution, which looks fine on devices with resolutions up to 800×480.







icon_rest512
Due to low resolution, Somyeol graphics look fine on devices up to 800×480.

To change that, we let our external artist Carsten redraw all graphics in high resolution, changed our rendering code, and released a Somyeol HD version for Android. The HD version can be used on screens of all scales from small smartphones and up to 4K displays. To get Somyeol HD to these big screens, we first ported it to the Ouya, but it wasn’t accepted well there despite being featured in their store.







We first ported it to the Ouya, but it wasn’t accepted well there despite being featured in their store.

We are not sure what the reasons are, but one of them may be that it’s a single player game, while lots of the successful games on the Ouya have multiplayer and couch co-op components. Because the Ouya is just another Android device, we will probably release our future titles on it. Releasing a game does not take a lot more time than compiling an APK and uploading it to their store system. We only got 500 downloads and to date, we’ve sold around five copies of Somyeol HD.

screenshot_2013-10-02_22-19-26
We only got 500 downloads and to date, we’ve sold around five copies of Somyeol HD.

Before Christmas, we released on Roku because our middleware-added support for this platform, and it is not bad to be on as many platforms as possible. The only downside is that we can not access their in-app purchase API from C++, and that is why we’re not able to release a version where the first few levels are free to try.

It is not bad to be on as many platforms as possible.

Bringing the game to Roku was a seamless process, and they provided good support. They even sent us free devices to test our game on. There are not many games released for Roku, and so we do not have a lot of competition. Sales were a lot better than on the Ouya, and we are happy that we ported it over.




Try Available Engines, Eventually Make Your Own

Because we were building on top of the architecture from the Global Game Jam, Somyeol has not the prettiest code to read, let alone to enhance. Over the years, we were updating it with a lot of features which were not there in the initial design. Eventually, it got too time-consuming to maintain that code, so we decided to re-make our projects started long ago, transferring all new features into independent modules, which worked out pretty well. The big advantage is that the modules can be reused across all our games.




screenshot_2013-10-02_22-15-29
We decided to re-make the codes of our old projects, transferring all new features into independent modules.

For Somyeol HD, we also needed to implement a new renderer, since the resolution of the textures got a serious increase, which was also programmed as a module, and is now (slightly modified) used for our unnamed 2D game engine, which will power our next title and hopefully all of our future games. We now have 40 different modules which we can use across our games, and will hopefully save us a lot of development time in the future. Without the making of Somyeol, where we made a lot of bad decisions engine-wise, and which we could learn from, we wouldn’t have the knowledge to do this properly.

We now have 40 different modules which we can use across our games.
DSC_0099_bc
Kolja and Jannik: students working slowly but steadily.
Photo by Vlad Micu.

Starting with the development of our own game engine and our next title, we thought about features we will need for both. One of the most important ones is easy 2D content creation. After a little research, we stumbled across Spriter, which is a pretty interesting 2D animation tool allowing bone animation for 2D graphics. While the format Spriter produces is open source, there are no good examples of how to integrate Spriter into games, and we had to invest a lot of time to get it working properly. We are supporting all basic features of Spriter. Because every game needs collision detection, we also wanted to integrate a 2D physics engine to get these for free, and also the possibility to run physics simulation. For this reason, we tried to integrate Box2D which only took us a few hours to get working. Sadly, we noticed pretty fast that integration with Spriter would take too much time. So we had to ditch Box2D as our physics engine and instead wrote our own collision detection. The good thing is that we now have full control over internal workings of our collision system, which makes it a lot easier to integrate into the other engine parts. Missing physics simulation would be no problem, as we can always integrate Box2D at a later point should we need it.

Kolja and Jannik are still students, so they can only work on their projects part-time, and that is why they are making slow – but steady – progress. Most time, they are still working on the different modules of their game engine and want to get their first prototype, which will someday be Somyeol 2, ready in the next few months. Up until now, the plan worked out and they are confident to have a great foundation with their engine for Somyeol 2 and their future games.

 




Comments




Industry Contributions

logo
SUPPORTED BY