Reorg and break down docs, add license.
This commit is contained in:
parent
28f6a3919b
commit
d8676bfdd7
20
LICENSE
Normal file
20
LICENSE
Normal file
@ -0,0 +1,20 @@
|
||||
Copyright (C)2018 Aaron Suen <warr1024@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject
|
||||
to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
144
README
144
README
@ -1,142 +1,4 @@
|
||||
Game: NODECORE
|
||||
Documentation has moved into the docs/ subdir for now.
|
||||
|
||||
- From "hardcore", because this will be a more restrictive gameplay style.
|
||||
- Also we are focusing on the core concept of nodes/voxels in the world.
|
||||
|
||||
|
||||
|
||||
DESIGN PHILOSOPHY
|
||||
|
||||
- Everything is a node/voxel. There are no items that can't be placed in-world.
|
||||
- There are no item entities, and items cannot be thrown; must be placed.
|
||||
- Each node can only fit one thing, EXCEPT containers, which can hold ONE additional stack.
|
||||
- Use temporary visual entities to represent those visually.
|
||||
- Each node serves one function, or as few as possible.
|
||||
- e.g. to build a furnace, you need:
|
||||
- A node to act as fuel.
|
||||
- A node of fire.
|
||||
- (Possibly) a node to mediate heat transfer, such as an iron griddle.
|
||||
- A node to be cooked, which will transform in-place.
|
||||
- Builds will be big and clunky BY DESIGN.
|
||||
- "Redstone" wires and torches, NOT delay-repeaters.
|
||||
- Maybe no switches either (require buttons and an RS latch?)
|
||||
- Container nodes hold only one stack.
|
||||
- Can use temporary item ents for visual.
|
||||
- Ultra-simple inventory.
|
||||
- Hotbar only, no GUI, no rearranging (place in-world to rearrange)
|
||||
- Tools can place items in next available slot after tool.
|
||||
- Limited space, bulky/valuable things stack poorly.
|
||||
- Use of carryable containers encouraged.
|
||||
- Expand "drawers" by activating a handle.
|
||||
- Bags expand when placed in-world, collapse when dug.
|
||||
- Containers can be nested.
|
||||
- Separate control actions:
|
||||
- Left-click-and-hold to dig, trying to pick up whole thing if possible.
|
||||
- Nodes that require/consume a special tool transform into a "loose"
|
||||
version that can be re-dug without the tool.
|
||||
- Repeatedly left-click in short time window to punch.
|
||||
- Puncheable nodes must have non-trivial dig times.
|
||||
- In-place transformation, such as a "break apart" craft.
|
||||
- Pluck stack out of container.
|
||||
- Sneak-punch to split stacks.
|
||||
- Punching tool may matter, and may consume tool or affect performance.
|
||||
- Right-click to try to use as item.
|
||||
- Place stack in container.
|
||||
- Simple "combining" crafts.
|
||||
- Sneak-right-click with item to force place as node.
|
||||
- Face MAY matter.
|
||||
- Punching a log on ends can split to planks, on bark does not.
|
||||
- Crafting in-world:
|
||||
- Simple stuff by right-click-using one item on another.
|
||||
- Intermediate stuff have multiple steps, partially-finished nodes.
|
||||
- Tools could be built by placing stick, then adding stones/planks/etc.
|
||||
- Gathering materials in an area and using a tool.
|
||||
- Placing things in a specific arrangement.
|
||||
- More complex builds in all 3 dimensions?
|
||||
|
||||
|
||||
DESIGN ROADMAP
|
||||
|
||||
- Define player and hand tool.
|
||||
- Implement minimal mapgen nodes.
|
||||
- Library functions for handling nodecore interactions.
|
||||
- Define node callbacks for extended actions, like
|
||||
multipunch and sneak-multipunch.
|
||||
- Check-for-recipe util.
|
||||
- Wallmounted pop-off-as-item and item_entity overrides
|
||||
to transform into falling node.
|
||||
- Flat-item node for tools and such: like sz_stuff_pile
|
||||
- Need punch-groups for controlling tool capabilities
|
||||
necessary to multipunch; are damage groups usable here?
|
||||
- Wood tech.
|
||||
- By hand, only dirt/sand can be dug, not trees/leaves.
|
||||
- Logs are level-2 choppy
|
||||
- Dirt converts to loose dirt, falling node.
|
||||
- Multi-punching leaves reveals branches.
|
||||
- Multi-punching branches breaks them into sticks.
|
||||
- Sticks are wallmounted, so they probably fall.
|
||||
- Combine a stick onto another stick to form a staff.
|
||||
- Craft an adze, combine a branch onto a stick.
|
||||
- Level 1 choppy
|
||||
- Adze can split logs on end into planks.
|
||||
- Level 1 choppy
|
||||
- Using planks on a staff forms tools as each plank is added:
|
||||
- Shovel, axe, pick.
|
||||
- Each is level 2, axe can dig logs
|
||||
- Leaves without a nearby log decay into either dead leaves or saplings
|
||||
- Both are falling nodes.
|
||||
- Dead leaves left on dirt/grass decay to nothing and convert
|
||||
grass below to podzol
|
||||
- Stone tech.
|
||||
- Dig up stone, ore using pick.
|
||||
- Converts to loose cobble / loose ore (hand-diggable, falling)
|
||||
- Tin, copper, iron.
|
||||
- Combine loose cobble onto staffs to form stone tools
|
||||
- Level 3
|
||||
- Fire tech.
|
||||
- Create fire.
|
||||
- Place a stick atop a pile of dead leaves.
|
||||
- Multi-punch stick with staff, probabilistic success.
|
||||
- Convert leaves to cinder.
|
||||
- Cinder node:
|
||||
- Keeps track of fuel quantity and quality.
|
||||
- Quality in levels.
|
||||
- Natural wood (and leaf/stick) sources are level 1.
|
||||
- Duration/quantity in seconds, logs last longest.
|
||||
- Produces fire nodes above and on all sides where eligible.
|
||||
- Cannot be dug by hand, hurts.
|
||||
- May randomly convert to loose cinder (falling).
|
||||
- Converts to ash when exhausted (falling).
|
||||
- Fire node:
|
||||
- Requires at least one nearby air node or goes out.
|
||||
- Cannot be put out by hand, hurts.
|
||||
- Consume fuel quantity from burning cinder nodes below/beside, distribute
|
||||
consumption semi-randomly.
|
||||
- Apply heat to all nodes above/beside.
|
||||
- Fuel nodes may convert to cinders if heated and air is present.
|
||||
- Heat quality combined from sum of fuel sources.
|
||||
- Smelting/cooking.
|
||||
- Create and try to contain a fire, place node above fire to cook.
|
||||
- Logs can be cooked (if smothered to prevent igniting) into charcoal (loose, falling).
|
||||
- Ores can be cooked, converting into slag and molten metal.
|
||||
- Different ores require different heat intensity.
|
||||
- Tin and copper easily accessible, may only require wood.
|
||||
- Iron requires an investment in charcoal.
|
||||
- Molten metal:
|
||||
- Flowing liquid, burns, ignition source.
|
||||
- Automatically quenched after some time.
|
||||
- If flows next to water, quench immediately at that location.
|
||||
- Ingot will replace water; be sure to use infinite spring.
|
||||
- Quenching:
|
||||
- Trace out network, find all sources.
|
||||
- Apply alloying recipes.
|
||||
- Remove source nodes.
|
||||
- Determine endpoint (in water, or random bottom node)
|
||||
- Invisible "waiting" entity waits until all molten nodes gone.
|
||||
- Places ingot at destination.
|
||||
- Ingots placed near molten metals will sometimes melt (for alloying).
|
||||
- Ingots can be re-melted above sufficiently-hot fire.
|
||||
- Metal tools from ingots:
|
||||
- Copper and tin, level 4
|
||||
- Bronze, level 5
|
||||
- Iron, level 6
|
||||
This file will be rebuilt once I figure out what belongs
|
||||
in here and what can stay stuffed away in docs/
|
||||
|
22
docs/aesthetic.txt
Normal file
22
docs/aesthetic.txt
Normal file
@ -0,0 +1,22 @@
|
||||
========================================================================
|
||||
GAME NAME
|
||||
------------------------------------------------------------------------
|
||||
|
||||
NodeCore
|
||||
|
||||
- From "hardcore" as gameplay is intended to be restrictive and
|
||||
challenging.
|
||||
|
||||
- We are focusing on the core concept of nodes/voxels in the world.
|
||||
|
||||
|
||||
========================================================================
|
||||
DESIGN AESTHETICS
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Artwork oriented around regular hexagons, as a 2D isometric projection
|
||||
of a node cube.
|
||||
|
||||
|
||||
........................................................................
|
||||
========================================================================
|
32
docs/longterm.txt
Normal file
32
docs/longterm.txt
Normal file
@ -0,0 +1,32 @@
|
||||
========================================================================
|
||||
LONG-TERM DESIGN IDEAS
|
||||
------------------------------------------------------------------------
|
||||
|
||||
- Digital logic.
|
||||
- "Redstone dust", falling/attached, hard to place freely.
|
||||
- One primitive logic gate, NAND or NOR.
|
||||
- No delay/buffers; transform to mechanical for delays.
|
||||
- Buttons/touchplates, no switches (build a latch for state).
|
||||
|
||||
- Portable containers.
|
||||
- A bag that expands when placed, if room.
|
||||
- Inventory slots around central node each holds 1 stack.
|
||||
- Dig central node to bundle up, store content in metadata.
|
||||
- Containers may have "levels" to control nesting.
|
||||
|
||||
- System for transporting cargo.
|
||||
- Trains of minecarts?
|
||||
- Conveyors, elevators?
|
||||
|
||||
- Tool level differences.
|
||||
- Advanced tools are NOT just the same as regular tools with
|
||||
certain buffs.
|
||||
- Wood is slower than stone, but stone is more brittle and
|
||||
loses durability faster.
|
||||
- Different metals and materials require different processes.
|
||||
- Top-tier tools, e.g. diamond-tipped, are very different from
|
||||
metal/stone/wood, require new processes.
|
||||
|
||||
|
||||
........................................................................
|
||||
========================================================================
|
32
docs/principles.txt
Normal file
32
docs/principles.txt
Normal file
@ -0,0 +1,32 @@
|
||||
========================================================================
|
||||
CORE DESIGN PRINCIPLES
|
||||
------------------------------------------------------------------------
|
||||
|
||||
- Do as much in node-space in the world as possible.
|
||||
- Minimize use of off-grid entities.
|
||||
- Avoid encapsulating things in inventories, machines, GUIs.
|
||||
- Crafting and transforming in-world.
|
||||
- Minimal set of primitive composable functions.
|
||||
- Each node should do one job (or one part of a job).
|
||||
- Only include the most primitive, fungible components.
|
||||
- Avoid redundant functionality, include fewest possible
|
||||
different elements.
|
||||
- Complex emergent gameplay by combining simple nodes.
|
||||
- Challenging and constrained gameplay.
|
||||
- Limited inventories, very restricted item storage, e.g. one
|
||||
stack per node.
|
||||
- Large, complex machines to design and build for resource
|
||||
transformations.
|
||||
- Subtle environmental hazards, like deadfalls and pestilence.
|
||||
- Rich, subtle interactions.
|
||||
- Digging, placing, punching and battering.
|
||||
- Different effects from different tools (including empty hand).
|
||||
- Different faces of node may have different effects.
|
||||
- Focus on puzzle-oriented single-player/cooperative gameplay.
|
||||
- Avoid dependence on action, combat, PvP.
|
||||
- Slow-moving hazards, players have a chance to think and plan.
|
||||
- Acessible for slow reflexes, slow networks, mobile devices.
|
||||
|
||||
|
||||
........................................................................
|
||||
========================================================================
|
91
docs/roadmap.txt
Normal file
91
docs/roadmap.txt
Normal file
@ -0,0 +1,91 @@
|
||||
========================================================================
|
||||
ROADMAP (SHORT-TERM)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
- Finish appeasing the mapgens.
|
||||
- Biomes reserved for long-term.
|
||||
- Library functions for handling nodecore interactions.
|
||||
- Define node callbacks for extended actions, like
|
||||
multipunch and sneak-multipunch.
|
||||
- Check-for-recipe util.
|
||||
- Wallmounted pop-off-as-item and item_entity overrides
|
||||
to transform into falling node.
|
||||
- Flat-item node for tools and such: like sz_stuff_pile
|
||||
- Need punch-groups for controlling tool capabilities
|
||||
necessary to multipunch; are damage groups usable here?
|
||||
- Wood tech.
|
||||
- By hand, only dirt/sand can be dug, not trees/leaves.
|
||||
- Logs are level-2 choppy
|
||||
- Dirt converts to loose dirt, falling node.
|
||||
- Multi-punching leaves reveals branches.
|
||||
- Multi-punching branches breaks them into sticks.
|
||||
- Sticks are wallmounted, so they probably fall.
|
||||
- Combine a stick onto another stick to form a staff.
|
||||
- Craft an adze, combine a branch onto a stick.
|
||||
- Level 1 choppy
|
||||
- Adze can split logs on end into planks.
|
||||
- Level 1 choppy
|
||||
- Using planks on a staff forms tools as each plank is added:
|
||||
- Shovel, axe, pick.
|
||||
- Each is level 2, axe can dig logs
|
||||
- Leaves without a nearby log decay into either dead leaves or saplings
|
||||
- Both are falling nodes.
|
||||
- Dead leaves left on dirt/grass decay to nothing and convert
|
||||
grass below to podzol
|
||||
- Stone tech.
|
||||
- Dig up stone, ore using pick.
|
||||
- Converts to loose cobble / loose ore (hand-diggable, falling)
|
||||
- Tin, copper, iron.
|
||||
- Combine loose cobble onto staffs to form stone tools
|
||||
- Level 3
|
||||
- Fire tech.
|
||||
- Create fire.
|
||||
- Place a stick atop a pile of dead leaves.
|
||||
- Multi-punch stick with staff, probabilistic success.
|
||||
- Convert leaves to cinder.
|
||||
- Cinder node:
|
||||
- Keeps track of fuel quantity and quality.
|
||||
- Quality in levels.
|
||||
- Natural wood (and leaf/stick) sources are level 1.
|
||||
- Duration/quantity in seconds, logs last longest.
|
||||
- Produces fire nodes above and on all sides where eligible.
|
||||
- Cannot be dug by hand, hurts.
|
||||
- May randomly convert to loose cinder (falling).
|
||||
- Converts to ash when exhausted (falling).
|
||||
- Fire node:
|
||||
- Requires at least one nearby air node or goes out.
|
||||
- Cannot be put out by hand, hurts.
|
||||
- Consume fuel quantity from burning cinder nodes below/beside, distribute
|
||||
consumption semi-randomly.
|
||||
- Apply heat to all nodes above/beside.
|
||||
- Fuel nodes may convert to cinders if heated and air is present.
|
||||
- Heat quality combined from sum of fuel sources.
|
||||
- Smelting/cooking.
|
||||
- Create and try to contain a fire, place node above fire to cook.
|
||||
- Logs can be cooked (if smothered to prevent igniting) into charcoal (loose, falling).
|
||||
- Ores can be cooked, converting into slag and molten metal.
|
||||
- Different ores require different heat intensity.
|
||||
- Tin and copper easily accessible, may only require wood.
|
||||
- Iron requires an investment in charcoal.
|
||||
- Molten metal:
|
||||
- Flowing liquid, burns, ignition source.
|
||||
- Automatically quenched after some time.
|
||||
- If flows next to water, quench immediately at that location.
|
||||
- Ingot will replace water; be sure to use infinite spring.
|
||||
- Quenching:
|
||||
- Trace out network, find all sources.
|
||||
- Apply alloying recipes.
|
||||
- Remove source nodes.
|
||||
- Determine endpoint (in water, or random bottom node)
|
||||
- Invisible "waiting" entity waits until all molten nodes gone.
|
||||
- Places ingot at destination.
|
||||
- Ingots placed near molten metals will sometimes melt (for alloying).
|
||||
- Ingots can be re-melted above sufficiently-hot fire.
|
||||
- Metal tools from ingots:
|
||||
- Copper and tin, level 4
|
||||
- Bronze, level 5
|
||||
- Iron, level 6
|
||||
|
||||
|
||||
........................................................................
|
||||
========================================================================
|
Loading…
x
Reference in New Issue
Block a user