Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

ProBuilder vs SabreCSG for level design?

Discussion in 'General Discussion' started by HyperBrid, May 4, 2020.

  1. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    I have been using ProBuilder for 2 weeks now and it doesn't really make sense to me how you can't delete edges/vertices even though it's my first time doing 3D modelling. I have been trying to design a level (a huge mansion) with it but i had to scratch out designs that took me several days to build up on. But after watching a few tutorials on the polyshape tool, it looks a lot more useful (Though still not friendly)

    I recently discovered SaberCSG and how it's actually made for this purpose. Should i make the switch and start learning a new tool from scratch or should i stick to ProBuilder?

    (I'll be shifting to blender as soon as i'm done with this mansion because i know i can't do much with ProBuilder)

    Also, is this the forum for these asset based discussions
     
  2. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    what is the reasoning for using these in editor tools versus a robust modeling package like blender?
     
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    The reason for using in-editor tools is rapid level prototyping.
    Additionally, SabreCSG is using CSG, while blender is more suitable for polygonal modeling.


    I don't see a point of using ProBuilder, as they for some reason seem to be focused on polygonal modeling, and in essence what you get is blender lite.

    SabreCSG is something worth keeping as it uses CSG (levels constructed from solids) and this is useful for prototyping.

    Unreal documentation has a good example of level design workflow. See:
    https://docs.unrealengine.com/en-US/Resources/ContentExamples/LevelDesign/index.html
     
  4. Stardog

    Stardog

    Joined:
    Jun 28, 2010
    Posts:
    1,886
    You can delete edges/vertices in Probuilder with backspace, can't you?

    There are a few kinds of modeller you might want to use for Unity:

    Probuilder
    Destructive (can't be undone much later) polygonal modelling where you cut edge loops into shapes. The downside is that you create large loops, overlapping vertices. Everything is destructive. For example, putting windows into a wall may be impossible if your door has created edges in unfortunate places. Removing a door/window will be very difficult after it's creation. Best for modelling objects such as chairs, etc.

    CSG
    Non-destructive modelling using simple shapes (brushes). Allows you to subtract (cut) shapes from others, and allows you to modify afterwards, so it's easy to remove a door just by deleting the shape. Downsides are that it doesn't work well for organic shapes, generates a lot of brushes, and will have to be converted to a mesh afterward if you need it to be a physics object. Best for on-grid buildings for walls/rooms. Everything will look like a Quake/Half-life map.

    Best for Unity: Realtime CSG
    Coming soon from authors of SabreCSG and RealtimeCSG: Chisel.

    Other
    Destructive mesh modelling where you can draw shapes onto surfaces and extrude them in/out, but with automatic stitching/optimisation making removal/merging of shapes easier. It's like a mix between the first two listed. Downsides are usually that it usually lacks non-destructive workflow.

    Best for Unity: UModeler
    Paid: Sketchup (formerly Google Sketchup)

    If you go with Blender, your time will be most like Probuilder. It does have CSG (as does Probuilder), but it's destructive. Blender has tons of plugins, even one for the last workflow, but they are usually out of date and not maintained.
     
    Last edited: May 4, 2020
    leni8ec, ZiadJ, Jingle-Fett and 2 others like this.
  5. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    It's about level design rather than art. Both involve editing shapes, but the fundamental purpose of each are quite different. Typically, level design is about how players behave and/or what they do, where art is about how things look or are perceived.

    That said, in many workflows you can take the general shapes made during the design process and either add to or build over them when you do your art pass, so there can be overlap and/or integration between the two processes.

    Also, while exporting your levels as big models can work well in some cases, in other cases it can be super inefficient. For instance, if you're using a modular design workflow then there are quite a few benefits you can get from being "aware" of the modular pieces in your game engine or tools.
     
    frarf, Ryiah and EternalAmbiguity like this.
  6. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,132
    @star
    Bang on but ProBuilder is a continual dissapointment given that Unity bought it in-house - lacks basic features as mentioned (and ProGrids was a perfect match for it but remained in a buggy preview state).
    Use Blender instead.

    The CSG tools have promise but have issues currently, so look forward to Chisel.

    Not tried UModeler yet

    All the in-built tools are at risk of being dropped or better ones replacing them. Try free external tools where possible.
     
  7. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,124
    I feel like people recommending Blender instead of ProBuilder are missing the point of ProBuilder. It's intended to be used for grey-box level design. Just because you can use it to create the actual content for your game doesn't mean you should any more than you should use the basic primitives provided by Unity.

    Using Blender incurs all of the typical penalties that come with the tool being external, and the biggest one is that you can't just drop the player spawn at a random location and start playing the level to see how the flow of it works out for you. You have to export, you have to wait for the import to process everything, etc.
     
    leni8ec likes this.
  8. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    I don't think it is very suitable for that though, due to focus on polygonal modeling.
     
  9. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,124
    You mentioned this in an earlier post but I don't understand it any more now than I did then. I understand the benefits to creating complex geometry with CSG, but I feel like you don't necessarily need complex geometry when prototyping, and with the situations where you have to do it a polygonal approach should be sufficient.

    Edit: Just thought I would mention that I have no experience with level editors for games like Doom if that would have made a difference. My closest experience with subtraction in level design is the brief period of time I spent with UE3 and UE4, and an even briefer period of time with RealtimeCSG and SabreCSG.
     
    Last edited: May 5, 2020
  10. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    Polygonal modeling which focuses on stiching surfaces is hard to reverse, unless you really plan it ahead. And ProBuilder is the kind of polygonal modeling which focuses on on stitching surfaces.

    In case of CSG, you add a cube, and tha'ts a building. You need an interior, you add two more subtractive cubes for it (interior, then door). A window - one more cube. All of this can be easily moved around, and individually fine tuned, parametrically even. And you don't need to care about topology or texture coordinates. You are going to need texture coordinates for lighting and maybe material rough preview.

    For example, this is five objects:
    upload_2020-5-6_0-15-21.png
    upload_2020-5-6_0-21-58.png

    In case of polygonal modeling when you need to move holes around, you'll be doing restitching often, and there will be no texture coordintates. There are more manual steps involved, punching holes is time consuming and so on. Example:
    upload_2020-5-6_0-19-43.png

    upload_2020-5-6_0-20-10.png

    Long story short, polygonal modeling is less efficient on punching holes through things, regardless of approach. I'm fairly efficient with blender, I believe, but that simple scene with a boxy room is easier to create with CSG than with poly modeling.And indoor scenes are very likely to involve a lot of hole punching.

    In general, in terms of efficiency, I'd say it goes like this:

    1. CSG
    2. Kit bashing (placement of previously prepared models/meshes)
    3. Primtiive bashing (let's build everything out of overlapping cubes, spheres and other primtives.
    4. Free form polygonal modeling.
     
  11. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,124
    Thanks for the detailed explanation. I knew I was missing something.
     
  12. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    A practical example:
    csg.gif
    This simply can't be done with polygonal modeling at this kind of speed.
     
  13. shotoutgames

    shotoutgames

    Joined:
    Dec 29, 2013
    Posts:
    283
    Archimatix has a learning curve for most but may also be worth a look.
     
    EternalAmbiguity likes this.
  14. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    To reinforce something there... to me the part where you don't have to worry about topo and texture coords is nice, but it's not the main advantage. The main advantage is that you can move holes trivially easily, and when you're designing spaces for player interaction the ability to both additively and subtractively modify that space is a huge productivity boost.

    "I want a window here" becomes a 3 second job, instead of a bunch of fiddly steps. "The corridor should be this shape instead" is almost as easy.
     
    Ryiah likes this.
  15. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,745
    Parametric modelling has very specific use cases and the moment you move away from them you're dealing with a workflow that's dramatically slower than any BSP-editor style CSG tool.
     
  16. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    What tool are you using here?
     
  17. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    I believe it is also possible to put configuration of holes into prefabs.

    It is SabreCSG from github.
     
  18. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    Thanks for the replies. So now to design the level with CSG and build it up with blender for the actual game.
    What are your go-to CSG tools?
     
  19. unit_dev123

    unit_dev123

    Joined:
    Feb 10, 2020
    Posts:
    989

    My advice is simple and is what i am doing for past two months.

    Prototype your mechanics. This is absolute priority. If you can run /walk and jump (of course this depend on your game genre so i guess here) you have something interesting.

    Put this up on itch.io or get it play tested.

    Cut cost and time, use third or first person template. If it is enjoyable then, and only then, would i move to fleshing out modular kit in 3d toolset.

    You can export obj for sabre, but this has big cost and time, especially if assets are designed from scratch.
     
  20. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    This is plain incorrect.

    * I don't advocate a thing. However, default quick prototyping phase works faster when dealing with brushes and not with meshes.
    * In case of game jams there's no time for quick prototyping phase.
    * "Guardian" uses modular pieces and not polygonal freeform modeling.

    Both RealtimeCSG and SabreCSG mentioned in this thread are free. Try both and pick the one you like.
     
    HyperBrid likes this.
  21. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    I agree that prototyping your mechanics is critical. However, lets be real here: just being able to "run / walk and jump" does not mean you "have something interesting". It means you have one potential version of the basics you might build something interesting on top of.

    Building the basics is interesting to us as developers because we can see where things might go from there. To players it's not interesting because all they've got is the basics, and thousands of games which came before ours have already taken them further.
     
    NotaNaN, RAWilco, HyperBrid and 2 others like this.
  22. unit_dev123

    unit_dev123

    Joined:
    Feb 10, 2020
    Posts:
    989
    Thank you for the correction, sometimes I get it wrong as english is not my strong point.

    Do you have any examples where you have transitioned from prototype modelling to finished product?
     
  23. unit_dev123

    unit_dev123

    Joined:
    Feb 10, 2020
    Posts:
    989
    So true, this is the the problem we face day to day. In feedback friday because we all play games as devs we can appreciate this, but players in general do not.
     
  24. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    I agree with angry penguin for the mechanics part. We can just use free assets or open source scripts for that. However, i may have misunderstood how prototyping actually works. I thought you were supposed to make a video that show what the game would look like in the future by cheating out the mechanics and having everything set up at the right time and place. Some of the last posts tell me otherwise. Is this not how prototypes are made?
     
  25. sxa

    sxa

    Joined:
    Aug 8, 2014
    Posts:
    741
    What you're describing I think I would personally call a 'mock-up'. A demonstration of what would (or could) happen in the real thing but which isn't actually implemented as a real thing.

    'Prototype' I would apply to something which is a functional implementation of (a subset of) something as part of the iteration of designing and developing that something. Prototypes work.
     
    HyperBrid and angrypenguin like this.
  26. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    Yeah, I'll be the nerd who resorts to a dictionary:
    Generally speaking, it's a first or early version of a working thing made to test the design or creation process. If it doesn't function I wouldn't call it a 'prototype".

    That said, videos and pictures and other mock-ups are still super useful. It can be much easier to decide on things like presentation and art style with a bunch of images or animations than by building and implementing them all.
     
  27. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    Well for a mock-up, you'd need assets for the scene (in my case, a mansion or a manor of sorts) so should i be prototyping or making a mock-up?
     
  28. sxa

    sxa

    Joined:
    Aug 8, 2014
    Posts:
    741
    surely that's up to you and whatever it is you need to achieve at any particular point in the project?
     
    angrypenguin likes this.
  29. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    What problem are you trying to solve? Start from there, and figure out what you can build or do or test to best achieve it.

    "I don't know if my game mechanics are fun" probably doesn't need art. "I don't know what my game should look like" probably does, but potentially not raiding the Asset Store to begin with. I'd start with some simpler / cheaper exercises, such as mood boards, to at least establish direction first.
     
  30. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    That actually makes a lot of sense now that i think about. I know what the environment would look like so I should prototype the mechanics to know where I can go with this game, even if the prototype is not built in the same environment. But I also know how i can program those mechanics because I've already found the necessary for it. The problem is that I would be wasting time placing props (Needed for the core mechanics of the game) in the prototype and making AI scripts that i'd have to redo for the actual game
     
    angrypenguin likes this.
  31. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    AI is probably something well worth prototyping even if it results in some duplicated effort or similar. It's complex enough that stuff which seems like it'll work in your head or on paper might not actually turn out to be fun, or might be hard to design around, or might require lots of pre-baked data, or...
     
    HyperBrid and EternalAmbiguity like this.
  32. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,321
    In this scenario I would attempt to make both AI and props reusable in final version. Basically they should not strongly tied to the game being a prototype.
     
    HyperBrid likes this.
  33. HyperBrid

    HyperBrid

    Joined:
    Oct 29, 2019
    Posts:
    27
    I started with SabreCSG. The idea is amazing but setting pos snapping to something like 0.1 will make the editor very slow, especially when moving around. Is there something i'm missing?
     
  34. unit_dev123

    unit_dev123

    Joined:
    Feb 10, 2020
    Posts:
    989
    You can adjust the snapping when you want, as you get closer to the place you need it, change it to something smaller.