You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.8 KiB

  1. ## ~~Boilerplate ~~
  2. * ~~Project setup ~~
  3. * ~~Input engine ~~
  4. ## Maps
  5. * ~~Player-background collision ~~
  6. * ~~32x32 maps ~~
  7. * ~~Map scrolling through SCX/SCY ~~
  8. * 127x127 maps
  9. * Update background collision to be aware of map changes
  10. * Portals between maps
  11. * Write editor for collision maps
  12. * Update map generation script to use new collision map format
  13. * New collision map flag
  14. * Load new map on collision
  15. * Ladders/ropes
  16. * New collision map flag
  17. * Play climbing animation when player collides
  18. * Allow movement up/down without gravity
  19. ## Items
  20. * Item entity type
  21. * Render item on map
  22. * Create data structure for storing items on the map
  23. * Copy item OAM data to shadow OAM on each frame
  24. * Make items float up and down a little bit
  25. ## Player
  26. * ~~Movement ~~
  27. * ~~Jump physics ~~
  28. * Velocity should not exceed 7px per frame
  29. * Animations
  30. * Keep track of animation state
  31. * Update metasprite tile indexes on new frame
  32. * Add jumping animation
  33. * Add walking animation
  34. * Create inventory data structure
  35. * Add inventory item
  36. * Remove inventory item
  37. * Check for having at least N of an item
  38. * Player item pickup to inventory
  39. * Remove item from map
  40. * When pickup button pressed and player colliding with item, pick up item
  41. * Combat statistics type
  42. * Basic attack by pressing A
  43. * Display attack animation
  44. * Implement battle formula
  45. * Connect to button press
  46. ## Menu
  47. * Menu UI
  48. * Render start menu
  49. * Select menu item
  50. * Switch between menu and game states
  51. * Render statistics screen
  52. * Render equipment screen
  53. * Player inventory
  54. * Render inventory screen
  55. * Allow selecting an inventory item
  56. * Equip/use/drop item
  57. ## Monsters
  58. * Monster entity type
  59. * Render monster
  60. * Create data structure for storing monsters on the map
  61. * Generalize player metasprite code
  62. * Update player attack routine to check for monster collision
  63. * Death
  64. * Play death animation
  65. * Drop items from drop table
  66. * Remove monster from map
  67. * Player experience / level up routines
  68. * Allow point distribution in stats menu
  69. * Attacks
  70. * Play attack animation
  71. * Check for player collision and damage player
  72. * Translate monster position along a closed curve
  73. * Randomly pace to the left/right
  74. ## NPC
  75. * NPC entity type
  76. * Render NPC
  77. * Create data structure for NPCs on map
  78. * Use metasprite code for NPCs
  79. * Scrolling text display engine
  80. * Render NPC dialogue
  81. * Dialogue prompt
  82. * Render modal with yes/no answer buttons
  83. * Cursor to select button
  84. * Run NPC dialogue handler when answer given
  85. ## Quests
  86. * Extend dialogue to display item requests
  87. * Keep track of completed quests
  88. * Display icon above NPC when a quest is available
  89. ## Nice to have
  90. * Metasprites of different sizes? (Could enable boss monsters)
  91. * Animated damage number for attacks
  92. * Player name select