Reorg and break down docs, add license.

This commit is contained in:
Aaron Suen 2018-10-31 20:14:56 -04:00
parent 28f6a3919b
commit d8676bfdd7
6 changed files with 200 additions and 141 deletions

20
LICENSE Normal file
View 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
View File

@ -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
View 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
View 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
View 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
View 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
........................................................................
========================================================================