Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[WIP] Up the Rabbit Hole (3rd person adventure/platform game with a little artificial life)

Discussion in 'Works In Progress - Archive' started by eelstork, Oct 6, 2014.

  1. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Usagi no Charade, a.k.a Up the Rabbit Hole, is my pilot project for developing with Unity.

    This is a third person adventure/platform game that started 3-4 months ago as a series of experiments recorded in my unity tech blog and my youtube.

    I am designing this platform game as a microcosm involving live organisms and smart(er) AIs

    About me: previously I released several games on the iPhone/iPad; before doing this I worked with a couple of companies as a scripting platform architect and game framework builder. So, I'm a game system builder who learned (the hard way) the difference between building systems and building games.

    Today my focus was on tweaking the day-night cycle and experimenting with solutions to break down my level file as I want bigger ground meshes and the importer easily chokes on these (big level file with lots of big meshes = slow ).



    Living organisms... ? I'm chewing on this whenever I find time:



    You can try the w.i.p on Wooglie, in their dev section.

    I'm responsible for the overall game concept / design; I write the code; I do level design and a lot of modelling. However several artists kindly help with this project, notably with concept art, animation and organic modelling.

    Note: one motivation to track this here is that I hope to find people that want to do similar stuff (so, focusing on real-time / 3rd person 3D ) as I'm thinking of releasing the underlying APIs / framework and need sponsors. So, you can PM if you are interested or if you have work to offer in similar area.

    I will update... maybe every 2/3 days, at least weekly I think.
     
  2. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    I've been setting up a workflow to generate nicer details on the terrain. I write 'generate' because it doesn't involve much modelling ( this part is done in Blender, not Unity) .

    Here you can see a very rough Cycles bake (left platform) which doesn't do justice to what this can achieve... Baking with Blender Cycles is really good news for people using Unity Free. I have a mini project that's more suitable for this so... later.


    See my previous post for link to (updated) live build.

    The reason big meshes and long import times won't do for me is that this would literally kill my level file. I probably need to write an automation. Would be curious to hear of anybody who tackled this before.
     
    Last edited: Oct 8, 2014
  3. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Would the character be able to run ? About level design you could use reusable platforms and premade roads segments this could help you speed up the level making.
    Good work.
     
  4. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Modular design would speed things up, and quite possibly avoid the so called 'large meshes' issue. I wanted to give myself a chance to do more focused, more detailed work by focusing on a small space though...

    Run? Same idea here: trying to make more things happen in a smaller space (to the point, of course, where running would be dangerous/undesirable).
    Maybe I got this wrong? As I see games where the character can run but actually their running speed is 120% of a normal walking speed, and the walking speed is 50% of that. I wonder whether this is about pacing the game without the "Aw she's moving so slow, she can't even run" psychological gotcha.
     
  5. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Developing the procedural approach to refining the terrain.

    BEFORE



    AFTER



    Note that these are Cycles renders.

    Let's go back into Unity with a new video showing a different part of the map, and a different time of the day (if video is too dark on your display come back a bit later, recalibrating... )



    The changes involved a trivial modifier stack, geometry is 3 times heavier, frame rate not a concern (frame rate you see in video is irrelevant).
    The scene now takes 5 minutes to import into Unity; I wrote a script to chunk the level file but 5 minutes isn't atrocious, so I may bear with it for now.

    No update to live build today.
     
  6. casimps1

    casimps1

    Joined:
    Jul 28, 2012
    Posts:
    254
    You've got some neat stuff going on here. I always enjoy games with these kinds of AIs.
     
  7. jalapen0

    jalapen0

    Joined:
    Feb 20, 2013
    Posts:
    136
    Looks great. My only suggestion is a name change. Up the Rabbit hole sounds like something you are probably not going for. Maybe just change it to "Down the Rabbit hole". You game though. Again, it looks great.
     
  8. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    I wouldn't be so sure. I mean, I know exactly what it sounds like.
    Even so it's a working title and like many things it is subject to change.

    I had the idea of an ill-tempered, fussy main character, this is evolving into an interpretation of the queen in Alice. So, aside from a bad pun the idea of looking at Wonderland from the other end of the scope helps putting design elements in perspective.

    If it acts as a deterrent - say for instance discouraging people from checking this thread... then it's a bad working title.

    And thanks for the encouragement!
     
    Last edited: Oct 9, 2014
    jalapen0 likes this.
  9. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    This update is much overdue.



    You can play the latest build [here]

    Ground constraints

    I finished cleaning up after improving the terrain (the new terrain is uneven in many places, which arguably looks better, but needs more work).
    One interesting workflow optimisation was introducing ground constraints. There's a key shortcut to place objects on the ground but custom constraints are useful if we update the ground after placing objects on it.

    Improved navigation when transitioning between indoors and outdoors

    These transitions are tricky because the control scheme is not the same in 1st person (indoors) and 3rd person (outdoors).

    When transitioning to indoors, first person controls are "eased in" using a gain parameter. A typical annoyance that this alleviates is when entering a building while holding the right arrow key, the view would start rotating to the right.

    When transitioning to outdoors, I use a "wait for release" approach that's trickier to get right. The idea is that, we lock on previous input until the navigation input pattern (which keys are pressed or not) changes. But we don't want to read keys directly because this won't be compatible with keyboard-less platform. So it has to be done via Input.
    In pseudocode:

    Lock walking direction
    Yield until input magnitude decreases
    Yield until input magnitude increases
    Unlock walking direction

    Other stuff

    I've been working on Blender scripts to use blend files as asset libraries and correct other export annoyances but I hit a quirk that'll force me to do things in a roundabout way. (<= please click on this if you're familiar with blender scripting and think you may be able to help)

    Finally, I've been playing with visibility polling to avoid unexpected behaviour (e.g. PC attacking an off-screen NPC). Won't be much use in my case because visibility culling isn't precise enough (I understand that this is meant to help optimising, so I was probably abusing the APIs in this case).
     
  10. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Nice, the character could really need something to "ground" the character, like a simple blob shadow or similar, seems like she is floating around and hard to tell exactly where she are on the terrain, the low camera angle does not help either. Keep it up, looks interesting so far : )
     
  11. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Thank you.

    When the sun angle is low, intensity drops and shadows disappear. This is by design: long shadows on the ground would end up looking pretty bad.

    However, having a bit of a shadow under the character is important (visually, but also functionally to define its relation to the ground) So I'm thinking of activating shadow-casting from a vertical source and using a little trickery to mask the transition. Still.. a blob shadow may work better.

    Talking about shadows, here's a little teaser of the next update:

     
  12. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    For this update I worked on improving interiors (live build here):



    In short, house models are kept in separate files; used a couple of tricks if we can even call it that.



    These models aren't final but already much better (I hope) than the dummies we had before. As usual refining geometry causes small landslides (meaning: design changes).

    I am cutting corners as much as possible to quickly move to the next significant improvement. For example, I initially thought that I needed many variations around the original house design but this may not impact quality as much as, say, furbishing said houses. So I make do with only 3 variations.

    "Adaptive refinement" is really the way that this project is done so, it would be hard to say whether anything you see here is final. I hope not. Is it wasted work, then? I don't think so, in the sense that each iteration (visually as much as technically) provides input for the next... Would be happy to have opinions on this.

    Gameplay and usability are lagging behind so we have a topic for the next update.
     
    Last edited: Oct 24, 2014
  13. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    The game looks more like a Mario 64 game that we would want to play like Mario 64 instead of a slow adventure like game.
    - Will you implement basic textures ? it looks too much bad actually with simple colors and your lightening is too strong.
    By basic you can do like "Journey" game and some other choosing simple textures easy to make.
    http://canadianonlinegamers.com/wp-content/uploads/2012/04/Journey-pic-5.jpeg
    - The walking animation is somewhat not enought natural and smooth , it is final animations or prototyping ?
    - Red characters should be more alive, their animations are too simplistic
    - Some particle effects when the character hits the red mobs will do better job
    The game looks lot more like some platfomer with ennemies all around, looking at the level i would expect to be able to run, jump , smash ennemies, instead of adventuring.
    By adventure i would expect bigger structures, lot more objects and mechanisms to look at and use, and ennemies you must put out using mechanisms and tricks instead.
    Perhaps making the game more action game and keeping the adventure part for puzzles and mechanims would be better ?
    I suggest you to post a first demo to gather players reactions and decide what direction to keep or change than.

    Anyway that's a big amount of job you already made, a really good job, but i find the game would need really a minimum texturing style and choose better lightening and shadows also.

    Keep the good work.
     
    eelstork likes this.
  14. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    I really hope we're moving away from the "Mario 64" visual feel. It brings somewhat incorrect expectations about how the game should play.

    Visually there's a lot of work to do. Mainly adding elements, detailing and, like you mention, texturing but not something very complex as I like to keep a cartoony style. Tuning light and color is a little tricky because I want to keep the day/night cycle which involves calibrating many parameters over and over (thinking of trashing this but I can't get myself to give up).
    And we're trying to make this work with the free editor.

    About the game mechanics, it works more like a platform game but without much of a commitment to the genre.
    Early we could see the possibility of adding 'point and click' puzzles, especially indoors. However I'm not interested in implementing this in the game - instead I really want to develop gameplay around the AIs that I'm implementing - if you tried the live build you might have noticed that the NPCs basically do whatever they do, but without much impact on the gaming experience. I don't really know how to bring this into our game, but others have than it well (e.g. Waking Mars) so let's try to create something fresh.

    I was trying to improve lighting and visual feel this morning, I found the result interesting:



    Thank you for all your comments!
     
    Last edited: Oct 28, 2014
  15. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    The new lightening makes the level looking lot more good now.
    Bu the animations are bad, i mean the heroine anim is like a statue walking, and the speed walking is faster than anim speed. Also the ennemy has no real cartoon animation.
    Keep improving :)
     
  16. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Today I'll be talking a little about how I cope with workflow issues.
    A problem I've been trying to mitigate for a while is how the large size of the main level file is kinda slowing things down because of re-importing over and over as we make changes.

    This post is a bit low level but I hope to get some feedback about how other people are doing this.

    Here you can see that I'm building a pond on the right. Doing this in the main level file would be a pain as I like to play-test as I go. Anyway, the original situation was:
    • Platform in main level file
    • House in a separate file


    I resaved the main file, moved everything but the platform I want to modify to hidden layers (using the little script I posted) and linked the house as a group (tutorial), and this is how the work file looks like:


    Interestingly, groups are picked up by the FBX exporter. However since the export script gives control over which layers are being exported, this is not a problem (I don't want to re-import the house every time as I make no changes to that).

    As this is a pilot project I'm trying solutions on a case basis. I wouldn't do this for every platform/area in the game. With a little more scripting it should be possible to eliminate these issues.
     
  17. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    This was literally a 10 minutes modelling and animation challenge. Didn't come out too badly imho but more to the point I got a batch of modelled creatures and nobody handy to rig them so it stays in the queue...
     
  18. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Why not simply exporting objects individually ? You import only modified objects this way ?
    Why not breaking the platform in many separate parts ? like breaking it in lower parts, higher ones, norths , south , east parts etc ... or simply make modular reusable platforms that is less work and as good results.

    Breaking your scene in several parts means you could use LOD and culling for distant parts also.
     
  19. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Of course the scene is broken into several parts (~80 objects). So the problem isn't there although, we're not doing this to please the importer, as this would be as pleasant and productive as chunking files to fit them into floppy disks.

    I get the idea of selecting and exporting objects one at a time (or a few at a time) and I can see how artists with no scripting skills would resort to this as a means to push slow updates into Unity files. There are two reasons I don't want to do this manually.
    • It is slow, and tedious. You need to select the objects you want to update. You need to browse to the folder containing your assets. Then you have to give a meaningful name to the object you're exporting. Of course doing this once has never been a problem. But, asking why I'm not doing it this way is like asking why every application has a "save" option next to "save as". And the answer is simple: because nobody even want to press the save button. Even if it doesn't take much time, it is distracting.
    • The relationship between the *.blend file and the *.unity file is in the artist's head and nowhere else. I can easily see how this would lead to lost assets, fbx files without blender counterparts. And more generally, a bloody mess.
    So I'm happier with setting up a separate file in the way I described, as it allows me to get in a smooth test-modify-retest loop. I find it patchy but not unworkable.

    You already suggested using reusable/modular stuff and... I have already replied :p
    I'm going modular when it works for me, and finding patience when it doesn't.
     
  20. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    ok.
    Your video seems laggy, it is the game ?
    About red monster animation, pm me is you need some help.
     
  21. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Recording video on my laptop will seriously impact frame rate.
    If the live build lags on your PC or Mac and you find it annoying, give me a heads up?
    Not planning on optimising anything until we are ready for a public release. Unless low frame rate hinders testing.
     
    Last edited: Nov 2, 2014
  22. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    New live build [now online].

    I hope to reduce the delay between updates, finding myself doing and redoing many small adjustments to both script and terrain.

    I'll try to estimate the amount of work needed to clean up everything, it may be interesting to see how close to reality this turns out to be.

    Back to the frame rate question, it would be interesting to get some feedback on this at this point. The game lags for a few seconds at the beginning, may need to replace mesh colliders in places.
     
  23. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I got character stuck between red ennemies jumping above them.
    Lot better lightening and colors now :)
    I don't like FPS camera working with keys, not intuitive to use as mouse, camera rotation also shoudl be slowed and smoothed as we don't play a COD game instead it's exploration game.
     
    Last edited: Nov 4, 2014
  24. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Fixed latest build. You can find it [here].



    Single pass render so, a rough preview.
    Corrected a few artefacts in Gimp (and wavelet de-noise to clear excessive noise).

    A quick list of what causes nasty artefacts (nothing new if you're a baker).
    • Shaded/dark areas under objects will bleed at low definition. Same effect causes overlapping geometry to look bad near intersections.
    • Z-fighting (more likely to occur than with a regular Cycles render)
    • Make sure you uncheck the 'render' setting for unused modifiers; modifiers only hidden in 3D view will affect baking.
    • Collapse modifier stacks.
    All of the above may cause black scars in output maps.

    Fixed.
    I understand. Adding mouse support is possible.
    On mobile platforms controls will work differently with first person camera. but the transition is smoother (same input device). Actually it's been many years that I haven't played much on a PC or Mac...
     
    Last edited: Nov 7, 2014
  25. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    @eelstork:
    Great work, grass texture make it looks lot better and keeping a simple look.
    -Ennemies can be blocked by rocks easyly
    -character could fall in a small area between the platform level and the upper moved platform level when you wlak on a big button
    -I don't like the jump system, perhaps a traditionnal jump system would work lot better, otherwise it's hard ot precisely jump on something.

    Keep the good work :)
     
  26. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    You mean, being able to move while jumping?
    Anybody else care to comment on this?
     
  27. carking1996

    carking1996

    Joined:
    Jun 15, 2010
    Posts:
    2,608
    Controls are a bit awkward. I'd make the walking animation match the speed better. And jumping, just jumping, not thrusting forward.
     
  28. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Thanks for you reply - I modified the control scheme so that jumping should work better in the next build.
     
  29. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Just a quick note to indicate that I won't do personal updates on this project for the coming 3-6 weeks as I'm working on a small project and I am also re-orienting aspects of the design so that the AIs play a more interesting part.

    Although I won't update personally I hope that some interesting concept art will surface in the meantime. If it does, may do a post.