Jordan Bonser
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout

Development Blog

Why iOS's New App Store Subscription Revenue Model is Great News for Indie Developers?

9/6/2016

1 Comment

 
​A pre-WWDC announcement has been made by Apple to inform of a new app store revenue model, but how does this effect indie developers?

​The New Revenue Model

This new model is an extremely positive change for both developers and users if done properly. The model allows for subscription based revenue with the a 70/30 split in the first year moving to a 85/15 split if a user is still subscribed to the app after a year. 

Problems with the Current Revenue Model

The current revenue model is a 70/30 split between developer and Apple, with the main sources of income being:
  • Paid app
  • Free app with Adverts
  • Free app with in-app purchases

Paid Apps

​When the app store was first released the paid app was the most obvious approach as that is how software has been sold for years. The main problem with this is that nobody wants to pay £2.99 for a game that might be fun. The risk to a user is just too high especially when you combine this with developers that abuse this risk by saturating the market with low quality games as a get rich quick scheme. Even if it is a quality game, a user may not know whether they will actually like the game which is why the other approaches spawned.

​Free apps with Adverts

This approach was often used to allow a developer to get there app to the widest audience. If all users could use the game without paying then the barrier for entry is non-existent. The problem with this is that due to low screen real-estate these apps caused frustration. This approach was often used in combination with paid apps but there was a difficult balance between how much you should give for free. If you give too much then there is no reason to buy the paid version. If you give not enough then the user will just be frustrated and not bother with the app at all.

​Free apps with in-app purchases

​This approach has become much more popular over recent years as a way of keeping the barrier for entry down but also having a way of gaining revenue. The problem from a development point of view is that there is a risk in that the game would need to be such a high quality to make users want to buy additional items in the game to further their progress. This often discouraged indie developers from this approach and was left to the large development studios that had the time and resources to ensure that high quality.

How will the Subscription Model Solve these Problems?

The advantages that I'm going to talk about are reliant on Apple implementing the model to allow:
  • low subscriptions i.e. as little as 10p, 5p
  • users to freely end the subscription on a monthly basis by uninstalling the app i.e. not be contracted to pay the subscription for 12 months.
​As a user I believe that this new revenue model will essentially create games of a much higher quality. Indie developers will now have an incentive and a means to fund the on-going work to create content for a game.

Indie developers will also have less risk when coming up with game ideas. A cool idea for a game or a unique mechanic can be released into the wild with a few levels to gather user feedback in a similar way to how Beta's work.

The users will be more inclined to try a game if they can potentially pay just a low cost one month subscription to try it out. If this idea  takes off then more content can easily be created without the developer having to staple on some annoying revenue scheme such as in-app purchases. If it doesn't gain popularity then the developer can move on without having invested too much time.

Users can play a new game without having to put up with any annoying adverts or in the knowledge that they will never be able to complete it without buying something from an in-app store. This will allow them to actually be immersed in the game in the way the developer originally wanted.

To summarise I believe this new model will support creativity and give reassurance to users and developers:
  • Users will be able to try apps out without fear of being ripped off.
  • Developers can create apps without the fear of not being rewarded for their time and effort.

I believe I would actually consider becoming an iOS developer if this subscription is done the way I hope.

Cheers
1 Comment

Cocos2d-x 3.1: Sheep Shenanigans

11/6/2014

0 Comments

 
So I've been working on this little application in Cocos2d-x 3.1 and I've got the idea fleshed out a little and started developing a few things. 

There were a few issues with getting the code to compile perfectly each time on different devices. The first of which is that when you add any new classes to the project you need to add them to the visual studio solution if you want to compile for Win32, you also have to add the new cpp files to the Android.mk file under LOCAL_SRC_FILES: for it to compile properly for android. 

Another thing to remember is making sure that the images that you use are stored in the Resources folder so that they can be found when compiling for the different platforms. 

After figuring out these little things I have now got a fairly streamlined development cycle. Initially developing for iOS when on my Mac and then testing on android fairly often.

Here is what the game looks like so far ( mind the poor graphics ):

Picture
Picture
So there isn't really much to the game right now but the main purpose is to round up some sheep into a specified area on each level. I am at a crossroads with the design at the moment as I am stuck on how I want the dog to be controlled, I have two ideas:
  1. Have the dog be controlled by dragging him towards the sheep in real time. The dog will have an energy bar which runs down as you move him and all the sheep need to be in the specified area before the energy runs out.
  2. You draw a path for the dog to take but again you only have so far you can make him go and then you let him run and see if all the sheep are rounded up. If they weren't then you have to start again and draw a new path. 

Both these ideas will potentially work but finding the one that is most fun will be a challenge so I'm going to play with both and choose the one I feel is best.

Currently there is a flocking algorithm implemented with the predator avoidance added in so that they always run away from the dog. This algorithm will need tweaking quite a bit to get right but it's hopefully not too far off.

Next thing to be done is adding some obstacle avoidance, i.e. making sure they don't wander off the screen or bump into each other. With the flocking algorithm, they shouldn't bump into each other at all but there may be a point when I want to put fences or rocks or other obstacles in the scene to make it more challenging. Cocos2d-x comes with Box2D and Chipmunk but I'm not too sure which to use yet, or whether to roll my own as the collision detection stuff really isn't too complex for this game. 

Anyway Development is going well :)
0 Comments

iOS 7 and the WWDC

11/6/2013

0 Comments

 
The WWDC was massive this year with apple showing off some major design changes with iOS 7 and also the release of the new Mac Pro which has also taken a large visual design change. One thing I noticed is that with iOS 7 a lot of the design features really take away the need for people to "Jailbreak" their iPhone. Things like the shortcuts to the Bluetooth and Flashlight are things that were available in these Jail Broken versions. One of the main things that I really liked is how seemless they have integrated with social networking, with the use of the share sheet ( Something I think I will definitely be putting in my app  ).

Apple have obviously been looking at how other app developers have been creating their apps and seem to have favoured this idea of a slide out menu that is seen in many apps now. This combined with the multi-tasking that is now available really makes the iPhone much more efficient to use. No need to close an app and then open another you can just switch between the two fairly easily.

On a more technical note, apple seem to have spent a lot of time developing more energy efficient ways for the new OSX Maverick ( Should definitely have been called Sea Lion ). This from what they have said will give up to 12 hours of battery life in the 13" Mac Airs. This is something that really needed looking at, technology was getting faster and more powerful but the energy side was always lagging so it's nice that they have taken a look at various ways of combating these issues and it seems to have worked. 

One final point is the Car technology that they talked about, i think if this really takes off then it will be really useful and would eliminate the need to carry around bulky hands free kits. This will definitely only be features available in the top models of cars I'm sure but over time it will become pretty standard. 


Lots of exciting new things and I acn't wait to get my hands on iOS 7 and have a play around. 

Keep it easy :)
0 Comments

View Transform Issues

9/6/2013

0 Comments

 
For a while I have been struggling with snapping a a view to a grid, as for some strange reason the view was snapping to the grid one off where it should have been in some situations. After a lot of playing around and visualising the views frame I realised that the frame was wrong. This took me by surprise as It was something I really relied on in my snapping code, especially the frame origin. With my views I also rotated them by 90 degrees using the setTransform method which I later realised was the problem case. After searching around on the internet I found a website that mentioned this exact thing, It turns out that if you use the setTransform method or in fact change the transform of a view to anything but the identity matrix then the frame is completely unreliable. To me this seems pretty strange and is something I thought apple would have taken care of as it has set me back a few days ( pretty frustrating ). 

I have now got past this little hurdle and everything is starting to run more smoothly now, I just changed all my snapping code to use the views centre(center if you are american). Changing this single thing literally sorted all the snapping out and I've managed to put some more of my game play in. 

The artist I'm working with has done some more artwork and I'm hoping to get that in soon and maybe I will show a video and you can all see the Idea I'm working on. 

Keep coding :)
0 Comments

iOS Development: Steady as we go

3/6/2013

0 Comments

 
I have been persisting with iOS Development and my app is starting to come along now. Lately I have been focusing on implementing the "Single Player" aspect of the game, mostly because I was sick of not being able to show people what it actually does. It's still slow going at the moment but it is definitely moving in the right direction. My Idea of having something on the app store within a few months of getting my Mac was naive to say the least. At the current rate I am hoping to have something that is worthy of a first release by the winter, plus I think people are more likely to play in winter. 

On a technical note, I have been working a lot with delegates in Objective C and they seem very powerful. They also work very well with the MVC pattern. 

One of my main issues is working in the different view spaces. In my app I have to do a lot calculations for positioning different views pragmatically but due to the hierarchy of subviews you have to take extra caution to ensure you are doing the calculations relative to the same view. 

Things are starting to pick up slightly and I will soon have a fully working prototype, once that happens I will upload a video and let everyone see what it is I am working on, but until then it's a secret ;)

Cheers :)
0 Comments

iOS Development: Segue Trouble

16/5/2013

0 Comments

 
I have recently been following a monster 7 part tutorial: How To Make a Simple Playing Card Game with Multiplayer and Bluetooth. It deals a lot with GameKit and is a great insight into how to use networking within an app. The tutorial uses the old style nibs rather than the newly promoted Storyboard approach for designing the User Interface. After finishing this tutorial I have tried implementing a lot of the same functionality into my own app.

This has caused a lot of trouble as the I am using the new Story boarding approach which involves these things called "Segue's". They are basically a link between two scenes in the storyboard, that you can add via the user interface. Trying to implement these things pragmatically has been a bit of a nightmare but I'm hoping in the long run it will make my life easier. 

I finally got the majority of the networking stuff down and I am currently re-designing some of the game classes to ensure they are using the proper MVC ( Model, View, Controller ) pattern and also delegates.

Hopefully this will all start to pick up a little as I am becoming pretty fluent with ObjectiveC and the Interface Builder is starting to make sense (or I am just becoming as equally mental as the Interface Builder).

Cheers :)  
0 Comments

iOS Development: If you can call it that...

1/5/2013

0 Comments

 
Since buying my MacBook I have been reading lots of articles and documentation on the apple developer site. I purchased the iOS Developer Program before my Mac had even arrived ( Wanted a head start ). I thought development would be easy due to the fact that you can use C++ instead of objective C and there wouldn't be too much for me to learn. I was very wrong! Just getting used to using my Mac took a while, figuring out where my files are, how to download programs and where they would be. After this hurdle I got myself stuck into xCode the apple IDE for development. This program is pretty chunky and took some getting used to, especially when it came to the Interface Builder.

I'm not going to say exactly what project I'm currently working on as I wouldn't want people to steal the idea but I decided to start initially with a game. Looking back I think it was a little ambitious as now I'm finding it a bit of a struggle. I should have started with something a little simpler. I am currently taking a short break from the one specific game idea and doing a few tutorials which show how to implement some of the features I will need in my app. I am also attempting to learn Objective C rather than try and do all this using C++. Surely It can only work out better if I use the programming language they mainly support.

I am hoping things are going to pick up once I have done these tutorials and everything will just fall into place. 

Cheers :) 
0 Comments

Squash Physics and I Bought a Mac

2/4/2013

0 Comments

 
After Creating the basic Component structure for my Squash game ( or any game I plan to make in the future ) I started implementing as much of it as I could without implementing physics. When it came to that point I was pretty bewildered as to how to do it. Ideally I wanted something that could simulate the collisions and report back to me that a collision had occurred and the effect it should have ( i.e. the new velocity of the ball ). I had a look at a few free libraries out there such as Havok and nVidia Physx but they all seemed to want to do too much of the work and wouldn't fit at all with the component design I had in mind. Which brought me to the conclusion, maybe I should write my own after all it is fairly simple collisions in a squash game apart from the racquet. I soon forgot about this notion as I'm not a massive fan of reinventing a square wheel. I still had a dilemma as to what library to use and how it would fit with my design though. 

After a lot of searching about and reading a lot of Physics Libraries Documentation I ended up settling with Bullet Physics, It is fairly lightweight, the documentation was fairly easy to read and setting it up wasn't much of a hassle. I did have to make the physics work alongside the component system rather than within it but that I think was inevitable. Anyway after playing around with it a bit I have managed to get working physics into the game: 
That is where things are at with my game but the big news is that I have just bought a MacBook Pro so I will now be taking a leap into the world of Apple and developing some iOS games and applications which I will hopefully be showing on here. This is a pretty exciting prospect for me as I have been wanting to buy one for a few months now. 

Hopefully a lot more to come 
Cheers :)
0 Comments

    Archives

    May 2020
    April 2020
    January 2020
    November 2019
    October 2019
    September 2019
    July 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    August 2018
    July 2018
    June 2018
    March 2018
    January 2018
    June 2017
    February 2017
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    February 2016
    January 2016
    December 2015
    November 2015
    September 2015
    August 2015
    July 2015
    June 2015
    March 2015
    January 2015
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014
    June 2014
    May 2014
    February 2014
    January 2014
    December 2013
    November 2013
    October 2013
    July 2013
    June 2013
    May 2013
    April 2013
    March 2013
    February 2013
    January 2013
    December 2012
    October 2012
    September 2012
    August 2012
    July 2012
    June 2012
    May 2012

    Categories

    All
    2D
    3rd Year Project
    Agile
    Android
    Angular
    Animation
    API
    Apple
    Apps
    Arden
    Async
    Awesomium
    C#
    CI/CD
    Clean Code
    CMake
    Cocos2d-x
    Colour Match
    Compilers
    Cross Compiling
    Cross-Compiling
    Databases
    Design
    Development Tools
    Docker
    Electronics
    Examples
    Flask
    Flask-Login
    Fmod
    Game Development
    Godot
    GUI
    Hackathon
    Hacktoberfest
    Hardware
    Home Life
    IBM
    Inspired Gaming
    Instancing
    Ios
    Javascript
    Jbengine
    Kata
    Level Editor
    Linux
    Microsoft
    Mobile Development
    Monogame
    Moodster
    Motivation
    Networking
    Objective C
    Opengl
    Open Source
    Organisation
    Physics
    Physx
    Pi
    Planning
    Post Mortem
    PyGame
    Python
    Quart
    Quasar
    RakNet
    React
    Road To Eldoarado
    Scripting
    Scrum Master
    Sessions
    Session Timeout
    Social
    Sound
    Space Invaders
    Squash Game
    Squash Game
    Streaming
    TDD
    Team Leading
    Test
    Test Driven Development
    Travis
    Unity
    Unity Development
    VSCode
    Vulkan
    Web Applications
    Worklife
    WSL
    XML
    XNA / C#

    RSS Feed

Powered by Create your own unique website with customizable templates.
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout