Search Unity

[WIP] A Clockwork Brain Steampunk puzzle/brain-training game

Discussion in 'Works In Progress - Archive' started by Pixelsprite, Oct 9, 2014.

  1. Pixelsprite

    Pixelsprite

    Joined:
    Dec 12, 2013
    Posts:
    24
    Hi all!

    I’m Maria, a Producer at Total Eclipse, an indie game dev studio located in Thessaloniki, Greece. We’ve recently made the shift to Unity after quite a few years of using Obj-C and cocos2d-x. Our first project is the complete porting of our hit iOS game, A Clockwork Brain, to Unity, in order to take advantage of its multi-platform capabilities.

    I thought that I’d share the porting progress with you all. This far, it’s certainly been a learning experience for us. This first post might be longish, but the next ones won't be, I promise.

    A Clockwork Brain is a puzzle game with brain-training elements. The focus is on the puzzles, and fun, part, rather than the science behind the training part. The game’s theme is Victorian Steampunk, fused with Mayan art. Each puzzle is designed as a unique contraption; particularly for the Victorian-themed ones, we were influenced a lot by obscure Victorian inventions. There are 13 games in total, and we have many more in mind for the future.

    We are targeting Android at first, so you can expect a few Android-centric updates now and then. Here are some WIP-photos of a few of the mini-games we have completed, as well as the Challenge mode, where you can play 4 games in a row.




    The imggur gallery will be updated as we progress along.

    Here's what we've done this far:
    • Unity Project fully setup with git version control enabled.
    • 90% of the Art Assets have been re-exported in high resolution to support xxhdpi devices (looking at you, Kindle Fire HDX at 2560×1600, 339ppi). Thank goodness for scripts...
    • The Challenge Mode Manager is done – you can fully play a Challenge game from start to end.
    • Challenge Select games: You can select which games you’d like to play in a Challenge.
    • Single Game Mode: You can choose a single game to play.
    • Eleven mini-games out of thirteen, are finished*
    *We do QA for every version and tweak bugs that might creep up. By finished, I mean working with the expected behaviour, but there might be some polishing, tweaking, and device optimisation left to do.

    Plugins we're currently using:

    Problems we're facing
    Thanks for reading! If you'd like some more info, here's our Facebook Page, and our Blog with weekly devlogs. You can also find me on Twitter.
     
  2. Pixelsprite

    Pixelsprite

    Joined:
    Dec 12, 2013
    Posts:
    24
    Hi folks,

    Here's last week's updates on A Clockwork Brain.

    We did a lot of bug-fixing and optimisations, as there were a few serious glitches to tackle, before moving forward. We also finished the Logic Tiles mini-game, here's an in-game screenshot:

    We also worked extensively on adapting the game for wide/long screens. We decided to expand each mini-game’s background, so that it can fill different screens sizes nicely.

    The approach that we will be using has to be:
    • Memory-friendly (you don’ t want to burden the device with a lot more graphics)
    • Aesthetically pleasing (the games should still look very nice on all screens)
    • Customisable (usable with hundreds of different configurations)
    We finally settled on a design that uses custom-made top and bottom borders that can also expand vertically when tiled. Since each mini-game is depicted as a contraption, we will be expanding the top and bottom, in a way to show more of the device. For example, here is how the mini game Directions would look at a 16:10 resolution.
    The borders can be exported in atlases without transparency and both take 1 MB of RAM with ETC1 compression. Most of them we have managed to fit in existing background atlases so they will not take any extra memory at all.

    Thanks for reading!

    If you'd like some more info, here's our Facebook Page, and our Blog with weekly devlogs. You can also find me on Twitter.


     
  3. Pixelsprite

    Pixelsprite

    Joined:
    Dec 12, 2013
    Posts:
    24
    Another week gone, another mini-game complete!

    During last week we finished Word Length, which also happens to be one of my favourite mini-games.. although I can never seem to reach the Insane Round. Besides porting the game to Unity, we also made some usability improvements, compared to its current version on iOS, which should now make it a lot more intuitive for the players to understand which button they pressed.

    Furthermore, we started working on the last game, What Has Changed. Being one the most complex mini-games, it should take us longer than average to port, but we expect it to be completed sometime this week.

    Work on the supporting server backend and game peripherals is also progressing well. Last week our engineers focused on implementing parsers for communicating with the server, as well as designing an offline mode that can substitute the server when there is no active Internet connection. This works by implementing any domain rules locally and reading responses from local storage. In addition, we worked on the architecture for supporting multi-platform leaderboards and achievements.

    On other issues, I have been working towards a quasi-solution for Unity’s horrible non-dither support for RGBA444 textures with transparency. You can read more about this issue at my dedicated forum question, but the <tl;dr> version is: Unity does not apply a dithering algorithm when compressing textures to RGBA16, making any sprite with even a hint of gradient, look completely horrible.

    Since I could not find a way to add a new compression option to the Unity pipeline (for example ARGB 16 with Floyd-Steinberg), I now use the following technique, which gives better results than the Unity default compression:
    1. Export all Atlases with transparency to RGBA 4444 with Floyd-Steinberg Alpha from Texture Packer.
    2. Import them as usual to Unity.
    3. Change compression settings for those textures to RGBA16.
    4. Unity applies its own ‘compression’ but since the image is already dithered, Unity’s compression does not do as much damage.
    5. Build to device as usual, without glaringly horrible gradients.
    Here is a screenshot comparing the different approaches, so that you can see what our quasi-solution is achieving.

    Hopefully Unity will give us a dither option in future versions, or at least allow us to roll our own…

    That's it for this week, thanks for reading!

    If you'd like some more info, here's our Facebook Page, and our Blog with weekly devlogs. You can also find me on Twitter.