cli345

u/cli345@programming.dev
5 posts · 9 comments

Recent posts

Recent comments

I like this overview.

The gameplay loop is what unites all games and game engines, although it may be veiled within the engine, replaced by abstractions or handler functions (callbacks). (Part 1.1)

Incidentally, in my view, it reproduces the common belief that a game has to be structured as a main loop that might be hidden to the programmer in which case s/he has to associate actions(handler functions) to events. This example attempts to prove that it's not always the case.

Here, for example, is how the showMessage function would work:

  • $MessageLabel is a field defined by the programmer in Godot.
  • The showIn(p_message, p_place) function shows the message p_message in the field p_place.
  • waitSeconds(2) waits 2 seconds.
  • When the 2 seconds are elapsed, the second branch waitSeconds(2) is finished and so the parallel block is exited (because of exitWith branch 2) and the other branch (the first one) is definitely interrupted (because my parallel exitWith branch N does so).
  • The interruption of the first branch showIn(p_message, $MessageLabel) makes the $MessageLabel invisible.

Thank you for your very useful feedback :)

A native representation of HTML tags is a good idea: I'll have to do that.

For ...---, I wanted a big split symbol between branches (||========) and a small split symbol between the two steps inside a branch (...---). ... because the branch continues and --- to mark a smaller split than ==========.

I intend to add a syntaxic sugar for:

parallel(select N) ||
||==============
	myFunction(arg1,...,argM)
...--------
	restOfBranch1
||=============
	myFunction(arg1b,...,argMb)
...-------
	restOfBranch2

that would be:

choose N by myFunction
	* arg1,...,argM
		restOfBranch1
	* arg1b,...,argMb
		restOfBranch2