2019-07-03 23:22:30 +00:00
|
|
|
# TODO
|
|
|
|
|
|
|
|
## Alpha Launch Minimum Checklist
|
|
|
|
|
|
|
|
- [ ] Open Source Licenses
|
2019-07-05 23:04:36 +00:00
|
|
|
- [x] Doodad Scripts: an "end level" function for a level goalpost.
|
2019-07-03 23:22:30 +00:00
|
|
|
|
|
|
|
**Blocker Bugs:**
|
|
|
|
|
|
|
|
- [ ] Sometimes the red Azulians don't interact with other doodads
|
|
|
|
properly, but sometimes they do. (i.e. they phase thru doors, don't
|
|
|
|
interact with buttons or keys).
|
|
|
|
|
|
|
|
**UI Cleanup:**
|
|
|
|
|
|
|
|
- Doodads Palette:
|
|
|
|
- [ ] Hide some doodads like the player character.
|
2019-07-05 23:04:36 +00:00
|
|
|
- [x] Pagination or scrolling UI for long lists of doodads.
|
2019-07-03 23:22:30 +00:00
|
|
|
|
|
|
|
**Nice to haves:**
|
|
|
|
|
|
|
|
## Release Launch Checklist
|
|
|
|
|
|
|
|
**Features:**
|
|
|
|
|
|
|
|
- [ ] Single-player "campaign mode" of built-in levels.
|
|
|
|
- campaign.json file format configuring the level order
|
|
|
|
- [ ] Level Editor Improvements
|
2019-07-05 23:04:36 +00:00
|
|
|
- [x] Undo/Redo Function
|
|
|
|
- [x] Lines and Boxes
|
2019-07-03 23:22:30 +00:00
|
|
|
- [ ] Eraser Tool
|
|
|
|
- [ ] Brush size and/or shape
|
|
|
|
- [ ] Doodad CLI Tool Features
|
|
|
|
- [ ] `doodad show` to display information about a level or doodad.
|
|
|
|
- [ ] `doodad init` or some such to generate a default JS script.
|
|
|
|
- [ ] Options to toggle various states (hidden, hasInventory?)
|
|
|
|
|
|
|
|
**Shareware Version:**
|
|
|
|
|
|
|
|
- [x] Can't draw or edit doodads.
|
|
|
|
- [ ] Can only create Bounded maps, not infinite ones.
|
|
|
|
- [ ] Can play custom maps but only ones using built-in doodads.
|
|
|
|
- [ ] Can not place custom doodads in maps.
|
|
|
|
|
|
|
|
**Built-in Doodads:**
|
|
|
|
|
|
|
|
- [x] Buttons
|
|
|
|
- [x] Press Button
|
|
|
|
- [x] Sticky Button
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
- [x] Switches (4 varieties)
|
|
|
|
- [x] Doors
|
2019-07-03 23:22:30 +00:00
|
|
|
- [x] Locked Doors and Keys
|
|
|
|
- [x] Electric Doors
|
2019-07-05 23:04:36 +00:00
|
|
|
- [x] Trapdoors (all 4 directions)
|
2019-07-03 23:22:30 +00:00
|
|
|
|
|
|
|
## Doodad Ideas
|
|
|
|
|
|
|
|
In addition to those listed above:
|
|
|
|
|
|
|
|
- [ ] Crumbly floor: Tomb Raider inspired cracked stone floor that
|
|
|
|
crumbles under the player a moment after being touched.
|
|
|
|
- [ ] Firepit: decorative, painful
|
|
|
|
- [ ] Gravity Boots: flip player's gravity upside down.
|
|
|
|
- [ ] Warp Doors that lead to other linked maps.
|
|
|
|
- For campaign levels only. If used in a normal player level, acts
|
|
|
|
as a level goal and ends the level.
|
|
|
|
- Doodads "Warp Door A" through "Warp Door D"
|
|
|
|
- The campaign.json would link levels together.
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
- [ ] Conveyor Belt
|
2019-07-03 23:22:30 +00:00
|
|
|
|
|
|
|
## New Ideas
|
|
|
|
|
|
|
|
- [ ] New Doodad struct fields:
|
|
|
|
- [ ] `Hidden bool`: skip showing this doodad in the palette UI.
|
|
|
|
- [ ] `HasInventory bool`: for player characters and maybe thieves. This way
|
|
|
|
keys only get picked up by player characters and not "any doodad that
|
|
|
|
touches them"
|
|
|
|
- [ ] ``
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
|
|
|
|
## Path to Multiplayer
|
|
|
|
|
|
|
|
* Add a Player abstraction between events and player characters.
|
|
|
|
* Keyboard keys would update PlayerOne's state with actions (move left, right, jump, etc)
|
|
|
|
* Possible to have multiple local players (i.e. bound to different keyboard keys, bound to joypads, etc.)
|
|
|
|
* A NetworkPlayer provides a Player's inputs from over a network.
|
|
|
|
* Client/server negotiation, protocol
|
|
|
|
* Client can request chunks from server for local rendering.
|
|
|
|
* Players send inputs over network sockets.
|