-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Welcome to BBS game engine's Wiki!
BBS 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).
Even though Minecraft has extensive capabilities thanks to 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 building 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 on up-to-date versions of Minecraft.
At the moment, BBS has following features:
- Tile set editor, which allows you to add, change and remove block models which can be used in the world editor (and scripts).
- World editor, which features more than a dozen different features and tools to manipulate blocks in the world.
- World manager, which allows to manage multiple worlds and their storage format.
-
World objects that are part of the world but they are not entities nor blocks:
- Prop object allows you to place a form as a static prop.
- Trigger object allows you to configure triggerable hotkeys when a player looks at it.
- Region object allows you to configure triggers when a player enters/exits the region. It supports multiple shapes like boxes, cylinders and spheres.
- Condition system, which allows you to configure a condition under which something happens.
- Crafting (or rather exchange) system which allow you to setup an exchange (like vendors).
- Dialogue system (powered by nodes) allowing you to create complicated dialogues with crafting and quests integrations.
- JavaScript scripting (including an API for basic GUI creation) including a basic text editor and in-game documentation. A REPL (Read-Eval-Print-Loop) panel is included, which allowing you to quickly test scripts.
- Quests and quest chains which allow you to create goal oriented gameplay.
- Trigger system, which allows you to attach a response to events. It also includes global triggers (that fire when something happens globally), and hotkey triggers (that fire whenever player pressed a certain key).
- States, which allow you to store number and strings, which can be used logically in scripts, dialogues and conditions.
- Non-linear camera editor using clip-based system which offers a wide range of features allowing you to setup any camera animation.
- Scenes and player recording, which allow you to create machinima scenes.
- Animation editor, which allows you to create animations using forms and a keyframe editor, kind of like a primitive version of Blender.
- Font editor, which allows creating or modifying bitmap fonts and integrating emojis into the dialogues, quests and crafting.
-
Form system which allows you to define an appearance for props, entities, dialogue entries, etc. Following forms are present:
billboard
(a quad that renders a texture),label
(text display),model
(Blockbench or MagicaVoxel models),particle
(particle effect),block
(a single block from tile set editor), andstructure
(saved structure with world editor) - HUD scenes allowing embedding custom elements on top of HUD.
- Import of animated Blockbench models (which support math expressions, and 4.0+ meshes).
- Import of static (but posable) MagicaVoxel models.
- Particle effect editor (based on Snowstorm) that allows creating a wide range of particle effects using billboards facing the player.
-
File system watcher, which automatically reloads resources within
./game/assets/
whenever they were changed externally (models were re-exported, textures were edited in external raster editor, etc.). - Modding BBS using Java (powered by Fabric Loader).
- In-game basic texture editor, which allows you to edit textures without launching GIMP/PhotoShop. Along side it comes texture manager panel which shows all of the textures are currently loaded by BBS, and allows you to edit them using the basic texture editor.
And much more to come...
At the moment, BBS is written in Java 8
using LWJGL3
(OpenGL 3.3
) with several dependencies (main ones are JOML
, greenrobot's EventBus
, and Fabric Loader
), so it's pretty lightweight.
If you would like to check out the development progress:
- Discord server dedicated to BBS.
- YouTube playlist showcasing updates (devlogs).
- YouTube playlist engine's development streams.
- Twitter thread showcasing new features.