Saturday, January 30, 2016

Android indie game developer interview: Ben from Leda Entertainment

I haven't done any interviews in a while, but I met some extraordinary people at the Apps World conference in London and I decided that it would be great to share their experience with others. Today I'm happy to introduce to you Ben from Leda Entertainment, whose game - Bopscotch - I had a chance to play (against a girl who beat me as if I were a complete amateur). Ben talks about his tools and the game creation process, but what I found perhaps the most interesting is his general approach to the indie business - very fun oriented and not letting the financial side take away what's the most important. Without further ado, enjoy your read.





Bartek: Tell us something about yourself. Who are you? What do you do in life?

Ben: I'm Ben Pritchard, and I'm one of the two designer-developers that make up Leda Entertainment - the other being Paul Harman. I'd describe us as a "grass roots" studio - we believe that "Indie" has become an insanely broad term in recent times! We work on our games in our spare time around families and day jobs - I'm a web developer by trade - although it would certainly be both amazing and very challenging if we were able to go full time as game developers...

Bartek: When did your Android adventure start and how? Why did you decide to do it?

Ben: We started experimenting with Android in early 2013. Ironically it was Microsoft who pushed us down the Android route when they deprecated XNA - we had been pretty much exclusively Windows Phone until then, so we decided that whatever toolkit we chose to replace it should also allow us to take our games cross-platform.

Bartek: How did you learn how to create games?

Ben: We've been making games since the early 90s, so a lot of our theory of coding and creating games has evolved over many years. Obviously mobile has presented its own challenges, but normally a bit of dilligent web searching puts us on the right track - we've also had some great support from user groups and forum communities for the tools we use.

Bartek: What frameworks/engines do you use? Why did you choose them?

Ben: Our primary framework is Monogame, running on top of Xamarin for Android. Monogame ticked all our boxes in that not only does it run cross-platform, but being an open source implementation of XNA, all of our old XNA code and knowledge could be re-used - we did not have to effectively start over with a new toolkit.



Bartek: Where do you take game ideas from? How do you know if they have a chance to be successful?

Ben: Since we are not a full-time studio, we have a lot of freedom to be creative: we make the games we want to make simply for the enjoyment of making them. Unfortunately, the climate of "indie" games has changed greatly in the last few years - so "being successful" in a financial sense is incredibly challenging. On the other hand, taking your game to an expo and seeing people queueing up to play it does give a certain sense of satifaction...

Bartek: Where do you get resources from?

Ben: Almost all of our graphics are created in-house. Sounds and music depend very much on what style of game we are aiming for: a while back we made a series of simple retro-style games in tribute to the stand-up video arcade machines of our childhood (the Leda Arcade Collection), so we used tools like BFXR and Audacity to generate the sounds effects and tracker packages to make the music, while for more "polished" titles like Bopscotch, we use creative commons resources.

Bartek: What other programming tools do you use?

Ben: Xamarin software is the backbone of our development, as this allows us to develop in C# cross-platform, so we only have to maintain one core code base, with a few platform specifics round the edges - in-app purchase APIs and the like. We also use git for source control, and ANTS profiler for performance analysis.

Bartek: How long does is take you to make a single game?

Ben: It largely depends on the style of the game and the amount of content that needs to be generated. Bopscotch took over a year due to the sheer volume of levels that had to be created; on the other hand, Galaxy Raiders and Crack the Crypts (from the Leda Arcade Collection) have procedurally generated levels and were made in about ten weeks each.

Bartek: How do you test your games? What devices/tools do you use for it?

Ben: We attempt to test on device as much as possible - the standard Android emulator is horribly slow, and while there are others out there that are much better, we have yet to find anything that offers the performance needed to properly test a game! We have a number of test devices of our own and when we are at expos, we usually offer access to beta versions of our games in order to get feedback. We have also recently started looking at the Xamarin test cloud as an option, where we could potentially run scripted tests on over 1000 physical devices - but this is currently in its infancy for us.

Bartek: How much are you making on your games?

Ben: Not much! But then, that's not really what we're about...



Bartek: How do you monetize your games? What ad networks do you use if any? Do you have any advice on it for others?

Ben: Our simpler titles (such as the Arcade Collection) use admob; we're considering expanding this to other networks. With Bopscotch, we tried the "premium" model ie: a free trial version with a single one-off payment to unlock the full game - however this has proved unsuccessful, to the point where will soon be switching to free-to-play. Considering that some 30 years ago, we used to spend £1.99 (approx 3USD) on a game, often with little more than a magazine review to recommend it, we find it very sad for the games industry as a whole that so many people are now unwilling to pay less than the price of a coffee for a game that someone has put a lot of time and effort into creating, and I would certainly recommend avoiding "premium" pricing to other developers unless they know their target market supports it.

Bartek: Which ones of your games were the biggest success and which ones were below expectations? Why?

Ben: Galaxy Raiders from the Arcade Collection was surprisingly successful, considering how long it took to make! And while financially, Bopscotch has not made the returns we were hoping for, having people queueing up to play it was certainly something we were not expecting! However, Bopscotch also gave us our biggest disappointment, in that it proved to us that the idea of paying a one-off price for a game was essentially dead...

Bartek: Do you use any marketing techniques or ASO to promote your games?

Ben: As a part-time studio, time and money are two resources in very limited supply for us! We have run a number of social media campaigns and post semi-regularly on Facebook, Twitter and the like, but at the moment, any large-scale marketing campaign is financially out of reach for us. We also believe in "hands-on" marketing - taking our games to expos and letting people play and get the feel for them.

Bartek: What are your favourite Android games?

Ben: I can't speak for Paul, but I am a huge Battleheart fan!

Bartek: What are your plans for the future? What do you want to create/achieve?

Ben: We are very keen on the idea of games that bring people together: the cross-platform phone-to-phone race mode in Bopscotch, for example, was created in order to let people play against each other in real-time regardless of what devices they had. We would like to extend this idea further, and we have another game in the planning stages which we hope will allow encourage the building of in-game communities. Ideally, we are also looking for partners who would be willing to assist us on the marketing side on a revenue-share basis, or some other means of working around our current resource limitations.



Bartek: What advice would you give to other developers (something that you wish you had known before yourself)?

Ben: The games market is incredibly tough at the moment, especially for mobile. Thousands of games hit the markets every month, so think long and hard about what you are trying to achieve by writing a game - if you are looking for commercial success, your game will have to be different enough to stand out, and you will have to be prepared to invest a lot more resource in marketing than in the actual development of the game.

Bartek: Where can people find you on the Internet?

Ben: Our website is www.ledaentertainment.com - we're also on Facebook (facebook.com/LedaEntertainment) and Twitter (@LedaEntertain), and our current Android catalogue can be found on Google Play:
The Leda Arcade Collection

Sunday, January 17, 2016

SVG on Android: Update

So I finally found some time to work on my apps. Hurray!

I updated my Milan Metro app, because the map was getting shamefully outdated and the app itself started losing users. Now it's on the right track once again. I'm also planning some enhancements for it, e.g. implementing stop search, but it's a subject for another time.

Today I wanted to share my latest experience concerning SVG images on Android. I already wrote a couple of posts about it (SVG on AndroidTransforming SVG images into Android Drawables), but things have changed since then and I want to shed a new light on some of the aspects of using vector graphics.

There's actually an interesting story that goes with it. At my new job at Wikia (yeah, I know it's hard to follow where I work) we have periodical hackathons, that is we are given two days to work on whatever we want as long as it is, at least vaguely, connected with the main project. As I had just started and I didn't have much knowledge about the company's services and APIs, I decided to do a research about image loading libraries such as Fresco and Glide, to see if they could be better than Picasso for the Wikia apps. The research itself didn't bring me a clear answer, leaving me with what I could already find on Github and Stack Overflow. However, browsing through the Glide's Github repository I noticed that they had a sample for SVG images. In other words, I discovered that using Glide you could load and cache SVG images with as much ease as regular bitmap images. Glide uses AndroidSVG library to parse and display SVG images, so if you don't need the downloading and caching part, you can just use that.

I immediately tested it with my metro map apps and it turned out that the image looked perfect. The only thing was that the parsing time was still significant. I didn't measure it precisely, but waiting for an image (~100kb) to load took around one second.

Then I remembered that a guy wrote to me some time ago asking me for permission to use my idea to parse SVG files to Android Drawables (see this post for a more extensive explanation). This way you didn't have to use any additional libraries in your code and images were loading in a blink of an eye. I finally took a closer look at what Almos had created so far - android-svg-code-renderer. His projects forks the AndroidSVG library and adds Drawable creation to it. I must say that it works pretty well, although there are still things that could be done better. The generated code is not optimal and could be much shorter. Also, repeated symbols (used a lot in my maps) are inlined instead of being put in functions, which makes the output unnecessarily long and less readable. In general, however, the tool is very useful and I would still recommend it over SVG parsing libraries, which are slow.

In the end, I used my own old SVG to Drawable transformation tool, which I enhanced a bit to work even better and produce cleaner results. Although it's based on an older SVG library (svg-android), it still works surprisingly well and fulfills my needs. I'm aware that it's a temporary solution, but hopefully in the near future Almos or someone else will come up with an even more efficient SVG loading method.

Whoa, this post got a little technical, but I'm sure some people will find it useful. If you have a better SVG handling solution, please let me know. If something's not clear enough, I'll be happy to help you more in the comments section.