Big Block Engine

Big Block Engine is a 2D, side-view block-based game engine with some simple physics rules, including cell-based fluid motion and blocks that can tumble.

Currently, it can be played like a simple sandbox game, allowing you to draw with blocks, block masks (blocks that modify the appearance of other blocks, like grass on dirt), fluids and furniture (multi-block placeable objects). When un-paused, any unsupported tumbling blocks (like sand) will fall/roll, fluids will flow and contact conditions will occur (lava+water turns to lava rock, for example).

Current Features

Variable Resolution Tile Engine

Can make blocks as detailed as you wish

On a block-by-block basis

Within the limits of OpenGL and the used block renderer, of course

Foreground and background blocks

Starbound-style overlapping block edges

Tilesets

These allow multiple different blocks to connect, as though they were all one block

Furniture

These are multi-block objects that don't move

Full RGBA Block Paint

Physics Simulation

Tumbling sand

Fluid Motion

This is Terraria-style fluid at the moment

World Features

Can optionally loop horizontally and/or vertically

Active worlds are held in RAM

Similar to Terraria

Unlike Starbound, which constantly loads and unloads world sections as a player moves around

Can be any size desired, within the limits of Java heap space

With a 64-bit Java Virtual Machine and sufficient RAM, this can get exceptionally large

World Save/Load

This uses a very flexible zip-archive-based format

Most files in the archive are a single type of data

For example, all block masks for a single BlockPlane (either the foreground or background plane of a game world) are stored in a single file as raw numbers

This makes parsing and debugging very easy

Modding Support

Add new blocks, block masks and fluids

Customizable rendering of these, as well

Add new tilesets for the above

Open Source Software

LGPL v2.1 or later

Future Plans

Full Terraria/Starbound-like game engine

Crafting

Mining

Lighting

Using a texture-based light-mapping approach

Audio

SFX

Music

Sprites

PCs, NPCs, monsters, projectiles, etc.

Background parallax images

Requirements

Java 8 or higher

This is not a browser-based game

OpenGL-capable graphics card

Credits

I've used a number of Liberated Pixel Cup and other opengameart.org assets to build the bootstrap mod. The credits and licensing information are too long to include here, but please have a look at the in-game credits, as available from the help menu. Alternatively, if you download the source archive, you can view the credits directly from the file 'bigblockengine/src/bootstrap/credits.txt'.

Donations

Donations will be used for/will accomplish the following:

Getting me a car

I'm without one at the moment

Encouraging me to work on this more

Currently this is largely a weekends only project

I would like to work less at my job and more on this

Encouraging me to fix bugs you find

I will prioritize fixing a bug for you when you donate

As an alternative, I might tackle a small feature request

But it will have to be a feature I agree with adding

Commissioning new open game artwork

Notes for Developers/Modders

The source archive is intended to be used along with the binary archive. Download and unpack the binary and then unpack the sources over that and you'll have all files you need. The big thing not included in the source archive is the libraries required to compile it.

This open-source project is in a very early Alpha state and has been in development since February of 2016. Making use of this game engine to develop a proper game will require significant work and I'd hold off at least until I've got sprites working. At that point, it should be an excellent starting point for making side-scrolling platform games and the current editing mode should be useful for level design.

Until then, it will still work as a simple, mod-ready sandbox game.

All APIs are subject to change without notice, because this is bleeding-edge Alpha work. I will not set the APIs in stone until I consider this project to be stable. That will require all the final APIs to actually exist and that is at least a year out, if not longer.

I will probably write up something on how to mod this game soon; for now, you'll have to learn by example. Have a look at the bootstrap mod's source files (from the source archive: 'bigblockengine/src/bootstrap'). They're mostly self-documented in the XML files. The layout of the XML files will be backwards compatible insofar as I am able, so modding this is supported now. This will allow you to add new blocks, block masks, fluids, furniture and new contact rules (these are fairly limited at the moment, however).

Milestones

Edition Code Name

Meaning

Biscuit

Initial Release MilestoneIn memory of Ryan Johnson's Terraria character, may she rest in peace. I cannot believe how many grave markers for her I found...

Buttered Biscuit

Current MilestoneIncludes block painting capability, allowing for much greater decorative capacity. Full RGBA coloration of blocks is supported.

Soda

Upcoming MilestoneSprite support, complete with physics, as provided by JBox2D.

Known Bugs/Issuses

Oil/water interactions can behave strangely at times.

Left/right fluid motion is very slow.

Running under Linux is subject to some heavy pauses in rendering any time the OpenGL context is invalidated.

This can be caused by moving the window from one screen to another.

May also happen when altering the screen resolution with the game running.

Entering/exiting full-screen mode may leave any open dialog boxes on screen in strange positions.

The dialog boxes stay where they are in window coordinates while the size of the window changes around them.

This cannot easily be fixed, but should be a relatively minor problem.

One can always switch back to the previous mode and re-position the dialog box.