It was near the end of my first semester at BCIT. In my Java class we had done a lot of simple console programs. Calculate the factorial. Tally a receipt. Print a string in reverse. We did a little bit of javax.swing to show how many times a button had been clicked or program a smiley face with ovals and arcs. It was pretty bland in terms of what I could show people. Then everything changed.
Our teacher showed us an example program that popped up a black window, and when he pressed one of the arrow keys, the window displayed an arrow picture pointing the direction of the key he pressed. Graphics! Interaction! Finally! I immediately made a nibbles clone.
Shortly after that I hatched the idea to make a platformer. A little something where your little character could jump around in a world that could continue to evolve as I learned more about programming. So was born my little baby amoeba.
I realize now that there are many ways it could have been done better. I didn’t understand how images were done in Java Swing, I don’t think swing was the right choice for making a real-time game engine in, and my object oriented design was way off. Everything was heavily coupled.
I was proud of it though. I had built basic jumping physics, collisions, animation, and interactive lights.
Download the jar here
Code is available on GitHub.