My inspiration for this project was me recently getting into game development in Unity. While Unity is fun, I wanted to have a lower level understanding on how game engines work, so I decided to create my own.

What it does

Purdue Pete Level Designer allows users navigate a tile based level creation system and fill it with obstacles and enemies. Engine runs off of a series of modes, each specific to a singular purpose such as placing a certain type of block or writing/saving a level file.

How we built it

Purdue Pete Level Designer was made completely in Java using IntelliJ. It uses an interesting combination of Java AWT graphics and Java Swing GUI to navigate the user.

Challenges we ran into

Towards the beginning I experienced a big issue with lag due to the way the program was opening image files. By changing how image files were read and also how often they were opened, we were able to fix this issue. Also, by using AWT and Swing, it was hard to get built in GUI to cooperate with the program and the Canvas where levels are displayed. Also as time went on, code could have been a little more clean, and the overall the optimization of the program would have benefited with a little bit more planning of methods and classes.

Accomplishments that we're proud of

I am proud of being able to write files from levels and being able to read those files to display playable levels. As I have never made a game in Java, jumping in by making a game engine was a very lofty goal.

What we learned

I learned a lot about the ins and outs of GUI in Java as well as how different file structures can be used to store data. I also gained insight on different operations and where it is appropriate and efficient to use methods. My overall comfort with object-oriented programming also increased greatly and my skill with Java are definitely sharpened.

What's next for Purdue Pete Level Designer

In the future I hope to clean up the physics with Purdue Pete Level Designer as well as make it more method-reliant so adding new features will be simpler. I also hope to sync the AWT Graphics and the Swing GUI together better.

Built With

Share this project: