
Github: https://github.com/stevdza-san/ClappyBee
Generate a Kotlin multiplatform project targeting Android, iOS, desktop, and web with compose to share the UI, then configure fonts, sounds, drawable resources, and dependencies like material three.
Add a static background image centered on the screen and display two text elements for the best score and the current score, then test across Android, iOS, browser, and desktop.
Implement jumping and falling logic for the B character by applying gravity and a jump impulse, updating vertical velocity and position each frame within idle, started, and over game states.
Implement a sprite sheet animation using the draw sprite sheet function of sprite view library with 80 by 80 frames, rotation when falling, and a start button.
Learn to implement a seamless moving background in a Kotlin and Compose Multiplatform game by animating two overlaid images, syncing their x offsets, and looping with Animatable and infinite repeatable.
Draw actual pipe and pipe cap images on the canvas, ordering top pipe, top cap, bottom cap, then bottom pipe, and adjust heights for the caps.
Implement collision detection by comparing the B character's edges with pipes and gaps; check horizontal and vertical collisions across all pipe pairs, ending the game on a hit.
Count the score when a player passes pipes, and persist the best score with multi-platform settings and coin dependency injection across platforms, observing changes and updating the user interface.
Learn to fix a moving background in a Kotlin and Compose multiplatform game by resetting the background offset on restart, and compare an alternative marquee-based approach with fewer lines.
Implement a multiplatform Android audio player using an expect/actual pattern, employing ExoPlayer and SoundPool for game and sound effects, with context injection via the coin library and platform-specific resources.
Implement an iOS audio player that maps sounds to AV audio players, configures the audio session, plays game sounds (game over, jump, loop), and releases resources.
Implement a desktop audio player with an in-memory audio cache, manage playing sounds via a synchronized lines map, load resources, stop, and loop playback on a separate thread.
Export and deploy your Kotlin Wasm game as a web app, using Gradle's js browser distribution task, then publish via render by linking GitHub and configuring the build folder.
Learn to export a Kotlin Compose Multiplatform desktop app on macOS as a dmg with Gradle, and fix resource loading for embedded jar resources.
Update dependencies in the version catalog, remove the deprecated Asm.js block in Kotlin 2.3, and migrate from material icons to feather icons via the compose icons library.
Developing a 2D game with Jetpack Compose is possible. And not only that, we’re gonna target four different platforms, like: Android, iOS, Desktop and even Web (Kotlin WASM)! I’m gonna teach you how to create engaging game, by sharing 100% of the codebase. Both the business logic and the UI.
The app itself will have a native performance on each platform. No need to worry about sacrificing the efficiency. Because we will be using Kotlin Multiplatform technology, as well as Compose Multiplatform framework to share the UI between platforms.
The game itself is basically a copy of a Flappy Bird. Besides jumping around, realistic physics, collision detection, score counting and sprite sheet animation, I’m gonna teach you how to implement various sound effects to make this game more engaging for the user.
Plus at the end of this course, I’ll show you how to export and deploy this game as a static website that you can share publicly, so that other people can try out and play the game that you have created!
In just two hours you’re gonna acquire the skill, that in the past required a team of developers with the knowledge of various technologies. Kotlin Multiplatform is the future. Because you can launch you own startup ideas as a solo developer, quickly.
Requirements
Here’s what you need to know before enrolling in this course:
Basics of Jetpack Compose.
Kotlin programming language.
Basics of Kotlin Multiplatform technology.
If you are not sure about those above mentioned course requirements, you can check out my other courses, that are beginner friendly. This one however, is an intermediate-level course.
Other than that, if you are ready.
Let’s get started!