Exobyte Smartphone Games
  • Home
  • Articles
  • Contact
  • About
  • app-ads

Random Thoughts

5/5/2017

0 Comments

 
I'm making really good progress on Pish Posh Push at the moment and my enthusiasm has given me improved lucidity when solving problems I encounter whilst coding.  One problem I had recently was the random selection of prizes based on their value.  It's fairly easy to choose a prize randomly that chooses higher valued items more frequently.  You simply total all the values then generate a number within that range and select the item that matches your randomly generated number.

It becomes trickier when you need to make the higher valued items proportionally less common than your lower valued items.  That means that a plastic toy valued at "1" should appear ten times more frequently than a metal toy valued at "10".  The trick is to add up the values of the items as fractions of one.  So the toy valued at "1" becomes "1/1" and the toy valued at 10 becomes "1/10".  Add these together and generate a number in that range and you can easily select the cheap toy proportionally more often than the expensive one.

The algorithm in java looks like this:

private int getPrize() {
    int i_prize = 0;
    float f_max = 0;
    // loop through prizes and total up values as a fraction of 1
    for (int i=0;i<MAX_PRIZES;i++) {
        f_max += 1 / (float) m_prizevalues[i];
    }
    // generate a random floating point number in the range of the total value of all prizes
    float f_select = MathUtils.random(f_max);
    // loop through prizes and select the one that matches the randomly generated value
    for (int i=0;i<MAX_PRIZES;i++) {
        if (f_select < (1 / (float) m_prizevalues[i])) {
            // This prizes matches the selected value, stop searching
            i_prize = i;
            break;
        } else {
           // Does not match, deduct value of this prize and check against next
           f_select -= (1 / (float) m_prizevalues[i]);
       }
    }
    return i_prize;
}

Let me know in the comments below if you can see improvements that could be made, or can spot any problems and especially if you know of a better way that this can be done.  One problem I can see is that at very high values the algorithm could start hitting the bounds of floating point accuracy.  That could in principle cause a very high valued item to never get selected.  For my own needs I'm not going to be in that magnitude so I've not gone to the trouble of calculating at what point that might start to be an issue.

This handy bit of code can be used in any situation where you need to select an item where higher valued items need to be more rare.  A good example would be spawning loot in a rogue-like dungeon crawler.  In that case you want your 10,000 gold value magic sword to be generated as loot a hundred times less frequently than your 100 gold value regular sword.

0 Comments

The comfy chair - part 2

2/3/2015

1 Comment

 
Picture
In my last blog entry I reflected about how staying with genres and mechanics that were familiar to us can sometimes be limiting.  I discussed the gaps in the market that could potentially be very lucrative if a game producer could understand the desires of that segment.  That post was focused mainly on the limitations of staying with what was comfortable.  This post talks about the times when comfy is what we need.  As with most things in life the best path is the one that balances both pressures evenly.

For most of the past year I've been developing IOS versions of my most popular Android apps.  I've felt very much outside of my comfort zone and found Apple's developer portal to be quite difficult in some of the ways that it works.  The problem has been 
exacerbated by the fact that I've been porting my games using an Eclipse based tool which has meant some of Apple's native XCode functionality has not been available to me.  Testing, debugging and provisioning have all been quite challenging at times.  Unfortunately the performance of my games on IOS has not yet been good enough to cover the cost of the investment I made in Apple hardware and developer licensing.  Luckily my Android apps are still performing well enough to offset this.

I became a little disconnected from the development process and quite "out of the flow" of game development.  Then around November time I became quite excited about some ideas I had for games in the Virtual and Augmented reality sector.  I decided to try to make some prototypes for these games, but because I was feeling out of the flow, I didn't get as far with them as I hoped.  I dabbled with Unity and the Google cardboard SDK but found being in full on learning mode again quite hard work.  I did discover that Unity is an amazing tool for developers and I'm still very keen to return to these projects later.  But because I was struggling, I decided to draw a line under them and shelve them for the moment.

I've now resumed the creation my third slot machine game that I'd begun developing and it feels like I'm returning home.  All the tools I'm using are familiar and easy to use, I feel like I'm creating a game that will be successful and programming feels like fun again.  Returning to my "comfy chair" was exactly what I needed to reinvigorate my enthusiasm for game development.  In terms of the product itself, it's not as exciting as the virtual reality game prototypes I was making.  Another slot machine game isn't going to make the news anytime soon.  But having an interesting game idea is useless if you can't get into the productive flow you need to actually build it.


1 Comment

The comfy chair

2/14/2014

0 Comments

 
Picture
It is well known that being comfortable is often an impediment to success.  If necessity is the mother of all invention, then comfort is the mother of procrastination.  To accomplish things that you can be proud of you will almost always have to push yourself (or be pushed) outside of your comfort zone.

This principle also applies when it comes to designing successful games.  Most games developers will have grown up with a high exposure to gaming culture and we will be familiar and comfortable with all the classic gaming genres.  The problem comes when we write games inspired by the ones we love and feel comfortable with.  When it comes to releasing our game we find that the app store is full of similar games.  As game developers, we all want to write our own interpretation of our favourite game genre, be it a first person shooter, a platform game or a rogue-like dungeon crawler.

I've recently experienced this when releasing Plasma Duel.  I believe it is a very original game, but despite being an original hybrid game, the ideas upon which it is based are very comfortable to all gamers.  It is not surprising that it is buried in the masses of air hockey games on the Google Play store.  I have no regrets about developing Plasma Duel, it still gets 20-30 downloads a day (I have no idea how people find it) and could get better exposure in the future.  My point is that I didn't set myself up for success when I chose that genre.

Contrast that with the slot machine games that I have developed.  They are well outside of the interest of your average "gamer".  The only reason I am familiar enough with fruit machines to write my own is that I used to live in a seaside holiday resort when as a child and I was teaching myself to program.  Cherry Chaser slot machine and Super Snake slot machine have now a combined total of nearly two million downloads between them.  The reason they were so successful is that nobody else was writing European style fruit machine games and I was lucky enough to feel comfortable writing one of my own.

The crux of this post is that if you are comfortable writing something that very few other people are willing to develop, you have a head start to success.  Your idea for a dungeon crawler or platform game is unlikely to get noticed unless you get lucky or have some really clever hook.  The best route to success may be to move out of your comfort zone and develop a game that isn't for yourself, but for a very specific target demographic outside of the conventional gaming market.


0 Comments

A case of the good stuff

1/29/2014

2 Comments

 
Picture
Exobyte have been featured as a case study of success with mobile advertising on the Google Admob web site.

Admob sent out a request to companies last year asking them to submit their success stories with Admob.  I told my story about how successful Cherry Chaser had been and was selected to be a featured study.  This involved a phone call to the Admob team at Google's campus in Mountain View, California last year where we chatted about how I'd used AdMob to monetise my games.

The result is the case study featured on the AdMob web site:
http://www.google.com/ads/admob/success.html

The PDF file of the case study can also be viewed directly with the link below.

admob-exobyte.pdf
File Size: 844 kb
File Type: pdf
Download File

2 Comments

Indie indeed

1/26/2014

0 Comments

 
Picture
Over the past few years the public awareness of independently developed games has increased significantly.  This is largely due to a number of high profile games that have come from lone developers or small teams.  Games like Minecraft, DayZ and Plants vs Zombies have all been developed with an "indie" style game development process.  Even Angry Birds, one of the biggest game franchises of all, is considered by some to be a an indie game due to it being self-published by Rovio,

That raises the question of what exactly an indie game is and where do you draw the line between indie games and mainstream industry titles.  There doesn't seem to be a clear definition of what makes an indie games developer.

A purely technical definition of independently developed games is that they have been made independently of a publisher.  With this definition every game that is created and published by the same company is an indie game.  This definition feels slightly too strict to capture the essence of what most consider to be indie games.  There are examples of large "Triple A" titles that have been published by the developers that created them, especially in the mobile phone market where self publishing has become normal.  There are also examples of games that have been released through a publisher but still have a very indie feel.

So if the technical definition doesn't feel like it quite fits the subject area that the term has come to cover, what can we use as a defining attribute?

The primary factor is that independent games are developed independently of any external pressures on the design of the game.  The reason externally published titles often lose their indie feel is that the publisher puts pressure on the developer to alter their game design due to perceived market forces.  This also applies to self published games that have their game design changed under pressure from factors other than what makes a good game.  Even if a game is made by a lone developer, if the primary motivation is to "work an angle" or "cash in on a trend" then that isn't in the spirit of indie game development.

A second factor is that all of the team are engaged in creating a game that they themselves want to play. Games that are made by companies that are working a tried and tested process to earn a pay packet have a different feel to them.  This is from an advert for a game designer for a large commercial game developer: 

"use a variety of research techniques (e.g. surveys, observational studies) to better understand the needs, requirements and expectations of the target audience and the relative influence of industry trends/best practice".

In contrast, the designer of an indie game will usually just have a great idea that they want to turn into reality and know in their heart that it will be a great game without concern for market research or best practice.


0 Comments

Something is rotten in the state of Denmark...

1/20/2014

4 Comments

 
Picture
...and by Denmark I mean Google Play, obviously.

Two years ago I released Cherry Chaser Slot Machine on to Google Play.  Within a few days it climbed near the top of the "New Releases" chart which led to lots of downloads and a good ranking in the overall charts.  When I released Super Snake Slot Machine later that year my target was to get another good ranking on the "New Releases" chart, to help this I cross promoted the game in Cherry Chaser.  The strategy was again successful with Super Snake also achieved a good position in the overall charts.

Just over a week ago, I released my third game on the Google Play store.  Plasma Duel is an air hockey game and so fell into the more congested "Arcade games" category on the site.  Even so I felt that with cross promotion in the other games and by experimenting with buying Admob banner ads in other apps I could at least get some exposure in "New Releases".  Last weekend I showed sixty thousand adverts for Plasma Duel in my other two games and during the past week so far I've purchased over five hundred thousand adverts in other applications that show banner adverts.  The net result from these advertising campaigns so far is about a hundred additional installations of Plasma Duel.  The total number of downloads of Plasma Duel is now just over three hundred.  It's been reviewed thirteen times with an average rating of four and a half stars.

The result of these efforts so far is that Plasma Duel is currently sitting at position three hundred and fourteen in the top new free "Arcade and Action" games on Google Play.  A "New Release" on Google Play is regarded as being any game released in the past thirty days and Plasma Duel is only ten days old, so there is still time for improvement.  What interests me is how the games that feature more highly on the chart have achieved their better ranking.  This is where things start to look a bit... odd.

Picture
Let's start right at the top.

The top "New Release" in the "Arcade and Action" category on Google Play right now is a game called "Temple Run Bunny".  It's been downloaded over a million times and is a nearly fifty megabyte download.  Let's be clear, this has no relation to Temple Run apart from being an almost exact clone.  it's basically game using stolen intellectual property,  The top reviews on the game are quite revealing about where all these downloads are coming from:

"Temple run for kids. It seems nice 5 stars for now until I play it may not be what I think it is lolz ;3"
"Good. I said three stars because I did not play it but I am going to I think it is going to be like temple run by the looks of it"
"Temple Bunny Run. Well I give it a star because its the lowest it will go for an app that cant even be allowed to be downloaded to begin with, just like temple run 2. fix that problem and i'll change it to five stars"

Those are just the top featured reviews, there are hundreds more by other players who haven't played or can't play the game.  All down the charts there are similar examples of games that either the reviewer seems to have been forced to download and review or the review is obviously auto-generated junk text.

This problem has been getting attention elsewhere as well.  Just take a look at this mammoth Reddit thread on the topic:  http://www.reddit.com/r/Android/comments/1vmjsl/holy_cow_look_at_all_these_fake_appsgames_on_the/

Google really need to do something about this.  It's the one thing that could push me away from developing for Android first.








4 Comments

Let the duelling commence!

1/1/2014

0 Comments

 
Picture
Plasma Duel has been released!

I published the free and premium versions of Plasma Duel to production on New Years Eve so the game is now out there for everybody to play.

The next challenge for the game is visibility, there are over 500 games in the "top new arcade" category on Google Play - that's just the games released in the past 30 days.  Getting Plasma Duel anywhere near the top of that list will be a challenge.

My primary tactic to make some sort of impression on the charts is to take advantage of the current installed user base of Cherry Chaser and Super Snake.  I'm running a 100,000 house ads to the players of these games promoting Plasma Duel as a new game from the maker of the game they are playing.  I'm going to try to blitz those ads between now and Sunday to try to make an impression on the charts.

You can help me!

You can help me by giving Plasma Duel a rating on the Play Store.  If you enjoy the game please rate it and maybe give a few comments.  The ratings given to games influence their rankings quite heavily so every good rating I get will help me enormously at this stage.

Thanks to all who helped test the game, you rock!

https://play.google.com/store/apps/details?id=net.exobyte.plasmaduel&hl=en

0 Comments

Time = Size Squared

11/5/2013

0 Comments

 
Picture
The first Norwich Game Expo showcasing the work of local games developers was held on October 11th and 12th at Epic Studios in Norwich.  We were lucky enough to be invited to show our games and had a great time talking to people and seeing all the amazing games and talented individuals from the local area.

What is apparent is that there is a huge interest in computer games development, across all age ranges.  More and more people are having a go at turning their game ideas into reality, aided by an explosion in great tools such as Unity.  It feels very similar to the boom in the games industry that happened in the eighties.

My advice for an aspiring developer who wants to write a game is to do something small and do it well.  Don't underestimate the work involved in finishing a game.  A finished game is a lot different to a prototype.  I had the core game of Plasma Duel done in June, but have only just got all the essential features and bug fixes done where I'm happy to do a beta release, and there's still quite a few of features I need to add before I can publish a full release.  

Plasma Duel is about twice the size of my slot machine games in terms of complexity but has taken about four times as much work to finish.  It seems like the time it takes to finish a game is roughly equal to the size of it squared.  It's obvious to me now why very large games by indie teams very rarely get finished, or are released in an unfinished state.

The big advantage we have as indie developers is that we are fans of our own games.  That means we have the enthusiasm to play our own games over and over until we've found most of the the bugs and glitches. Players can tell the difference between a game written by someone working on their own game as opposed to games written by someone being paid to do a job.  That's why indie games have a popularity that is out of proportion with their budgets.

0 Comments

The fifteen minute rule

8/20/2013

2 Comments

 
7 to go!
A few years ago I got into a rut with my programming, I had tried to start with Android programming but got stuck at the stage of choosing which game library to use.  I had prototype code for Cherry Chaser and Plasma Duel written to test a few libraries but I had a fear of committing to any particular code base and became quite demotivated.  Programming became a real chore and every evening I would find something more interesting to do, spending large amounts of time on forums and game related IRC channels.

Jennifer is very interested in personal development and she could see that I was in a demotivated rut in terms of games development.  I would talk a lot about writing games but not be able to translate that talk into meaningful action.  In January 2011 I was the subject of an intervention, for my birthday Jen gave me some sessions with life coach Linda Allen as a present.  Over the next few months we talked about my goals and what I needed to get myself motivated.  Linda also held me accountable for achieving the goals that I set for myself at the end of each session.

The coaching sessions were excellent and took me out of the rut I had been in.  I also discovered a rule that works for me and keeps me motivated and productive to this day.  This is the fifteen minute rule and it is as simple as committing myself to doing fifteen minutes of programming every week day.  I like to give myself the weekends off as I think we need days that are completely our own.

The reason this works for me is that even if I'm feeling tired or bored of programming I can find and do something simple which fills up those fifteen minutes.  I then feel as though I have fulfilled my commitment to myself and can feel good about stopping work and playing games.  Most of the time I carry on working for another hour or two once my fifteen minutes are up because by then I have been hooked.

There have been weeks where I have only done fifteen minutes of coding work each night.  The value of that time spent is that it keeps my code fresh in my mind and my mind fresh at coding.  Any programmer will tell you that if they leave some code for a week, it will take them a few hours to figure out where they left off and remind themselves how everything works again.  The more days that you put off getting started again, the harder it is when you try, by just doing fifteen minutes of easy work each day you avoid that trap.

2 Comments

Hope you like jamming too

7/15/2013

0 Comments

 
Picture
This weekend I took part in the Iamagamer 48 hour game jam to produce a game with a strong female lead.  Given the time constraints I designed a fairly simple platform game where a girl is attempting to escape from a castle where she's been captured.

I chose to use the event as an opportunity to try out developing in MonoGame using Xamarin Studio.  I chose a Monogame OpenGL app and as I worked on creating the game I discovered that this target platform seems to lack a few features.  The biggest missing feature for OpenGL  apps is the ability to load compressed audio files.

The (nearly) finished game, called "Tash", can be downloaded using the link below:
https://googledrive.com/host/0B9PNQjKOeiybWU1sTGNvczZQVVk/Tash.zip

I did not finish the game but got to the point where the castle is fully explorable and most of the powerups work.  I did not have time to create some nice graphics so all the image files used are placeholders I created in about half an hour.  I also didn't manage to get any sound into the game, partially due to the problem with not being able to load compressed audio.  The biggest missing feature is the ability to win the game and escape from the castle.

I found programming in C# to be just as comfortable as I remember it.  Monogame is a nice game library although I'm dubious of the level of support it currently has for the Windows Desktop Platform.  As a library with the tagline "write once, play everywhere" they should get that fixed although I understand that the focus of the library is mobile game development.

Xamarin Studio as a development environment was eminently usable and didn't cause me many issues.  I had a problem with some dialog boxes opening behind the main window which meant I had to kill the task on one occasion, but my files were automatically recovered,  It's not quite as feature rich as Visual Studio or Eclipse but the most important things such as step by step debugging are there.

In conclusion, if I do another game jam I would like to try coding with my usual LibGDX library on Eclipse.  It would be nice to make a fairly direct comparison of how productive I can be.  I would expect to be much more productive with LibGDX as I've already discovered all the main gotchas and tricks for this type of game.  LibGDX also gives me the option to deploy to HTML5 and play on the web which is really useful for game jams, I don't know that Monogame has the option.

0 Comments
<<Previous
Forward>>
     
    Regular updates on twitter

    Development
    Journal

    Archives

    January 2022
    October 2021
    August 2020
    February 2020
    March 2019
    October 2017
    September 2017
    May 2017
    February 2015
    February 2014
    January 2014
    November 2013
    August 2013
    July 2013
    June 2013
    February 2013
    October 2012
    August 2012
    June 2012
    March 2012
    February 2012
    January 2012
    July 2011
    June 2011
    May 2011
    July 2010

    Categories

    All
    Advertising
    Cherry Chaser
    Libgdx
    Plasma Duel
    Super Snake

    RSS Feed

Privacy Policy
Terms and Conditions


​All content copyright Exobyte Ltd 2012-2023