16BL Game Engine

Project Status: Finished

The 16BL Game Engine is a tool I have been using to make my games for around 6 years now, its built using JFrame and supports a variety of features some of which are listed below


Game Objects

Game Objects are the main feature of the engine and can be used to implement lots of different things. The most important method GameObjects have is called "declare()" when a GameObject calls declare() it gets added to a List in the ObjectHandler. The ObjectHandler uses this List in 2 different threads, the first thread is the logic thread that calls the "frameEvent()" method of every GameObject in the list 30 times a second. The other thread is the draw thread which calls the "draw()" method of every GameObject in the List as many times as possible.


The frameEvent method of each GameObject is built using inheritance and is used to control how the Object behaves. The draw() function is responsible for drawing the object's sprite at its current x and y coordinates.

Other noteable fields of GameObject's include

Other noteable functionallity of GameObject's include



Maps

The 16BL game engine has a built-in map interpreter. The maps could be filled with tiles and objects you can also specify certain information about the objects called object variants that is passed on to the objects once they are constructed

The format for these maps was originally a custom file type called a CMF (Compressed Map File) that could be exported from a custom application called the 16BL map editor and read by the game engine

The 16BL map editor version 1.0 had only basic functionallity like placing/erasing tiles and objects. It was too cumbersome to use efficently so I upgraded it to the version 2.0 and changed the map file format to a new format called "RMF" (Raw Map File). Version 2.0 had much more advanced features like


Unfortunately even with all these new features the map editor proved to be too annoying to use consistently, a map editor 3.0 was planned and started development but after a while I decided that it was more trouble than it was worth and pivoted to using an existing map editor called "Tiled" by making the 16BL game engine able to interpret maps outputted from Tiled

Map Editor Source Github


Other



Back Source Github