Introducing Digbuild

I’d like to intro­duce Digbuild, an open-source game engine inspired by the excel­lent game Minecraft (and Infiniminer before it — that’s right, Minecraft is itself a clone). I’ve been work­ing on it on and off in my spare time for a few months now, and today I decid­ed that it’s ready to show to the world. For the last cou­ple of months I was debat­ing when it would be time to pub­lish it. I did­n’t want to release it in such an ear­ly stage that it was unus­able, and in par­tic­u­lar I did­n’t want to release it in a state where it was near­ly impos­si­ble to build. This week­end, though, my good friend Blake Miller took it upon him­self to build Digbuild (say that 5 times fast), and as it turns out, the build sys­tem is rel­a­tive­ly work­able. So, have at it!

What Digbuild Is

Right now Digbuild pro­vides a ran­dom­ized, vox­el-based world for the play­er to explore. In this regard, it’s very sim­i­lar to Minecraft. You can cre­ate and destroy blocks, and thus you can build cas­tles and any oth­er struc­tures that spring to mind. Digbuild has sev­er­al improve­ments over Minecraft:

  • Infinite world height. You can build struc­tures as tall as you like.
  • Colored light­ing. Different blocks emit dif­fer­ent col­ors of light, and col­ored glass blocks fil­ter the light that flows through them.
  • Translucent mate­ri­als. Want to build a cas­tle out of six dif­fer­ent col­ors of stained glass? Go for it.
  • Bump- and spec­u­lar-mapped tex­tures: Glass is shiny and rocks are rough.
  • Open source. Want to improve some­thing that’s not change­able through an exist­ing API? Hack the source to your heart’s content.

What Digbuild Isn’t

Although Digbuild is heav­i­ly inspired by Minecraft, it does not strive to be just like it. If you want to play Minecraft, go play Minecraft! The ulti­mate goal is for Digbuild to go in sev­er­al direc­tions. We’re plan­ning a Python-based script­ing engine to make build­ing plu­g­ins easy, and it can always be forked. There’s a lot of things that Digbuild lacks at the moment:

  • It’s unfin­ished. If you want to play a game, don’t choose Digbuild. It’s still ear­ly in devel­op­ment, and right now is tar­get­ed towards hackers.
  • There’s no mul­ti­play­er sup­port. It’s planned, but is still a ways off.
  • There’s no craft­ing. The craft­ing sys­tem will even­tu­al­ly be ful­ly Python-based, but there’s no sup­port for this yet.

How to Contribute

We’d be thrilled if you want­ed to help make Digbuild bet­ter. It’s got a long way to go before it’s real­ly a video game, but build­ing it is (at least) half the fun, right? If you’re inter­est­ed in work­ing on it, just fork it on Github and go crazy. Add some­thing cool? Issue a pull request and see it get merged into the main game.

There’s plen­ty of work to do aside from cod­ing, as well. We need to cre­ate tex­tures for new mate­ri­als, come up with ideas for game­play, and even­tu­al­ly add sound effects.

Finally, we’re under no pre­tense that Digbuild is per­fect. It’s still a work in progress, and any kind of feed­back at this stage could be help­ful. So don’t hold back your crit­i­cisms or ideas!

Learning More

I plan to write a series of arti­cles on what I con­sid­er a few of the more inter­est­ing bits of the Digbuild imple­men­ta­tion. Right now the top­ics I expect to write about include the ran­dom ter­rain gen­er­a­tion, graph­ics opti­miza­tions, and effi­cient col­li­sion detec­tion algo­rithms. If there’s any­thing else inter­est­ing about how Digbuild works, let me know and I’ll con­sid­er writ­ing about that too!

Comments are disabled for this post