Skip to content
McHorse edited this page Nov 1, 2022 · 10 revisions

Welcome to BBS game engine's Wiki!

What is BBS game engine?

BBS (game engine) is a work-in-progress application that strives to become a better version of Minecraft according to my vision. It is intended for singleplayer experience, or as a sandbox. It's designed for adventure map creation and playthrough, as well as video production (machinimas and roleplays).

Why?

Even though Minecraft has extensive capabilities like Forge/Fabric modding, resource and data packs, Minecraft could've been so much more lightweight and faster if it didn't come with all the extra weight of the base game. Adventure maps could've heavily benefitted if it was possible to strip down the load of vanilla blocks, and come up with your own palette from scratch. Same thing about in-game mechanics. Wouldn't it be nice to be able to run Minecraft in a special adventure map mode where you could pick which blocks and mobs are going to be used? It would make the game load faster, and also feel more lightweight.

Besides, there are a lot of people who enjoys building, or even build stuff professionally in Minecraft. For a building game, how could it not have some tools that allow to speed up the process of manipulating thousands of blocks at the same time? There are mods/plugins that help this process like WorldEdit, Effortless Building and Advanced Creation, however, imagine how awesome would that be if that was in the base game.

While still staying on topic of tools, Minecraft could have heavily benefitted from all sort of tools that would allow adding blocks, mobs, items in-game without having to touch any of JSON files, or using external software. Editing manually JSON files is tedious, and requires a lot of testing, while external software is prone to being inaccurate when Minecraft updates.

Finally, Minecraft has huge problem with modding. Even though Forge/Fabric provide amazing capabilities for modding, they have a huge problem of breaking mods' codebase in between updates, making mods stuck in the versions they were developed for, and obsolete after some time due to lack of players on said version. If only Mojang and Forge/Fabric could collaborate together in offering not only documentation, avoid making breaking changes without a reason, or at the least providing a detailed list of changes, then mods would have a better chance of staying relevant and up-to-date.

Features

At the moment, BBS has following features:

  • World builder GUI that allows to interactively place and remove blocks much much easily, feature a dozen of tools, box selection, structure templates, and much more.
  • Tile set editor that allows to add, change and remove block models.
  • Particle effect editor (based on Snowstorm) that allows creating a wide range of particle effects using quads facing the player.
  • Non-linear camera editor using clip-like system which offers a wide range of features allowing setting up camera animation in plethora of ways.
  • Importing animated Blockbench models (that support math expressions).
  • Trigger system which allows you to attach some action when something happens.
  • Condition system which allows you to configure a condition under which something happens (can be used in dialogues, region objects).
  • Form system which allows you to define an appearance for props, entities or dialogue entries.
  • JS scripting with a rich API (including basic API for GUI creation and input handling).
  • Crafting (or rather exchange) system.
  • Quests featuring multiple types of objectives.
  • Node-based dialogue system allowing integration of crafting and quests right into the dialogue.
  • Recording and playback of multiple actors (for cutscenes), and player recording editor allowing editing individual action and frame data.
  • HUD scenes allowing embedding custom elements on top of HUD.
  • World objects that are part of the world but they are not entities nor blocks:
    • Prop object allows to place a form as a static prop.
    • Trigger object allows to configure keybind(s) when a player looks at it.
    • Region object allows to configure triggers when a player enters/exits the region. It supports multiple shapes like boxes, cylinders and spheres.
  • States which allows you to store number and strings, which can be used logically in scripts, dialogues and conditions.
  • And more, and more to come...

Extra information

At the moment, BBS is written in Java 8 using LWJGL3 (OpenGL 3.3) with a couple of dependencies (JOML and greenrobot's EventBus), so it's pretty lightweight.

If you would like to check out the development progress:

Clone this wiki locally