Back to Defold after 2 years, "Bouncy Catapult" hypercasual prototype

Released in Defold 1.2.147

6 Likes

I keep working on the game and noticed some inconsistency and area for improvements in Facebook platform documentation.

I need Facebook Analytics to track installs from FB Ads + for custom game events. First of all, I missed the fact that FB support is already implemented in the engine and was looking for some extension and failed to find any :sweat_smile: But it’s my bad, no complaints here.

Then @AGulev pointed at the https://www.defold.com/manuals/facebook/ and I have some feedback about this manual:

  1. The manual looks old, here are Editor 1.0 screenshots and approach. Not critical, but worths updating
  2. Nothing said about Facebook Analytics. I think it would be very nice to have a separate paragraph related to Analytics (so it will be possible to find it from search by exact request). With such info:
  • what needs to be done to make it work (actually it’s enough to just set your Facebook App ID in game.project and you’re all set, but this was totally not obvious for me)
  • what platforms are supported for analytics (I’m still not sure if it’s possible to send events from HTML5 build outside of Facebook Canvas, what about “Web” app type in FB dashboard? Is FB Pixel JS lib integrated to Defold’s HTML5 build?)
  • it worths mentioning, that attempt to call methods to “facebook.***” on the not-supported platforms will cause an error (facebook is nil), so you need to use “sys.get_sys_info().system_name” to check the platform
  • what events will be sent automatically (I was sure that I need to send “facebook.EVENT_ACTIVATED_APP” manually because it’s listed in the API docs and there is no notice saying “hey, Launch event will be tracked automatically, no need to carry about it”)
  • and finally would be nice to briefly say how to see your events in FB Dashboard and make sure you did everything right (in theory it’s enough to just build and launch the app, being connected to the internet ofcourse; and then check events in the “Event Debugging” panel in FB Dashboard)

So, from this manual I’ve at least knew where to put my FB App Id. But what’s next? From my previous experience I knew that there should be some kind of “activation” event to track new installations and app launches. So I went to the API docs https://www.defold.com/ref/facebook/#facebook.post_event:event-value--params-
And again - there were few frustrating things:

  1. I saw “facebook.EVENT_ACTIVATED_APP” param name and thought “Aha! Gotсha! I need to send this event on the app start!” And there was nothing saying I actually should not.
  2. So I tried to write “facebook.post_event(facebook.EVENT_ACTIVATED_APP)” and noticed that there is no such constant. Went back to the docs - the const is listed in “post_event” description, but is not listed in “constants”. So it looks outdated and I guess it should be removed from the “post_event” desc (as well as few other consts)
  3. There is https://www.defold.com/ref/facebook/#facebook.enable_event_usage method that “enables events usage”, but it’s not said if it’s enabled by default or should be triggered manually. For me personally it’s very frustrating to see such triggers without pointing to the default state (later I figured out, that yes, it’s enabled from the box)
  4. What about “EVENT_LEVEL_ACHIEVED”? It’s supposed to be one of “standard” events, but I don’t see it in consts list.
  5. https://developers.facebook.com/docs/analytics/send_data/events#implementing-events - here in “Events constructor” I see a toggle for “Use value to sum”, and as I see in generated codes it simple adds or removes “value” parameter. But in Defold’s “post_event” the “value” parameter is not optional. And it’s said “This should represent the value of the event, such as the level achieved” - but logically sum achieved levels number sounds as a bad idea… Just a bad example with the level? So, just put 0 here? Should not it be totally skipped for events where I don’t need to sum value?

Finally I’ve found the list of events supposed to be sent automatically: https://developers.facebook.com/docs/analytics/send_data/events#autologged, decided that probably Defold does this without any additional actions, built the app, launched it on the device and observed “App Launch” event in the dashboard.

I spent about two hours trying to understand what is the right way to implement analytics and was surprised both with the docs incompleteness/inconsistency and by the fact that no-one asked about it on forum before. I believe nowadays FB Login is not very demanded thing, but Facebook Analytics is, including but not only because of FB Ads. I’d be happy to help with making it more clear to other newbies :+1:

P.S. there are 50 new levels and some design improvement in the game: http://anvil-games.com/defold/catapult/index.html - I’d appreciate any feedback :innocent:

8 Likes

Thank you for the feedback. I will look into improving the manual, probably next week.

2 Likes

This game seems like perfect for “watch an ad to unlock a random character skin” with the coolest ones teased.

Maybe add some “white air streak trails” behind the character as it flies around.

5 Likes

Thanks for the feedback! Various characters is definitely what we are going to add at some point :wink:

As for trails - yeah, I was thinking about it too, any ideas how can this be made in Defold? I know two approaches to draw trails - generate the trail from triangles in runtime or try to make it via particle system. Not sure if first approach is even possible in Defold at the moment (I remember someone said you can’t manipulate generate polygons in runtime). As for particles - it’s hard to make trails smooth with this approach, it probably will be looking fractional.

So, any ideas?

Try particles just to see how they look (these don’t have to be pointy they could be small white dots, you could also make some flat particles and stretch them based on velocity… experiment and see what looks good). Apply a negative inherit velocity to make them shoot away from the character. I’d render these particles below game sprites so you probably would want to give them a sprite material and then put their z below the sprite z, or make a custom render predicate or two…

For the game object approach I would make a factory create a triangle shape pointed away from the character and have that z below the player. Defold already pools GOs for you so you can create/destroy them freely. So you spawn a trail GO, and then animate it to scale it down to nothing with a callback function within that to destroy the GO. That way you don’t need a script on each trail GO to deal with that… should work! And should make a nice white pointy streak following the player. You should be able to get the direction to point the arrow shape based on the player’s physics simulation go.get("#collisionobject", "linear_velocity")

2 Likes

I’ll try, thx :+1:

1 Like

I have updated the Facebook manual and added a separate section for Facebook Analytics:

This is unfortunately a left-over that should have been removed from the docs. EVENT_ACTIVATED_APP, EVENT_DEACTIVATED_APP and EVENT_SESSION_INTERRUPTIONS will be removed from the docs in 1.2.149.

This is missing from the docs but available as facebook.EVENT_ACHIEVED_LEVEL. It will be added to the docs in 1.2.149.

These events are logged automatically by the Facebook SDK that we use.

3 Likes

Perfect, thanks for the update!

Great game by the way!

2 Likes

Fixed in 1.2.149

3 Likes

1 month passed from the last update. There some changes were made in the game:

  • Game link is the same: http://anvil-games.com/defold/catapult/index.html
  • Sounds and music added
  • Some visual effects added, along with the trail; made it via ParticleFX as @Pkeod suggested, but today this awesome extension was released by @aglitchman , going to give it a try
  • levels were rearranged and polished regarding players feedback and analytics
  • some UI changes

Also the game is released in few countries on iOS currently - you can play it before I’ve ruined it with tons of ads :money_mouth_face: https://itunes.apple.com/us/app/bouncy-catapult/id1450757809

Yes, the changes might look minor as for 1 month of work, but it was a month of Facebook ads experiments, checking different creatives and approaches, learning how to make these creatives, understanding the rules of this game and burning some money, of course :grimacing:

Currently we’re working on other color themes to see if brighter ones will work better, you can check the mock-ups:

14 Likes

I love the new style and design. Somehow it feels much better now.
And the first 15 minutes now are much more fun!

4 Likes

I really like the picture on the right!

4 Likes

It’s our favourite too, just started testing this color-theme in FB ads tonight :crossed_fingers::crossed_fingers:

2 Likes

Have you managed to get many organic installs in the hypercasual space? Or are you relying on FB ads? How is the CPI?

1 Like

I’m getting around 0 organic installs, while not running any FB Ads, but I did nothing to gain organics. While running ads there comes 20% organic installs (well, any install which was not tracked by Facebook I count as “organic”) and they show worse metrics than ones came from ads (what is expected for organics).

As for CPI - in the beginning of my experiments it was more than $1, now it’s around $0.65, but this is a deadly high CPI as for Hypercasual game, so I’m now just experimenting on the game, but it hardly will gain any real success on the market. I’m not sure if we can reach $0.2-0.3 CPI with this game, but keep trying.

This week will push experiment with Playable Ads, we’ll see if it will show lower CPI or not…

6 Likes

Solved in 1.2.156

4 Likes

Hey hey, time for a small update! :slight_smile:

What happened during last 2 months:

  • I’ve tested everything I wanted with UA experiments, unfortunately the best CPI was about ~$0.5 (with Playable Ads made on Defold) which is still too high for such type of game to be covered by monetisation
  • Tested game with two hypercasual publishers - HomaGames and Voodoo, their tests showed even worse results - CPI higher than $1
  • I also tested “Paid hypercasual” approach - the idea was to try to acquire installs to paid version of the game and see 1) if CPI can be lower than game price 2) if there is any organic traffic from paid games top charts;
    Results for our exact game: 1) CPI was around $15 for game priced $0.99 2) there were about 0 organic installs/purchases from highest reached ranks as #top40 Puzzle & Arcade, #top300 Games, #top700 Overall in USA (more details in Russian here)
  • The game was published in Russian web-games catalogue Yandex.Games, direct link to the game is here. This catalogue works in alpha-mode now and the game generated about $15 in first month after release. Meh.
  • I lost my job (our office was accidentally closed by the mother-company) :poop:

What’s next:

  • Add more content: different materials for bricks - glass, concrete etc; different shapes of bricks - triangles, circles, boxes; modifiers and obstacles on levels; new characters, new backgrounds, new sounds;
  • Try to make gameplay more dynamic, there are few ideas to check, maybe I’ll post test build here for the feedback, if anyone wants (for example, the ability to swoop down by tap on special button - should help to aim better and break final bricks)
  • Make game paid and ask featuring from Apple on AppStore;
  • Add ads and publish as F2P on GooglePlay;

Keep tuned :wink:

8 Likes

Sorry to hear that. Best wishes…
And thank you for the details about your cpi

1 Like