Share this project

Done

Share this project

Done
Scavenge. Build. Fight. Survive. Introducing ROAM, an online co-op action game set in a procedurally generated world.
Scavenge. Build. Fight. Survive. Introducing ROAM, an online co-op action game set in a procedurally generated world.
Created by
3,526 backers pledged $102,518 to help bring this project to life.

Transition to Unity 5. World structures revamp, UI Progress.

Posted by ROAM (Creator)
28 likes

Unity 5

Unity 5 is in beta. We have access and have ported the entire project over (it was pretty simple). One of the most exciting parts of working with Unity 5 is the editor itself. Prior to 5, we were having to work in a 32bit editor. This proved extremely frustrating as the world in Roam started getting large. Editor crashing, data loss, scene corruption to name a few. Unity 5's 64bit editor allows for larger scene capability and I have not experienced a crash yet. 

This is a pretty technical post so for those who are not interested in the specifics and just want an update of progress, I have put together a TLDR version. If you are curious the amount of work that goes into creating a game I have gone into some depth below the TLDR area. Even the smallest things that may seem very trivial is still a lot of work to achieve the desired goal.

TLDR;

I am planning a video here in the next couple of days to outline these updates by putting to use some of the tools I have created. I hope to give you all a nice environment update.As well as a walk through the world to various locations.

UI Updated - Still not 100% finished, but it is starting to shape up.

Buildings - Structures have been revamped and are working perfectly. Still a bit of art work left.

Loot containers - These are containers filled with loot obviously. Some containers can be broken down for raw materials. I included different states to the lootable containers as to not confuse the player. Opened containers will have all their cabinet doors/ drawers/ etc opened up. Loot containers that havent been opened will be closed.

Item Database - This has been reworked to fit the loot container setup. External tools were created to help this process.

Environments - The process for creating each tile has been improved upon. This means faster more efficient iterations of artwork. I heard your suggestions, varying hills, "cliffs", and general height variation is implemented.

*End of TLDR*

Technical

As I go through each system to prepare Roam for the alpha, I sometimes run across systems that could be improved for both the players experience as well as the development process.

Early on, one of the very first updates for Roam, I talked about how structures were going to be built in the game using a simple system of modular pieces. This approach is great in theory, but it is very difficult and time consuming to put all of these chunks together manually into a somewhat believable structure. If each building is going to have an interior that is accessible (something I pushed for since the start of this project) I needed a way to quickly iterate through structure components, an easy way to manage and edit existing structures, and for each structure to have complete control over all elements that made up the structure. These structures are made up of hundreds of parts.

The game must know when the player is inside them, what walls to turn on and off as to not obscure the players vision, what floor the player is on so it can turn off any 3d objects above the player as to not obscure the players vision, how many loot spawn and loot containers reside inside the structure, and many many more factors. I sat down for a week or so and came up with this efficient "building editor". 

For anyone using unity, if you are unfamiliar with editor scripts, I suggest you attempt to learn! They are extremely powerful when done right. I created custom editor scripts for this process.

Before I start into this, I am not an architect and I am definitely not and interior designer. Because of these obvious facts, I tried to understand the fundamentals of what makes a structure a structure.

  • Buildings have a roof.
  • Buildings can have multiple floors.
  • Buildings have rooms.
  • Buildings have walls

I have broken the structures into 3 parts. Beam, Room, Structure.

This Beam editor script outlines the various buttons used to create a rooms walls.

Beams control the wall it corresponds to. Since I created a set amount of room sizes I know what the length of my wall segments need to be.

I want to have a much variation in structures as possible, so I created a few walls. I will probably need to create even more later.

By cycling through the beam settings "segments" I am able to quickly iterate through all of these wall variations to find the desired piece. Each piece also holds unique information. If that piece is a doorway, it must know how the player is able to open that door. Same for windows.

First a general floor plan is made. Depending on the type of building I am planning on making, I roughly put together a floor plan. This is where my lack of architectural knowledge will probably stand out to some of you architecturally gifted folk. That is ok though. I am not aiming to recreate an extremely realistic, down to the grain of sand, experience. It fits my expectations if the structure feels grounded in reality.

 After setting up the walls via each beam I end up with something like the image above. From experience working with the system, I like to work floor by floor. Each room controls the assets it holds.

This means I will select a room and spawn various assets to populate the room with props. This is important for a few reasons. #1, it doesnt make sense to have 3d assets being displayed when they are not needed. If the player is not inside the house, those assets should turn off. #2 other than performance, this will make saving/loading a bit easier.

Ive populated a couple rooms. The system is capable of more props, but to save time I only placed a few. Each room that the props are in are in control of those props. From here I might decide to add a 2nd floor.

I've placed this floor above the kitchen not because it makes sense, but so I can demonstrate how the system hides/reveals objects in a bit. Obviously there is a lot more that can be done to this structure in terms of props, but lets pretend I am done with the interior. Each room also controls its roof element and those are placed in a very similar fashion to beams. Right now there are a limited number of roof elements. I will need to create more variation as well as incorporating commercial/industrial styles. For now I have a basic residential slanted roof.

And now the final step. The roof has been added. All the rooms are combined into a single asset and the structure is given a name for reference by each tile. From here the structure also has the ability to disable all of its own renderers depending on where the player is as to not impact performance in play mode.

The building asset will control all factors of the building including roof and room visibility, prop visibility, managing what to display depending on where the player is. Since the system was built from the idea of a single beam in mind, the building has control down to individual beams.

 The house will also have control over enabling and disabling walls that interfere with the players ability to see their character.

And floor based visibility.

 And that about wraps it up. There is some more work to be done to the system, but overall it is working great. It allows very quick effecient structure creation. As I mentioned above, there will be a video update in a couple days that will give you all a chance to see it in action!

Comments

Only backers can post comments. Log In
    1. Missing avatar

      Brandon Hight on

      I'm sorry to see there haven't been any new updates, was really looking forward to this game. Nothing new in 4 months now, but hope everyone had a happy Easter to all those celebrating it.

    2. KuroSaru on

      I'd love this game to be finished, but if you decided to stop development of it, could you kindly open-source on github everything done so far. so the community can try to finish it.

    3. Missing avatar

      Kaeroku on

      Hey there Roam. :) Been a while, just checking in, want to know you all have enjoyed your holidays thoroughly and the first quarter of 2015 has treated you well.

      I've really enjoyed watching the development process of this game so far. Both the technical details, and the dialogue you've held with your backers here has been impressive. The game looks like a lot of fun, and I'm looking forward to it.

      If you get a few moments free from all the furious coding and graphic design and real life issues which arise during a project like this, how about you stop by and let us know that you all haven't gotten into a nasty car accident or had any other emergency arise over the last few months. I know I was looking forward to the video you mentioned, but I can wait a bit on that. Just let us know you're doing alright and *maybe* if you have another moment to spare tease us with some idea of what you're working on now.

      You know us silly backers, always excited to hear what's around the corner. Everything you've shown us so far has me convinced this is going to be a great game. Hang in there, it sounds like you're running the home stretch.

    4. Neutronis on

      I would also like to know if this project is still moving forward.
      There was a lot of progress up until the 8th of Decembe,r and we were told there would be a new video in a couple of days, then nothing but silence, for the past 2, nearly 3 months. I have checked the facebook and twitter feeds and nothing scince the 6th of Dec.
      It would be appreciated if you could at least send us a Hi, I'm still alive and let us know if their is any major issues.
      I am still content to wait as long as it takes,but, i just don't like silence, as this generally means trouble.
      If there are personal issues you can't share with us, that is also fine, but if you could at least just acknowledge that the game isn't dead in the water.
      This is still my most anticpated game, and would love to see it to completion.

    5. Samuel Dexter Holden Garfield on

      Agreed; I'd love to see another update soon! Hope development is going well. Remember we all believe in you and are still looking forward to your work! :]

    6. Martin Ostrem on

      ROAM please give us an update, let us know you're still working. I hope you haven't gone MIA...

    7. Missing avatar

      Lokai on

      I was surprised to scroll through this to see that this was the last update, especially since you mention doing a video in the next couple of days (which obviously didn't happen) several times in the post. Would love to see an update!

    8. waddlesticks on

      Hey I was wondering if you have considered porting to UE4 instead of Unity 5?

      Since a lot of projects are doing this due to UE4 being the better for indie development now.

    9. Mads Sebastian Jensen on

      Take the time needed. rather a good game than a rushed one. im looking forward to it.

    10. Connor Jameson Brummett on

      ROAM, many people can't wait for the release! I would love to see an update with anything, just please let us know you haven't disappeared. :)

    11. Missing avatar

      dave wood on

      keep up the good work, updates are great and progress can be seen! I really want this to be good so I would rather wait till it is but please make sure you green light it or find ways to keep the funds coming in. Running out of cash or rushing it would be a mistake

    12. ROAM Creator on

      I understand your frustration with not having access to the game yet. I myself am frustrated as well, but I am working on it. I cant really do much more than that. Please try to remember, Roam wasnt built in a day :)

    13. ROAM Creator on

      Terry, I wish it were as simple as plugging things into the game and it working without any flaws. The old way of creating buildings was not even a system. I was hand placing the 3d models together. There was no way to access all the pieces of a floor. No way to enable and disable the visibility of walls. No way to manage interior props. No way to iterate and edit various structure layouts. Without all of those things, manually placing and updating buildings becomes extremely tedious without an automated system in place to help. Without systematically creating each building, there is no way in the future I could make them be procedural since they were previously being hand placed. The end result may look identical, but that is a testament to the fact that this new system is doing its job very well.

      Do the interiors of buildings add to game play? Yes. Are structures important to the game? Yes. I would not have created this system if I did not think buildings and structures add to the game. If I did not think entering buildings added to game play I would have created them the generic way, as many games do, where they are there for decoration and you cannot enter them. That would have been much easier.

    14. terry on

      ok

      what are these ?
      " The needs of the project have changed since the first structure update"
      is the game set in space now ?

    15. Missing avatar

      Vergoth on

      Ryan, these updates look even greater and greater, but beside being impressed and super excited for this game I am just so very of waiting forever. I really hope that you give everyone an extra copy of the game or something for us having patience.

    16. Missing avatar

      Gadorach on

      Ha ha, just looking at how the buildings are getting an amazing editor, I can see some people trying to pretend it's the Post-Apocalyptic Sims, and setting up completely automated defense systems and harvesting platforms to do so for an endgame challenge. I know I'm going to try, just for shits and giggles. You should definitely make this possible, albeit somewhat difficult. As I'm sure you'll add support for mods at some point, some one else, like me, will surely add it in just for the comedic effect if you don't. It'll almost feel like Edd's World, chilling in the house, and then going out for a casual zombie-killing spree.

      Else, everything looks great, and I can't wait to play this with my friends upon it's completion.
      Great job, and keep it up. I can hardly wait!

    17. ROAM Creator on

      Sorry you feel that way. You make it sound like I have been making structures/buildings this entire time, which isnt the case. The needs of the project have changed since the first structure update so the system was designed to make producing various structures more efficient. This ultimately means less development time.

    18. terry on

      your update are great ,,,,But
      this project was February 24, 2013
      nearly two years ago and you are still building houses / structures
      i see this update as a step backwards ....sorry ,,,but that's how i feel reading this update

    19. ROAM Creator on

      @Tim - The structure system was designed with the potential to have each building be procedurally generated at run time. For the initial alpha release I am planning on creating buildings by hand that will be randomly placed around a tile. In the future I want to expand on this structure system and allow for each building to be procedurally generated based off certain rules. For now the rules dont exist, but it is very easy to create various floor plans for various types of buildings.

    20. Missing avatar

      ddbelyea on

      This is definitely starting to be my most anticipated game of next year (unless it's being released 2016, I don't actually remember, but I'm psyched either way)

    21. Missing avatar

      Tim Julkowski on

      That's a really slick building system. The idea of procedural anything in a game is really attractive. The fact that I'm constantly dealing with the uncertain while exploring is what keeps me returning to the games in my library that contain procedural content.

      The clockwork behind procedural interiors in a modular system like this is hard to fathom. I can't imagine that you had much to refer to as a working example of it prior, so this is all very impressive. Was it your intent to eventually make the structures unique through process too, or are you planning to use a pool of prefabs in your tile system?

      I gotta tell you Ryan, so many of the pieces in this project are things that years ago we wished we could have had access to (co-op play in procedural environments, crafting, building systems, so many things starting to become realized) . When you put great art on top of all of this it enters a league of its own. Really looking forward to seeing these things in motion. Thank you for the update!

    22. Dean on

      Looking better and better each time :D Thanks Keep up the awesome work

    23. ROAM Creator on

      there is also a small light that is attached to the character for indoors to simulate the very near range you would actually be able to see. That plus a torch/flashlight should light up a room nicely

    24. ROAM Creator on

      The darkness is because of the building interiors. There is an invisible shadow caster to simulate indoors otherwise sunlight would pierce through and look strange. It gets pretty bright during the day.

    25. Missing avatar

      Alter Ego on

      Awesome, thank you very much for sharing.

      Btw, the images all look very dark; almost too dark.

    26. Danny Becker on

      Great updates :) Thanks!

    27. euansmith
      Superbacker
      on

      That's really impressive.

    28. J.L. on

      Sounds good, looking forward to the video. (c: