-
Notifications
You must be signed in to change notification settings - Fork 17
Todo
Current Goals
- Make a small but well-polished game;
1.1. Update graphics and sound: team up with/commission artist and sound designer. - Restructure the 3rd chapter of the tutorial into a series of "Additional topics".
- Move current contents of the Chapter3 into Appendix: Step-by-Step Making of Arkanoid.
- Update contents of the Ch1 and 2.
- Find a native speaker for proofreading.
Ideas
-
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 -
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. -
GUI containers https://love2d.org/forums/viewtopic.php?f=14&t=83240&p=212799#p212778
Propagating changes:
- Remove
ball
fromswitch_to_next_level
(probably, starting from 1-05; done for ch3) - 1-03+: ipairs in collisions.
-
local small_shift_to_prevent_overlap = 0.1
incheck_rectangles_overlap
(starting from ch1) - 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 )
- get rid of temporary tables during overlap detection ( https://love2d.org/forums/viewtopic.php?f=14&t=83240&p=211307#p211254 )
- Use
local
functions in modules (since 2-01 at least). - 3-05+: predefine quads for different sizes of the platform.
- Preload platform quads instead of using new.quad each time it's size is changed.
- 3-07+: ipairs in ball.update and ball.draw
- 3-10+: print -> printf in buttons.lua
Feedback is crucial to improve the tutorial!
Let me know if you have any questions, critique, suggestions or just any other ideas.
Chapter 1: Prototype
- The Ball, The Brick, The Platform
- Game Objects as Lua Tables
- Bricks and Walls
- Detecting Collisions
- Resolving Collisions
- Levels
Appendix A: Storing Levels as Strings
Appendix B: Optimized Collision Detection (draft)
Chapter 2: General Code Structure
- Splitting Code into Several Files
- Loading Levels from Files
- Straightforward Gamestates
- Advanced Gamestates
- Basic Tiles
- Different Brick Types
- Basic Sound
- 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
- Improved Ball Rebounds
- Ball Launch From Platform (Two Objects Moving Together)
- Mouse Controls
- Spawning Bonuses
- Bonus Effects
- Glue Bonus
- Add New Ball Bonus
- Life and Next Level Bonuses
- Random Bonuses
- Menu Buttons
- Wall Tiles
- Side Panel
- Score
- Fonts
- More Sounds
- Final Screen
- Packaging
Appendix D: GUI Layouts
Appendix E: Love-release and Love.js
Beyond Programming: