At STEMcraft, we take pride in nurturing young talents who show extraordinary dedication and enthusiasm for technology and programming. One such student is Joshua, an 11-year-old who has been my student for over a year. Joshua has swiftly progressed through our Python curriculum, completing Python Level 1 with ease and moving on to Python Level 2, where he has been delving into Object-Oriented Programming (OOP) and game development.
Joshua’s Journey with Python and OOP
Joshua’s journey began with the basics of Python, but his quick grasp of the language allowed him to advance rapidly. Now, he is creating games using Python and Pixelpad, leveraging the concepts of OOP he learned in his Python Level 2 studies.
OOP, or Object-Oriented Programming, is a programming paradigm that uses “objects” to design applications and programs. These objects can be data structures like variables and functions, or more complex entities. OOP is particularly useful in game development as it allows for the creation of reusable and modular code, making it easier to manage game elements like characters, enemies, and environments.
Showcasing Joshua’s Games
Joshua’s creativity and technical skills are showcased in the games he has developed. Among his notable creations are a space shooter game, a replica of Flappy Bird, and a replica of the Chrome Dino game. Each game demonstrates his ability to apply OOP concepts to create interactive and engaging experiences.
Dino Game Replica
Joshua’s version of the Chrome Dino game is a testament to his understanding of game mechanics and animation.
Here’s Joshua explaining the trickiest part of coding his game and how he implemented the jumping mechanic:
What was the trickiest part of coding your game?
“It was hard to create the player because you had to modify everything about the player and animate it. The jumping was also complicated because you had to make it react to a key and then more additional things were added.”
Explain how the jumping mechanic works through your code:
g = get_collision(self, "Ground")
if key_was_pressed(" ") and g:
self.isJumping = True
play_sound(self.jumpSound)
if self.isJumping == True and self.y <= self.jumpHeight:
self.y += self.jumpSpeed
if self.y >= self.jumpHeight:
self.isJumping = False
if self.isJumping == False and not g:
self.y -= self.jumpSpeed
Joshua elaborates: “So first, I needed to know if the frog is touching the ground or not so that I know when the frog can jump again. Then I made a jumpspeed that is not on here but it is how fast the ninja frog jumps. I chose the spacebar for the ninja to jump. Now, I have to know how high the ninja frog jumps, so I made a jump height. Finally, after the frog has reached the jump height, it goes down as fast as my jumpspeed goes. I added a sound when I jumped, and then I finished.”
Flappy Bird Replica
Joshua’s Flappy Bird replica showcases his ability to replicate popular game mechanics while adding his unique touch. The game features a bird that the player must navigate through obstacles by tapping the screen to keep it in the air. This project helped Joshua understand the importance of collision detection and continuous movement in game design.
Space Shooter Game
In his space shooter game, Joshua has created an engaging space adventure where players control a spaceship to fend off waves of enemies. This game highlights his proficiency in handling multiple game objects simultaneously and implementing features like shooting mechanics and enemy behavior. The space shooter game allowed Joshua to explore more complex aspects of game development, such as managing game states and integrating sound effects.
Conclusion
Joshua’s journey at STEMcraft is a shining example of how young minds can excel when given the right tools and guidance. His progress from basic Python to creating complex games using OOP principles is commendable. We are excited to see what Joshua will create next and are proud to support his growth as a budding game developer.
Keep up the fantastic work, Joshua! Your dedication and creativity inspire us all.