Intellisense Typing is coming! PLUS access command history!
On a roll today adding more to make the engine even more powerful, intuitive and user friendly, one feature being intellisense.
When you start typing it will offer suggestions for commands you can use behind the command entry text.
Pressing tab allows you to choose the suggested command. Just need to populate it with all the possible commands now and it will go live in the next update.
PLUS
I've also added in the ability to access the command history by pressing the UP or DOWN arrow keys which cycles through previously entered commands in that session. (available in the next update)
Eventually LEFT / RIGHT arrows will also allow you to place a cursor inside the command entry text which will eventually allow you to edit your command entry, much like that of a text input box. (this is very complicated so likely wont make it in the next update)
~ Liam
VARIABLES ARE COMING...
Alongside working on the Scifi Kit and getting the core NPC / AI systems in place I am now adding the ability to set CREATE, SET, FETCH, ADD TO, SUBTRACT FROM, TIMES BY, DIVIDE BY and most importantly COMPARE against.
As variables are deemed more advanced commands, the command entry gets a little more complex. (I will implement verbose versions of these commands once they are fully implemented, tested and working)...
Let's look at how you will use these new powerful commands, when ready.
Variables can be of three types. They are by default global.
private. only held and accessible on YOUR machine.
local. only held and accessible at a certain location (across multiplayer)
global. accessible anywhere (across multiplayer)
SET VARIABLE
#health=100
SET VARIABLE
#health=100
ADD TO VARIABLE (NUMBERS)
#health=health+1
ADD TO VARIABLE (TEXT)
#glyph=fire
#rune=ball
#spell=glyph+rune
SUBTRACT FROM (NUMBER / VARIABLE)
#health=health-1
MULTIPLY BY (NUMBER / VARIABLE)
#xp=0
#level=10
#xpearned=5
#xp=xpearned*level
DIVIDE BY (NUMBER / VARIABLE)
#health=100
#health=health/2
IF / ELSE
?health<=0:gameover=y!gameover=n
The above code checks if the players health is less than or equal (<=) to 0 and then (:) game is over ELSE (!) not game over
You can also run scripts / run script commands in the IF / ELSE i.e.
?health<=100:health=health+1!health=100
All of the above commands can be used in scripting commands and in .verbose script files.
As these ifs allow a singular event IF TRUE / FALSE you could also combine with a custom command.
if gameover then do this and do that
OR for even more power, SET or use VARIABLE / IF ELSE inside custom commands.
---------------
EXAMPLE
--------------------
An example of how they might be used..
In the bunker demo there is a gate. We want to allow the player to scale the gate if they have a high acrobatics level.
#acrobatics=0
if climb gate then ?acrobatics=10:climbovergate!narrate You cant climb it
if climbovergate then force n and narrate You scale the gate
To be able to climb the gate the acrobats variable would need to match 10, otherwise they will fail. You could increase their acrobatics level when they complete training for example.
if learnacrobats then #acrobats+1
Lets say they learn it by reading books on acrobatics.
if acrobaticsweekly.read then #acrobatics+1
force *direction* is a new set of commands which will also be added in the next update allowing you to move the player regardless of locked doors etc (where needed) great for letting the player find other ways to exit etc.
i.e. force s
------------------------------------------------
Variables should be coming in the next update.
~ Liam
The birth of NPCs / AI in ADLENGINE!
Initial tests are working better and quicker than expected.
Early days but peers (multiplayer) can now move about around the map and their location data syncs beautifully with everyone.
NPCs will shortly be able to do the same, according their own set of rules (you can grant or revoke from them at any time).
In the gif above you can see how easy it will be to add an NPC into the world and how bob (our npc in question) is attempting to make a move.
The beauty with the way adlengine works, eventually you'll be able to (spawn, I use this term loosely... for want of a better phrase introduce NPCs when needed) a few examples...
.... rats,
.... guards in response to an alarm
.... robot drones