more
44
crash.patch
|
|
@ -1,44 +0,0 @@
|
|||
diff --git a/src/tiles.rs b/src/tiles.rs
|
||||
index 4b6288e..5e62b95 100644
|
||||
--- a/src/tiles.rs
|
||||
+++ b/src/tiles.rs
|
||||
@@ -52,6 +52,7 @@ impl Bg {
|
||||
h: 0,
|
||||
},
|
||||
layer: (),
|
||||
+ blend_graphic: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,6 +77,7 @@ impl Mid {
|
||||
h: 32,
|
||||
}),
|
||||
},
|
||||
+ blend_graphic: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -92,6 +94,7 @@ impl Fg {
|
||||
h: 0,
|
||||
},
|
||||
layer: (),
|
||||
+ blend_graphic: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -145,6 +148,7 @@ where
|
||||
pub graphic_name: String,
|
||||
pub tex_rect: IntRect,
|
||||
pub layer: Layer::SpecificDef,
|
||||
+ pub blend_graphic: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Inspect, Default, Serialize, Deserialize)]
|
||||
@@ -179,6 +183,7 @@ where
|
||||
graphic_name: Default::default(),
|
||||
tex_rect: Default::default(),
|
||||
layer: Layer::SpecificDef::default(),
|
||||
+ blend_graphic: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
Tile
|
||||
|
||||
9 bits bg
|
||||
9 bits mid
|
||||
9 bits fg 32 bits
|
||||
3 bits slope
|
||||
2 bits fg state (0: fg has ore, 1: bg has ore, 2: both have ores)
|
||||
|
||||
5 bits liquid type
|
||||
6 bits paint 16 bits
|
||||
5 bits reserved
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
# Premise
|
||||
|
||||
- Evil source at bottom of playable map
|
||||
- Evil is surging upwards
|
||||
- Player is the one tasked with going to the bottom and destroying evil source
|
||||
- Very long way to bottom
|
||||
- Going deeper = main source progression
|
||||
- Barriers to going deeper, gotta craft gear, etc. to be able to go deeper
|
||||
- Tower defense elements, have to craft and set up defensive structures
|
||||
|
||||
# Details
|
||||
|
||||
## Timing
|
||||
Timing is tick based.
|
||||
Every frame is considered a tick.
|
||||
The game is locked at 60 fps to simplify implementation.
|
||||
|
||||
## Scale
|
||||
Player character is slightly below 1.5 m height.
|
||||
1 meter = 2 blocks.
|
||||
1 block = 0.5 meters.
|
||||
Player character is about 3 blocks high. (slightly less so they fit comfortably)
|
||||
|
||||
## Map Size
|
||||
|
||||
World is roughly 100,000x100,000 blocks large.
|
||||
I've done some measurements and I believe it's large enough that it should convey
|
||||
the scale of digging very deep, which is what the game is about.
|
||||
Layer below 30 km is the mantle (after which the game is named).
|
||||
The evil source is at about 35 km.
|
||||
The final goal is the evil source, so player is expected to mine about 35 km deep to beat the game.
|
||||
1 meter = two tiles. 35 km = 70,000 tiles deep.
|
||||
There could be some post-endgame content from 35-40 kms deep.
|
||||
Very unbreakable bottom or lava lake or whatever is at 80,000 blocks (40 km) deep.
|
||||
|
||||
## Biomes
|
||||
Only a few surface biomes
|
||||
- At center is forest biome
|
||||
- On one side:
|
||||
- Jungle
|
||||
- Desert
|
||||
- On other side:
|
||||
- Longer stretch of forest biome than other side
|
||||
- Ice biome
|
||||
|
||||
All other biome variety should come from going deeper.
|
||||
Progressively more difficult variants of each biome as you go down.
|
||||
30 km is mantle level, at which point no ice or sand or such reaches.
|
||||
It's all mantle level specific biomes all the way horizontally.
|
||||
|
||||
## Number of stuff
|
||||
|
||||
- At least 50 ore types + 50 gem/etc. types. Copper/Coal could be an ore-gem/etc. pair for example.
|
||||
- On average, one new pair every 750 meters, up to 37 kilometers.
|
||||
The last stretch of 3 km to the bottom is a "buffer zone" of no new content, just more of the same.
|
||||
- The rate of new pairs could start out quicker, for example every 300 meters or so,
|
||||
to make early-game less boring, but gradually become less frequent, up to a kilometer gap.
|
||||
- At least 50 stone types
|
||||
- Maybe background tiles and other stuff, like different break overlay animations
|
||||
|
||||
|
||||
# Multiplayer
|
||||
|
||||
Multiplayer adds a lot of complexity, so I'm going to develop the prototype of the game without
|
||||
any multiplayer support.
|
||||
But if people like the general idea, they can help create a multiplayer version eventually.
|
||||
|
||||
# Crafting
|
||||
|
||||
- You need a workstation to be able to craft anything.
|
||||
This incentivizes building bases and retreating to them, instead of the "nomad"
|
||||
lifetyle many games of this kind allow.
|
||||
|
||||
- Most stations don't have inventory items that can be pre-crafted and placed.
|
||||
Instead, they have to be constructed on the spot, taking construction time.
|
||||
This discourages building makeshift crafting areas in the middle of nowhere.
|
||||
|
||||
# Supported platforms
|
||||
- Windows
|
||||
- Linux
|
||||
|
||||
Other platforms can be supported if community helps support them.
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
Various random ideas that aren't (yet) part of the design
|
||||
|
||||
- Character is 1.5 blocks tall
|
||||
- Can crawl to fit inside 1 block tall gaps
|
||||
|
||||
|
||||
- Multiple tile layers.
|
||||
- Back layer
|
||||
- Wall layer
|
||||
- Ore/misc insert layer
|
||||
|
||||
- No world hopping.
|
||||
Characters are worlds are linked together, like in Minecraft.
|
||||
|
||||
- No respawn after quit&save. Player character continues where it left off.
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
Game has different worlds you can generate.
|
||||
Each world has its own folder.
|
||||
Each folder has:
|
||||
- Player file (player.dat)
|
||||
- Subfolder for regions (regions/)
|
||||
|
||||
Each region subfolder has:
|
||||
x.y.rgn files for each chunk, where x and y are the region coordinates.
|
||||
|
||||
# Regions
|
||||
A region stores multiple chunks in a single file for more optimized storage.
|
||||
Current plan is to store 8 chunks in a region, in other words, 1024*1024 blocks.
|
||||
Around one million blocks, compressed with zstd compression.
|
||||
|
Before Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 962 B |
|
Before Width: | Height: | Size: 7 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 694 B |
|
Before Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |