Skip to content
noooway edited this page Aug 28, 2017 · 56 revisions

Current Goals

  1. Make a small but well-polished game;
    1.1. Update graphics and sound: team up with/commission artist and sound designer.
  2. Restructure the 3rd chapter of the tutorial into a series of "Additional topics".
  3. Move current contents of the Chapter3 into Appendix: Step-by-Step Making of Arkanoid.
  4. Update contents of the Ch1 and 2.
  5. Find a native speaker for proofreading.

Ideas

  1. Appendices:
    A-1: Modules Using Environment
    B-1: Intro to Classes
    B-2: Rewrite 2-08 using classes
    C-1: Continuous collision detection (Requested in the issues!)
    D-1: Collision detection library: BUMP
    E-1: ECS? (Rewrite 2-08 in ECS style)?
    F-1: [done] Levels as strings (https://love2d.org/forums/viewtopic.php?f=14&t=83240&start=50#p211310)
    F-2: Tiled

  2. OOP implementation:
    Add some corrections to class constructor idiom ( suggested in https://love2d.org/forums/viewtopic.php?f=14&t=83240 ) Alternatively:
    Replace the current raw Lua approach with an external class library.
    Take a look at different libraries, choose one.

  3. GUI containers https://love2d.org/forums/viewtopic.php?f=14&t=83240&p=212799#p212778

Propagating changes:

  1. Remove ball from switch_to_next_level (probably, starting from 1-05; done for ch3)
  2. 1-03+: ipairs in collisions.
  3. local small_shift_to_prevent_overlap = 0.1 in check_rectangles_overlap (starting from ch1)
  4. 1-03+: change the overlap detection and shift calculation algorithm: https://love2d.org/forums/viewtopic.php?f=14&t=83240&p=211307#p211254 ; (#2 is also related to collisions) ( mostly done; merge and update the wiki; Figs. in 1.3 and 1.4; grep 'collisions' in others )
  5. get rid of temporary tables during overlap detection ( https://love2d.org/forums/viewtopic.php?f=14&t=83240&p=211307#p211254 )
  6. Use local functions in modules (since 2-01 at least).
  7. 3-05+: predefine quads for different sizes of the platform.
  8. Preload platform quads instead of using new.quad each time it's size is changed.
  9. 3-07+: ipairs in ball.update and ball.draw
  10. 3-10+: print -> printf in buttons.lua

    Home
    Acknowledgements
    Todo

Chapter 1: Prototype

  1. The Ball, The Brick, The Platform
  2. Game Objects as Lua Tables
  3. Bricks and Walls
  4. Detecting Collisions
  5. Resolving Collisions
  6. Levels

    Appendix A: Storing Levels as Strings
    Appendix B: Optimized Collision Detection (draft)

Chapter 2: General Code Structure

  1. Splitting Code into Several Files
  2. Loading Levels from Files
  3. Straightforward Gamestates
  4. Advanced Gamestates
  5. Basic Tiles
  6. Different Brick Types
  7. Basic Sound
  8. Game Over

    Appendix C: Stricter Modules (draft)
    Appendix D-1: Intro to Classes (draft)
    Appendix D-2: Chapter 2 Using Classes.

Chapter 3 (deprecated): Details

  1. Improved Ball Rebounds
  2. Ball Launch From Platform (Two Objects Moving Together)
  3. Mouse Controls
  4. Spawning Bonuses
  5. Bonus Effects
  6. Glue Bonus
  7. Add New Ball Bonus
  8. Life and Next Level Bonuses
  9. Random Bonuses
  10. Menu Buttons
  11. Wall Tiles
  12. Side Panel
  13. Score
  14. Fonts
  15. More Sounds
  16. Final Screen
  17. Packaging

    Appendix D: GUI Layouts
    Appendix E: Love-release and Love.js

Beyond Programming:

  1. Game Design
  2. Minimal Marketing (draft)
  3. Finding a Team (draft)

Archive

Clone this wiki locally