Mr Nibbles Forever – Pre Release 10

Mr Nibbles Forever – Pre Release 10

Its been almost exactly a week since the last developmental release of Mr Nibbles Forever. According to the plan this week should have been about implementing the landing page and gathering feedback from people, as I managed to get the landing page sorted in the first week I decided to spend the time developing the game instead.

So this week I have concentrated on decreasing the loading times for the game. On my Nexus 7 the loading time was about one minute which is way too long. The main reason for the load times is the way I construct the levels.

As mentioned way back in my second post for the game the levels are made up of pre-defined chunks:

2015-07-12_15-24-52

These chunks are individual scenes. I did it this way because Unity doesn’t support nested prefabs and I wanted the ability to change properties of some of the elements of the levels as I was developing. The problem with this however is that to construct the levels I must first load the chunk scene, then extract its contents and build a level.

Unity’s scene loading system is very slow and causes the game to pause and stutter if you try to do it at run time. As a result I put a “build” button into the editor which runs through a small script which loads all the chunks into a specially built “Release” scene:

2015-07-12_15-31-15

So now all the chunks are available in one single scene at startup removing the scene loading issue while the game is running. This is great but it does now mean that the initial load of the game is gigantic as it has to load 80 chunks with thousands of game objects at startup. The result is the game takes a minute to load.

To solve this problem I modified my “build” process so now instead of simply importing the chunk scenes it also processes them a little bit. One common technique in optomising game performance is to use object pooling to reduce the amount of new objects that are created at runtime.

I know that the levels are going to have large numbers of certain types of objects such as spiders, nibbles and level tiles, so what I decided to do was record the unique properties for each instance of the objects such as their position, rotation, sprite type etc. I could then delete those objects from each chunk.

Now when a chunk is used in a level, it simply requests an existing instance of that object type from a global pool, then sets the unique properties on the object such as position and rotation.

The result of all that work is that the load times have been cut in half. So now just 30 seconds on my 2012 Nexus 7. There is probably more room for improvements there but considering that the deadline for the game is coming up, im happy with it for now.

2015-07-12_15-47-42

In addition to that performance work, I also had a little more time to work through a few other small bugs and one more feature.

A few people had suggested to me that it would be good to add a “remove ads” option to the game as many people would be happy to remove the ads for a small fee. Well it wasnt a huge amount of work to do it so I put it in.

2015-07-12_15-50-59

2015-07-12_15-51-30

So now, you no longer need to watch an ad when you want to start or restart a challenge:

2015-07-12_15-53-33

Well that’s it for this week. The plan for next week is to plan the game trailer and to experiment with full-screen post process effects again which will hopefully add a whole lot more to the individual visual aspect of each outfit.

As per usual if you are interested in testing the game on Android then join the community page: https://plus.google.com/u/0/communities/100690884724496136044 or for iOS email me: mike.cann@gmail.com

GovHack 2015 – Should I Drive?

GovHack 2015 – Should I Drive?

Well I took a short break this weekend from Mr Nibbles Forever development to head down the street to SpaceCubed and compete in the 2015 GovHack competition.

I had heard of GovHack from one of the Morning Startup meetings I like to attend every Wednesday here in Perth.

The West Australian government has been running this competition for several years now to try to promote their new open data policy. The idea is simple, get a bunch of nerds together, give them the data and offer some prizes and see what happens.

CI-222zUcAAvd7s.jpg-large

Well I turned up on Friday evening not knowing anyone and having no clue what to expect. So I grabbed a beer and started chatting.

Some people were in teams already, some people worked together for a day job but it seemed like there were quite a few other people in the same boat as me, new to it, without a team or project or idea. That made me feel a little better, but I still had no clue what to expect.

CI_vYWaUEAA1-_P.jpg-large

After a few short speeches the participants were invited to stand up and pitch their idea. All in all there were about 20 pitches. Some sounded interesting, some sounded really wacky such as one team wanted to use the data to become evil-masterminds. One team even suggested that they were going to correlate the prizes against the data and see which prizes were the best to go for then work out and idea from there.

CI_Fh1FUAAAv7yd.jpg-large

After the pitches were over, we given 5 stickers to stick posters that had been hastily assembled by the pitchers. I think that the idea of this was to gauge the popularity of the project but im not sure exactly how that affected things in the end.

Also this was apparent the point that you were supposed to be looking to join one of the teams too. I didnt realize this and I spent ages walking around and deliberating while groups of people started separating and disappearing.

The problem was, none of the projects really jumped out at me. The only pitch that grabbed my attention was by a guy that wanted to predict if you are going to win a court case by looking at old case documents, I thought that one sounded pretty interesting but unfortunately I couldn’t find him anywhere, and none of the organizers could find him either.

In the end I ended up wandering around for about 30 minutes like a lost lamb as everyone started to form teams. In sheer desperation I started butting into the teams and asking what they were doing and if they needed a developer. After a couple times trying this I was about to give up and go home when I decided to try one more team. These guys were planning on building a app that asked the simple question, should I drive or take public transport to my destination?

I thought this idea seemed simple enough, plus it sounded like something I could help out on, I knew front-end and back-end, had built web and mobile apps before so I signend up.

CI_Y6mkUEAAG2fh.jpg-large

I think I got really lucky. They turned out to be a truly awesome bunch of people. There were 7 of us in total: Jake, the team leader and front end developer. Cam, the back-end dude with lots of experience with mapping and spacial data. Kim, the data miner and wrangler. Felix, a young but incredibly bright lad who did a bit of everything (including winning the young-and-up-coming guy to watch out for award). James, and his friend Apara who did the super important job of organizing the project and video. And of-course me, who took the role of tooling / data converter / uploader / production / whatever else needed doing.

It was the right mix of skills, ages and experience and over the next 3 days we had a ball. We were asked at one point by one of the VIPs / guests that was walking around how everything was working, who was deciding what needed doing etc.

Well that was a good question. It all just seemed to come together. One of us would say “oh, wouldnt it be cool if it could do X?” then we would all agree and then one person would go off and get the data while others did others set about converting it and uploading it.

We were told to put a lot of effort into the video as that would be the thing the national judges would use to choose who their winners were (national prizes are separate from the local WA prizes and were worth $80k). So right from the start we were scripting and planning the video.

It all kind of came together on the Sunday morning when we filmed it all and produced the following:

I am pretty proud that we were able to not only build a working app that uses the various data sets but were also able to produce the video in the very limited time. Hopefully it conveys the purpose of the app well and maybe also shows you a little bit about the team and how much fun we all had.

We weren’t quite done tho as we still had to do a live presentation to a panel of judges. We had 3 minutes to show what we had, then a little more time for questions from the judges.

2015-07-05 16.52.41

Personally I felt that this one probably the worst part of the event. There were 20 teams presenting, we were number 14.

We had been told that it was supposed to be 3 minutes long however it seemed like the first 3 or 4 teams were going way way over that, 10-15 minutes each.

For some reason they changed their policy half way through so now you had exactly 3 minutes and were clapped off when the buzzer sounded. It seemed a little unfair to us who werent included in the earlier set of presentations.

Also the presentations were plagued with audio / visual difficulties thanks to the fact that we had to continually plug and unplug laptops. Presentation and demos that worked fine on a 15″ laptop looked terrible or didnt work when switched to a projector resolution.

So most teams seemed rushed, unorganized and generally let all their hard work down by failing to properly present what they had done. The judges also probably didnt get a good feel for what the projects were about or what the problem was they were trying to solve.

Some teams simply played their 3 minute video then asked for questions at the end. Personally I think this worked much better as there was much less to go wrong, plus you had already spent a whole bunch of time on the video, you may as well let it do the talking instead of you. I wish we had done this.

Nevertheless our presentation went okay, nothing too major went wrong (apart from from projector issues) but we just didn’t have enough time to do the project justice.

After all the presentations, the judges disappeared for 45 minutes while they deliberated, enough time to grab a beer, then the awards started.

CJJboKPUkAE8Wnm.jpg-large

There were $35,000 up for grabs in prizes over several different categories. You were supposed to elect which prizes you were going for on your project page, some teams chose to select most if not all of the prizes. We went for 16 of the prizes.

In the end we ended up winning 2 of them including the single largest prize: Main Roads Keep WA Moving Prize of $2,500. In total we won $3,000 between us which was great, not the best but not the worst.

2015-07-06_19-07-28

For me tho, it wasn’t about the prizes (in fact I didn’t even know there was any cash prizes when I entered), it was more about getting out there and meeting other like-minded people who wanted to work together and build something new and cool and perhaps learn a thing or two about the WA data along the way.

I think I succeeded in that modest goal 10 fold and am incredibly grateful to GovHack and my team for letting me be a part of it.

Team shot

Mr Nibbles Forever – Pre Release 9

Mr Nibbles Forever – Pre Release 9

Well its been almost two weeks since I declared the (tough) scheduled plan for the release of Mr Nibbles Forever. In it I planned that last week was to be:

22nd-28th June
1) Design landing page for the game. This is important as I will need a place to put the trailer and to send people who are interested in the game. I have read several good resources on how this page should look. Some examples of other landing pages are: http://www.pixelprospector.com/list-of-websites-and-blogs-from-game-developers/. Once landing page is designed, run it pass some designer friends for help improving it.
2) Pester people for feedback on Alpha 8. I need to get some real-world feedback for the game so I can fix bugs and improve the polish for release 9.
3) Contact some marketing people for help and advice.

Well I managed to do 1) and 2) but I decided that I didnt need to do 3) just yet, instead I made do with the excellent advice on these two pages:

http://vgamemarketing.com/
http://www.pixelprospector.com/

I may go back to 3) in a week or two if I need to.

As for 1) well I decided after an hour or two of messing around in Photoshop that it would be easier and faster to just buy an off-the-shelf WordPress theme and adjust that to my needs as I was intimately familiar with WordPress. The theme I chose was Grizzly from Wegrass:

2015-07-03_07-33-47

It seemed to have all the features I needed for now and was responsive which is super important these days.

The next issue was what name should I call the “company”. Up until now I had been going with the name “Nibblers” as that was the name that “Mr Nibbles” was published under too. “Nibblers” however is very specific to Mr Nibbles games and if I wanted to do non-nibbles games in the future it would sound a little odd so I needed a new name.

After much head scratching I decided I wanted to base the name around my favorite animal the Mantis Shrimp. If you dont know what it is, then checkout the oatmeal’s excellent bit on it. The problem was that mantisshrimp.com is taken, also its difficult to tell someone the domain, as they either dont know how to spell it or are confused as to how many S’es there are in the middle.

So in the end I decided to go with something that was related and instead use the Mantis Shrimp in the logo. So I went with…. Epic Shrimp:

2015-07-03_07-41-32

The site is still very much under development but at least I now have a good landing page for Mr Nibbles, Ectoplasm and Mr Nibbles Forever:

2015-07-03_07-43-27

So although last week was supposed to just be design, I decided to go the full-hog and implement too, which means that I have one more week free for development.

Speaking of development, this week we supposed to be a bug-fixing and polish pass:

29th June – 5th July
1) Do bug-fixing and polish pass of the game. Push release 9 of the game to people for testing and feedback.

Its true that I did indeed fix some minor bugs…

2015-07-03_07-46-39

… this week was mostly dedicated to improving the high scores system in the game.

As a result of some feedback from people I decided that the game needs to be more in-your-face about the competitive aspect. Hopefully this will encourage people to return more often so that they can try to get higher up the leader boards.

I was unsatisfied with my current GameCentre and GoolgePlayServices implementation of the highscores so I decided to roll my own using my Parse.com experience. So now you will notice that next to the high-scores button that every each play you are given your daily rank:

2015-07-03_07-49-39

Clicking the button will show you the top ranked players in each category:

2015-07-03_07-51-51

You will notice that your name is “???” until you set your name:

2015-07-03_07-54-31

Once done, all your old and new scores will now be saved under that name, this works across devices too.

2015-07-03_07-55-33

I am also experimenting around with having a button next to any high score which also has a saved replay.

2015-07-03_07-57-26

Clicking the button will open Everyplay and show the recorded run for that highscore, which I think is pretty cool!

Well that’s it for now, this weekend I am going to be extremely busy on something else (more in another blog post soon) so I wont have any more time, but hopefully next week will either be more bug fixing and polish and getting more feedback on the game.

As usual if you would like to try the game and are on iOS then just email me: mike.cann@gmail.com, or if you are Android then join this page: https://plus.google.com/u/0/communities/100690884724496136044

Until next week!