Todo - noooway/love2d_arkanoid_tutorial GitHub Wiki

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