Once upon a time, four guys were walking down four different streets headed for the same intersection. All four collided and pandamonium ensued. "YOU GOT YOUR SIMCITY IN MY DWARF FORTRESS!" "YOU GOT YOUR MINECRAFT IN MY SIMCITY!" "YOU GOT YOUR DWARF FORTRESS IN MY WESNOTH!"
Ok so it's not quite to that point yet, but that's the idea. I'm ostensibly doing it to learn another programming language (Clojure, a lisp dialect that runs on the JVM). So far it has a fractal terrain generator, an isometric renderer with multiple altitude layers, an entity system, terrain discovery, and a rudimentary AI in which characters make decisions based on a variety of attract/repel factors, and a couple of simple jobs that you can assign to characters.
Download it here: https://bitbucket.org/willismichael/terra-incognita
- follow the download menu to find the zip file. It should work on Linux, Windows, and Mac - The only dependencies are having Java 7 in your PATH, and having your video driver support OpenGL. If you have both of those, you should be able to launch it using the run.sh or run.bat (on windows) file in the project root folder. You can also run in with Java 6, but you have to delete everything in the build folder, and run the build script found in the root folder.
You don't control characters directly, each has a mind of his/her own. Rather, you create "jobs", and the characters may decide to do them.
* Arrow keys - scrolling
* Left click - issue "build" job - to create a stone wall
* Right click - issue "remove" command - chop trees, dig dirt, mine stone
* Scroll wheel - "sliced" view of the landscape, allowing you to see underground. Click the wheel to slice based on a given location, roll the wheel to increase/decrease the altitude of the slice.
Mostly I've just implemented the groundwork, so there's not much in the way of gameplay. While I try to remove annoyances before moving onto new features, there are a few known bugs:
* You can build on top of plants
* If you have dual monitors, the initial scroll offset is incorrect, hold the down key for a couple of seconds to see your people.
When initializing the graphics, it attempts to detect your current resolution and use that to start in fullscreen mode. If that doesn't work, replace these lines in src/terra-incognita.clj:
(def width (.width screen-size))
(def height (.height screen-size))
(def fullscreen true)
with something like this:
(def width 800)
(def height 600)
(def fullscreen false)
The terrain sprites are original artwork, the plants are from http://www.reinerstilesets.de/
, and the people/animals are mostly ripped from the Wesnoth community: http://www.wesnoth.org/