-
Notifications
You must be signed in to change notification settings - Fork 20
Todo
Current Goals
- Finish Chapter 3.
- Start to advertise to receive feedback on Ch1 and Ch2.
- Update graphics and sound: team up with/commission artist and sound effects guy.
- Start writing appendices.
Ideas
-
Appendices:
A-1: Modules Using Environment
B-1: Intro to Classes
B-2: Rewrite 2-08 using classes
C-1: Continuous collision detection
D-1: Collision detection library: BUMP
E-1: ECS? (Rewrite 2-08 in ECS style)?
F-1: 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. -
Split 1-02 in two parts; for one of the first parts, it's too long right now. new 1-02: define tables for game objects, function for draw and update, and display small array of bricks new 1-03: bricks in rectangular pattern, walls.
Propagating changes:
- Remove
ball
fromswitch_to_next_level
(probably, starting from 1-05; done for ch3) -
local small_shift_to_prevent_overlap = 0.1
incheck_rectangles_overlap
(starting from ch1) - Use
local
functions in modules (since 2-01 at least). - Starting from '3-04 spawning bonuses', use
generate_bonus
in brick_hit_by_ball ( see Random Bonuses ); In this function, insert check on correctness of bonustype. - Defect when 2 'glue' in a row: launch_from_platfrom speed would be 0.
- 3-01+: ball sphere_rebound instead of rotate_speed
- 3-05+: predefine quads for different sizes of the platform.
- 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 )
- Preload platform quads instead of using new.quad each time it's size is changed.
- 3-02+: change ball.update:
if stuck: follow, else: pos = pos + speed * dt
- 3-06+: change
ball.launch_from_platform
andball.platform_rebound
- 3-07+: ipairs in ball.update and ball.draw
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: