Side B~~ Current Progress~~

Ehh…how long has it been since my last diary entry?
…*looks at the calendar
…O_O …46 DAYS!?

So yeahh, Side B, my very first Defold game project is now 43-44 days old…(started after playing a bit with the engine!)
And how is it coming along!?
AWESOME~~

Development is going pretty well, I got a custom loader and lots of auxiliary scripts, most of the database part figured out, saving and loading, the basic architecture of maps for testing systems and even 4-5 screens finished!?

“HOLY C…”

But what is Side B?
So putting it simple, Side B is a 2D RPG, single player!
Where you take control of the boy Kurt in a world shaped by musical elements~~
The idea was to make a game to teach basic music theory to players while immersing them into a vast world, so they could learn theory while playing (not the opposite! which is what most educational games nowadays do :/)
The game is actually a college project of mine, so that’s why I have been dedicating so much time to it~~
The idea is that, people want to take their time to learn things, they don’t want to be rushed~~
RPGs for their long playtime and non-linearity (in most cases) allows people to learn things bit by bit and only then advance to what they are comfortable with, while at the same time, being composed of a interesting narrative which helps to keep the player involved and even make a “game community” more feasible!

“Nice summary…sounds boring…any screens? concept arts? whatever?”

NOT YET…I want to finish a couple more screens and remove some placeholders…(I might have copyrighted artwork as placeholders atm x.x)
However, the idea is to release a demo in about 2 months…so yes, development is 100% ongoing!
I plan to make a whole post about the game later~~ with screenshots, art concepts and videos!

"Any complains?"
Yeahhh…1…or…2…maybe…3
The engine has been a bit of a pain to make events in game possible…(events as old school tiled RPG games), if anyone has any idea of how to implement those without much work…please tell me! (currently I have a “class” called a Stepper which is composed of a list of functions which are called in order, it only advances steps whenever the last function sets the stepper to “OK TO CONTINUE”)
Second, the lack of “material per node” in the GUI editor…x.x
This is a killer, it has been very hard to apply specific shaders to specific elements of the screen…I have to set them into another GUI and use message posting for communication…(A LOT OF TROUBLE, assuming i have to do that for like 10+ elements PER SCREEN (total of about 19 screens in-game))
Yeah…2 main issues…not 3…hehe ^^

Well anyways, i am signing off now! thanks for reading all this! ^^ good nighty!

1 Like

Good to hear things are coming along! Regarding your events and the description of your Stepper, it seems like you are building something like a state machine for scripted events? It could be the case that coroutines are a good fit for what you are trying to do. Basically they let you write asynchronous code synchronously:

local function my_boss_fight()
    boss_intro()
    wait_for_stage_completed(1)
    move_thing()
    enable_new_boss_weapon()
    wait_for_stage_completed(2)
end

Maybe @britzl has an example? :slight_smile:

my stepper does somewhat ofmthat but its really uggly…
its more or less like…(not actual code)

stepper:step(function ()
dostuff_intro()
if (is_done) then
return true
else
return false
end
end):then(function ()
dostuff_battle()
if (is_done) then
return true
else
return false
end
end):start()

*ps: you can chain as many steps as you want
more or less that for two asynchronous blocks, i used lambdas there but you van use common functions too as long as they return a bool value that corresponds if the function is done or not
*i know, uggly as hellllllll

1 Like

As Ragnar wrote, coroutines are really powerful mechanisms to pause code execution while waiting for some long running thing to complete and then resume from where the code was paused.

Here’s one example of how to use coroutines to animate the aliens in a space invaders game:

And here’s a generic Lua module that can be used to wait for different kinds of conditions using coroutines:

2 Likes