AZEngine Scripting Documentation 1.0

so, you've come across my humble little game engine.


AZEngine (AZE) is a 2d game engine i wrote during the coronavirus pandemic (epidemic? idk.) of 2020. lots of stuff happened, this is probably the only good thing which came out of it. AZE is written in pure C, no C++ whatsoever. it features an xml-based map loading system and lua scripting features. it started as a little project for my gf. and imma be honest here, its still a little project for my gf. so, grab something to eat or smth, and lets get started.

...

table of contents

...

inspirations

i wanted to make a game for her for her bday. (hint: i didnt finish in time) i still showed it to her tho. i was inspired by the old pokemon red/blue games and the original legend of zelda game. so pretty much the guidelines were:
i used the pokemon characters as a basis for what the player was going to look like. (search it up)

the final spritesheet:

i also took a lot of inspiration from the legend of zelda: breath of the wild, mainly the weather and other environmental things (temperature, etc.)

oh! the color palette!

the color palette is blue-based thingie, the same palette used in this website (excluding the code sample containers).
the palette:

...

lua scripting!!!!!!! xd

the engine uses the lua scripting engine, a language well known for speed and for the use in other popular games and platforms such as garry's mod and roblox.

the script api consists of 3 modules:

core

so this is like functions to do with a lot of the lower level stuff and interacting with the more rpg-like elements of the game (showing message boxes, etc.)
function list:
core = {}

    function core.toggleControls() end -- self-explanatory...
    function core.showMessage(sender, msg) end -- sends textbox
    function core.toggleCursor() end -- self explanatory...

player

this has to do with moving the player, setting health values, positions, etc.
function list:
player = {}

    function player.getDirection() end -- returns int 
    function player.setDirection(direction) end -- int parameter
    function player.setVelocity(vel) end -- int parameter
    function player.getLocation() end -- returns x, y
    function player.setLocation(x, y) end-- int, int parameters

script

the last and so far, the shortest module in the api. its for controlling the script process.
function list:
script = {}

    function script.wait(seconds) end -- int parameter
...

3rd party libraries

the game used a lot of external libraries, actually. here they are:
...