dot big bang

Developer API
  • Public
  • Public/Protected
  • All

All game engines are a little bit different and dot big bang is no exception. Here we’ll take a little bit of time to get familiar with the main ideas behind DBB.

Voxels are at the heart of dot big bang, these are 3D pixels, all the game models used in DBB are made of voxels. We call these models Voxel Objects and as well as letting you make models easily we also use them for all sorts of things like collision in the world. Voxel Objects are edited in our modelling tool the Voxel Object Editor.

Skeletons are not just something you find in a dungeon. In dot big bang we use Skeletal Objects to make animating complex models like characters easy. These skeletons get Voxel Objects attached to them and by moving the bones of the skeleton you move the attached objects.

Games are pretty self explanatory in one way, they’re things you play. But in terms of making games they are the container you fill up with enticing toys put together to make gameplay. Games are composed of all the other bits and pieces mentioned in this document. Games in dot big bang can be single-player or multiplayer. They can use elements you make exclusively or you can find lots of useful things people have made and shared. They can be made alone or in a group with your friends. And importantly they can be anything you want. The sky is not the limit in this case.

Games are made in our World Editor which makes it easy to find and set up all the elements for a particular game.

Entities are the building blocks of Games; they represent a single item in the game world. A plank of wood, a golden chest or a goblin king. Some complicated game items might even be made out of multiple Entities! And the whole game itself is all the Entities in it working in concert to make the experience of playing the game happen. But by themselves they are kind of useless because they’re really just an empty shell that needs to be filled up. You make them useful by loading them up with Components that tell an Entity what it is and what it should do.

By default Entities only have a couple of pieces of functionality. They carry information about their place in the world. This is called a Transform and lets you move Entities, change the direction they are facing and make them bigger and smaller. They can be given Tags which is a way of grouping like Entities together. And last but not least you can give them their own Name to help you tell them apart.

Peering under the hood for a second, Entities provide an abstraction to our game engine. As a game creator we make games by manipulating Entities and the game engine does all the hard work to translate that into what you see on screen.

Components are the building blocks of Entities; they define some properties of an Entity. For example the Object component attaches a Voxel Object to an Entity and so the Entity will look like that object in the Game. When you click and drag a Voxel Object from the menu in the World Editor the editor is actually automatically making a new Entity for you and adding an Object component then making that component reference the actual Voxel Object it should display. Wild!

Basically you build up an Entity by sticking Components on it and setting them up as you like. There are a few different kinds of Component:

  • Collision components let you tell the Entity how it should collide with the world:
    • What shape it should have and how it is placed in the world relative to the Entity.
    • Which Entities it should collide with and what the result of a collision should be.
  • Voxel Object components let you tell the Entity to display a specific Voxel Object at its location. It also lets you control playback of any animations the object has.
  • Skeletal Object components let you tell the Entity to display a specific Skeletal Object at its location. As with the Voxel Object component it also lets you control how the character animates.
  • Particle components let you tell the Entity to display a Particle System at its location. A Particle System is a bunch of animated flecks that can be used for all sorts of visual effects like explosions, water fountains, fireworks and so on. The component gives you full control over what the particles will look like and how they behave.
  • Sound components let you tell the Entity what sounds it can make. These can then be triggered by Scripts. The component lets you define how loud the sound is and how it will loop.
  • Text components let you tell the Entity it should show some text at its location. The component lets you define exactly what the text will look like and how it will be placed.
  • Camera components let you tell the Entity that it can render a view from its location. The component lets you define the properties of the camera.
  • Script components are the most important kind of component for game creators. They let you define new behavior that the Entity will follow.

Scripts are exciting! They let you create new behavior for Entities in dot big bang. You can reach in and rummage around with the world to make things happen. It’s very much like having magic superpowers.

Our current scripting language is TypeScript. But fear not if that looks complicated because you don’t need to be an expert to get started programming new functionality in dot big bang. In fact one of the reasons we chose it is that it helps us use our script editor to help guide and avoid common mistakes. In the future we’re going to add more functionality to help bridge the gap between new creator and expert programmer.

To get started in learning how Scripting works we recommend checking out our Scripting Basics article.

If you’re not a programmer and not interested in learning, then don’t worry. There is a universe of Scripts out there that people have made and shared. Lots of them are pretty easy to piece together to build Entities. For example we offer a Behaviors tab packed full of Scripts that we’ve made for you to use.

Templates let you reuse and share Entities. You create the perfect Goblin and want to use it in other games, how do you do that? Well you turn it into a Template! Now it’s trivial to add the fully featured Goblin template into other games, share it with the community and spawn it into a game using a Script.

Templates are so powerful we’ve got a whole new world of Template Toys for people to experiment with. These provide out of the box game items you can use in the World Editor to build your own games.

Events are the way Entities and Components communicate with each other. You can send an event directly to an Entity or to all Entities with a certain tag. This lets you build functionality in a modular way. The Events an Entity responds to and sends out define how it can interact with the world. This becomes a network of communication that defines how your game works which makes it really easy to add and remove different kinds of Entity and experiment.

Tags are text names that can be given to an Entity. An Entity can have many unique tags. Some of them are used internally by our engine to understand how an Entity should be used. But mostly they exist for our game creators to group Entities. This can be used to simplify navigation in our Entity Browser, facilitate communication by sending Events to all Entities with a certain tag and to collect Entities together to process them in some way in a Script.

As you continue your journey into learning more about dot big bang I’d recommend keeping this page open so you can refer back to it regularly. These concepts are key to a lot of things happening in dot big bang so getting them embedded into your mind as you go will help considerably.