E: Reservoir - Build 0.4

Competition Entry:

Build 0.4 - Competition Entry Build (11mb) Instructions

------------------------------------------------------------------------

Build 0.3 - Sound Tester

Build 0.2 - Drone Tester

This is very ambitious for me, but I want to make:

a first-person steath-horror game where you have to escape a labyrinth before the dweller gets you.

It will be my first foray into Unity in all it's glory, so we'll see how it goes - any of the below is subject to change.

The basic idea would be to have a large maze made of interconnecting passages with traps and monsters that you have to sneak past - you have no weapons - and a single exit. Almost like a Diablo 2 level, but in 3D with no fighting.

Atmosphere / visual inspiration will be drawn from Diablo 2:
image

Azreal's Tear:
image

and Magic Carpet 2
image (Can you believe that is actual size? The amazing things people did with 320x240 resolution.)


The game would have to have AI capable of seeing and hearing you and pathfinding through the maze - the central mechanic is the dweller which will be loosed into the labyrinth with you, and will be stalking you. You will recieve some sort of feedback depending on how close the dweller is from you, something like a radar ping or alarm, or even just sound and lighting.

The focus here is on experience and atmosphere, so the visuals and sound take preference over game mechanics unless those mechanics heighten the sense of dread / fear.

The time limit wont be expressed to the player anywhere, rather the dweller will always find you eventually.

And thats the basic idea, it's quite a tall order I think, considering I dont have any Unity experience, but lets see how close I can get to it.

Comments

  • edited
    @Nitrogen - Damn!!!! Your idea is exactly the same as mine. would you be cool with me doing the "E:Escape the other Labyrinth"?

    Mine will be less "dark" though.
  • @FanieG Haha of course, I'm probably not even going to call mine Escape the Labrynth, thats just the working title.

    I think the restriction is going to make people create a few similar games, will be interesting to see how each person interprets a general game idea.
  • This is a unique idea. Would be really cool to follow this come together :) Sound extremely intricate
  • edited
    @RickyGC said:
    Sound extremely intricate
    Dont I know it! Well, if I dont try I'll never know :P
  • with your first attempt at doing it in Unity, did you do research into the plausibility of it yet?

    I am still going through tutorials to learn the basics of Unity, so I really want to get over with that so I can start pushing the limits. I have cool ideas for movement mechanics, but I can't test before I know how :P
  • edited
    I have cool ideas for movement mechanics, but I can't test before I know how :P
    @RickyGC - Try out the built in movement controllers in Unity. Like the built in FPS or 3rd person controllers. No need to re-invent the wheel when starting out. Enter something for the competition, just start, you'll pick up a lot of knowledge along the way. Ask this community questions when you get stuck and googling doesn't yield an answer. The guys here are always willing to help.

    @Nitrogen - were you considering FPS or 3rd person? I'm going FPS. Agree that interpretations of the general game idea will be interesting to see.

    Sorry just saw original post:
    a first-person steath-horror game where you have to escape a labyrinth before the dweller gets you.
  • Thanks @FanieG, I started with the built in controllers last night. Got my little cube jumping and moving around on the platform :) So I'm cool with that. I think my idea has been done before, so I just need to get these basic movements down before I can experiment.

    At the same time I am writing tests :P so it's going slow

    @Nitrogen, how would one sneak past the "monsters?"

  • I won't lie, all that sounds massively way too overscoped for this timeframe, and if you can do that in the time frame I dunno what you're doing NOT pumping out 10 prototypes a month :P

    But hey this is where you can fail without care :P

    And this kinda reminds me of that 7DFPS Pac man entry. Sneaking an exit in first person can be nerve wracking :)
  • edited
    I'm going to try the 'thrown into the deep end' approach.

    I've done a bit of 3D programming back in the day, so I know what is basically needed to create the game, I just dont know how to do the same thing in Unity. The sound and music and AI aspects are things I havent ever got to in my half-finished prototypes, so it'll be interesting to see how far I get with them this time.

    @Tuism: You're probably right. I'll obviously be adjusting the scope of the project as it goes along, and realigning my goals if it gets too big.

    @RickyGC: Well, I was going to add monsters but it might end up just being you, the dweller and the maze. I had some really cool ideas for monsters similar to the Sentinels in Magic Carpet 2 which are staticly placed, rediculously powerful, but slow to notice you. It depends if I get the core mechanics working properly, I might add in extra monsters and traps.
  • edited
    Question for the Unity people:

    I'm assuming Unity has some efficient way of doing ray intersection testing? This is what I'd expect to use between the player and each light source to determine if you're in shadow or not, and between the monsters eyes and the player to determine if the player has been sighted.

    (Note I havent started researching the ins and outs of Unity properly - will have to wait till after work hours for that)
  • If you are doing it between two known points, Physics.LineCast might spare you a bit of calculation, if I am not mistaken
    Thanked by 1Nitrogen
  • Sweet, just what I was looking for!
  • image

    3 hours in, I've made sure that I can import meshes from 3dsmax, got the FPS controller working, tested out lightmapping and collected a whole bunch of awesome sounds from freesound.org.
  • Holy Cow, first time in Unity? Jelly!
    Thanked by 1Nitrogen
  • :| well... my first time in Unity is not looking like that :(

    wow, gj dude!
    Thanked by 1Nitrogen
  • That looks GOOOOODDD!!! My maze is so cramped and dull compared to this. Your lighting is also really good.
  • Most of my time now is spent trying to model some decent 3D environments.
    Once again I cant just let it go and make square corridors everywhere.

    In fact, I think I'm going to stop trying to model rooms with optimised display meshes and simplified collision hulls and just put in square corridors.

    (If I dont explicitly say what I'm spending my time on, I end up taking 4 days uselessly modelling a room that probably wont even be used in the game.)
  • SQUARE CORRIDORS YES. Moar play less art!
    Thanked by 1Nitrogen
  • @Nitrogen - 1st cool new profile pick. 2nd why not mix it up with Unity's terrain editor and square corridors. Just realised I should have done that. I only have 1 flat area...Mmmm
  • FanieG said:
    @Nitrogen - 1st cool new profile pick. 2nd why not mix it up with Unity's terrain editor and square corridors. Just realised I should have done that. I only have 1 flat area...Mmmm
    Shot!

    Hmm, that's an interesting idea - underground caverns with two terrains, one just flipped upside down? Kinda like what @TheFuntastic's Towards the Light was like... Could work...
  • edited
    Okay, so I've been half working on this the last couple weeks, but I've been struggling.

    I'm totally fed up with 3DS max, trying to make some very simple tunnel pieces and having difficulty doing simple operations like getting the floors to be UV mapped differently from the walls or even just selecting all upward facing faces so I can set a different material to them.

    And before you tell me to stop wasting time on art: the level design is integral to the game. Without the interesting setting it's just going to be another escape the maze game. Remember - I'm going for experience and atmosphere here, not necessarily unique gameplay (which is something @tbulford and I spoke about at the last meetup)

    I suppose I must just keep simplifying my assets until they are manageable, or try and enlist the help of someone to make some for me.

    Thoughts?


    Oh and I've decided on a setting - an underground reservoir / sewer. Check out how cool this setting is.
    Thanked by 1tbulford
  • Quick screenshot:

    image

    I figured out how to draw Gizmos, and started the basics of my AI Pathfinding. I decided to go for a node based graph approach (as used in the Unreal engine) where you place waypoints within line of sight of eachother, and connect each to it's immediate neighbours, then pathfinding becomes - I assume - a simple breadth first search through the web of waypoints to the one closest to the target.
    2.jpg
    1920 x 1041 - 366K
  • Seeing that Diablo screenshot made me all gooey inside.... :D

    Looking forward to this!
  • Nitrogen said:
    I'm totally fed up with 3DS max, trying to make some very simple tunnel pieces and having difficulty doing simple operations like getting the floors to be UV mapped differently from the walls or even just selecting all upward facing faces so I can set a different material to them.
    Um. I don't know if you're still on this, given that an underwater reservoir isn't as reliant on it, but whatever. :P

    You can select all upward facing faces depending on what version of Max you're using. In the Graphite Modeling (sic) Tools > Selection > Angle, you can choose an axis, and choose a tolerance angle. Any faces with normals pointing along this axis within the tolerance get selected. If you're using Max pre-2010, I'm sure the Polyboost tools have something similar.

    Alternatively, if your passageways are fairly flat, just use one of the side views and select from there.

    Also, if you're going for a fairly natural look, just assigning different materials to the walls and floors will result in seams. You could use the same material across them, but write a shader that blends between the two textures using some other control, like some vertex colour channel, or a channel in another texture.
    Thanked by 1Nitrogen
  • Thanks @Elyaradine, thats pretty smart.

    I'm using Max 2012. I was using the Edit Mesh modifier, but this doesnt let you use the Graphite tools. I found if I use Edit Poly rather, then I have much more control. After I stopped hurling stuff at my pc last night I tried again with box modelling and creating edge loops, seems to be going a lot smoother.

    I was originally trying to make a cylindrical room with a hole in the middle, and a walkway around the edge, but the UVW Map modifier is retarded only the U and V tiling affects the cylindrical projection, so you cant tile the floor separately from the walls.

    What would you use to UV Map an arbitrary level piece - ie. something that you wouldnt UV unwrap?
  • Seeing that Diablo screenshot made me all gooey inside.... :D

    Looking forward to this!
    Hah, if I can get something with a tenth of Diablo's atmosphere, I'd call it a success!
  • Ah, yeah. Graphite only works on Editable Poly.

    Er... I have very little experience mapping things with UVW Map, as pretty much all of the assets I work on are more complicated than primitives and have to be dealt with with a UVW Unwrap. (The majority of the UVW Map projections are available in Unwrap UVW as well.) You can still map the pieces that are simple with UVW Map, and then use the unwrap afterwards. If you want to change the tiling of the floor, you could just select the UV islands of the floor and scale them.
    What would you use to UV Map an arbitrary level piece - ie. something that you wouldnt UV unwrap?
    For arbitrary (and more complex!) pieces, you pretty much have to use the Unwrap UVW modifier. The workflow is effectively to use planar or cylindrical projection on smaller pieces, relax them (or use Quick Peel, which is amazeballs), stitch them back together where it makes sense, straighten edges where it makes sense, and pack them all onto one sheet.

    It takes a while to do well, but obviously you get a lot faster with experience. (And the variance is pretty crazy. It apparently took a Masters digital art grad who was working on a contract game I was consulting on almost a day to unwrap something that I unwrapped in 20 minutes with a more painter-friendly layout. It really takes a long time until you get into the flow of how to do things. I could go on and on about what good and bad UVs look like, and why people who work in film and advertising generally can't just plop right into a game dev pipeline...)
    Thanked by 1Nitrogen
  • edited
    Okay making stuff in 3D is *hard*. There's just so much more work involved than a 2D game. I've gone through the whole pipeline of creating meshes, UV mapping them, finding free textures, making the textures tileable and creating bumpmaps, placing the mesh in the level and lighting it - just for a few bits of level. And I anticipate needing at least 3 times the amount of meshes I have now.

    Oh and I tried out the Decal System plugin by EdelWiess, and it's got a nasty bug that makes Unity hard crash and close immediately when dragging a decal projector around the scene. Lovely.

    It's starting to look like something now though:
    image
    3.jpg
    1920 x 921 - 148K
  • So I've just whipped up a Navigation / waypoint system for the monster AI.

    Unity made this ridiculously easy to do.

    - I have a number of NavPoint objects which represent waypoints where the creature can go without getting stuck.
    - Each NavPoint has a number of neighbours which are navigable from the current point.
    - I then created a NavNetwork object to house all of the points, and extended the Unity Editor to allow you to recalculate the nav network automatically.

    Calculating which points are passable from which other points was pathetically simple in Unity, using the Physics.SphereCast() function which is essentially a 'fat' raycast.

    This is the result:
    image
    5.jpg
    1920 x 1041 - 247K
  • That looks like an awesome system. My pathfinding was done with a similar node system, but my AI following the path killed my frames per second. This looks Amazing, can't wait to play a build
  • FanieG said:
    That looks like an awesome system. My pathfinding was done with a similar node system, but my AI following the path killed my frames per second. This looks Amazing, can't wait to play a build
    I'm interested to know how you and @pixel_reaper did pathfinding - did you get a plugin to do it, did you make it yourself?
  • @Nitrogen It looks awesome so far :) looking at your lights... do you think mine is too dark? I used both dark ambient light and fog to give the feeling of a dense oppressing darkness. though I cant help but feel its not working all that great, for one it makes boring screenshots :P

    ah pathfinding, It was an epic cough*frustrating*cough adventure. I started with some node based pathfinding too, but it felt too rigid. so then i tried unity's navmesh (by the way this could be awesome for both you and @FanieG if you had pro). I did not stay with it because it cant handle runtime generated levels, but its very easy to setup and use, also more accurate than my current solution. next I gave Aron Granberg's A* pathfinding project a go (http://arongranberg.com/astar/). that is what I am using now, only I modified it slightly to work with my scene. The free version should also work great for you guys if you want to try it, it should be a drop-in-and-work solution if you are not trying anything hectic. and the documentation on it is good (better than unity's documentation ;) ) though it is a bit more work to get everything running smoothly. at least it should not bomb you guys with errors like it did me if you use it like it was meant to be used lol :D
  • @Nitrogen - was using a Dijkstra's Alg node system first (picked up through a online tutorial), but this caused serious frame rate issues with my crappy AI having to path every update, so I also switched to Aron Granberg's A*. But here I have to confess, that I used it, but don't really understand how it works. I've been reading up on A* and understand the concept, just have no idea how it was implemented using c#. The Dijkstra's tutorial I followed was really cool, because the guy translated the wikipedia psydo code into c#, so I had a much clearer idea of how he did it.
  • @Nitrogen - Also, i guess you are not using LayerMasks too much, because I read somewhere that Spherecasts and LayerMasks have some hickups with each other. I have no experience with it...just something I read.
  • Thanks for the responses guys - Aron's A* really looks the business - I might scrap mine and use his if the free version allows most of the functionality...

    @Pixel_Reaper: I'm not sure about lighting, sometimes thick fog and short view distances are cool, other times they are annoying. I made the concous decission that my character would have to rely on environmental light only, so that means lighting up the levels pretty well but with high contrast between a lot of dark and some light spaces (ala Doom 3).

    I think what your game needs visually is some features on the walls and a roof - the roof plays a big part in making someone feel hemmed in and confined. Maybe you can also add in randomly placed lanterns and things on the walls to break up the monotony. Also, have a look at EidelWiess's decal system - I managed to get it working and it's really great for adding blood splats, dirt, water stains, leaking stains and all sorts of interesting stuff to your walls and roof.
    Also, try not make the corridors just box shaped - add some curvature to the roof if possible, or add some slight embelishments.

    @FanieG: I'm not using LayerMasks too much yet - I bascially only have 3 types of physics colliders - the player, the enemy and the rooms. Everything else doesnt have a physics collider so I dont need any masking yet. I dont think I'll have doors either.
  • Add some colour your lights! :)
  • @Nitrogen - rather than scrapping yours for the Aron's free one - perfect yours and release it on the Asset store for all :)
  • edited
    FanieG said:
    @Nitrogen - rather than scrapping yours for the Aron's free one - perfect yours and release it on the Asset store for all :)
    Feels a bit like reinventing the wheel, but the building experience will not go to waste!
    Add some colour your lights! :)
    They HAVE colour! slight blue and slight orange ;) I've got some ideas, but it's hard to justify having multicoloured lighting everywhere unless the venue was used as a rave party, and every spotlight has a different coloured bulb in it :P
  • In your screenshot they look white. :P I'm not saying make it look like an 80s disco. I'm just saying they don't look coloured at all, and imo you could afford to saturate them a little more.

    Also, in horror games, the lighting scheme often leans toward green (with a purple complement). Look at your Azreal's Tear screenshot. :)
  • Yeah they are pretty bland at the moment and this is just a couple of test rooms I've thrown together, I've yet to start on a real level.

    But I do have tons of ideas for lights. I'm thinking red warning bulbs and catseyes. Orange bulkhead lights, harsh floodlights in some areas. Blacklights, greenish overhead lights, etc.

    Then there's steam, dust motes and dripping water, pipes, machinery, sound effects, stains and bloodsplats on the walls, dynamic lights, alarm systems...

    So many ideas - so little time!
  • @Nitrogen
    So many ideas - so little time!
    I could not agree more, It feels impossible to make everything I have in my head a reality before the deadline. If I did not have my own stuff to worry about I would have offered to help you :P

    by the way I'm interested in hearing about your thoughts for your dweller if you do not mind sharing them.
  • Well, I was going for a worm / serpent style dweller which would scuttle around on millipeade legs, but I dont have enough time to do that, so on the suggestion of a friend I decided to make a hovering spherical kill drone. Sort of a mixture of the Oblivion movie's drones, and a boss from Descent 1: image

    The visuals of the drone arent super important, as when you see it, you'll likely be dead shortly anyway. What I want to focus on is the sounds it makes when nearby or hunting. I'm trying for something like a deep bass note - like the drones in oblivion or in one of the new terminator movies.

    Decent 1 has actually ended up being more inspiration than any other game so far, I guess I really want to make a Descent clone one day :P
  • edited
    Okay so I've got my drone navigating around the level now using Aron's A* plugin, which I'm happy to say follows the way I was going to do node based pathfinding almost exactly, but with lots of nice enhancements.

    My problem and question to you guys is how to stop my rigid body drone from overshooting the path:

    image

    The golden sphere thing is my drone, which is trying to follow the green path, but because it built up speed on the straight bit, it overshoots the curve.

    Now, do I:

    1) Stop trying to use rigidbody physics for the fully AI controlled drone, Or
    2) Does anyone know of an algorithm which will calculate velocity to a target while taking current velocity into account?

    number 1 is probably the sensible option, but no fun at all :P
    number 2 is interesting - I'm sure it's a well-solved problem in physics programming, but I dont know the right search terms to bring it up.
    7.jpg
    1920 x 1023 - 247K
  • @Nitrogen: Try googling missile aiming algorithms.
    Thanked by 1Nitrogen
  • edited
    @Nitrogen - have you tried speeding up the drone's turn speed.
  • @dislekcia: Thanks, some interesting results are turning up - Proportional Navigation and Command Guidance.

    @fanieg: Im writing the physics from scratch, input the destination and outputting a force to apply to the rigid body to get it there.
  • Solved it! Proportional Navigation was just the ticket.

    http://answers.unity3d.com/questions/138749/proportional-navigation-guidance-logic.html

    See how the cyan line is adding the correct amount of movement to counteract the forward momentum :)

    image
    8.jpg
    1332 x 690 - 148K
  • @Nitrogen - Glad you got it sorted, but I don't even want to think about the math that went into getting that right :)
Sign In or Register to comment.