Brix&Blox Sandbox

In Brix&Blox Sandbox you use fictional toy building bricks to build structures and decorative and functional items of all kind.
Design your model, configure it’s settings, place it in the world, set up in- and outputs to add interaction to your models, then export the map and play it.

The main menu in it’s current state.
The designer in which you build your models.
This shows that it’s possible to change the settings of the selected function of your model.
In this editor you place the designs (your models) on the map. No need to build everything brick by brick.
Here can you add interaction with the designs. Select an output like OnUse (which fires when the player aims at the design and presses the use key), select the target actor, which is a ceiling in this example, then select an input which defines what happens to the target actor when the output fires. For easier referencing, you can change the name of the placed designs. It works kind of like in Valve’s Hammer editor. Please ignore the buttons without images, I totally forgot about them when taking screenshots.
This is what it looks like when you play the map you exported. All the designs will be packed with the map so you only need to share one file with other players.
And if I press the use button while aiming at the wall, I toggle the selected ceiling design.

Right now the framework/the system for the whole game is about 97% done, I just need to fill it with content. The first versions will be free. Once it’s polished enough I will think about commercial use of this project.

Goals for the future:

  • Brick-built vehicles
  • Multiplayer (I have no experience with that right now)
  • Physics
  • World settings (like time of day, post processing, starting positions, …)
  • Parenting (attaching designs in the editor to other designs (like a button to a door))

Please forget/ignore all my other projects. They were either only tests or had some serious problems which I couldn’t fix.

PS: The whole thing is made with blueprints and UMG.

That’s really awesome :slight_smile:

Thanks, glad you like it!

Today I spent 12 (!) hours straight looking for the source of an error. Everything works as expected in PIE or standalone and there are no blueprint or packaging errors but when I test the packaged game and I try to load the editor map from the main menu, it crashes.

After about 50 packaging processes I figured out, when I have more than one “Create Widget”-node (the class is irrelevant) in the main menu widget, it crashes when pressing the “Editor” button. It only happens in combination with the main menu map and the main menu pawn I use. I tried recreating and renaming the involved widgets, maps and blueprints, but it still crashes. All other “Open Level”-nodes work fine.

I post this here because it’s one of those unique errors that only seems to happen to me and I can neither reproduce it nor provide anymore crash information other than the whole project. I also post this here to show you I’m dedicated to this project, even though I have no clue how to fix it.

Think it could be the circular reference issue in blueprints? It comes in many forms, but if your CreateWidget even references a class that references your class, it can cause it.

Nope, no circular references, I checked it to be sure. If there were any, it would not work in PIE/standalone I suppose. I will look for workarounds now.

Edit: I finally found out what’s wrong: I needed a certain actor that holds all kind of information in the main menu map even though it’s not referenced by any of the main menu widgets/blueprints. There was no hint at that in any of the logs. That said, it’s an actor that was already causing a lot of trouble, corruption and crashes. At least I can go on now.

I gave the user more control over the material of the bricks by adding an option for metallic effect as well as the roughness of the bricks which in combination can result in a chrome effect:

It’s also possible now to set and remove the brick outline strength in the options menu.

Here you can see all the bricks that are imported now. There are a lot more to come!

It takes a while to import them as I have to import and set up each LOD by hand and I have to fill data tables in OpenOffice line by line.

I’ve made a HUGE mistake … when planning everything I left one point out that I shouldn’t: performance.

I did a stress test with 3500 bricks on screen (in LEGO dimensions that’s about 1.5 modular buildings) and I was already getting less than 30 FPS. I should have known that the engine isn’t made for this type of game.

So unless you only build indoor environments, this is not playable. I released the latest win 64 build over here:

Now I ask you: What should I do? Should I continue working on a project that is expected to disappoint everyone once they start playing it seriously? What other kind of game could I do with the entities/input-output/settings -system I have created?

Hm, isn’t this exactly the problem a minecraft game would have if it would spawn every block as a single mesh instead of updating the chunk?
Wouldn’t it be possible to create somekind of a chunk system where you only draw the visible side of a brick?

I guess that would be alot of work to change things, but otherwise i don’t know if any engine would be capable of creating 3500 + bricks… wait…

can’t you use instanced meshs for this? Wasn’t there someone creating thousands of rocks?

Yeah - try using the Instanced Static Mesh Component, you’ll need to batch them yourself. But for each unique mesh + material (including parameters), make a seperate instanced static mesh component and Add Transform for each instance in the world of that block.

I did test instanced static meshes before I started this project and I got better results with normal static meshes (I guess because of the occlusion culling). Also with the bricks all having different colors and shapes, there won’t be much gain from instanced static meshes. Thank you for the suggestion though!

You can instance materials as well and adjust parameters, what kind of frame rate are you getting with everything using the same material? You probably could just make one master material for all the bricks.