Sunday, October 22, 2017

Blobby Volley - multiplayer is coming

Almost 80h of work after releasing the single player version, Blobby Volley multiplayer is coming to a close. I already have a playable, although somewhat rough and buggy, version implemented. I expect the final polishes to take another month.

To be honest, I'm getting a bit tired of working on the game already. I'd like to finally see some results and find out if people will like it. Hopefully, I'll be able to reach my goal soon enough.

Blobby Volley - main menu with multiplayer

In the meantime, I'd like to share with you some stats from the game, as I promised some time ago.

Blobby Volley - active users

There are around 770 players every month, almost 250 per week and more than 50 a day.

Blobby Volley - engagement

All players spend a total of 4h to even 8h in the game per day and they usually open Blobby Volley just once.

Blobby Volley - location

Most players come from India, Germany and Iran.

Blobby Volley - demographics

Most players are male - only one in five is a woman. I have some players who are more than 65 years old.

Blobby Volley - earnings

I earn around $5 per month on the game, which is a miserable amount and I hope that implementing multiplayer will improve it.

The stats come from Firebase and Unity Ads console.

Now keep your fingers crossed for Blobby Volley Online getting finished soon. I'll do my best to get the game polished in as little time as I can. I might release a beta version in the meantime, so you might want to sign up for the beta program on Google Play, if you haven't done it already.

Sunday, July 23, 2017

Blobby Volley is out on Google Play!

Blobby Volley, the game that I've been working on since March, has finally been published. You can find it on Google Play. Give it a shot and play it if you haven't done it yet.

The whole project took me 142.5h to complete but I didn't just rewrite the AndEngine version of the game. I added analytics, Unity Ads, better AI, a menu system, more options and other stuff. I'm planning to work on the multiplayer now. I already started reading the manuals.

I'm curious to see if people will like the new version of Blobby Volley and whether the new video ads will bring any revenue. I'll keep you posted on the stats.

If you have any feedback, make sure to post it in the comments or email me directly. I'll also be grateful for any honest ratings and comments on Google Play.

Happy playing!

Have you been able to see this screen yet?

Monday, July 10, 2017

How to reduce a Unity Android game size by 10MB

I'd been working on my Blobby Volley game remake for a while and I'd been wondering why the output apk file was so large. The game used to have a size of around 3MB when it was written using AndEngine. So how did it grow to more than 25MB in Unity? I might have added some additional code but the graphic assets and sounds were all the same. I decided to investigate it a bit further.

I took the generated apk file and I put it in the apk analyzer tool that's built into Android Studio. You can find it in "Build/Analyze APK...". The results were quite interesting and led me to some further steps. BTW, if you don't know how to handle Android Studio, you can just change the apk file's extension to zip, unzip the file and analyze its contents manually. It won't be as efficient but it'll do.

What I soon found out was that what took the most space in the apk file were not my graphic assets nor my code but the native libraries in the lib folder. They were split into two subfolders: x86 and armeabi-v7a each of roughly 10MB.

I started thinking if I could get rid of some of them and it turned out that I could. The answer was to build the project for each architecture (arm and x86) separately and then publish them both on Google Play. This way each version would be around 15MB in size and it would be distributed to appropriate, compatible devices automatically. Here's how I did it.

I went to the Build Settings (File/Build Settings...) and I found Other Settings/Configuration/Device Filter. It was set to FAT (ARMv7 + x86). I switched it to ARMv7, built it and then did the same for x86, saving it in a different file and incrementing the version name and version code beforehand (Other Settings/Identification/Version and Other Settings/Identification/BundleVersionCode).

Then I followed the official Multiple APK Support guideline to publish both apk files on Google Play. It was quite simple. I just published the first file the normal way. With the second file, I removed the first version form APKs to deactivate, so it moved to the APKs to retain section.

This way, I have two active apk files now, both with a different version name and version code and both targeted at different device architectures. When someone installs my game from Google Play, they get only the version compatible with their device, which is now 10MB lighter. Yes, it costs me a bit more work to create two separate apk files and then publish them on Google Play but I think it's worth the effort. I created a script that builds the two versions from the command line but it's a subject for a different post perhaps.

I hope my investigation will help you make your Unity Android game leaner too. If something is not clear for you, make sure to post your questions in the comments and I'll do my best to answer them.

Sunday, July 2, 2017

Blobby Volley 2.0.9-2.0.13

I've released a couple of new versions of Blobby Volley since the last blog post, mostly with minor upgrades. I decreased the difficulty and I made "very easy" the default one. I fixed the icon resolution. I decreased the walking speed so the game is more about strategy and less about quick movement. I also fixed some bugs.

I had major problems with project building and extra permissions that were added to the apk file. I managed to find a solution to everything eventually, but it consumed a huge amount of time (>10h).

In the last two weeks I was able to work for 17.5h, which makes a total of 122h.

As the basic version of the game is coming to a close, I started reading about implementing multiplayer. It's not going to be an easy task and it's going to take a lot of time, but it should be fun.

As a closing note, I want to thank my beta testers, in particular Tyna, Tomek and Szczepan. Had they not helped me, I wouldn't have been able to find some nasty bugs, and adjusting the game's parameters would have been much more difficult. Keep up the great work, guys!

Monday, June 19, 2017

Blobby Volley 2.0.8

A new beta version of Blobby Volley is out! The basic game functionality is virtually complete. What remains is just general tweaks and adjustments. I'm hoping you can help me with them...

I created an open beta program, so you don't have to be part of the Google+ group to have access to it. Just go install the game from the Play Store and enable the beta program there. Then you can see what the game is like and leave me feedback.

Here's what's new since the last version:
  • there's a complete options menu with controller settings, themes, player colors and miscellaneous game parameters
  • the game uses Fabric/Crashlytics to track bugs
  • the game runs faster and is smaller in size
  • numerous bugs were fixed

The new options menu

I worked for another 14h which makes a total of 105h. Blobby Volley is already so much better than the original version and it took me less time than when I was using AndEngine. Unity is a great engine and I'm glad I decided to learn it.

I can't wait to have the game finally released! If no serious bugs are found and it turns out to be fairly balanced, the moment might come pretty soon.

Monday, June 5, 2017

Blobby Volley 2.0.6

I released a new beta version of Blobby Volley. The game is almost complete and the only thing missing is the menu system with game options. I've already started working on it. Take a look.

This time I was able to work for another 19h, which makes a total of 90h. Here's what's new:

  • I added the game icon
  • I improved the AI significantly by adding delays to its actions and fixing some bugs
  • I adjusted camera scaling on devices with different aspect ratios
  • I added Unity Ads when you go back to the menu
  • I adjusted some of the game's parameters, e.g. the ground level
Join the Google+ group to be able get the beta version of the game from Google Play and remember to activate testing after you're in.

Next time I might actually release the game. There are still more things that I'd like to add, e.g. multiplayer, but they can be done after it's already available to the public. I wonder what people's reaction to it will be. I guess I'll have to wait a bit more to find out...

Monday, May 22, 2017

Blobby Volley 2.0.5

Blobby Volley is getting closer and closer to the final release. In version 2.0.5 I did the following:
  • I improved the AI by using normal distribution random values for errors instead of uniform distribution random values. Thanks to the changes the AI is more human-like.
  • I added Firebase tracking, so I can get more gameplay statistics and adjust the parameters like the difficulty.
  • I fixed the size of point counters, because it was incorrect on some resolutions.
  • I added a pause screen.
  • I added win and lose screens.
To give you a sneak peak, the new screens look like this:

I'm not publishing the WebGL version this time, because it doesn't work well with Firebase. You can play it on your phone and if you don't know how, see one of the previous posts.

To close up this short update, here are some stats. I worked for another 11.5h which gives a total of 71h so far. The amount of time committed to the game in this sprint was rather miserable but preparing a presentation about Unity for the local Android Developers Group consumed lots of it. I'm hoping to do better next time and work on the following: polishing the AI, adding a menu system and ads.

Now go play the game and see if you can experience the win screen yourself.

Wednesday, May 3, 2017

Blobby Volley 2.0.4

The new beta version of Blobby Volley is out. If you're a member of the testers group and you've activated testing then you should get an automatic update from Google Play soon. Otherwise, sign up to be a tester or try the WebGL version.

What's new:

  • points
  • opponent's AI

What's coming next:
  • pausing the game
  • win and lose screens
  • more customization options (controller side, player colors, etc.)
  • ads
For more details see the Trello board.

Since the last update I've managed to squeeze in additional 22.5h of work, for a total of almost 60h. The AI was quite hard to implement. Fortunately, I already had the old code to help me with it.

What's worth mentioning is that I started using Rider instead of Monodevelop as my IDE. I can't even express how much better it is. Here are some of its features that I particularly like:
  • it auto-formats the code according to the C# standard
  • it auto-saves files, so you don't have to press cmd+s all the time
  • it compiles the code on the fly, so you don't have to do it by hand when you want to know if there are any compiler errors
  • it's integrated with version control tools, so I don't have to use Source Tree anymore
  • it has static code analysis tools that help you find compile-time errors (I've found a lot of them)
  • it has intelligent auto-completion that speeds up writing code a lot
  • it has the same shortcuts as Android Studio, so you don't have to learn new ones from scratch
  • it has a dark theme
There are probably more advantages of using Rider, but these are the main ones that come to my mind first. If you use Unity and haven't tried this editor yet, make sure you do it.

I also started using UniRx - Reactive Extensions for Unity. You can find it on the Asset Store and it's free. It's like RxJava but in C#, so if you're familiar with reactive paradigms, it'll make your code clearer and easier to write.

The game has finally reached the state in which it's actually fun to play. I'm really proud of the AI and I'm curious to find out your opinion about it. Do you think it should be easier/harder? Can you find any bugs in its behaviour? Do you have any suggestions regarding its way of playing? I'll be grateful for any feedback.

Oh, there's one more thing I forgot to mention. I'll be doing a presentation on Blobby Volley and Unity on May 11 (Thursday) as part of the Android Developers Group in Poznań. I'll be happy to see you there if you feel like coming. You can find more details on Facebook and Meetup.

Once again, have fun playing and come back for new updates in about two weeks.

Wednesday, April 12, 2017

Blobby Volley 2.0.2

I've just released a new beta version of Blobby Volley. To play it on your phone or tablet, join the Blobby Volley Beta Testes Group on Google+ and then activate testing, if you haven't done it already. This time, I published a web version too. It will be available on Gamebucket for 30 days. You can see it here.

Here's what's new:

  • you can control the player with left/right arrows or an accelerometer
  • there's a simple menu in which you can choose your controls
  • player-ball collisions are disabled when the ball is waiting to be respawned
  • the ball's bounciness is reduced when it hits the ground, so it comes to a stop faster
  • there are sounds when the ball is hit or when a point is scored
  • there's an arrow indicator when the ball is out of screen
  • consecutive ball touches are limited to three
  • game start events are tracked using Unity Analytics
  • there are player walking and jumping animations
  • some bugs are fixed now
What's coming next:
  • gameplay improvements
  • counting points
  • AI
  • ads
Remember that you can always see what I'm working on if you go to the Trello board.
The new changes took me 16h 20 min to add, which makes a total of 37h worked on the game so far.

I'm hoping to have an AI working next time, so make sure not to miss the new updates. I can't wait to test it on all of you. Do you think you'll be able to beat it? We'll see...

Tuesday, March 28, 2017

Blobby Volley Unity Remake Beta Released

The first beta version of the game is out! To play it, be sure to join the Blobby Volley Beta Testers group on Google+ and then register for testing on Google Play. Make sure to leave me some feedback afterwards.

Blobby Volley screenshot

Here's what I've done so far:

  • I created a Bitbucket repository
  • I created a basic game scene with a background, a net, a ball and two players
  • I added basic physics to the scene as well as special physics for the ball and players
  • I created a keyboard controller and a touch controller for the players
  • I added ball and player shadows
  • I handled respawning the ball when it hits the ground
For a more complete list of features done, in progress and pending, see the Trello board. I'll be keeping it up to date, so you can follow the progress more closely.

It took me 20h to create the current version of the game. I'm still learning Unity on the way, so it's probably slower than it would take a more skilled programmer, but I'm happy about the result nonetheless. I use Toggl to track my work time. I quite like the tool so far and I see a lot of new features added since I last used it four years ago.
Here's what I'll be working on next:
  • I'll add ball hitting sounds and whistles when the ball hits the ground
  • I'll add different player controllers, so you can use the one that suits you
  • I'll fix the bug causing the ball to start falling when a player gets close to it but doesn't touch it
  • I'll add player animations
  • I'll add an indicator pointing at the ball when it's off the screen
For a more complete list, go to the Trello board.

Once again, I encourage you to become a beta tester if you haven't done it already. I know the game is still in its early stages, but I'll be grateful for any feedback you give me.

The next update will come at the beginning of April, so in more than a week. Until then, I hope you have fun playing and are as excited for more features as I am.

Wednesday, March 15, 2017

Blobby Volley Unity Remake

It's been almost 3.5 years since I finished my Blobby Volley game. It certainly is my most successful app on Google Play with more than 130k downloads. Unfortunately, it hasn't been very profitable and its retention rate is miserable. However, I still believe that it has a lot of potential. That's why I'll be rewriting it in Unity.

I want not only to recreate the existing version of the game, but also add new features to it like user activity tracking, achievements, more diverse levels or game modes, less intrusive ads, better controls and probably other things that will come to my mind on the way. I'll be tracking my work time and giving you progress updates every week or two. I expect the project to take up around 3 months.

If you want to keep a close eye on the results of my work and perhaps give me some feedback, you can join the Blobby Volley Beta Testers group on Google+ and later go get the beta version of the game from Google Play (mind that it's not there yet at the time of writing this post). I'll be grateful for any constructive comments and I hope you'll have fun testing the game in its new form.

Now, go play the existing version of Blobby Volley and don't forget to tell me what I should keep, add or change!

Wednesday, March 8, 2017

Complete Unity Developer on Udemy - Review

Last week I finished the Complete Unity Developer Course on Udemy. I'd like to share with you a couple of thoughts on it.

The course consists of more than 50h of video, during which you create six complete games as well as cover some additional materials. It teaches making both 2D and 3D games. It touches a lot of subjects, among which you can find C# scripting, basic Unity editor usage, physics, sound, music, animations, exporting to different platforms, publishing your work on the web, importing models from Blender, unit testing, using plugins from the Asset Store, implementing multiplayer, and others. The course is targeted at beginners and intermediates.

What I liked about the course was its comprehensiveness. What I mean by it is that it wasn't just a bunch of random tutorials that you can find on YouTube and in other places, but rather a complete set of well-structured lessons that were teaching you new skills with every single game. The course covers a huge amount of material and, having finished it, I feel that I'm able to create simple games of various type without problems. Just to help you understand the amount of content offered, imagine that to only watch the videos, you'd have to spend 2h every day for a month, let alone doing the exercises and tests that consume a similar amount of time.

What I didn't particularly like was the part on scripting, which isn't useful for those who already know programming, and being mixed up with other information, you can't easily skip it. To be honest, if I didn't know how to code, I'm not sure if I'd be able to get a grasp of it during the course either. Just make sure you know the basics of any language before you start the course and you should be fine.

There were other minor details that I wasn't fond of. Most of the lessons use Unity 4.6 while the current version is 5.5. There aren't too many differences between them, but there are some that may cause your project not to compile or make you look for some editor functions. Also, the course gets a bit chaotic at times, using different coding styles or introducing compilation errors and typos to only fix them in subsequent videos. Finally, the last two subjects abandon the idea of creating complete games in favor of explaining specific topics like networking or handling cross-platform input.

All in all, the Complete Unity Developer is a great course. I'd give it 4.5/5. It was definitely worth the discounted price that I paid for it (12€). Was it not for the much lower price though, I don't think I would have paid 195€ for it. However, I have to say that having paid a small amount of money, it definitely made me more motivated to get to the very end. If you're a beginner or you have little knowledge of Unity, I can easily recommend the course and you don't have to take my word for it - just look at other people's reviews on Udemy. Although, if you are more experienced, you have already created stuff with Unity and you're looking to deepen your knowledge, I'd perhaps look at the official Unity Manual and other places like YouTube first.

My plan for the next weeks/months now is to rewrite my Blobby Volley game in Unity. I want to add some features too (a better menu and perhaps a multiplayer). I'll be tracking my work time and progress, so you can follow me in my struggle. I'll also create a group for beta testers, so you can see the results and help me during the development process. I'll post some more information soon. Stay put and I'll see you next time.

Saturday, February 18, 2017

Facebook Photo Gallery on CodeCanyon

They accepted my Facebook Photo Gallery on CodeCanyon! I'm really proud of my work. So far, it only has a couple of sales, but it's been less than a week since it got published, so I still have high hopes for the future.

After they'd rejected my first submission, saying that my documentation was a little lacking, I added a Quick Start Guide along with some screenshots. Apparently, it was enough to get through the second round of reviews. You can read my thread on the Envato forum to get more helpful tips from other people who got their submissions rejected:

So, what does my app do? It lets you transform Facebook albums into a beautiful photo gallery. Just pick a Facebook page (it can be your own profile) and the albums you want to show in the app (you can filter them by name, id or date). Photos will get synchronized with the app and they will continue to stay up to date, displaying a notification whenever new ones appear.

As to the technical details, the app uses some pretty slick stuff like SyncAdapters, Material Design, Immersive ModeFacebook Audience Network ads, Facebook Graph APIRxJava 2, Moshi, Glide, JUnit 4, Mockito. It might be worth buying just for the sake of learning how to use some of those libraries.

Here are some promotional images, if you're lazy enough not to go to CodeCanyon to actually see my app there:

If you feel like giving me feedback on the app or just leaving a comment on CodeCanyon, please do. I'll keep you posted on how the sales go. Keep your fingers crossed :)

Tuesday, February 7, 2017

Envato Market: The documentation is a little lacking

The title phrase will haunt me for a long time. And here's why...

I managed to finish my Facebook Photo Gallery app that I wanted to publish on CodeCanyon. It took me a bit more time than expected, but still I was quite proud of it. However, it turned out that they required you to upload numerous resources along with your code: a thumbnail, an inline preview image, screenshots in specific dimensions, promotional materials, documentation, etc. Slightly discouraged that my work was not yet complete, I set out to prepare the missing artifacts. They weren't easy to produce, because I'm not a professional designer nor copywriter, but eventually I was able to achieve results that satisfied me. I gathered the code and all the new materials, and I finally hit the upload button.

Happy to see my app in the store, I was disappointed that it wasn't there immediately. I had to wait - I thought, and so I did. A day passed, then a second one, and a third one. On the fourth day I got the following email:

You're nearly there!

Hi Bartosz Wesolowski,

Thanks for your submission.

‘Facebook Photo Gallery’ isn’t quite ready for CodeCanyon. But don’t fret, we’d love to see you resubmit after making the changes outlined by the reviewer below. When you’re ready, you can upload your changes here.

Here is the comment from your Envato Quality team reviewer:

The documentation is a little lacking.

Most importantly, remember that buyers may not be technically inclined. They may just be looking for an item to drop into their existing code base. Also keep in mind that a typical user won't really know about all the features your system brings to the table. With them in mind, you should also look into providing a quick start guide of some sort. It need not be long: a short one will do.

You can use a premade template or the Documenter tool for your documentation, both linked below:

We look forward to reviewing your submission once you’ve made the changes!

Envato Market Team

Still have questions? Check out our Help Center.

P.S. The team have invested considerable time in reviewing and providing feedback on your submission. If we feel that you have not invested enough time in making the required changes before re-submitting, this may be considered misuse of the review process. Where continued misuse of the review process is identified, your submission rights may be restricted or suspended.

My first thought was that it was nothing serious and that I would fix my documentation quickly and re-submit. But wait, what was there to fix? They actually didn't say it! To make things worse, after browsing Envato Forums I found out that the message I got was just a generic template they were sending to many people.

Out of my frustration, I created my own thread on the forum and I filed a ticket to Envato Market Help. In return, I got some help from my thread (but not much), and the following response from Envato Market Help:

Hi Bartosz,

Thank you for contacting Envato Help, my name's Katherine and I am more than glad to assist you today.

Rejection could happen to all of us and no one really likes it when one of the created files gets rejected on the Marketplaces. I hope that you won't be discouraged.

Given the sharp rise in submissions of all quality levels, staff can no longer afford to take longer to elaborate reasons and deploy custom messages for hard rejecting submissions where several or important aspects of a composition, arrangement and/or production are deemed insufficient for acceptance.

The reviewers have thousands of submissions to listen to. The reality is that our marketplaces are stocks and we are not yet able to afford to provide tutorial services for authors, so it’s simply not practical for business purposes to allot significant additional time to explain to thousands of individuals how to specifically improve the composition, arrangement, mixing or mastering for an item that misses the mark by too wide a margin. My apologies.

You may also want to read the following public Help articles:
Rejected Items
Common Rejection Reasons for Envato Market

Please let me know if you need further assistance.

Warm regards,

Katherine S.

Right now, I honestly don't know what to do. I answered all threads on the forum related to the lacking documentation, asking for help. Some people claim there that sometimes it's enough to re-submit without any changes or after reordering some fragments. I'm afraid to try it without at least making an effort to get to know what's wrong.

I don't agree with what Envato answered me. If they were giving at least a hint of what should be corrected, they would spare people lots of frustration, and they wouldn't have to review the same submissions again and again. In fact, they probably spent more time responding to my help request than they would pointing me to the right direction.

So, unfortunately, I can't give you a link to the store yet but just a little sneak peak of the app. Hopefully, someone will help me or I'll succeed in re-submitting a slightly corrected documentation soon. In the meantime, if you feel that you can give me any advice, please do.