Zombits.
A zombie survival shooter built with LibGDX. Waves get harder, weapons get messier, and your best strategy is still just running in circles and hoping for the best.
What I learned from LibGDX.
Zombits was mainly a small sandbox for learning how LibGDX is structured. The point was not advanced gameplay systems, but understanding how a game loop, tiled map, cameras, rendering, input, and sound fit together in one project.
Application lifecycle
GamePanel extends ApplicationAdapter, so the whole project is built around create(), render(), and dispose(). That was one of the first useful LibGDX ideas for me: initialize once, update every frame, then clean up textures and sounds properly at the end.
Click through the systems to see which basic LibGDX pieces this project actually uses.
A small project that taught me the basics.
Zombits was one of my first game projects built with a real framework. Before that I had mostly worked in raw Java, so a lot of the value here came from learning how LibGDX handles screens, rendering, input, and assets.
The wave system is simple on purpose. Each round spawns more enemies and nudges speed and health upward so the game ramps up without needing a lot of complicated logic. It is basic, but it was enough to make each wave feel a bit more stressful than the last one.
What I took away from the project was mostly practical. It helped me get more comfortable with framework-based game structure and gave me a clearer idea of how to organize later projects in a cleaner way.
Screenshots.