Search Unity

Play a free beta preview of my Daydream tower defense game

Discussion in 'Daydream' started by jmitcheson, Dec 21, 2017.

  1. jmitcheson

    jmitcheson

    Joined:
    Oct 21, 2016
    Posts:
    96
    Hello!

    I'm pleased to announce a preview of my first Daydream game - Dash of the Damned - is available for free beta testing on the Google Play store.

    Dash of the Damned pushes VR tower defense to its limits with up to 50 characters battling at one time, using fully animated skinned meshed renderers and real-time lighting.

    It would be a huge help if you could download and do a quick sanity test as this is my first game and I'm quite nervous about something going wrong that I've overlooked.

    On the technical side, the performance is achieved with a custom interface for "Prespawning" each wave of enemies, and then baking them all into one mesh using Mesh Baker. Therefore, each wave is one draw call and uses no Instantiate. This wave uses the same material as the background artwork, meaning the entire scene can be drawn with one 4096*2048 texture and around 10 draw calls.

    All animations had to be baked into the legacy system, and all the enemies are moved to the root of the scene to improve performance (this made a huge difference). There is no canvas either - the HP bars are cubes and all the UI is drawn with a mesh. The particle systems are based on cube meshes and single-color unlit shaders. The main shader is Mobile/Vertex-Lit.

    I was unable to get bake results that looked as good as dynamic lighting (even with Mobile/Diffuse), so I just optimized everything else I could and left the lighting as-is. It remains to be seen if this is wise or not! I may keep a baked copy and swap it when the scene gets too "hot".

    This project has taken 10 months so far and I've had a very very deep dive into the performance of mobile VR in Unity - I may in the future do a write up on some interesting things I've learned. For example this bug means you might be over-all better off with static batching disabled, and there is an overhead to dynamic batching which means it may also be faster switched off.

    upload_2017-12-22_9-27-37.png

    upload_2017-12-22_9-21-47.png

    upload_2017-12-22_9-21-56.png
    upload_2017-12-22_9-22-16.png

    I have only tested the build on a Google Pixel so please if you have an S8 let me know how it goes - I know others had issues.
     
  2. kalineh

    kalineh

    Joined:
    Dec 23, 2015
    Posts:
    241
    Would like to see your writeup on performance! We're pushing mobile builds hard on performance too, there's a lot of unusual performance issues that are hard to diagnose. How'd you handle baking the whole wave into a mesh and still animating each individual character?
     
  3. jmitcheson

    jmitcheson

    Joined:
    Oct 21, 2016
    Posts:
    96
    Busy with another project now so full write up may not come but more than happy to answer individual questions here.

    No extra work is required after baking the mesh - the animations continue to work as normal. To be honest I do not know the mechanism by which this works but it's out of the box functionality with MeshBaker. However Unity's "Culling API" needs to be used to manually enable/disable the animation component (and audio etc) when the creep is out of view.
     
  4. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    904
    Here is Ian's tutorial on how his MeshBaker works with skinned mesh renderers:


    @jmitcheson: Project looks great! I'll definitely kick the tires and give you some feedback soon!
     
  5. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    904
    Played the first 2 missions on a Google Pixel XL. Overall impression was very good!

    No crashes or serious technical bugs encountered. Performance was excellent.

    The tavern and instruction manual work very well for introducing the player to the game. The book with pages works great - good stuff!

    Having already read that book, some of the in-game tutorial tips were a little redundant. Also, I tried to do things like take direct control of the weapon in a tower before I was supposed to, so the in-game tips became slightly confused, prompting me behind another overlay, but no real harm was done - nothing blocked progression or caused a serious problem there.

    When I click a tower, I cannot see how much it costs to upgrade it, only that I can or can't. For a long time I couldn't, I thought because I didn't have enough gold, but later I came to think it's because the upgrade levels were still locked when I was prompted that Barracks level 2 had been unlocked. I thought I just couldn't afford them.

    I always had more gold than I could spend.

    It appears the player is standing on top of a tower of his own. It's quite disconcerting that this tower rotates along with your gaze, but lagging behind - like the entire tower that you're standing on is rotating underneath you. On the second mission, it blocked important parts of my view of the battlefield - I had to turn to look "just so" so that the visual crack in the front of the tower allowed me a clear view. Also on that 2nd battle, you have to look way to the right and almost behind you to see the final towers and exit, which becomes tiring.

    On the 2nd mission, there is some noticeable z-fighting between the road and the ground under it. It flickers green as you move your gaze around. It's not killer, just something slightly bothering.

    When you take control of the bomb tower, the instructions on the sign seem incorrect. Seems like you always have to just flick and it always exploded when it lands?

    When I took control of the arrow tower, I found it very hard to hit anything. I quickly decided I was doing more harm than good by being there since I was just missing - though I wasn't really *sure* whether I was missing or not much of the time. Some feedback on a hit or more visual clarity on a hit might help?

    The whole outer meta game worked just fine. It was really clear what I was supposed to do, where I was in the progression of battles, etc.

    Hope that helps!
     
    jmitcheson likes this.
  6. jmitcheson

    jmitcheson

    Joined:
    Oct 21, 2016
    Posts:
    96
    Thanks for much for all the details in your review Claytonious! That's the most anyone has said so far. It all makes sense and is really helpful. I am so glad to read it :). I can make some good changes for the release version I think. Let me know if you want me to test anything for you in the future.
     
    Claytonious likes this.
  7. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Looking good.
    GalaxyS8 with daydream. I get:
    "not compatible with your device".