Godot Engine

Godot Engine

72 个评价
Making Point and Click Games with Escoria Addon
由 Lavaduder 制作
Escoria is a Point and Click Adventure focused addon/Asset for Godot. If your looking to make one, it's Extremely useful. It's also fairly simple to learn. Several games have used Escoria like The Interactive Adventures of Dog Mendonça & Pizza Boy, and Escoria in Daïza (This is the Demo Reel of Escoria by the way).
   
奖励
收藏
已收藏
取消收藏
Downloading and Installing Escoria
1.
Head to this Github page and hit clone/download
https://github.com/godotengine/escoria

If you wish to download the DemoReel: Click this link (NOT REQUIRED)
https://github.com/flossmanualsfr/escoria

And if I miss anything/never finnish this Guide. Click this link
https://fr.flossmanuals.net/creating-point-and-click-games-with-escoria/what-is-point-and-click-games/

If you need a reference just look inside the escoria-master folder, in the doc folder (escoria-master/doc/esc_reference.md)

2.
Now We've got it downloaded, Unzip the file. and place it in, Uh... Documents.
If you don't have a archive manager here's a link to the popular 7-zip
http://www.7-zip.org/

3.
  • Open Godot Engine, and hit new Project.
  • Browse for Folder
  • Go to Documents (Or whatever folder you put it in)
  • Click on the Escoria-master folder
  • Now hit open.
  • And your file should show up in the Project Browser. (If it doesn't show. look for Unnamed project)
  • to name your file you have to go into the projectsettings/engine.cfg and make a string variable "name" (Name it whatever you like, I'm going to call mine Megaman Lengends 3)
Escoria's gdscripts
1.scene_main.gd and scene_base.gd
meant for the main scene of the game

2.main_menu.gd
For your main/pause menus
this script interacts with several buttons, named
  • continue
  • new_game #This loads a new game.esc
  • save
  • settings
  • credits
  • exit

3.item.gd
For interactable items, can be objects in the scene, or even characters.

4.sound.gd

5.background.gd
For the background of the scene.

6.inventory_items.scn
for inventory Items

7.dialog_player.gd

8.confirm_popup.gd
Escoria Script (.esc)
Escoria Script an external script to Gdscript. So We have to open it in a seprate texteditor.
0. Linking Escoria script to Godot
  • Make a text file in your escoria master folder, and at the end place a .esc (Some thing like this, roll.esc)
  • (Becareful of casesensitivity and always replace spaces with underscores _)
  • Inside Godot attach the item.gd script to a node. Preferably a textureframe (I'm going to call the node Roll)
  • then in the inspector, under script variables, add a Global Id (I'm setting it to roll_Id)
  • then in the inspector, under script variables, set the events path to your .esc file (I'm setting it to roll.esc)
  • open the (roll).esc file in a text editor of your choice.
  • (I like using notepadqq, but gedit or microsoft notepad works as well.) *(Godot can open .esc files, in the script editor by selecting File->Open...)
  • Now we are ready to use escoria script.

1. Actions the Colon :
  • if you look in Godot, at your Node, in the inspector, you will see a export var called Action.
  • Actions in escoria are that, Actions. There are Classic adventure game actions like "Talk", "Push", and "pick_up", but you can also have other actions, like battle, or interrogate.
  • You can change how a item reacts to actions with escoria script
  • In your (roll).esc file, type in a colon, and the action talk.
  • (Example
    :talk
    )
  • The Colon represents an action, and talk is the type of action we are using
  • Tab to the next line and type say (roll)_Id "HI Rock!"
  • (Example
    :talk
    say roll_Id "HI Rock!"
    )
  • say is a property I'll get into that later. Right now just know that it makes the node (roll) talk.
  • What if the action is not talk, but pick_up? Simple Just have a action for pick_up
  • (Example
    :pick_up
    say roll_Id "What are you doing Rock?"
    )
  • This pretty much goes for all actions, Define it with a colon, and the type of action
  • :type_of_action

2. Conditions
  • If you do not know what conditional statements are(Eheh.)
  • They control the flow of a script. by a set of conditions (like If some said "thankyou" then you should say "Your welcome" back. The "thankyou" is the condition, the "Your welcome" is the resulting flow of the conversation.)
  • else you do know what conditional statements are
  • In Escoria Conditions are held with a Greater than sign, and a global inbetween the square brachets.
  • (Example
    >[type_of_global]
    )
  • let's say we are laughing at roll. We would make a global condition laughing and put that inbetween the square brachets.
  • (Example
    talk:
    >[laughing]
    say roll_Id "What are you laughing at?"
    )
  • Now if we are laughing roll will have a conversation. But what if we were not laughing?
  • The Exclaimation point or "!" represents not.
  • So if the global laughing was not true/active, then a different conversation will play out
  • (Example
    :talk
    >[laughing]
    say roll_Id "What are you laughing at?"
    >[!laughing]
    say roll_Id "Help me clean up Rock."
    )
  • We can go even further with seprate conditions for seprate actions
  • (Example
    :talk
    >[laughing]
    say roll_Id "What are you laughing at?"
    stop
    >[!laughing]
    say roll_Id "Help me clean up Rock."
    stop

    :pick_up
    >[laughing]
    say roll_Id "Are your bolts loose?"
    stop
    >[!laughing]
    say roll_Id "What are you doing Rock?"
    stop
  • )
  • You may have noticed an extra property. stop, this is to prevent the script from continuing into the next condition. A flow control STOP if you will.

3. Properties
This is where Escoria usefulness Kicks into high gear. These are functions essentially.
You should already be familer with the Say property

Full list of Properties
  • say #String
  • set_global #Boolean
  • set_active #Boolean
  • set_state # Boolean
  • change_scene
  • animations
  • speed
  • scale_on_map
  • light_on_map
  • use_combine
  • inventory
  • use_action_menu
  • interact_angle
  • talk_animation
  • stop

4.Multiple choice Dialog
In escoria script the Question Mark "?" Means multi choice dialog options, and dash "-" means a choice in the dialog box. remember to tab before each dash mark "-" and space Before each string line. otherwise escoria will glich out.

(Example
?
- "What are you doing roll?"
say roll_Id "I'm cleaning up"
- "I'm leaving."
say roll_Id "Don't avoid work Rock."
)

5. Savegame Format
Escoria can also be used to save game.
There should be a file called quick_save.esc in the escoria master folder.
6 条留言
SPRÆY 2021 年 8 月 18 日 上午 2:16 
Awesome, thanks!
flesk 2020 年 4 月 8 日 上午 1:08 
From https://fr.flossmanuals.net/creating-point-and-click-games-with-escoria/what-is-escoria/

«"Escoria" is a Spanish word that means "scum" (the creators where not very original when naming the framework :-)»

Referencing the Scumm game engine (https://en.m.wikipedia.org/wiki/Scumm) used to create the classic LucasArts games, which was a major inspiration for the Escoria DSL.
Patrice Ici 2020 年 4 月 7 日 下午 11:10 
Googles Escoria.
Google translate appears...
Spanish Escoria --> English Human Waste.

Oh.
genaticstudio 2019 年 5 月 14 日 上午 7:15 
thank you .I solved the problem
flesk 2019 年 5 月 14 日 上午 3:05 
@genaticstudio: Your best bet for getting help is creating an issue on https://github.com/fleskesvor/escoria or the #escoria channel on Freenode IRC.
genaticstudio 2019 年 5 月 13 日 下午 10:18 
i use godot 3.1.1
import to godot but error


please helpme ------> escorial prototype >> Parser Error: Unreachable code (statement after return) in function 'set_accept_input()'. (warning treated as error)
code error
report_errors("global_vm", ["Unknown accept_input given"])