One year ago, I started work on Black Future. It’s been a wild ride, but today I’m proud to announce the release of 0.10 tech-preview. It’s nowhere near complete (about 10% of the total vision), but I’m hopeful that you’ll find it interesting enough to play with.
The vision remains largely the same: take the bits of Dwarf Fortress, Warhammer, Douglass Adams and Civilization that I enjoy the most and mash them together. There’s a long way to go, but the current version has placeholders for much of the future content. In this release:
- World-gen creates a world with hundreds of other civilizations. It’s a hodge-podge right now, and there isn’t as much differentiation as I’d like – but it’s a great start.
- The world runs in the background – civs move their people around, they can arrive in your area, and you can interact with them.
- You crash-land in a randomly generated, truly 3D environment. Multiple biomes keep things interesting. Z-levels are real, pathing is truly 3D.
- The world is destructible. Currently, you mostly destroy things by mining – but you can designate out a complex underground and watch your settlers dig it out. Stairs work, and paths are updated as the world changes.
- Vegetation is destructible; walking on it too many times wears it away, and grazers eat it. When farming is implemented (soon!), this will make for a fun logistical challenge as you try to keep grazers and passers-by from destroying your garden.
- Wildlife spawns, and (once you build a butcher’s shop) can hunt it for food, leather and bone.
- You can build fortifications, workshops, and construct a large number of items for your settlers. Your settlers automatically upgrade weapons and clothing as better options become available. The tech-tree is expanding rapidly as I add tech-levels; right now, the Stone Age and Bronze Age are fairly fleshed out, but there’s a lot of holes for later advances.
- Members of other civilizations spawn (you start on a village). If they are at war with you, then (after a grace period to let you get started) they will hunt you down. You can view civilizations that you’ve met, and primitive negotiations are possible – currently paying them not to attack you, or inducing a state of war. Much more to come there. Creatures who live in your area have houses – currently wood huts, with more to come there as well.
- You can paint trees for chopping.
- You can mark areas as “guarded”, and settlers will stand on the guard points defending them. Combined with wall-building, you can play a tower-defense type of game now.
- Just about everything is defined in Lua configuration files, so moddability is in from the start.
- Rogue mode lets you control a single settler, roam the map and shoot things. It’s gradually gaining more options, for now it’s a great stress reliever!
There are still plenty of bugs, a few cases in which you can crash the game (my wife found one right before release, which I’ve fixed), and other issues. These will be resolved over time – this is an early preview release, so please cut me some slack!
- The current, auto-generated tech-tree. It’s huge.
- A fleshed out settlement with lots of buildings.
- Defending my settlement from assailants.
It’s been a wild ride. A year ago, I started out optimistically trying to support Curses and SDL. I quickly ran into problems with Curses, and went SDL only. After a while, I also started to find that SDL didn’t really fit with how I think about the world, so I switched to SFML – and RLTK was born. RLTK (The RogueLike Toolkit) seeks to offer Modern C++ services for rendering ASCII consoles, path-finding, visibility and other helpers that I feel would be useful to anyone writing a roguelike. RLTK also contains my Entity-Component-System. It also forms the backbone of Black Future, and will support any 7DRL projects I take up in the near future!
The single biggest change in vision happened early on. I realized that faking 3D on a 2D grid was needlessly painful (even if it looked good). I switched to a true-3D voxel approach (similar to Dwarf Fortress), and integrated the lower-layer viewing found in DF’s “text will be text” plugin – you can see areas that are below the camera on most views. I then implemented proper real-time lighting, including time-of-day – so trees and your structures cast shadows on the land. That took a long time to get right, but I’m pretty happy with the results. It also yielded support for line-of-sight checks and similar, which are used extensively throughout the game.
The next major update after this one will add physics. You can currently dig out an area and it won’t collapse, even if left completely unsupported. After that, I want to get fluid dynamics going – so you can channel water, flood your settlement by mistake, and generally make a mess. That will lead to doors/floodgates/bridges, which in turn leads to mechanisms and triggers. In the meantime, I’ll keep tweaking civilizations, buildings, and probably try to come up with a more meaningful layout for settlements! After that, there’s a huge laundry list that I’m gradually writing up. I still have a lot more tech eras to support, eventually you’ll be able to recruit other civs, trade, bring settlers down from the mothership, travel to other parts of the world, and go for several “win” conditions (taking over the world and getting back to Eden being two of them).
I’ve had a blast for the year I’ve worked on this. I hope you enjoy it, too. Let me know what issues you run into, please. I’m deliberately not publicizing the game outside of development channels yet, because it isn’t really ready – there’s a lot of tech, and not a lot of game.
Lastly, thank you everyone for listening to my rambling for a year!