Chasing the Giant Bat


Project Details

Since this is posted under the project page, I will go over the project and its corresponding details first. In this project, a top-down 2D RPG game was developed using Java programming language. Few points to note:

  • The game was not developed from scratch.
  • Slick library was used as the underlying game engine.
  • Basic game assets were provided, so we did not have to develop the character artwork, map tiles and all the other compulsory components.

Project Outcome:

  • Developed a working RPG game using Java programming language.
  • Learnt and utilised UML block diagram for the development process.
  • Worked closely with tutor and colleagues, asked for feedback and utilised them to improve the game.

For more details, please see the corresponding GitHub Repository.


Setting up the Slick Library

Here I will briefly go over how to setup the Slick Library used for game development in Eclipse. It uses LWJGL for graphics and inputs.

  1. Locate the appropriate libraries for the system in \lib folder.
  2. We would need to have all the .jar and .dll files imported for Windows systems. On macOS, we would need .dylib files instead of .dll files. Similarly, Linux needs .so files. These files are all located within the \lib folder.
  3. Right click on each of the .jar files, and press Build Path -> Configure Build Path... and add all the .jar files.
  4. Now if you go to RPG.java under /src and click run, the application should start running.

Controls

The game is controlled entirely using the arrow keys on the keyboard. The left, right, up and down keys move the player. Each frame, the player moves by a tiny amount in the direction of the keys being pressed, if any. It is possible to move diagonally by holding down two keys at a time (for example, move north-east by holding the up and right keys).

  • You can attack a monster simply by moving close to it (within 50 pixels) and holding A.
  • Similarly, you can talk to a villager by moving close (within 50 pixels) and pressing T.

Combat with Zombies


Reflection on Java Project and Learning Experience

As I am writing this up in 2018, reflecting back to my experience of working on the subject Object Oriented Software Development in 2016, there are various aspects of the subject which I would like to address.

  • Teaching and learning
  • Understanding and applying the materials taught in classes and tutorials (practise makes perfect, almost always true)
  • Positive feedback loop for learning
  • Knowing the future pathway
  • Summing up to the learning environment

Teaching and Learning

In this section, I will not only be discussing this topic in terms of learning in university, but learning in general. I often believe that there is a ratio between how much a teacher or professor contributes to one’s overall learning experience. Over time, I settled on a ratio of

  • 30% for the teaching staff and learning environment
  • 70% for the student (personal commitment)

The reason for why I place such an emphasis on the individual learner is because, there are a lot of learning resources out there (e.g. youtube, stackoverflow). Once you know how to select a good source of information, there is often a workaround if the primary source of knowledge is not up to the standard.

However, this ratio can still fluctuate depending on where you are at and what kind of resources you have access to. Taking an extreme example, if you live in a remote area, this implies that the additional sources of education may not be readily available. Hence, the dependance on teaching staff and learning environment could rise from 30% to 50% or 70%.

Understanding and applying the materials

Sitting inside a lecture and listening to the professor going over the course materials is often the first step of the overall learning process. However, it is critical that students try to apply the new knowledge in a practical manner. This helps reinforce the overall learning process and allows the students to remember the contents better.

For some people, this could be working a various drill problems presented in the textbooks or exercise books. While others may prefer diving straight into the practical aspect of a real-life project which also helps reinforce the learning as the projects often require the participants to have an in-depth understanding of the relevant concepts in order to proceed.

It is almost always true that practise makes perfect, whether it is mathematics, programming, flying a helicopter or any other areas of expertise. It is through a repeated process of learning, practising and applying the knowledge, that one is able to master the overall process. Some people even say that it requires 100,000 hours to truly master an area of expertise.

Positive Feedback Loop

Through observations, we can often see that there are two main ways how students and approach their learning process.

  • First one being the proactive type, who are always up-to-date or even ahead of the existing learning schedule.
  • Second one being the passive type, who are often trying to catch-up to the current lectures and rushing their assignments.

Through the past few years, I have been moving in and out of the aforementioned categories, learning how to stay on top of heavy workloads, making necessary compromises and how to balance out my academic and extra-curricular commitments. In the end, there is no solution or strategy which is universal, but making good use of apps such as Calendar, OneNote and Todoist (to-do list app) can certainly help in the long run.

Once a good routine is executed multiple times, it becomes easier to get into a positive cycle, where you are constantly optimising your workflow and ensuring that there is no outstanding tasks and prepares a buffer in anticipation of any unexpected events.

Future Pathway

Knowing where you are, where you came from and where you are going can be incredibly powerful. Once you know your pathway and who you want to be, the only thing left is to plan out how you will reach there. Along the way, there will be less doubt and more motivation, because you know exactly what you are pursuing.

Sometimes, these kind of realisation does not come naturally, it could be through some kind of stimulation or experience which changes one’s perspective and their overall approach to goal planning. However, it usually helps if you try to discover new frontiers and explore other areas or sectors which you have never interacted with before.

Overall Learning Environment and Conclusion

The previous paragraphs come together to form the the overall learning environment. When we are looking at the on-going learning process, it can be difficult find the optimal long term solution, but I would definitely say that personal commitment and having a clear goal in mind will often provide sufficient motivation for reaching the end goal.