Graal3D Scripting Manual: Difference between revisions

From Graal Bible
No edit summary
(Added a section to link to the form to get access to testbed3d server to start development.)
 
(24 intermediate revisions by 2 users not shown)
Line 3: Line 3:
Welcome to the Graal3D Scripting Manual!
Welcome to the Graal3D Scripting Manual!


This Manual comes in handy for beginners wanting to learn Graal3D Scripting, and advanced developers looking to expand their knowledge, as it will contain documentation, examples, tutorials and much more...
This Manual comes in handy for beginners wanting to learn Graal3D Scripting, and advanced developers looking to expand their knowledge, as it contains documentation, examples, tutorials and much more...


What we will focus on in this Manual is programming our gameplay (scripting the behavior of our Gameobjects, their interactions, the components attached to them...)
What we will focus on in this Manual is programming our gameplay (scripting the behavior of our GameObjects, their interactions, the components attached to them...)


==== How things work in Unity: ====
==== How things work in Unity: ====
Unity is the leading platform for building 2D, 3D, VR and augmented reality games. It offers a scripting API in C#, allowing us to interact with the unity editor and the games we want to build.
Unity is the leading platform for building 2D, 3D, VR and augmented reality games. It offers a scripting API in C#, allowing us to interact with the unity editor and the games we want to build.


In the Unity editor, we create and add Gameobjects to our scene, we then attach C# scripts to each that will all run upon starting the scene. Unity sort of runs everything for you, it reads through all the lights, cameras, meshes, behaviors… and processes it for you.
In the Unity editor, we create and add GameObjects to our scene, we then attach C# scripts to each that will all run upon starting the scene. Unity sort of runs everything for you, it reads through all the lights, cameras, meshes, behaviors… and processes it for you.


==== How things work in Graal3D: ====
==== How things work in Graal3D: ====
Line 17: Line 17:
The Graal Unity Binding is a binding between GraalScript and Unity, it is actually still in alpha, but most functionalities needed are present. The goal of this binding is to mimic the Unity C# scripting system (functions and classes). So if you are familiar with Unity and C#, everything should be easy. If not, then do not worry, I will go over everything step by step and include examples done in C# and compare them to GraalScript for each topic.
The Graal Unity Binding is a binding between GraalScript and Unity, it is actually still in alpha, but most functionalities needed are present. The goal of this binding is to mimic the Unity C# scripting system (functions and classes). So if you are familiar with Unity and C#, everything should be easy. If not, then do not worry, I will go over everything step by step and include examples done in C# and compare them to GraalScript for each topic.


The 3D Client (which you will have to download) will serve as the Unity editor, mentioned earlier, which contains the base scene where you instantiate your Gameobjects and manipulate them with your GraalScripts.
The Worlds Client (which you will have to download) will serve as the Unity base scene where you instantiate your GameObjects and manipulate them with your GraalScripts.


==== Required Downloads ====
==== Required Downloads: ====
'''Unity 2019.4.10f1:''' https://unity3d.com/get-unity/download/archive
'''Unity 2020.2.2f1:''' <nowiki>https://unity3d.com/get-unity/download/archive</nowiki>


'''The Graal3D Client:''' https://drive.google.com/drive/u/0/folders/1rpOli0fxnA-Q7-IpYg3rUFJ44M0PsSxd
'''The Worlds Client:''' <nowiki>https://www.graalonline.com/playerworlds/downloads/file?name=WorldsSetup64-518.exe</nowiki>


'''RC:''' http://fp4.ca/windows_rc3_beta.zip
'''RC:''' More here ([[Creation/Management/Remote Control|RC]]) or download directly here http://fp4.ca/windows_rc3_beta.zip
 
==== Get Started With Testbed3D Development: ====
After downloading Unity, the worlds client, and RC3, you can now submit through the google form below to be given access to testbed3D and start your GS2 and Graal3D scripting journey.
 
[http://fp4.ca/windows_rc3_beta.zip https://forms.gle/4oYnmKzQ85MVDyB99]
[[File:RC3 testbed3D.png|center|frameless|388x388px]]
 
 
Once you login in RC3 and see "Testbed3d" in your server list congratulations you have been accepted and can now start development on the Testbed3D server.


==== Tools ====
==== Tools ====
Unity Tools (''mimic the Unity Editor)'' & Game Functionality Tools ''(warping, fixing graphics, starting minigames...):'' <u>[[Tools]]</u>
In-game Unity Tools (''mimic the Unity Editor)'' & Game Functionality Tools ''(warping, fixing graphics, starting minigames...):'' <u>[[Tools]]</u>


== Documentation ==
== Documentation ==
[[Overview On Unity Basics]]


=== AssetBundles ===
==== Unity ====
[[Uploading and Loading AssetBundles]]
 
* [[Overview On Unity Basics]]
 
==== AssetBundles ====
 
* [[Uploading and Loading AssetBundles]]
*[[Placing GameObjects in NPC]]


=== Examples and Tutorials ===
==== Examples and Tutorials ====
*[[Getting Started Examples]]
*[[Getting Started Examples]]
*[[3DTutorials|Tutorials]]
*[[3DTutorials|Tutorials]]
*[[Unity UI]]


=== Classes, Functions and Variables ===
==== Classes, Functions and Variables ====


* [[Quattro3D Scripting]]
* [https://quattro3d.graalonline.com/Documentation/ Quattro3D Scripting]

Latest revision as of 12:33, 1 December 2021

Intro

Graal kart start.jpg

Welcome to the Graal3D Scripting Manual!

This Manual comes in handy for beginners wanting to learn Graal3D Scripting, and advanced developers looking to expand their knowledge, as it contains documentation, examples, tutorials and much more...

What we will focus on in this Manual is programming our gameplay (scripting the behavior of our GameObjects, their interactions, the components attached to them...)

How things work in Unity:

Unity is the leading platform for building 2D, 3D, VR and augmented reality games. It offers a scripting API in C#, allowing us to interact with the unity editor and the games we want to build.

In the Unity editor, we create and add GameObjects to our scene, we then attach C# scripts to each that will all run upon starting the scene. Unity sort of runs everything for you, it reads through all the lights, cameras, meshes, behaviors… and processes it for you.

How things work in Graal3D:

Since we will be using the Graal Unity Binding, things will be a bit different.

The Graal Unity Binding is a binding between GraalScript and Unity, it is actually still in alpha, but most functionalities needed are present. The goal of this binding is to mimic the Unity C# scripting system (functions and classes). So if you are familiar with Unity and C#, everything should be easy. If not, then do not worry, I will go over everything step by step and include examples done in C# and compare them to GraalScript for each topic.

The Worlds Client (which you will have to download) will serve as the Unity base scene where you instantiate your GameObjects and manipulate them with your GraalScripts.

Required Downloads:

Unity 2020.2.2f1: https://unity3d.com/get-unity/download/archive

The Worlds Client: https://www.graalonline.com/playerworlds/downloads/file?name=WorldsSetup64-518.exe

RC: More here (RC) or download directly here http://fp4.ca/windows_rc3_beta.zip

Get Started With Testbed3D Development:

After downloading Unity, the worlds client, and RC3, you can now submit through the google form below to be given access to testbed3D and start your GS2 and Graal3D scripting journey.

https://forms.gle/4oYnmKzQ85MVDyB99

RC3 testbed3D.png


Once you login in RC3 and see "Testbed3d" in your server list congratulations you have been accepted and can now start development on the Testbed3D server.

Tools

In-game Unity Tools (mimic the Unity Editor) & Game Functionality Tools (warping, fixing graphics, starting minigames...): Tools

Documentation

Unity

AssetBundles

Examples and Tutorials

Classes, Functions and Variables