brew cask install java brew install closure-compiler
convert passages.bmp +repage -crop 256x20+0+0 +repage pass.png
http://8bs.com/submit/subsol.htm [maps] https://wildbunny.co.uk/blog/2012/03/01/designing-a-retro-pixel-art-tile-set/ [rocks!]
The kitchen - fire running loose. Fire pits outside kitchen. The freezer.
Grasping spikes. Snakes. Horn heads on walls. Fire pots on floors. Crawlers on ropes. Fire spirits. Jellyfish.
Ropes and ladders. Moving platforms. Switches.
Torches. Shields on walls. Pots on the floor. Barrels. Pillars. Tables in kitchen. Skulls (underwater)
Main Hall Central Castle West Wing West Gate Wasteland Freezer (below kitchen, but via Central Castle) Thorn Maze (from kitchen; also pass through bottom-right corner) Arena (bouncing blocks) Well Wheel (dead end & entrance from the Arena, switch raises/lowers the rope) East Wing The Prison (down) The Beach The Ocean (underwater) The Island (climb cliff) The Temple (give chicken or chased by red mask; deposit 5 gems to unlock teleporter) The Sanctuary (shows the gems) Star Port (teleporter) Witch's House (wasteland; trampoline to enter; skull and bones to kill witch) Stonehenge (takes blue blocks) The Desert The Pyramid (mummies chasing) West Tower (need key for door) East Fireplace (tricky trampoline jump past horns and spikes up to rope)
Keys for Doors Pink gem (take to Temple) Gunpowder Cannonball (west of desert) Blue block (take to stonehenge to gain energy) Energy Pots [E] Head idols (for Pyramid) Small statue (east of temple at ocean for Pyramid) Trampoline (from temple) Skull (from crow's nest on West Tower, for Witch's cauldron) Snowflake (turn all water into ice) Bone (for Witch's cauldron)
Puzzles: Energy management (lost over time, always take a bit of damage) Chicken from Freezer, cook in the Kitchen using a fire enemy, offering at Temple. Skull and Bone in Cauldron -> kills Witch when she flies over it [skull hint] Egyptian-style heads stop the mummies in the pyramid (need 2x) Stone statue goes on the altar at the bottom of the pyramid [has hints] Hot sand in the desert (must hop) Three hidden crowns (unmarked secrets in walls!) Carry Snowflake to freeze water, so you can walk on it like solid ground. Key opens Well, switch to lower bucket, Ice to freeze water at bottom -> Head Idol #2 [drop Ice, go right to crown room, swim under spikes -> get crown] Bring Powder and Ball to cannon hidden in well -> blow up wall [no item pads, non-obvious] Fill Bucket with [any] water [kills fire spirits] -> take to East Fireplace -> climb chimney -> flip switch -> activates lift on the roof -> jump to central tower -> get Gem.
Hints: A skull sits next to the Witch's cauldron. Stone statues shown at top and bottom of pyramid (need to place Statue on altar) Egyptian-style heads are used in the pyramid.
The value proposition: It's hard (punishing) Had a competition to complete it! Really need to draw a map.
[S] -> RedYellow -> [RightTower] [S] -> Bone -> [Witch] [S] -> Gunpowder -> [Well] [S] -> RedPurple -> [Cellar] -> CyanBlue -> [Prison] -> CleoHead:1 -> [Pyramid] -> Gem:4 -> Snowflake -> [Well] -> [RightTower] -> GreenCyan -> [Well] -> CleoHead:2 -> [Pyramid] -> Gem:4 [S] -> CyanWhite -> [Freezer] -> Turkey -> CookedTurkey -> [Temple] -> Trampoline -> [Witch] -> Gem:1 -> Statue -> [Pyramid] [S] -> Bucket -> (water) -> (EastKitchen) -> (switch) -> [Rooftop] -> Gem:2 [S] -> PurpleWhile -> [Waste] -> GreenYellow -> [LeftTower] -> Skull -> [Witch] -> Gem:3 -> [Witch] -> [Pyramid] -> CannonBall -> [Well] -> [Cannon] -> Gem:5
POM: [S] -> (Roof) -> PurpleWhite -> [Cellar] -> CyanBlue -> [RightTower] -> HoleInWall -> [Imp] -> WhiteGreen -> [LeftTower] -> Rope -> [LeftTower] [S] -> Cross -> Vicar (chapel) -> YellowRed -> Candle (main) -> [Dungeon] -> Halo -> [LeftTower] -> RedYellow -> [FirePit] [S] -> Statue -> [Dungeon:1:2] -> (dragons) [S] -> GreenWhite -> [Dungeon:1] -> Bowl -> [LeftTower] -> BowlOfWater -> FirePit -> [Princess] -> Treasure [S] -> BlueCyan -> [Dungeon:1:2] -> Frog -> [Princess] -> WhitePurple -> GoldBar -> [Imp] -> Sword -> Boots
The Orangery / Conservatory Formal Gardens The Kitchen The Ballroom The forest / Tree tops / Nest Tree roots The bridge Priest's Hole Battlements Fireplace Secret Passages Lift Mines Underground Lake Cellars
POM: PurpleWhite -> Rope, CyanBlue -> HoleInWall -> WhiteGreen Cross, GreenWhite -> Vicar -> Halo -> [WhiteGreen] -> Guard -> RedYellow -> YellowRed -> Candle Candle, Statue -> [Dungeon] -> Bowl -> [Rope] -> Raindrop -> [RedYellow] -> FirePit Candle, BlueCyan -> [Dungeon] -> Frog -> Princess -> WhitePurple -> GoldBar -> [HoleInWall] -> Imp -> Boots -> Treasure
NB. dungeon is one-way; open door with GreenWhite first.
It seems easy once you know the solution. But to solve it you need to find the keys and doors first, then remember where you found each key and door (memory game) then work out which item matches which door (puzzle solving) then work out which pairs to carry at once (scheduling)
Flaming skull. Green eyeball. Hopping Jugs. Jet skis. Green dragon. Blue duck. Spaceman. Rabbit.
Consider: Combine 2-3 enemy motions or player motions to make timing harder. Each room is a mini puzzle you must complete, on each traverse.
- Kill monk, flip switch, climb plarforms.
- Chaser, climb ladder, dodge snake while jumping spikes.
- Climb ropes across top while avoiding climbers [instead of moving ropes]
- Fixed hazards and a moving hazard to force jumps or dancing around.
- Two synchro left-right enemies with horns above.
- Climb platforms while avoiding diagonal sparkles bouncing around.
- Trampoline and a bunch of fixed hazards (one in the way above trampoline)
- Thron maze: lots of trampolines and fixed hazards.
- Snake pit and Lobster pit (cannon room) cause death [reset to entrance]
- Jump over grasper, trigger monk, jump back over, shoot monk.
- Ocean: quick way jumping over causes damage; slow way to swim down and up.
Enemy mechanics: Horizontal and Vertical movers [synchro, same-extents] Drop when underneath. Bats fly at the player. Chase the player on ground [unless have item, while have item] Chase the player flying. Follows loop around the room. Conveyor belt. Spikes [timed, switchable] Moving platforms [switchable] Fish swimming, jellyfish. Climbers on ropes.
Environment mechanics: Cooking food. Light or extinguish fire. Light the torches. Lower/raise water level. Burn away. Fill bucket, catch water in bowl. Fire enemies consume water. Simon says puzzle.
Climbing mechanics: One-way drop. Ladder. Up/down rope [switch] Springboard. Moving platform [switch] In/out platform bricks [switch, timed] Disappearing platform [switch, timed] Invisible platforms [temp-reveal, potion] Swim underwater.
Randomisation: Pre-define the overall layout of rooms, as slots to fill. Slot in randomly chosen pre-made rooms (or parts-of-rooms) Avoid duplicates within one generated world. Room-parts can be flipped horizontally, maybe vertically? Your world name: Ko-ru-sa Es-tu-lo [k t l r s b h m n p q w x y z | a e i o u] Might not be a great idea: what if it generates a sucky map? (first playthrough) Use the same effort to make 4-5 versions with increasing difficulty? BUT it must be random, otherwise the walkthrough will be on the net.
Locations: Towers - random climbing rooms - [vertical] Rooftops - random rooftop obstacles - [horizontal] Castle Halls - easy traversal - lower passages, central castle, east/west wing Cellars - random horizontal - harder - two strata vertically. Dungeons - fixed H/V rooms, but random obstacles (avoid duplicates) Gardens Chapel Pyramid Ice Cave or Glacier Woods / Forest Underground passages Water caves Bridge over river Ocean Desert Fire caverns
Tiled: Tile flipping (high bits) Chunks -> irregular chunks (a template group of chunks) Wang tiles -> wang chunks (for map generation)
Item pads (unique id) Inventory. Keys and doors. Trampoline. Health recovery. In/out platform. Bat gfx. Snake. Axe thrower (Horiz) Up/down spikes. Spear trap (distance trigger) Dart trap. Falling brick.
Puzzle. Room names. Ropes sheet. Torch shader. Dark and light tiles (or light sources?)
Content-Type: audio/x-wav
rollup:
- createCommonjsModule Colour conversions [xyz,lab,cie,etc] Derived conversions (breadth-first-search) is a thing. Generated bind functions are a thing. ANSI colour codes module. Call-site annotations always win e.g. @inline.