The author, a high school graduate with no prior experience in Python, decided to learn the language by participating in a week-long game jam. However, they self-imposed a challenge to complete the task within 48 hours. The author livestreamed their progress on Twitch, where they received help and feedback from viewers.
Initially, the author struggled with Python syntax, but as time passed, they became more comfortable and made significant progress. They created a game called "Caffeine Frenzy," a flappy bird-style game where the player collects coffee beans to increase their flap strength.
Throughout the livestream, the author shared their thought process, design decisions, and coding struggles. They implemented features such as a scoring system, upgrade system, and sound effects. After completing the game, the author submitted it to the game jam and shared the source code on GitHub.
The author considers the challenge a success, having learned a significant amount of Python in a short period. They also enjoyed the livestreaming experience and plan to continue streaming in the future.
Here are the key facts extracted from the text:
1. The author had never written a line of code in Python before.
2. The author decided to learn Python in the context of game development using the Pygame library.
3. The author found a week-long game jam called "Pie Game Community New Year's Jam" to participate in.
4. The author shortened the week-long jam to 48 hours.
5. The author woke up early on Saturday to set up their development environment.
6. The author installed Python, added the Python extension to VS Code, and typed a command to get started.
7. The author's first Python program was a success.
8. The author livestreamed their game development process on their second attempt.
9. The author's game idea was based on the theme "adventures" and incorporated the concept of collecting coffee to increase the player's stats.
10. The author found a Pygame example that showed them how to draw graphics to the screen.
11. The author created a square and made it fall using math.
12. The author added keyboard input to their game using Pygame.
13. The author gave the player an x velocity that flips if its x position is less than 0 or greater than the screen width.
14. The author kept a small initial scope for their game.
15. The author added a coffee mug sprite to their game using Pygame's blit function.
16. The author created a beam class with the vector2 to store its position and wrote a function for rectangle collisions.
17. The author created a list of 5 bean objects and set their position to a random range above the player.
18. The author drew a bean sprite to the position of every bean in the list.
19. The author checked if each bean object collides with the player and reset its position to a random range above the player if it does.
20. The author created a basic gameplay loop.
21. The author took a break after streaming for 7 hours straight.
22. The author received a height-adjustable desk and office chair from Flexispot.
23. The author created a score counter based on the player's y value.
24. The author created a UI to display the player's score and coffee bean count.
25. The author created a caffeine meter that decreases and refills when the player collects a bean.
26. The author created an upgrade system that allows the player to upgrade their stats using coffee beans.
27. The author added a button class and created a list of button objects.
28. The author drew each button to the screen with its x value based on its index in the list.
29. The author added title, level, and price values to the button object and drew them to the screen.
30. The author created graphical indicators for the upgrade types instead of using text.
31. The author added a collision function to check if the player clicks on a button.
32. The author added sound effects to the game.
33. The author added the ability to restart the game once the caffeine meter reaches zero.
34. The author created a splash screen and title screen for the game.
35. The author packaged their project into an executable and submitted it to the game jam.
36. The author put the source code on GitHub.
37. The author created an itch page for the game.
38. The author has a Twitch channel now and wants to stream more often.