The very beginning of my forever game project, starting as a "simple" roguelike.

roadmap.org 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. * General thoughts
  2. I expect the road to 1.0 to be very very long. Probably multiple years.
  3. That being said, keeping a up-to-date roadmap should help me stay organized.
  4. This is a LIVING document, so please don't assume this will never change.
  5. They are also in some rough chronological order but the order is by no means guaranteed.
  6. Each version will be tagged upon being considered complete
  7. * Versions
  8. ** 0.0
  9. *** TODO Ask #lispgames for feedback on this roadmap. :realworld:
  10. :PROPERTIES:
  11. :Effort: 1
  12. :END:
  13. *** TODO Figure out a name for the game :realworld:
  14. :PROPERTIES:
  15. :Effort: 1
  16. :END:
  17. *** TODO Go through opengl tutorials to become more comfortable :realworld:
  18. :PROPERTIES:
  19. :Effort: 60
  20. :END:
  21. *** TODO Read through http://gameprogrammingpatterns.com/contents.html :realworld:
  22. :PROPERTIES:
  23. :Effort: 20
  24. :END:
  25. ** 0.1
  26. *** TODO Implement basic OpenGL 2D graphics system with tiles and placeholder graphics. Should be overhead view, not isomorphic. Similar to dwarf fortress. :client:
  27. :PROPERTIES:
  28. :Effort: 40
  29. :END:
  30. **** Possibly use someone else's engine, though that loses some learning value.
  31. *** TODO Implement basic player character with movement and basic melee and ranged attack (no RNG yet, just standard) as well as health. :client:
  32. :PROPERTIES:
  33. :Effort: 20
  34. :END:
  35. *** TODO Create basic static map to play around in. Implement this by creating a map format to save maps and loading it. Should have walls, nothing else. :client:
  36. :PROPERTIES:
  37. :Effort: 10
  38. :END:
  39. *** TODO Add basic tile based collision so player can't exit map nor collide with walls. :client:
  40. :PROPERTIES:
  41. :Effort: 20
  42. :END:
  43. *** TODO Create basic config. Basic player stats (health, attack damage) should exist. :client:
  44. :PROPERTIES:
  45. :Effort: 10
  46. :END:
  47. *** TODO Create one enemy, dummy with melee attack and health. Make sure it also has collision. No AI needed for this version, just a punching bag. :client:
  48. :PROPERTIES:
  49. :Effort: 10
  50. :END:
  51. **** Training dummy graphic would be good. Perhaps an auto retaliate attack to test out combat better?
  52. ** 0.2
  53. *** TODO Ask on #lispgames for feedback on version 0.1. :realworld:
  54. :PROPERTIES:
  55. :Effort: 1
  56. :END:
  57. *** TODO Implement #lispgames feedback that I like. :client:server:
  58. :PROPERTIES:
  59. :Effort: 20
  60. :END:
  61. *** TODO Move game to basic client <-> server model over local sockets. :client:server:
  62. :PROPERTIES:
  63. :Effort: 80
  64. :END:
  65. **** The only reason this is so early is to attempt to avoid coding myself into a corner.
  66. **** Long term I want this to be protocol agnostic and allow multi clients per a server.
  67. ** 0.3
  68. *** TODO Ask on #lispgames for feedback on version 0.2. :realworld:
  69. :PROPERTIES:
  70. :Effort: 1
  71. :END:
  72. *** TODO Implement #lispgames feedback that I like. :client:server:
  73. :PROPERTIES:
  74. :Effort: 20
  75. :END:
  76. *** TODO Flesh out character design ideas, start prototyping in org-mode/paper/whiteboard character talents. :realworld:
  77. :PROPERTIES:
  78. :Effort: 20
  79. :END:
  80. *** TODO Add items :server:
  81. :PROPERTIES:
  82. :Effort: 20
  83. :END:
  84. *** TODO Add some items to static map. :server:
  85. :PROPERTIES:
  86. :Effort: 1
  87. :END:
  88. *** TODO Add item placeholder graphics and text. :client:
  89. *** TODO Add inventory to player/enemies. :server:
  90. *** TODO Add inventory view :client:
  91. *** TODO Add ability for player to pickup items :client:
  92. **** The server side of this should have been done in Add inventory to player/enemies above.
  93. *** TODO Add basic AI enemy that will attack and run away. :server:
  94. ** 0.4
  95. *** TODO Ask on #lispgames for feedback on version 0.3. :realworld:
  96. :PROPERTIES:
  97. :Effort: 1
  98. :END:
  99. *** TODO Implement #lispgames feedback that I like. :client:server:
  100. :PROPERTIES:
  101. :Effort: 20
  102. :END:
  103. ** 0.5
  104. *** TODO Ask on #lispgames for feedback on version 0.4. :realworld:
  105. :PROPERTIES:
  106. :Effort: 1
  107. :END:
  108. *** TODO Implement #lispgames feedback that I like. :client:server:
  109. :PROPERTIES:
  110. :Effort: 20
  111. :END:
  112. ** 0.6
  113. *** TODO Ask on #lispgames for feedback on version 0.5. :realworld:
  114. :PROPERTIES:
  115. :Effort: 1
  116. :END:
  117. *** TODO Implement #lispgames feedback that I like. :client:server:
  118. :PROPERTIES:
  119. :Effort: 20
  120. :END:
  121. ** 0.7
  122. *** TODO Ask on #lispgames for feedback on version 0.6. :realworld:
  123. :PROPERTIES:
  124. :Effort: 1
  125. :END:
  126. *** TODO Implement #lispgames feedback that I like. :server:client:
  127. :PROPERTIES:
  128. :Effort: 20
  129. :END:
  130. ** 0.8
  131. *** TODO Ask on #lispgames for feedback on version 0.7. :realworld:
  132. :PROPERTIES:
  133. :Effort: 1
  134. :END:
  135. *** TODO Implement #lispgames feedback that I like. :server:client:
  136. :PROPERTIES:
  137. :Effort: 20
  138. :END:
  139. ** 0.9
  140. *** TODO Ask on #lispgames for feedback on version 0.8. :realworld:
  141. :PROPERTIES:
  142. :Effort: 1
  143. :END:
  144. *** TODO Implement #lispgames feedback that I like. :server:client:
  145. :PROPERTIES:
  146. :Effort: 20
  147. :END:
  148. ** 1.0
  149. *** TODO Ask on #lispgames for feedback on version 0.9. :realworld:
  150. :PROPERTIES:
  151. :Effort: 1
  152. :END:
  153. *** TODO Implement #lispgames feedback that I like. :client:server:
  154. :PROPERTIES:
  155. :Effort: 20
  156. :END: