Difference between revisions of "Tuto tiny-ecs beatemup Part 1 Setup"
(Created page with "__TOC__ == Setup == As mentionned in the introduction, we will use the '''Gideros Game Template1'''. So make a copy of your Gideros Game...") |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
== Plugins == | == Plugins == | ||
− | + | * '''Bump''': to handle collisions | |
* '''JSON''': to save user preferences to disk | * '''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. | We will add more Classes later on. | ||
== Files and Folders == | == Files and Folders == | ||
− | This is how I | + | This is how I organise my files and folders: |
− | '' | + | ''Gideros_BeatThemUp'' (''root'') |
* ''Plugins'' | * ''Plugins'' | ||
+ | ** Bump | ||
** JSON | ** JSON | ||
− | |||
* ''Files'' | * ''Files'' | ||
+ | ** '''_C''' (''folder'') ECS Components | ||
+ | ** '''_E''' (''folder'') ECS Entities | ||
+ | ** '''_S''' (''folder'') ECS Systems | ||
** '''audio''' (''folder'') | ** '''audio''' (''folder'') | ||
** '''classes''' (''folder'') | ** '''classes''' (''folder'') | ||
Line 38: | Line 42: | ||
**main.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)''' | * '''[[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) |
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
require "json" | require "json" | ||
Line 65: | Line 70: | ||
== Assets == | == 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''' | ||
+ | |||
+ | and the zip file: | ||
− | + | '''https://github.com/mokalux/gideros_wiki_repository/blob/main/tuto_beu_cbump_tecs_assets/tuto_beu_cbump_tecs_assets.zip''' | |
== Next? == | == Next? == | ||
− | + | In the next part we will look at our ''init.lua'' and ''main.lua'' files. | |
− | '''Next: [[Tuto | + | '''Next: [[Tuto tiny-ecs beatemup Part 2 Init and Main]]''' |
'''[[Tutorial - tiny-ecs beatemup]]''' | '''[[Tutorial - tiny-ecs beatemup]]''' | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Latest revision as of 08:42, 13 November 2024
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
and the zip file:
Next?
In the next part we will look at our init.lua and main.lua files.
Next: Tuto tiny-ecs beatemup Part 2 Init and Main