Skip to content

Latest commit

 

History

History
32 lines (20 loc) · 2.56 KB

README.md

File metadata and controls

32 lines (20 loc) · 2.56 KB

Nightlie

Zombie killing game for Android and Desktop. The player must survive as many nights as possible. Good luck :)

Motivation

I started developing this game during my freshman year of college, although I have not finished it yet. At that time, I barely knew how to develop big applications (I even didn't know how to use git).

However, I really enjoyed watching Makigas Youtube Channel as I admired his knowledge about computer related topics. I started watching every game development series he posted. Makiga's videos are very instructive and understanding; so it prompted me and encouraged me to learn more in depth about programming.

Throughout the development of this game I acquired several knowledge like software architecture, design patterns, and tools which helped me improve the quality of my code and game itself.

What I learned

As this was my first "serious" project, I learned a lot - I literally learned how to code developing it -. Especially about Java and Object Oriented Principles. This application was my first touch with abstraction, encapsulation, inheritance and polymorphism. Although I have not exploited these principles as much as I wish, due to a lack of time inverted in this project.

When developing the AI of the enemies of the game, I faced a cost problem with the algorithm I implemented: A* pathfinding. This was due to the amount of enemies I had in-game demanding each one for a path to the player. After doing some research, I finally I applied the FlowField Algorithm. This algorithm does not depend on the amount of enemies, unlike the A*; the cost of this algorithm depends on the size of the map itself. Even though the change of the algorithm improved the efficiency, it could be better. Hence I divided the map in 3x3 sections, having in total 9 sections. This way the game just updated the section the player was in. For a better understanding see these videos I posted on Youtube: FlowField Video and Sections Video.

In a future, I would like to further develop this game.

Built with 🛠️

Below I mention several tools I used to develop this game:

  • Libgdx - Java game development framework that provides a unified API that works across Android, iOS, Windows, Linux, Mac OSX, Blackberry, and web.
  • Gradle - Open-source build automation tool focused on flexibility and performance
  • Tiled - A flexible level editor