updated the update list, created a new branch
structure added
refined the proposed level structure
A New Hope
A New Hope
Added fps display, cleaned up the code and documented the essential steps
Implemented a function in the overloader module to load layers for a
level based on the strict specification described in the documentation.
Layer loading has been tested and confirmed as working correctly in all
corner cases.
Added documentation to git, both the TeX source code and the pdf.
Implemented and partially tested new overloader function to load
compressed textures from disk and store them in the level table.
Implemented large chunks of the overloader module. Sprites are now
loaded from a level descriptor and stored efficiently in the level.
Layers now automatically get their SpriteBatches if sprites are added
and can efficiently be iterated over via ipairs. This is demonstrated in
love.draw() in main.lua where some dummy sprites from the tutorial level
are rendered (with more than 600 fps btw).
Overloader now also has some helper functions to quickly find the right
layer or SpriteBatch. Additionally documentation has been written
regarding sprites and their use in FOSSBRAWL.
Re-implemented the camera module and extended the documentation on
layers. Also added the update function to main.lua and improved the
structure for readability.
Implemeted the Camera as class, simplified the calculation of border
treatment to improve performance and changed the world coordinate system
in all relevant modules (so far) to the ordinate growing downwards.
Added game state management that currently allows to pause the game and
stop input processing and updating during that state. Also added a very
basic menu that is displayed during paused state.
Implemented overloader function to load collision for a level. I also
changed how AABBs are dealt with, they can now be created with the
function AABB() from the collision module. This should produce the exact
same result as the AABB class so it should be compatible, but over time
I would prefer to replace the class with this new approach as it is a
bit more elegant and AABBs are far too simple to justify an own class.
Added documentation for the Camera class, the collision module and the
overloader module.
Cleaned up the directory somewhat (there are still dead files that will
be deleted once the replacements are working, ie Player_old.lua). Set up
structure to load player character descriptor files through the
overloader module. Loading a character temporarily works by pressing J
ingame, for testing purposes. Also refined the todo module to be more
DRY.
Implemented character animation as a proof of concept. The code is rude
and not nice, but it demonstrates how things will work. As part of that
binary data such as textures are loaded with the help of the overloader
module upon initializing a Player. Also removed some temporary code here
and there. A tiny first part of documentation for the Player class has
been written.
Out-sourced the configuration and drawing of the ingame menu to its own
module called menu.lua
Added locomotion to Player class and fixed it so that the movement speed
is independent from the fps count. Player updates are now limited to
once every 10 ms, which is by design and should be solved a bit more
elegant than right now. The Player class now loads data from a character
descriptor file and has generally been cleaned up.
Debug drawing now also includes the collision rectagle of the players.
Players now have a collision representation and the relationship between
the players position and the collision and animation is now well defined
in the documentation. Also added documentation tasks to the todo module
and cleaned up the code of the Camera class to the current standard.