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.
...
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:
- top-down
- 16x16 sprite resolution (with the exception of the player)
- and a limited color palette
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
...