Build Jam Details

Stadia/EGS Name: TheDeveloper :yum:
Contributors: TheDeveloper
Package Name: “Build-a-Base” and “Build-a-Base - Kit Starter”
Package Description: See below :sweat_smile:
Share link: Build-a-Base (Package Showcase)

Text - Summary@4x
Build-a-Base is a system designed to help 3 types of creators:

🏫 Builders

Builders are wonderful creators who aspire to create beautiful structures for their own games or for others’ games.

Build-a-Base helps builders by providing set of kits with common, consistently named pieces to design beautiful structures in the architectural style of their choice. Just install a Built-Kit for the style you’re looking for and start building. As a builder once you’ve mastered one kit, you’ve mastered them all! Check out the “Getting Started” section below if you’re ready to start your first build!

As an added bonus (when the rules of building are followed) Build-a-Base code packages will be able to interact with your builds in exciting ways (i.e. making pieces destructible, swapping out pieces, etc) without any additional work.

🌆 Kit Creators

Kit Creators are builders with a desire for more! Kit creators want more options, more designs, and like to be able to transport the player to a truly unique world. A kit creator is likely not to settle for a pre-made kit to build their masterpieces.

Build-a-Base helps kit creators create a truly unique experience, by providing A LOT of premade pieces which are all consistently named and pre-aligned to work together in a cohesive way. Kit creators only need to customize the appearance of the pre-existing pieces in order to create a visually stunning kit that:

  • Has pieces named in a way that builders already understand.
  • Is already pre-aligned for builders (and designed to reduce z-fighting)
  • Already works with existing Build-a-Base code packages

But the fun doesn’t stop there, Build-a-Base allows kit creators to extend their kits to include any number of piece variants to allow builders even more options.

Taking things a step further…
Not only can you add variants of pre-existing pieces, you can define completely new pieces with full code interoperability by adding those piece definitions to your Kit Template.

Q: So you’re saying that when I make a build kit with Build-a-Base, code packages can interact with my pieces without knowing ahead of time what those pieces will be???
A: Yes, that’s exactly what I’m saying…

For more info on what the Kit Template is and how it’s used. See how Build-a-Base helps “Coders” (below).

💻 Coders

Coders are the curious who want to push the envelope and see what can be done with a modular building system. Coders are likely not satisfied with aesthetics alone and want to see constructions actually do something.

Build-a-Base helps coders by providing a list of each piece in a build kit, along with metadata for each piece like:

  • The type of piece it is
  • The dimensions of the piece
  • How the piece is aligned
  • The variant id of the piece
  • Whether the piece is an interior or exterior piece
  • Whether the piece is a corner piece (and whether it’s concave or convex)

Equipped with this data, coders can traverse a building in the world tree and gather information on each piece that was used to build it. From there coders can do things like swap pieces with pieces from other kits, add decorations to pieces, remove pieces, add properties (like health) to pieces, add triggers to pieces… the possibilities are truly endless! And these Build-a-Base code packages will work with any structure built with any build kit!

Text - Getting Started@4x
Ready to start building? There are 3 rules you need to know to get you the results you want.

Know them well : If something’s not working or lining up correctly, let these rules be your north star to guide you back to success.

Rule 1 - Block Size

It’s simple but easy to forget… Make sure:

  • Grid Size is set to :four: (4)
  • Grid Snap is :white_check_mark: (checked)

Build-a-Base uses a 1-meter snap distance (that’s 4 voxels). If nothing seems to be lining up correctly this is probably the culprit. Make sure that Grid Size is set to 4 (and Grid Snap is on) whenever you are placing pieces.

Rule 2 - Templates Only

All the pieces in every Build-a-Base kit are Templates - 100% of the time - No exceptions.

There might be some beautiful-looking voxel meshes in there but don’t touch! That voxel mesh is likely being used by a template of the same name. While building with voxel meshes directly is technically possible, you will certainly encounter alignment issues along the way, and you give up any ability to use a Build-a-Base code package.

Good?.. Good!.. Onward to the next rule! Let’s gooo!!

Rule 3 - Order Matters

With great power comes great responsibility… We (of course) are talking about the world tree…

Inhaling deeply… *
When you place kit pieces (or any other template in Crayta), that piece gets attached to whatever your cursor is pointing at. THIS MEANS… if you are dropping all of your pieces (like walls) directly onto your terrain, nothing is stuck together, and you will experience… :v: minor frustration :v: when you try to move (or package up) your base.

Wait a sec, could you tell me how to keep a clean world tree?

Alright, I guess… Since you asked nicely…

First thing is to make sure you have a clean surface to build on. It should be flat and nothing else should be attached to it. We will call this surface the “root node” or “root entity” of your base. This is what you will use to move your base around and keep all of the pieces localized in the world tree. In the event you don’t have a clean surface, or don’t feel comfortable making a new piece of terrain, a template with a built-in alignment grid has been added for you (yes you specifically) don’t say I’ve never done anything nice for you, friend. :+1:

The template is called “BaB Base Starter” and looks like this monstrosity here

Yes it’s hideous but it’s yours and it will love anything you decide to build on top of it. Plus it’ll kind of act like that ugly friend that makes your building look better when they’re side by side… you know what I mean?.. anyway…

Once you have a clean surface to start building on, you will begin your base by placing floors. And don’t forget to set that Grid Size to 4 (you didn’t forget did you? :eyes:)

Oh, so you remember that picture above with all the arrows… and floors and walls and stuff?

Which picture?

This one right here

Oh yeah, I remember. What about it?

That picture represents a clean world tree; take a mental snapshot or keep it by your bedside.

  1. Floors get attached to a common root node (some kind of platform or terrain to hold your base)
  2. Inside walls get attached to floors
  3. Outside walls get attached to inside walls

And when you’re ready for it…

  • Ceilings get attached to floors
  • Higher-level floors usually get attached to lower ceilings

Those last two are really just a matter of preference though… Well… really it’s all preference. I mean, it’s your building, just try to keep it structured for me okay?

See, I provide the tooling… you keep things organized… it’s a give and take.

So... is that all?

Hmm? Oh, I guess you do deserve a reward for getting this far into dull documentation…

Take reward *

1 Like