Introducing Digbuild

I’d like to introduce Digbuild, an open-source game engine inspired by the excellent game Minecraft (and Infiniminer before it — that’s right, Minecraft is itself a clone). I’ve been working on it on and off in my spare time for a few months now, and today I decided that it’s ready to show to the world. For the last couple of months I was debating when it would be time to publish it. I didn’t want to release it in such an early stage that it was unusable, and in particular I didn’t want to release it in a state where it was nearly impossible to build. This weekend, though, my good friend Blake Miller took it upon himself to build Digbuild (say that 5 times fast), and as it turns out, the build system is relatively workable. So, have at it!

What Digbuild Is

Right now Digbuild provides a randomized, voxel-based world for the player to explore. In this regard, it’s very similar to Minecraft. You can create and destroy blocks, and thus you can build castles and any other structures that spring to mind. Digbuild has several improvements over Minecraft:

  • Infinite world height. You can build structures as tall as you like.
  • Colored lighting. Different blocks emit different colors of light, and colored glass blocks filter the light that flows through them.
  • Translucent materials. Want to build a castle out of six different colors of stained glass? Go for it.
  • Bump– and specular-mapped textures: Glass is shiny and rocks are rough.
  • Open source. Want to improve something that’s not changeable through an existing API? Hack the source to your heart’s content.

What Digbuild Isn’t

Although Digbuild is heavily inspired by Minecraft, it does not strive to be just like it. If you want to play Minecraft, go play Minecraft! The ultimate goal is for Digbuild to go in several directions. We’re planning a Python-based scripting engine to make building plugins easy, and it can always be forked. There’s a lot of things that Digbuild lacks at the moment:

  • It’s unfinished. If you want to play a game, don’t choose Digbuild. It’s still early in development, and right now is targeted towards hackers.
  • There’s no multiplayer support. It’s planned, but is still a ways off.
  • There’s no crafting. The crafting system will eventually be fully Python-based, but there’s no support for this yet.

How to Contribute

We’d be thrilled if you wanted to help make Digbuild better. It’s got a long way to go before it’s really a video game, but building it is (at least) half the fun, right? If you’re interested in working on it, just fork it on Github and go crazy. Add something cool? Issue a pull request and see it get merged into the main game.

There’s plenty of work to do aside from coding, as well. We need to create textures for new materials, come up with ideas for gameplay, and eventually add sound effects.

Finally, we’re under no pretense that Digbuild is perfect. It’s still a work in progress, and any kind of feedback at this stage could be helpful. So don’t hold back your criticisms or ideas!

Learning More

I plan to write a series of articles on what I consider a few of the more interesting bits of the Digbuild implementation. Right now the topics I expect to write about include the random terrain generation, graphics optimizations, and efficient collision detection algorithms. If there’s anything else interesting about how Digbuild works, let me know and I’ll consider writing about that too!

9 Comments

  • […] The rest is here: Introducing Digbuild – Mezeskedonia […]

  • Jefvel wrote:

    This is cool :)
    Is there any way you can try it out without having to compile it yourself?

  • Anonymous wrote:

    It would be great to hear about how you handled vertical chunk storage and loading in an infinite world; especially cases where the physics interacts across the boundaries of loaded/unloaded vertical chunks.

  • @Jefvel: Unfortunately, right now there isn’t. I want to put together a downloadable executable, but haven’t had time. Maybe that’s something that could be contributed! ^_^

  • Looks cool, though I can’t get it to run after I compile it. I’m running Ubuntu 11.04 x64 with an Intel i915 GFX chipset, and when I run digbuild it gives me the following error:
    src/sdl_gl_window.cc +117 prepare_resolution(): Chosen resolution: (1366, 768)

    src/main.cc +33 main(): Error: Error setting video mode: Couldn’t find matching GLX visual.

    I’m not sure if that error is because of my relatively weak integrated graphics chipset, some error on my part when compiling, or something else altogether.

  • @dt2g: The resolution selection stuff is not complete yet, so it might be choosing a bad resolution. One thing you can try is to build it with “scons define=EVAN” which will hack it to use 1024x768, and see if that works. Other than that, you might try troubleshooting your graphics stuff with glxinfo, etc. Good luck!

  • if you use debian/ubuntu, could you assemble a list of packages required to build it, and, in case dependencies are not in debian yet?

  • @me:

    Someone contributed a script which installs the dependencies on Ubuntu 11.04. If you’re running Debian it might help as a starting point (it might even just work).

    https://github.com/l0b0/digbuild/blob/master/ubuntu1104.sh

  • @me:

    I just merged l0b0’s changes into this repository. Just

    # git clone https://github.com/emezeske/digbuild.git
    # cd digbuild
    # ./ubuntu1104.sh

    and cross your fingers. Let us know how it goes.

Leave a Reply

Your email is never shared.Required fields are marked *