Imp City, build an underground empire

After a long break from game development, I’ve started to work on a new project, Imp City.

Imp City is a toy project, inspired by the old Dungeon Keeper and Settler games. It’s about building and maintaining an underground kingdom and keeping your creatures happy. It’s light-hearted with a touch of silly, and will focus on management more than on combat.

At the moment there is only one fully functional production chain. You can order your imps to mine copper and tin ore, which they will bring to the nearest workshop type room, where Conians will produce bronze coins from the ores. The coins then go to the treasury.

Downloads:

http://sourceforge.net/projects/jewelhunt/files/imp_city/

The archives include start scripts for Windows and Linux. It needs Java 7 or newer.

The project grew out of my older “Hunt for the lost rainbow jewels” project, that’s why it shares the same codebase and most of the assets.

Some day I hope to provide some sort of manual in this place:

At the moment there is just a brief overview of the UI buttons and the creature species.

Feedback is welcome :slight_smile:

Slugs are hated by gardeners. Snails are usually liked better, since they are less destructive. But I managed to teach the powersnails to plant crops! Now, what do you say ;D

Now they are proud members of the ranks of useful dungeon creatures, and I’m happy that I could finish work on another room type, the farms. You need farms to feed your creatures, so far they are all vegetarians.

I played with it a little, but I think the latest build doesn’t have all the stuff you showed on the last screenshot.
I was able to change the ground and to spawn a creature who immediately joined the others.

looking good so far!

The mining thing should work in r011, the latest release. But I seriously must write some manual or tutorials, it’s nowhere self-explainting.

Mini Get Started tutorial:

Imps will excavate new corridors and rooms for you. Click on a wall adjacent to an existing room or corridor. A mining mark will appeqar there and an imp will come to clear that square of earth, and floor it (sometimes another imp will come fro flooring). This way you can create new rooms and corridors.

The start map already has a lair for some creatures, so you don’t need to take care of that.

So, to get started, you only need some farmland. Let the imps dig out a 3x3 area, then press the “food” button and then click the floors of the new area. They should turn into grassland. In r011 and older, plants will start growing there automatically. Press the right mouse button once you have a farm, to revert the command tool to “mark for digging”.

Once you have lair and farm, creatures will start to join your dungeon.

Mini Mining Tutorial:

Let your imps dig out a new 2x2 area. Use the “saw and hammer” icon to convert the floors to workshop spaces. (i.e. click that button, then click the floors to convert).

Likewise, dig out another 2x2 area and convert it to a treasury with the “treasure chest” button.

Then dig a tunnel to an copper or tin ore mound (in r011, it is sufficient to have one type of ore). Click that mound. A mining symbol like on earth sqaures will appear there, but smaller. An Imp will come and start digging. Unlike earth, the mound won’t collapse immediately though, it lasts a while. The imp will break out lumps of ore and bring them to the workshop.

Conians occasionally work in workshops. You’ll have to wait until one decides to work. It will go to the workshop by itself and start working there, converting the ore to bronze coins.

Once there are coins, another imp will come an carry those coins to the treasury.

So far, it should work. The last shown feature, that powersnails plant new crops, is not in r011, but will be part of the next release. In r011 crops grow automatically on farmland.

I’ve refined the text from this posting into two brief tutorials:


ok now everything worked. I saw the cute imps doing their stuff.

The only thing that really bothered me is using the arrows to move the camera. Unless you are left handed it definitely should be on WASD instead. I also feel Up should move the map “up” not isometrically up. it feels weird to press up+right to make the map go up.

Other than that super cool work.

Makes me happy to hear :slight_smile:

I’ll see if I can make the scrolling non-isometric. It confuses me too, at times. WASD should be doable as well, just S is currently mapped to saving, but that’s usually Ctrl-S anyways.

Thanks for the feedback!

I had a bug infestation in my code >.< Well several, actually. But I could clean up a good number of them.

http://sourceforge.net/projects/jewelhunt/files/imp_city/r012/

  • Some mining and path finding related bugs fixed
  • Some AI related bugs fixed, some more are still present
  • Bookworms can read now
  • Powersnails plant crops now
  • Saving loading now by ctrl-s and ctrl-l (before without ctrl)
  • WASD camera controls for right-hand-mouse users

To help getting started with food production, powersnails will join right away. Best is to start with building a farm and wait till there are some crops growing, before expanding the dungeon with new rooms. If all creatures are hungry and nothing grows you’re pretty much stuck, because hungry powersnails won’t do any work, and without them, nothing will grow.

There is a saved game included in this release as showcase of the current state.

This is looking pretty neat. I haven’t tried it yet. Will you list some technical specifications?

I’m not sure if I understand what you mean with technical specifications. System requirements?

It’s difficult to say. It seems to use less than 500mB ram, and takes less than 25% CPU time on a Core i5 with 2.3GHz. Minimum OpenGL version needed should be 1.4 (yes, my display code is very old fashioned). It needs a display of at least 1200x768 pixels though. The Window size is fixed at the moment. Java 7 or newer should do.

I’ve tested it with Windows 7 Home, and once on Linux Mint 17 based system, but that’s been a while, and I have actually no idea if it still does, but I see no reason why not.

I’m working on a bigger subsystem right now, will take a while till it’s ready for a new release. The idea is to send monsters to overworld raids, and retrieve treasure, magic items, maybe even other creatures. This will be triggered by research in the library, where your creatures may gain knowledge of interesting overworld locations, and bring up quests for you as keeper.

Over there in freegamedev.net I have posted two preview screenshots to give an idea:
http://forum.freegamedev.net/viewtopic.php?p=63329#p63329

The screenshots are 90% mockups, but I’m slowly backing it with code.

Feedback on the idea is welcome :slight_smile:

Man, I loved your inventory Diablo style, well done.

I closed the game so many times when I click “escape” to try close some dialog. ’ :smiley:

I have not played your game yet but it looks interesting. I do have some advice on tutorials though. I believe mechanics should “teach them selves” players don’t really like having to read documentation to learn how to play a game.

I agree, but I don’t know how to achieve this. E.g. let the player know “you need powersnails to grow crops on farmland”, except through written information.

Similar problem in “the default action is that imps come to excavate a tile if you click on it”.

That’s why I decided to provide documentation, but I know that few people will read it. It still makes it possible to point help-seeking players to the documentation instead of writing the information all over e.g. in replies to postings. So it’s been my choice not because I think it is superior, but because it was the only solution that I saw (except in-game tutorials, which I could not create in such little time).

Ok , I’m glad other people share this design philosophy though.

I think one solution is to make the starting area quite simple and hard to break, so the player can mess around with the elements which are present and learn them that way. If there are too many game elements present right from the start, it can be hard to work out how they interact with each other. But at the same time, it must not be too slow to progress, or the people who work it out quickly will get bored. Personally I never read documentation, and I think many other people don’t either, but theres nothing worse than boring tutorials which give you a long boring list of tasks to complete in order to graduate. Messing around and learning is often half the fun, the trick is to try to keep it so that there arent lots of obscure things which are hard/unintuitive to discover.

That’s a good idea. I’ll add a farm to the starting map, so there can’t go much wrong (no creatures will starve) and the player has time to try things out.

Look, so many treasures to be found! (aka I made a treasure quest generator):

[i]A minion of yours found a tattered treasure map. The map unveils outstanding riches to be found in the bushland of A’kl’thmon.

A minion of yours found a incomplete treasure map. The map describes big riches to be found in the run down citadel of L’thermacl’thenmon.

Your creatures discovered a largely unintelligible treasure map. The map unveils huge riches to be found in the grassy plain of Umevol.

A freelancer, sub-hired by a lazy minion of yours, brought up a lightly encrypted treasure map. The map describes huge riches to be found in the cave of Zirunwarererdro.

A minion of yours found a partly burned treasure map. The map shows the location of huge riches to be found in the river bend of Mebala’kcar.

A group of your creatures deciphered a vague treasure map. The map describes outstanding riches to be found in a yet nameless guarded tomb.

A minion of yours found a fragmented treasure map. The map unveils huge riches to be found in the desert of Pluvollonwarun.

Your creatures found a incomplete treasure map. The map describes big riches to be found in a yet nameless new cemetery.

Your creatures found a largely unintelligible treasure map. The map shows the location of huge riches to be found in the river bend of Macfrak’la.

Your creatures discovered a precise treasure map. The map describes huge riches to be found in a yet nameless new temple.

Your creatures discovered a partly burned treasure map. The map tells of big riches to be found in a yet nameless new pyramid.

A freelancer, sub-hired by a lazy minion of yours, brought up a partly burned treasure map. The map describes outstanding riches to be found in the besieged temple of K’laer.

Hard working creatures of yours found a fragmented treasure map. The map describes abundant riches to be found in a yet nameless besieged cemetery.

A group of your creatures deciphered a partly burned treasure map. The map describes big riches to be found in a yet nameless ruined temple.

Your minions discovered a precise treasure map. The map unveils huge riches to be found in a yet nameless new tower.

A group of your creatures deciphered a heavily encrypted treasure map. The map tells of outstanding riches to be found in the vehicle wreck of Jarkolonko.

Your minions deciphered a partly burned treasure map. The map shows the location of huge riches to be found in the new cemetery of Carziren.

A group of your creatures deciphered a tattered treasure map. The map shows the location of big riches to be found in the desert of K’lar’twarkol’th.

A minion of yours found a lightly encrypted treasure map. The map unveils big riches to be found in the guarded stronghold of Frabalmewarcon.

A group of your creatures deciphered a heavily encrypted treasure map. The map describes outstanding riches to be found in a yet nameless besieged tower.

Your creatures found a lightly encrypted treasure map. The map shows the location of huge riches to be found in the ruined temple of Jarumecth.

Your creatures discovered a precise treasure map. The map tells of huge riches to be found in the guarded pyramid of Warl’thcarplujar.

Hard working creatures of yours found a fragmented treasure map. The map tells of huge riches to be found in the lake of A’ka’kme.

Hard working creatures of yours found a fragmented treasure map. The map shows the location of outstanding riches to be found in the besieged citadel of Kojark’lacarvolgor.

A minion of yours found a lightly encrypted treasure map. The map describes abundant riches to be found in a yet nameless disused citadel.

Hard working creatures of yours found a precise treasure map. The map shows the location of huge riches to be found in the hollow tree trunk of Gormoncthjar.

A freelancer, sub-hired by a lazy minion of yours, brought up a lightly encrypted treasure map. The map tells of big riches to be found in the lake of Baldef.

A minion of yours found a heavily encrypted treasure map. The map tells of big riches to be found in the besieged stronghold of Enbalkeifdrojar.

A freelancer, sub-hired by a lazy minion of yours, brought up a faded treasure map. The map describes big riches to be found in a yet nameless hollow tree trunk.

Your minions deciphered a tattered treasure map. The map unveils big riches to be found in the lake of Zeeincarbal.

Your minions deciphered a largely unintelligible treasure map. The map tells of outstanding riches to be found in a yet nameless forest.

A group of your creatures deciphered a incomplete treasure map. The map unveils abundant riches to be found in a yet nameless hollow tree trunk.

Your creatures found a tattered treasure map. The map shows the location of huge riches to be found in the great plain of Taza’ka’kmonk’la.

A minion of yours found a heavily encrypted treasure map. The map shows the location of abundant riches to be found in the hollow tree trunk of Ina’kzir.

Hard working creatures of yours found a fragmented treasure map. The map tells of huge riches to be found in the run down tower of Mevol.

Your creatures found a lightly encrypted treasure map. The map describes outstanding riches to be found in a yet nameless hollow tree trunk.

Your creatures found a fragmented treasure map. The map tells of outstanding riches to be found in a yet nameless vehicle wreck.

Your minions deciphered a vague treasure map. The map shows the location of big riches to be found in the great plain of L’thzirza.

A freelancer, sub-hired by a lazy minion of yours, brought up a tattered treasure map. The map tells of abundant riches to be found in a yet nameless forest.

Your creatures found a precise treasure map. The map unveils big riches to be found in a yet nameless valley.

A group of your creatures deciphered a partly burned treasure map. The map shows the location of huge riches to be found in the ruined pyramid of Defin.

A minion of yours found a lightly encrypted treasure map. The map tells of big riches to be found in a yet nameless disused tower.

Hard working creatures of yours found a faded treasure map. The map tells of abundant riches to be found in a yet nameless inactive volcano.

Your creatures discovered a largely unintelligible treasure map. The map describes big riches to be found in a yet nameless run down tower.

A freelancer, sub-hired by a lazy minion of yours, brought up a vague treasure map. The map tells of big riches to be found in a yet nameless new temple.

Your creatures found a faded treasure map. The map describes outstanding riches to be found in the great plain of A’kr’t.

A group of your creatures deciphered a faded treasure map. The map shows the location of huge riches to be found in a yet nameless old palace.

Hard working creatures of yours found a heavily encrypted treasure map. The map tells of outstanding riches to be found in the new fortress of A’kenbaler.

Your minions discovered a partly burned treasure map. The map tells of abundant riches to be found in the forest of Convolk’laengor.

Your minions deciphered a vague treasure map. The map describes big riches to be found in the old prison of Warcurzeedefen.[/i]

So so, I have hard working minions. Whoever believes that …

Next step - a quest processor, which calculates the outcome of a raid. It takes a party and the quest description as base for the simulation. The only thing that is really implemented at this point is the overworld awareness of the party. Once they have been spotted they are more likely to be ambushed the following day, and battles are even more likely to be noticed again. So things get increasingly worse once the party ran into fights.

Todo:

  • include party stealth and combat strength into calculations
  • if party is intelligent enough let them make decision like “hide and wait”, when they feel observed
  • actual retrieval of the treasure (battle guards, find it, etc.)

Problem: How to make the player aware what happened if the party was completely erased and not a single member returns to tell?

Example of the current simulation:

[i]Quest:

Your minions deciphered a tattered treasure map. The map describes big riches to be found in the disused
palace of Warunuzjarfra. The distance makes you wonder though, if you’ll be still alive when your expedition
returns.

Travel Log:

Day 1: Been ambushed by wild animals. 4 party members were killed.
Day 2: On our way. Nothing happened.
Day 3: Been ambushed by wild animals. All party members survived.
Day 4: Crossed a swampy area. One party member was killed.
Day 5: Ran into lightly armed wanderers. All party members survived.
Day 6: Crossed a deserted area. All party members survived.
Day 7: Crossed a wild river. 2 party members were killed.
Day 8: Crossed a swampy area. One party member was killed.
Day 9: Saw some overlanders nearby. We’ve most likely been noticed.
Day 10: Saw some overlanders nearby. We’ve most likely been noticed.
Day 11: Saw some overlanders in a distance, party was most likely not noticed.
Day 12: Saw some overlanders nearby. We’ve most likely been noticed.
Day 13: Met a group of armed overlanders. 5 party members were killed.
Day 14: Saw some overlanders nearby. We’ve most likely been noticed.
Day 15: Saw some overlanders in a distance, party was most likely not noticed.
Day 16: Saw some overlanders in a distance, party was most likely not noticed.
Day 17: Saw some overlanders nearby. We’ve most likely been noticed.
Day 18: Saw some overlanders nearby. We’ve most likely been noticed.
Day 19: Saw some overlanders nearby. We’ve most likely been noticed.
Day 20: Ran into lightly armed wanderers. 3 party members were killed.
Day 21: Saw some overlanders nearby. Party might have been noticed.
Day 22: Saw some overlanders nearby. We’ve most likely been noticed.
Day 23: Saw some overlanders nearby. We’ve most likely been noticed.
Day 24: Saw some overlanders nearby. We’ve most likely been noticed.
Day 25: Saw some overlanders nearby. We’ve most likely been noticed.
Day 26: Saw some overlanders nearby. We’ve most likely been noticed.

(insert actual treasure retrieval here - todo)

Travel Log:

Day 27: Met a group of armed overlanders. All party members survived.
Day 28: Saw some overlanders nearby. Party might have been noticed.
Day 29: Ran into lightly armed wanderers. One party member was killed.
Day 30: Met a group of armed overlanders. 7 party members were killed.
Day 31: Saw some overlanders nearby. Party might have been noticed.
Day 32: Saw some overlanders nearby. Party might have been noticed.
Day 33: Saw some overlanders nearby. Party might have been noticed.
Day 34: Saw some overlanders nearby. Party might have been noticed.
Day 35: Saw some overlanders nearby. We’ve most likely been noticed.
Day 36: Saw some overlanders in a distance, party was most likely not noticed.
Day 37: Saw some overlanders nearby. We’ve most likely been noticed.
Day 38: Met a group of armed overlanders. 9 party members were killed.
Day 39: Met a group of armed overlanders. 5 party members were killed.
Day 40: Met a group of armed overlanders. 8 party members were killed.
Day 41: Saw some overlanders nearby. We’ve most likely been noticed.
Day 42: Saw some overlanders nearby. Party might have been noticed.
Day 43: Saw some overlanders nearby. Party might have been noticed.
Day 44: Saw some overlanders nearby. We’ve most likely been noticed.
Day 45: Met a group of armed overlanders. 6 party members were killed.
Day 46: Saw some overlanders nearby. We’ve most likely been noticed.
Day 47: Saw some overlanders nearby. We’ve most likely been noticed.
Day 48: Ran into lightly armed wanderers. 2 party members were killed.
Day 49: Met a group of armed overlanders. 7 party members were killed.
Day 50: Saw some overlanders in a distance, party was most likely not noticed.
Day 51: Saw some overlanders nearby. We’ve most likely been noticed.
Day 52: Saw some overlanders nearby. Party might have been noticed.
[/i]

These extraordinarily long dumps may not be the way to cultivate a fan base :point:

I hoped for some feeback on the texts. But yes, I’m aware that such walls of text are unliked. English isn’t my mothers tongue, and I assume there are grammar and other errors in the texts, and I hoped that native speakers could help. I’m not sure how to get feedback on the texts without posting them.

(E.g. I noticed meanwhile that overlanders should most likely have been upperworlders -> translation mistake of mine from “above” and “land”)

Questing will run in parallel to the dungeon management, and the player can’t directly influence it except for the compilation if the party, which will affect the result (combat strength, intelligence of the creatures, carrying capacity, etc …)

It starts with a quest offer:

Then you can assemble a party and send them off. I didn’t have many creatures in this example …

If they return, you’ll get a summary:

… and the full details of the journey if you want:

Yes, the ‘f’ in the font has buggy kerning. Will be fixed in the next release. Also, battles with guards and actual retrievals of the treasure are still missing, in case the creatures actually find the right place.