Skip to content
x3ro edited this page Aug 12, 2012 · 1 revision

Primary areas of focus for the game. Heavily inspired DwarfFortress and DungeonKeeper (and of course MineCraft)

Blueprinting / Designating

This does not exist currently in MineCraft although Mythruna added some blueprinting-like block-crafting recently - put a few big blocks together, pick up a smaller version of the whole thing. No resources involved aside from what blocks you put down as Mythruna is free-build / infinite blocks

In DF designating would do one of a few things (usually only on one z-layer):

  • Dig out blocks
  • Designate a zone for an activity (pasture, meeting area, etc)
  • Paint attributes on objects for minions to respect (forbid item, allow/claim item, etc) In DK it is simply the way you dig out blocks

If you could designate blocks (dug or undug) and then at a certain point execute a command to store the selection as a blueprint you could later reuse that blueprint to issue dig commands. Maybe have a 3D window in which you can rotate the multi-block construct to review and adjust.

To create things instead of dig them out you could simply stack up the appropriate blocks in the world then paint the blocks or use a box inclusion of the area to define another blueprint. To actually create one copy of that object might take a workshop, or for very basic stuff (dirt) you may simply have to consume multiple bigger blocks, at least until you've fashioned a "prototype" block to replicate (all this is if we should go for a finite-material setup rather than a free-form creative mode setup)

Finite-material would be nice, to add some difficulty / achievement, disallowing using blocks free-style in blueprints. First you have to design something, using the blocks to build a full-scale version. Then you can either save it as a full-size blueprint or miniaturize it (with another full expenditure of the same blocks), then save the miniaturized blueprint. Workshops may be involved in one or more steps.

Non-construction designating could just paint or box areas to be used (as in DF) for habitation, workshops, etc

Minions

This might be the option with the most potential - no MC-inspired game seems to have implemented this, although FortressCraft stated it as a goal. Very strong effect from this in DF and DK.

The main thing DK did was minions, something MC doesn't do at all. In MC you've got a pickaxe and maybe a few friends - now go build the U.S.S Enterprise if you feel like it! Enter reusable blueprints, and minions to help dig and construct (slower and weaker than a player, of course, but more of them - hilarity may ensue if they dig into a cave).

DF only had one type of minions, the race you're playing (usually dwarves). All kinds of hostiles were on the map and some animals could be tamed (and used for defense, hunting, zoos, etc). DK had different types of minions depending on the map and what you built. Some would not get along well with each other. None took upkeep beyond pay (and food), while in DF your dwarves need all kinds of stuff. In a new game stuff like that could be slowly added over time - first you just need housing of some sort and probably food.

DF minions arrive primarily via immigration waves, secondly via childbirth in very long games. DK minions come out of Portals - yay portals! In the new game they could be a one source of minions (could probably also find them native to parts of the world or have them wander/attack into your part of the world). Natural attraction to your site/house/fortress/skull castle with lava eyes would probably depend on all sorts of factors like habitation/workshops/"value" of some sort

Minions likely only work if their master player is online, or at least if the master player's estate is active via friends present. Key is that minions can do everything that a player can, and take over as the player gets bored of a particular activity, freeing up the player to keep having more fun.

Minions that mine may ultimately be able to extract more of a valuable resource from blocks than a player, but at far slower speed. Sort of like a speed/quantity slider, where a player can mine fast at very low yield, while minions normally mine slow at decent yield, or extremely slow (and/or in larger numbers, possibly with bonuses from facilities) for maximum yield. A single block that's mined may drop more than one type of material, such as a few mini-blocks of boring rock and one or two blocks of actual ore - maybe minions make the percentage of valuable mini-blocks higher via slow mining.

Workshops

Use a hybrid DK/DF approach. DK workshops are rooms, DF workshops are sort of structures, but essentially a collection of tools / tables / etc. For the game designate a room, put some specific stuff in it to qualify for a workshop, then you can do stuff in or or attract minions and have them help do stuff. Pretty nice setup and a ways apart from a simple workbench or oven in MC. The stuff in the room plus maybe smoothing/engraving the walls would build the sort of "value" concept from DF that could attract higher level minions, improve the facilities (speed / output) as well as give you scoring-related concepts & achievements. As well as just decoration. The stone/ore used in the walls could perhaps relate to what minions you could attract and give color.

Summary line-up:

  • Player creates a world-tool (as opposed to a held toold) and can use it in the world for very basic stuff (like the MC work bench)

  • Player arranges a room around one or more related tools to form a workshop that will usually attract one primary minion type

    • Player can work manually at the workshop to do some tasks
    • Minions can work at the workshop and do the same tasks, but in bulk
  • Player upgrades the workshop in one or more ways

    • "Enrichen" the workshop by adding objects of value / smoothing or engraving walls, etc --> better attraction for minions / better minion quality?
    • Upgrade tools to unlock higher-tier items
    • Increase tool count to improve minion efficiency (player can't normally use more than one tool at a time, multiple minions can) Sample workshops:
  • Typical stuff (carpentry, masonry, smithy, farm, etc)

  • Paper mill / library / cartography related - produce paper, attract map-making minions that'll tag along, enlarge the player's mini-map radius, and permanently create maps of some varying accuracy level

  • Communication Center - allow notifications to be sent from the game world to out-of-game destinations (email, twitter, facebook, etc), quality and upgrades affect what services are available and what can be posted, in-game notifications about friends could be in too. Minion: Angry Bird ;-)

Portals

See WorldPortals for details

The goal of Portals is to serve as an anchor in the world for an assortment on stuff. A Portal defines a region within the game that at different ranges holds activities such as mob spawning, formal estate building (which allows the primary workshop/minion functionality), PC villages, NPC settlements (around the periphery), travel, etc. A single Portal is spawned at the center of a new world, and is how players enter the world. Portal appearance and size (and thus influence) is modifiable by players.

Perspective

MC is 1st person, DK is floating 3rd person with Possession available to go 1st person with unique view & abilities based on the creature, DF is pure floating 3rd person. You could probably have 1st person (within your starting person or maybe with possession / body transfer) as well as a construction-friendly "layer" mode like in DF, where you see through roofs and such to more easily work on workshops at a certain z layer (game would be doable without, although maybe awkward in places). When placing room-like blueprints maybe you could gain a ghostly view of roughly where your construction would settle within unexplored blocks (without revealing if there's a cave in the middle with lots of things that want to eat you)

Depth

Both types from DF, with a very deep world (any potential in doing multiple chucks at the z-level? Could be overkill. If lighting gets in the way then yeah, maybe define a z-level at which point sun no longer reaches) and very deep content. If nice ore allocation can be built, there's little limit to the number of different types of stone (or trees, soils, etc) you could have. Even if they don't all have unique uses that are always relevant the mere act of digging around in DF to see what you find is awesome. At low-res that probably wouldn't strain resources too much either? You might need some sort of culling or lowering of detail at distance (likely need better 3D terminology/understanding!)

World scale

MC in multiplayer is currently rather weak and scales poorly. It would be good to come up with an extremely solid foundation to allow a persistent world to scale, even allowing it to run on multiple nodes if need be - maybe not MMOG right out of the box or anything, but hitting performance limits with 5-10 people and a few animals is just weak... :-)

This would also be more important due to the minion count and the next section

A solid multi-node MMOG server framework would be perfect - if it existed. RedDwarfServer was supposed to be exactly that, but was sacrificed on the altar of Oracle after they bought out Sun (back when RDS was still named ProjectDarkStar). As it stands it is only single-node, and somewhat inactive, although one community member supposedly has a working multi-node version. Also supposedly it is the closest thing in Java to a MMOG server framework, so it might be worth to reviewing. It is "task" based and works on managed objects + references that in theory should put a lot of the network technicalities "under the hood" (especially single-node progressing to multi-node without any changes).

Another question is whether or not a database is needed. If going for tens of different blocks of a type, would it be better to load generic block classes with parameters passed from a DB or so rather than specific classes? Would that be a way to allow a central game world to contain benefits beyond the code itself? Would there be a point to caching chunks in a DB rather than just loading from disk?

Physics

This likely has the most "nifty" potential of them all, yet probably also the most difficulty, especially in multiplayer. Not talking insane cutting edge Blender/Bullet multi-thousand physics objects, but on a lower scale. FortressCraft has included some basic physics, MC TNT might be the only physics-related piece there, if that even is physics.

http://forums.introversion.co.uk/introversion/viewtopic.php?t=2723 http://www.youtube.com/user/Phymec#p/u/0/bSQoJW9ajmU

For dynamic block transformation imagine if you could do something as simple as split a single block you're mining into 2x2x2 smaller physics-enabled blocks (slightly smaller overall to allow easier movement), that would fall on the ground and be pickable, yet not clippable like the tiny ones that pop out in MC. To maintain a working world you'd need to eventually make them static again (or vanish), which could be done by a background task that'll fade aged physics-blocks back into normal world blocks, maybe at the smaller size to allow players to slowly make the world more "granular"

Up that a little bit to where you have a simple catapult.. nothing crazy, but just picture it. Can it be done realistically in multiplayer? Haven't investigated physics engine/libraries that much yet (jMonkeyEngine has a nice jBullet setup), but maybe you could let the physics initiate on the server, share a seed with clients in range to see it, then let the physics run both sides and just snap the client bits to server coords if they diverge?

More natural liquid motion (DF has true water sources and actual water pressure, leading to great fun by accidentally (or intentionally) flooding your fortress!) would be good too, and has lots of neat potential. As a second layer allow the players to come up with stuff that'll work with the physics. MC has boats and minecarts, what if you could build an object of a shape where it would float like a boat naturally, or attach rounded objects to an axle on a board with the wheels aligned just right to snap on to rails, powered by the axle output from a primitive steam engine (built via a miniaturized blueprint)? Not sure if doable, but the jBullet physics (and vehicles, hinges, shock-absorbers, and all sorts of stuff!) in jME look pretty dang expansive.