The Adliberum Engine cover
The Adliberum Engine screenshot
Genre: Role-playing (RPG)

The Adliberum Engine

Early look at new in-built Map Editor...

As part of the bid to get adlengine out of early access we're working on an official in-built suite of tools to aid development using #adlengine in-line with bringing it to a more learnable state.

Starting with a dedicated map editor which will allow you to quickly lay down the foundations of any scenario / game.

Below is a sneak peak.



From this editor you will be able to add / delete / edit rooms and any contents within them, such as exits, objects, characters and more.

Other tools we'll be developing as part of the suite:



  • Script editor that will make complex scripting easier.
  • UI editor to allow you to customise or totally alter the look and experience.


Future tools:



Timeline editor to handle events and dialogue manager.

ADLENGINE v1.1.61.5d

Major changes are afoot.




Rendering Text Changes


Rendering text is now handled using text areas instead of static text objects, which will soon be added to theme controls, these allow for greater control of text, neater rendering and the ability to scroll back through previous text that has been rendered.
Hoping these will also be more friendlier to screen readers (confirmed working with NVDA screen reader).


New friendlier commands in this version:



New IS command, a there and then or staggered comparison command. Alternative to the IF command which stores comparison commands which are called when you type specific phrases.


  • is something
  • equal to something
  • not equal to something
  • greater than something
  • less than something
  • or equal to something (may just become or equal to)
  • then do something
  • and do something
  • and2 do something
  • and3 do something
  • else do something
  • end is / endis / end


An example of this in use:


  • #haskey=0
  • is haskey
  • equal to 1
  • then unlockdoor()
  • else narrate need to find a key.


Changes to delete commands.



  • delete object objectname
  • delete script scriptname
  • delete var variablename
  • delete custom customname



More great stuff to come.



Editing Map Data Direct
map data | will be changed to / allowing you to write directly to the data i.e.

Existing data...

/entityname/health/100
or /x/y/z/objectname/open/y
Or writing new data.

Official Choose Your Path Mod



The options mod allows you to render buttons as major choices, usable to either handle choices in game or could be used for dialogue. See the manual for commands related to this.

In the meantime...

Whilst we're busy rewriting adlengine...

I will continue to work on the original Adliberum Engine and aim to get it out of Steam Early Access in 2019.

Notably: emphasis will be placed on locking down the core elements, providing a friendlier experience with menus etc, better documentation and in-built tutorials, more support for languages and some example games to download.

For now though, happy holidays. Catch you all in 2019!

Show and tell.

Created or creating something using adlengine? I'd love to see it!

Share your creations!

The future of Adliberum Engine

Apologies for the really long period of down time, life unfortunately has a real nasty habit of getting in the way at times. Looking forward to a kinder, more productive 2019.

Plus with the original software I used to create it no longer being updated and the knock on effect is that it's going to need a full rewrite.

I'm not able to just simply convert adlengine because of its complexity, so I have slowly been recreating the engine entirely in Construct 3. Which will become adlengine 2.

The engine will to the most part mirror across, and I will do my best to ensure the map files etc don't change (too much). Worse case I'll write an editor to convert the maps over to the new format.

I will be placing a lot more emphasis on the learning side of it, plus will be working hard to ensure it has some example games to play / edit.

Thank you for your support.

Here's a brief snapshot of the new engine so far..

ADLENGINE: Using The In Built Editor

The in-built editor in #adlengine grants greater control of your levels and makes scripting easier.

Check out the quick guide for using the editor at https://www.adliberum.com/engine/manual/ADLENGINE%20using%20the%20in-built%20editor.pdf

If you need any assistance, I will do my best to help.

~ Liam

1.1.60.7 - CYOA / THEME / ADVANCED FILTER COMMANDS

Updates in 1.1.60.7



// NEW CHOOSE YOUR ADVENTURE FUNCTIONALITY //



You enable CYOA mode per room. Which gives 1-4 choice buttons.

room is cyoa

You can turn on / off choices using

cyoa 1 is on / off
cyoa 2 is on / off
cyoa 3 is on / off
cyoa 4 is on / off

To set the text of a choice;

1 is ...
2 is ...
3 is ...
4 is ...

When you set the text it will default the command to the same as you wrote for the text, for example take dirt, would run the command take dirt.

To manually set what command a choice calls;

1 does ...
2 does ...
3 does ...
4 does ...

They can be used to call single commands OR run scripts using;
do ...


// NEW ON-START SCRIPT //

If script on-start is found it will be run AFTER the level has loaded. Create this script using the in-built editor;

editor

// THEME EDITING / MANIPULATION //



All major theme elements can be edited now. To list them use;

listui

You can then edit / delete any theme element listed: i.e.

{text-debug}.delete
{image-main}.width=800
{image-main}.width=600


etc


// ADVANCED SCRIPTING //




Added new commands to fetch / filter data.

fetchlocal ____
fetchglobal ____
fetchprivate _____


The fetch commands grab all data matching your query preparing it for filtering.

Use the filter commands to prepare data for filtering.

filterlocal ____
filterglobal ____
filterprivate ____


Once you have the filtered data you can then use the strip command to keep what you want, please note the aim is to finish up with a single piece of data. You will get a warning if you have no results OR too results are too broad.

keep ____

e.g.

fetchlocal box
filterlocal box
keep -islocked


This will return the key ie. '0|0|0|obj-box-islocked' and the value ie 'y'

You can then access this data with the following %special%.

%SYS[FILTERKEY] for the kept key
%SYS[FILTERVALUE] for the kept value

1.1.60.6 - NEW ACCESSIBILITY COMMANDS + SCREEN READER

In this version we have enabled a tonne of accessibility functions. Made minor improvements to the inbuilt editor.

NEW ACCESSIBILITY COMMANDS:



Activate accessibility input box.

input on/off

customise input box colors.



input b&w
input w&b
input red
input blue
input green
input white
input black


customise input box font size.



input small
input medium
input large


NEW SCREEN READER FUNCTIONALITY:



Activate screen reader mode (should work with NVDA as it triggers NVDA via alert boxes) - this also activates the accessible input box.

reader on/off
enter will move to the next queued speech

OTHER ACCESSIBILITY COMMANDS:



speech on/off
voices = lists all available speech synthesis voices.
voice is [1-X] = sets the voice based on the number specified (use the voices command to get a list!)
pause / p = pauses speech synthesis
play = resumes speech synthesis

NEW VERSION: 1.1.60.1 | All New Power Commands Added (nb: steam overlay = broken)

IMPORTANT: steam overlay IS currently not working with the new update.

UPDATE NOTES: 1.1.60.1

-----------------------------------------------------------
AUTO ADD TO INTELLISENSE
-----------------------------------------------------------

1. certain commands will now automatically add items to intellisense now, e.g. obj is takeable would add take obj to intellisense.

-----------------------------------------------------------
ENTER / EXIT TRIGGERS SCRIPT
-----------------------------------------------------------

2. on-enter & on-exit triggers now in place, it will look for a script based on the direction they enter / leave and run it if present; i.e. on-exit-e OR on-enter-se.

-----------------------------------------------------------
GLOBAL ACCESS TO DATA
-----------------------------------------------------------

3. you can now get global access to anything to amend / update data etc by using;

> entity\param\value
> room\param\value

i.e. box\isvisible\n
i.e. dungeon\name\dingy dungeon

------------------------------------------------------------------
RUN COMMANDS FROM ANOTHER LOCATION
------------------------------------------------------------------

4. you can now run select commands remotely.

> select entity/roomname/or?
> build box
> deselect

-------------------------------------------------------------------
REPLACE COMMAND
-------------------------------------------------------------------

5. replace commands can be used to replace any string or number or combination of from all data sources (USE with caution)

> replaceall this&that
> replacekey this&that
> replacevalue this&that

-------------------------------------------------------------------
WRITE DIRECT TO SCRIPT
-------------------------------------------------------------------

6. writescript commands that allow scripts to be constructed manually via scripting

> writescript scriptname

> writelocal towrite; (always terminate with ;) - writes data to local script
> writeglobal towrite
> writeprivate towrite

> clearlocal scriptname - clears a local script of any data (retains key)
> clearglobal scriptname
> clearprivate scriptname

> dellocal scriptname - deletes local script data
> delglobal scriptname
> delprivate scriptname

----------------------------------------------------------------
FETCH COMMAND/S
----------------------------------------------------------------

7. new fetch commands allow you to grab any data based on search params! the result values will be stored as follows;

SYS[FETCH-COUNT] - number of results matched.
SYS[FETCHX] i.e. 1-x

> fetchlocal x
> fetchglobal y
> fetchprivate z

Once fetched, you can then use SYS[FETCH] to use the found data.

i.e. room name is %SYS[FETCH]%

-----------------------------------------------------------------

I will also be working on a tutorial map that will help demonstrate adliberum engine's plethora of commands.

~ Liam

ADLENGINE 1.1.55.6 - INTERACTING WITH UI.

All images for UI must either fall under the c:\users\username\adlengine\mapname\ folder under images OR under userlib folder as per above.

Each image used MUST be given a unique anim number (currently) from 0-16.
To assign the anim number:

{image-name}.anim=10;



works for {image-name} / {text-name}
i.e.

{text-selectchar}.lmb=speak '{text-selectchar}.text';
{image-selectchar}.wheelup=do nextchar;


MOUSE CLICKS



{image-name}.lmb=do something;
{image-name}.mmb=do something;
{image-name}.rmb=do something;


MOUSE HOLD



{image-name}.holdlmb=do something;
{image-name}.holdmmb=do something;
{image-name}.holdrmb=do something;



MOUSE RELEASE


{image-name}.releaselmb=do something;
{image-name}.releasemmb=do something;
{image-name}.releasermb=do something;


DRAG WITH MOUSE



{image-name}.draglmb=do something;
{image-name}.dragmmb=do something;
{image-name}.dragrmb=do something;


TOUCH



{image-name}.tap=do something;
{image-name}.doubletap=do something;
{image-name}.hold=do something;
{image-name}.release=do something;


HOVER



{image-name}.hover=do something;


MOUSE WHEEL



{image-name}.wheelup=do something;
{image-name}.wheeldown=do something;