Tuto tiny-ecs beatemup Part 1 Setup
Setup
As mentionned in the introduction, we will use the Gideros Game Template1.
So make a copy of your Gideros Game Template1 and rename it to anything you want, eg.: "Gideros_BeatThemUp".
Project Properties
- Scale Mode: Fit Width (or anything else really :-) )
- Logical Dimensions: 360 * 640 px
- Orientation: Landscape Left
- FPS: 60 VSync On
Feel free to configure the other tabs.
Plugins
- Bump: to handle collisions
- JSON: to save user preferences to disk
We need to add the "plugin" for tiny-ecs, please grab it Media:tiny-ecs.lua (tip: right click and save link as) and put it in the "classes" folder.
Note: the file is supposed to be tiny-ecs.lua but MediaWiki puts a Capital letter :-(
We will add more Classes later on.
Files and Folders
This is how I organise my files and folders:
Gideros_BeatThemUp (root)
- Plugins
- Bump
- JSON
- Files
- _C (folder) ECS Components
- _E (folder) ECS Entities
- _S (folder) ECS Systems
- audio (folder)
- classes (folder)
- fonts (folder)
- gfx (folder)
- scenes (folder)
- init.lua (file)
- main.lua (file)
The underscore (_) allows us to group the ECS folders.
In the folder classes, you should already have:
- Media:buttonMonster.lua for player control and keyboard navigation (tip: right click and save link as)
- "save_prefs.lua" to save data persistently (please see code below)
require "json"
function saveData(filepath, value)
local contents = json.encode(value)
local file = io.open(filepath, "w") -- create file
file:write(contents) -- save json string in file
io.close(file)
end
function getData(filepath)
local value
local file = io.open(filepath, "r")
if file then
local contents = file:read("*a") -- read contents
value = json.decode(contents) -- decode json
io.close(file)
end
return value
end
Assets
At the time of writing I cannot upload the assets to the Wiki. I found a solution by creating a special folder on GitHub and host the files there.
I am happy to say you can download the assets for this tuto at this address:
https://github.com/mokalux/gideros_wiki_repository/tree/main/tuto_beu_cbump_tecs_assets
Next?
That should be enough to get us started. In the next part we will code our init.lua file.
Next: Tuto Gideros Game Template1 Part 2 Init