MegaBatar - Joining the cohort
Blasting Off to the Game Dev Elite: Crafting “MegaBatar” with Godot and GitLab CI/CD
I’ve always wanted to be part of the game dev ‘leet. The journey to releasing my first (not really, but yeah) game, MegaBatar, has been a wild ride ; Godot made the entire process not only feasible, but also quite enjoyable.
Enter MegaBatar: A Retro Space Shooter with a Modern Twist
Meet MegaBatar, my take on the classic space shooter, but with all the flashy modern effects you’d expect in 2024. Think pulsating lasers, explosive particle effects, and a soundtrack that makes your adrenaline pump. It’s like stepping into an arcade from the future.
The Godot Grind: Making Everything Yourself
Godot is amazing, but it’s no plug-and-play engine. It’s more like a DIY spaceship kit: you have to bolt on the wings, weld the engine, and fine-tune the laser cannons yourself. It’s perfect for control freaks who love to get their hands dirty.
Godot forces you to be resourceful and creative, a bit like those early ‘90s Amiga developer one-man-and-a-half teams who squeezed every drop of performance out of their hardware.
GitLab CI/CD: Remote Build and Deploy
Now, what’s the use of building a killer game if you have to upload one frigging gigabyte of binaries at each iteration? Setting up a CI/CD pipeline meant I could focus on working on my game while GitLab handled the boring stuff.
Here’s a peek at my GitLab CI/CD config:
1 | image: barichello/godot-ci:4.2.2 |
With this setup, every push to the master branch kicks off a build for Linux, Windows, and macOS, then deploys the builds to itch.io. Yeah 😎
The Tool Chest
- Of course: Godot 4.2.1
- Text editor: Emacs on Eglot/LSP
- 3D modeling & texturing: Blender 4.1
- Vector graphics: Inkscape 1.1
- Bitmap graphics: GIMP 2.10.30
- Music: Sunvox 2.1.1c
The Future is Now
The feedback on MegaBatar has been less than stellar, and the floor’s the limit. Follow me for the ride ;)
Source
Is if FLOSS? I don’t know, I really don’t give a duck anymore ; Source is here, access on huh, demand.
Random code examples
Switching from 2D to 3D by dollying and rotating the camera
1 | func switch_cams(from, to): |
Start the looped part of the song (almost right) after the intro:
1 |
|
MegaBatar cover_box_art
Want to know more? Just ask. Nicely.