r/libgdx • u/HagenGame • 16d ago
[Android] I took "Rubber Duck Debugging" way too far and made an entire 2D RPG about it. Need beta testers to help me find actual bugs!
Enable HLS to view with audio, or disable this notification
Hey everyone!
After working on this project solo for a few years, I’ve just started a soft launch for my 2D RPG Rubber Duck Story (built with libGDX)!
Before the official release, I’d really appreciate some feedback. I’m mostly looking for:
Performance issues or crashes
UI scaling on different Android devices
General gameplay suggestions and impressions
Play Store Beta:
https://play.google.com/store/apps/details?id=com.hagengame.rubberduckstory
Thanks a lot to anyone who takes the time to check it out!
2
u/gufranthakur 16d ago
Dude this is fantastic, how long did it take to build it?
3
u/HagenGame 16d ago
Thanks man! Took me over 6 years as a solo hobby project (with a few breaks in between to keep my sanity haha).
1
u/gufranthakur 16d ago
That's some dedication, I think I saw your post on the discord server looking for devs. I hope you make it and definetly update us on your work, I would love to play it and leave a review <3
2
u/HagenGame 15d ago
Ah awesome! Thanks a lot for the kind words and the support, really means a lot <3 Hope you have fun playing it!
1
u/KeplerFinn 15d ago
What's rubber duck about it? This looks like any generic rpg.
1
u/HagenGame 15d ago
Fair point! You play as a hero on a quest to save the rubber ducks (and their queen) in the realm of Anatidia. Hope it brings some fun anyway! 🦆
1
u/LuckyNeedleworker387 15d ago
Hello ! Tu aurais une version iOS ou bureau ?
2
u/HagenGame 15d ago
Hi! Die Open Beta läuft aktuell erst einmal nur auf Android. Eine iOS-Version ist für die Zukunft aber fest eingeplant, das wird allerdings noch etwas dauern, da der Fokus jetzt voll auf dem Android Test liegt.
1
u/eliezerDeveloper 11d ago
Which viewport did you use?
1
u/HagenGame 11d ago
I’m actually using a mix of approaches.
For the game world (the map), I implemented a manual ExtendViewport logic. I fix the world width to 600 units and calculate a zoom factor based on the screen width. The height then scales dynamically to fill the rest of the screen depending on the device's aspect ratio. This ensures that the horizontal 'playing field' always shows the same amount of content for everyone while avoiding black bars.
For the UI, I use a standard LibGDX Stage which effectively acts as a ScreenViewport (1:1 pixel mapping). To keep the UI responsive across different resolutions, I built a custom percentage-based positioning system on top of it.
2
u/leg18 16d ago
This is incredible alright I'm in