flame
flame copied to clipboard
Klondike Tutorial, Step 5: Add code and further explanation of FlatButton and others, or at least a link to its code #19
What could be improved
As I was following Klondike's instructions, near the end of step 5, I felt like the instructions writer was not as patient as in the previous steps. Many parts I found were not explained thoroughly, there is no code for FlatButton (I know there is code for it at the end, but there is no explanation about that). I think we need to add some more detailed explanations, if there is no code for it then at least link to the code of those parts
Why should this be improved
We can learn flame more easily
Risks
No risk
More information
Step 5 at: https://docs.flame-engine.org/latest/tutorials/klondike/step5.html
Other
- [X] Are you interested in working on a PR for this?
Yeah nothing on base card functionality or hit boxes - like there's whole methods that are skipped - mind you - awesome tutorial - learnt a ton thanks!
Looking forward to seeing the improved version of that step! If you think it'll be too much information in one step, feel free to split it up. :)
@spydon Thanks for your suggestion. I'm reading issue https://github.com/flame-engine/flame/issues/2895 and applying improvement criteria to improve the documentation here. I'll post back soon the points I plan to improve
@spydon What do you think of my suggestion below? Please let me know what needs to be changed Step 5 's table of contents:
1. What would I do to improve this tutorial:
- Add missing content, eliminate confusing interruptions, and include omitted code sections.
- Incorporate images and example animations to illustrate our objectives.
- Introduce additional sections where necessary (though the final source code remains intact).
- Provide logical transitions between sections.
- Address why we need to follow specific approaches and not others.
- Include links and information about general game development concepts (such as the concept of "seed" in game programming).
2. Contents I will add or modify:
- The Klondike draw
- Making cards move
- Animating a card-flip
- Model and View
- Ending and restarting the game
I believe these sections are satisfactory, so I won't make any edits to them. I will begin editing from the section: A New World.
-
[ ] Immediately after the
Start and restart actionssection, I will provide an explanation of the "KlondikeWorld" class. Consequently, the adjustment of the "KlondikeGame" class is merely a necessary step when migrating the onLoad() function to KlondikeWorld, rendering the "A stripped-down KlondikeGame class" section redundant. -
[ ] The section
Using a Random Number Generator seedappears reasonable. However, I intend to supplement more references to this definition of "seed." If you have any documents or suggestions on this topic, please provide further information. Otherwise, I will utilize the following link: Link to Reddit. -
[ ] The section
Introducing the new KlondikeWorld classwas previously covered, hence it will be omitted here. Please note that I will enrich the previous instruction with additional details. -
[ ]
Button: I will retain and expand upon this section as it lacks significant information. -
[ ]
Anchors and coordinates: This section may be considered supplementary information within the Button section. Therefore, I will incorporate and merge it into the Button section. -
[ ]
The deal() method: I will maintain this section in its current position, perhaps making minor sentence edits or none at all. -
[ ]
More animations of moves: Similar to the section "The deal() method." -
[ ]
A graphics glitch: As above. -
[ ]
Winning the game: I find this section quite comprehensive; hence, I may not make any alterations. -
[ ]
Ending a game and restarting it: This section lacks crucial details and is rather confusing. I will rewrite it to clarify. -
[ ]
Have fun button: This section is well-structured; therefore, I may retain it with minor adjustments if necessary.
@nickf2k looks like a great plan! You'll probably get a good feeling of what fitting section names are for the table of contents while fixing up the other things.
I opened a PR for this: https://github.com/flame-engine/flame/pull/3078