Devlog #1 - Goals and Next Steps
Devlog: Kirby Super Jump - Project Overview and Development Progress
Initial Setup:
All right are reserved to Nintendo for the use of assets and sound effects from Kirby's Dream Collection.
I’ve been working on a new platformer game inspired by Kirby, tentatively titled Kirby Super Jump. The game is primarily based on the KidsCanCode Pygame tutorial series but has evolved with several custom features, including enemies, powerups, traps, and environmental challenges. For the audio, I’m using classic Kirby soundtracks, all sourced from Nintendo’s Kirby's Dream Collection.
Game Initialization:
In the game setup, I’m using Pygame to handle the game window, initialize sound, and manage sprite groups. The game begins with setting up essential components like the player, platforms, powerups, and various environmental sprites (like trees, bushes, grass, etc.). Here's a quick breakdown of the main components:
- Display & Clock: The game window is set up at a standard resolution, and the clock limits the frame rate to 60 FPS.
- Sound: I've included multiple background tracks from Kirby, which cycle through different stages, along with sound effects for various actions like jumping, getting hurt, or collecting items.
One challenge was creating a robust file-handling system, so I added logic to load the high score from a file (highscore.txt
). If the file doesn't exist, it creates one. I also designed a custom dim screen overlay for pausing the game, adding a nice UI touch when the player pauses.
Level Design & Sprites:
For sprite handling, I use a Spritesheet
class to load all the game assets in one go. The player sprite is initialized alongside other sprite groups, such as platforms, enemies, traps, and environmental objects.
I’m using a custom list of platforms that spawn randomly as the player progresses. One interesting feature is the platform spawn logic, which ensures platforms always stay within view to maintain a consistent challenge. Here's a summary of the core elements:
- Platforms: The game randomly generates platforms using a predefined list of coordinates, allowing for dynamic level creation.
- Enemies: While the enemy spawning is currently commented out (for balancing reasons), I’m planning to implement a delayed enemy spawn system where enemies appear randomly as the player advances.
- Powerups: Maxim Tomatoes appear as health powerups, and when the player collects them, their health is restored along with a small score boost.
- Traps: Traps like spikes are implemented to deal damage to the player, reducing their health and potentially knocking them back.
Player Movement & Mechanics:
The game uses a side-scrolling mechanic where the player can jump between platforms. The camera follows the player once they reach the top quarter of the screen, creating a vertical scrolling effect.
One of the tricky parts was adjusting the player's interaction with platforms. After several iterations, I settled on a system where the player’s feet "snap" to the top of platforms upon collision, ensuring smoother landings. Additionally, I've added a variable jump height mechanic, where holding the jump button allows the player to jump higher, adding a layer of precision to the platforming.
There’s also a knockback mechanic when the player gets hit by traps. Depending on the direction the player is moving, they’re knocked backward and temporarily stunned.
Game Over Logic:
I’ve implemented a system to detect if the player falls off-screen, which reduces their health and triggers the game over sequence if they die. After a game over, the game compares the current score to the high score. If the player beats their high score, it triggers a new high score celebration.
Here are some key elements of the game over logic:
- Score Tracking: The game compares the current score with the high score, saving the new high score if the player beats it.
- Game Over Screen: A custom game over screen appears, offering the player the chance to restart the game. The background music also switches to a new track when the game over screen is displayed.
User Interface & HUD:
The heads-up display (HUD) tracks player health, current score, high score, and other game stats. I wanted to implement a health bar that visually changes color depending on the player's health level, which was an exciting challenge to work through.
The HUD also shows the current altitude, adding an extra element of progression to the vertical platforming.
Pause & Start Screens:
I created a start screen with a simple image that informs the player of the controls. When the game is paused, the music pauses as well, and the dim screen overlay appears to indicate that the game is frozen.
The game also has a nice transition between the start, game over, and pause screens to make the experience feel polished.
Next Steps:
I’m currently working on fine-tuning the difficulty. I’m considering re-enabling the enemy spawn system but balancing it with platform generation. Additionally, I’ll be working on refining player movement and collision detection, as well as adding more variety to the biomes and background music.
Future additions:
- Enemy AI: Implementing basic movement and attack patterns for enemies.
- New Powerups: Adding more powerups beyond health regeneration.
- Background Music Variety: Creating dynamic music changes depending on the player's altitude and environment.
This has been a rewarding project so far, and I'm excited to continue pushing it forward!
Get Kirby Super Jump
Kirby Super Jump
Vertical Endless Platformer Featuring Kirby
Status | Prototype |
Author | John Biswas |
Genre | Platformer, Adventure |
Tags | 2D, Casual, Cute, Pixel Art, Singleplayer, Sprites |
More posts
- Devlog #2 - Main.py issues fix96 days ago
- Project Postmortem97 days ago
Leave a comment
Log in with itch.io to leave a comment.