Search Unity

[iOS][Android][Free] Drag'n'Boom (by Ankama)

Discussion in 'Made With Unity' started by ankama-romain, Sep 13, 2017.

  1. ankama-romain

    ankama-romain

    Joined:
    Jan 2, 2017
    Posts:
    3
    Hello everyone!

    We just released this week Drag’n’Boom on iOS, a dynamic physics based game where you play a young dragon raiding castles to create your treasure. (So you can sleep on it when you’re old!)



    Let me introduce you a bit the project on the game dev side.

    The game was developed in Unity 5.5 making the best of its API and services. We are team of two (although we are working in a much larger studio in France, and we benefited from its help for the music, sound effects and some of the publishing stuff) and it took us a bit less than 6 months of development to get there.

    When my partner Loïc pitched me his idea for the game, I was a bit skeptical at first to develop this kind of game in Unity and for mobiles on top of that. It had to be very fast and fluid while potentially being quite heavy on the physics engine. A few tests of our prototype on our older Android devices comforted us that it could be possible after all and so the adventure began…

    We faced quite a few challenges during the development of Drag’n’Boom. At first we focused on the touch input, camera system and player interaction with its environment through the physics engine. The physics was driving the player movement, but Loic wanted the dragon to quickly adapt its animation to its different states, sliding, wall jumping, flying, jumping… The animator became a nightmare, but with the help of a few well placed raycasts, I managed to identify in most cases the player states in its environment, without killing the performance too much.

    After many casual playtests with colleagues, friends and family we reached a state where it was just fun to simply fly the dragon across the air and slide him on the hills.

    player-animator.JPG


    The next step was to shape the dragon’s environnement. Because we knew we wouldn’t have much time to develop the game, we went for randomly generated levels. We split levels into big specialized chunks (the start/end of a level, some cool hills and slopes, a small castle with enemies, etc) made of tiles with their own collider, each chunk in their own scene. When starting a level we would then assemble them via some simple algorithms and the native SceneManager API. We iterated on the system to add the possibility to generate specific levels feeding a list of chunks as we moved to hand picked levels, we wanted to properly control the difficulty and made sure each levels felt unique at first. We still kept the random generated levels for the end game, and even used it to find interesting chunk combinations when designing the first levels.

    level01-editor.JPG


    We also had to add several enemies to shoot at. On the logic side, I tried to keep them modular enough, with basically one MonoBehaviour common to all enemies to control them through a simple state machine. Then I could plug to it an attack and a movement script. We could then mix attack and movement behaviours to easily create new enemies. (A walking enemy shooting stuff, a teleporting enemy shooting stuff, etc).

    debug-ai.gif


    Finally came the fireball system. I used the ScriptableObject class to handle the shoot logic (multiple fireballs over time or at the same time but with different angles for example) spawning prefabs of a specific fireball, each prefab having scripts handling how they would behave (bouncing on the ground, splitting into other projectiles over time, etc) and eventually an explosion prefab.

    The mix of scriptable objects and prefabs allowed us to tweak at runtime all fireballs, which saved us a considerable amount of time. The hardest part was probably to name them! :D




    Well I’ve mentioned some of the important blocks of the game. We really want to share more about the challenges we faced during the development of the game and will try to find some time to delve further in all of this on Unity Connect.

    In the meantime, don’t hesitate if you have questions about the game and its development, Loïc and I will be more than happy to reply!

    Thanks for reading and we hope you'll enjoy the game :)

    App Store: https://itunes.apple.com/app/dragnboom/id1249845602
    Play Store: https://play.google.com/store/apps/details?id=com.ankama.dragnboom
    Unity Connect: https://connect.unity.com/p/drag-n-boom

    PS: You can also follow us on Twitter for more information via @UltraBanaman (Loic, my partner in crime) & @xiaoluoman. We also hang out on Touch Arcade.
     
    Last edited: Oct 17, 2017
    Botanika and theANMATOR2b like this.
  2. ADNCG

    ADNCG

    Joined:
    Jun 9, 2014
    Posts:
    994
    Looks absolutely awesome. GL with launch.
     
  3. ankama-romain

    ankama-romain

    Joined:
    Jan 2, 2017
    Posts:
    3
    Thanks! The launch was a blast for us, with over 1.5M players around the world in our first month and with very positive reviews on the App Store, we couldn't be more thrilled!

    And now the game is available on Android as well, you can get it on the Play Store:
    https://play.google.com/store/apps/details?id=com.ankama.dragnboom

    I've also setup our game page on Unity Connect: https://connect.unity.com/p/drag-n-boom

    Have fun :)
     
    Botanika likes this.