Entraides et échanges autour de la technologie Scol - Informations and exchanges on the Scol technology
Vous pouvez changer la langue de l'interface une fois inscrit - You can change the language once registered
You are not logged in.
Salut c'est samiux.
J'ai quelque anecdotes a propos d'OpenSpace3D et de ChatGPT que vous pouvez me répondre.
J'ai essayé ChatGPT la nouvelle IA a la mode permettant de générer des scripts pour des programmes informatique instantanément. J'ai demandé a ChatGPT si elle connaissait bon nombre de langage de programmation et de moteur de jeux et elle me répond oui a chaque fois. Par contre lorsque je demande a elle si elle connaît OpenSpace3D et Scol elle dit qu'elle ne connaît pas OpenSpace3D ni le langage de programmation Scol et qu'elle interprète le language Scol comme du language MOO. Une chance quand l'an 2023 il ait un moteur 3D et son langage de programmation qui résiste toujours et encore a l'envahisseur qu'est l'intelligence artificiel. Les programmeurs Scol et d'OpenSpace3D ont encore de beau jours devant eux mais pour quand encore?
Offline
La 1ere fois que je lui ai demandé si chatgpt connaissait openspace3d, il m'a dit que c'était écrit en Java. Je l'ai corrigé en lui disant que c'était écrit en scol, et il a su m'expliquer ce qu'était le scol. Par contre je n'ai pas testé pour voir s'il pouvait écrire du code.
Online
Le fait qu'OpenSpace3D soit peu connu fait que ChatGPT a de la difficulté a savoir ce qu'est réellement OpenSpace3D et le langage Scol. Par contre vu chatgpt ne connaît pas le language scol chatgpt peut pas trop écrire du code en scol. Par contre chatgpt peu écrire du code en SQLite pour utiliser avec le plugit SQLite pour une base de donnée.
Offline
en tout cas tu peux lui demander de t'expliquer le code d'un plugIT ^^ il comprend que c'est pour OpenSpace3D.
Impressionnant quand même vu que je ne lui ai pas donné de context.
This code appears to be written in OpenSpace3D, a scripting language used to create 3D environments and games.
The code defines a number of functions that perform different actions when called.
The "deleteOb" function is a callback function that is called when an instance of the plugin is deleted. It simply returns 0.
The "cbDisable" function is a callback function that is called when the plugin's "Disable" action is triggered. This function takes in several parameters, such as the instance of the plugin, the sender of the action, the action itself, any additional parameters, and a "p" variable. Inside the function, it uses the "state" variable from the "p" variable and checks if it is already disabled. If it is, the function ends, otherwise it will set the state to 0, gets the session view and default viewport, and disables the SSAO (Screen Space Ambient Occlusion) effect. Then it sends a "Disabled" event to the plugin.
The "cbEnable" function is similar to the "cbDisable" function, but it enables the SSAO effect instead of disabling it when the "Enable" action is triggered.
The "cbSetState" function is called when the "Set state" action is triggered. It takes in a parameter and if it is not empty or nil, it will check if the parameter is less than or equal to 0 and call the "cbDisable" function or the "cbEnable" function accordingly.
The "newOb" function is a callback function that is called when a new instance of the plugin is created. It gets the initial state of the plugin from the instance's parameters, gets the session view and default viewport, sets the SSAO effect to the initial state, and registers the "Enable", "Disable", and "Set state" actions with their corresponding callback functions. It also sets the "deleteOb" function as the instance's delete callback.
The "IniPlug" function is called when the plugin is initialized, it registers the "newOb" callback function, sets the plugin editor to "dynamicedit" and returns 0.
In summary, this code is a plugin for OpenSpace3D that allows the developer to enable/disable the SSAO effect on the default viewport and provides actions to control the state of the effect.
Online
Voila je lui ai appris le Scol ^^
now can you show me an example code for hello world in scol language ?
Sure, here is an example of a simple "Hello World" program written in Scol:
Copy code
fun main()=
_fooS "Hello World!";
0;;
The main function is the entry point of the program, it is automatically called when the program is run.
In this example, the _fooS function is used to print a string to the console. The string "Hello World!" is passed as a parameter to this function, which then prints it to the screen.
The 0 at the end of the function is the return value of the function. In Scol, the return value must be an I (integer) type. It's common practice to return 0 to indicate that the program has executed successfully.
It's important to note that, OpenSpace3D engine uses Scol as a scripting language, So you need to use it in the context of OpenSpace3D to run it properly.
Online
Chouette que ChatGPT apprend le language Scol! Reste plus qu'un petit effort pour qu'elle nous créer un script pour un plugit!
Sinon je me penche aussi sur le futur d'OpenSpace3D et quel fonctionnalité pourrait être ajouté. Avant peut-être même de demander plus de fonctionnalité et de plugit il serait mieux d'améliorer certains plugit. J'ai un problème avec l'instance instanciate. C'est bien pour charger des niveaux mais beaucoup moins pour charger des objets en pleine partie avec la scène qui se met en pause surtout des objets répétitifs comme des munitions/projectiles (ou les boîtes de conserve de la demo industry) ou des objets pour un jeu sans fin un peu comme la démo vrcells. Un plugit pour le pathfinding ça serait une belle avancé. Je sais que chaque jeux VR a sa propre IA qui est différente d'un jeu a l'autre mais j'ai remarqué que le pathfinding est l'IA la plus commune dans les jeux VR et simulation 3D.
En ce qui concerne l'export pour MacOS il faudrait mettre l'export a jour pour prendre en compte les nouveaux MAC M1. Je sais pas si OpenSpace3D prend en compte les Mac M1 dans sa dernière version.
Offline
hehe
oui le pathfinding est une grosse partie, le plus complex est de trouver un algorithme compatible avec le moteur physique.
Peut être qu'une 1ere évolution serait d'utiliser un moteur physique plus générique comme bullet par exemple.
Le truc avec le instantiate c'est qu'il charge les resources et les scripts. en fonction de la complexité de ces éléments cela peut être plus ou moins lent a charger / décharger. Les ressources sont aussi placées dans un nouveau groupe et elles sont donc dupliquées. Cela pour permettre la modification d'un modèle sur un changement de texture ou de matériaux par exemple.
Il faudrait en effet réfléchir à un plugIT items qui prendrait un modèle 3D et des nœuds de placement, il se chargerait de dupliquer le modèle. Avec des effets optionnels comme la rotation et gérer le 'pickup" / "reset".
Pour MacOS, j'ai encore un vieux Mac mini, j'attend un modèle plus récent (pas sur qu'il soit M1) pour pouvoir tester et compiler dessus.
Online
Le moteur physiques bullet est un très bon moteurs physiques libres et open source utilisés beaucoup dans les applications VR et les jeux vidéo.
J'utilise OpenSpace3D principalement en tant que moteur de jeux. Toutefois le pathfinding et le plugit items pour charger rapidement des modèles 3D sans mettre en pause la scène sont les 2 fonctionalité qui me manque actuellement. Bien sûre je me penche aussi pour créer des applications en VR même si j'ai encore du mal a appréhender la VR dans OpenSpace3D.
Les Mac M1 utilise l'architecture ARM alors que ton vieux Mac Mini utilise probablement l'architecture x86. Je sais que depuis MacOS Big Sure il y existe l'application Rosetta 2 qui permet de rendre une application MacOS x86 compatible avec l'architecture ARM des nouveaux Mac M1 mais je ne sais pas si Rosetta 2 est encore présente dans les dernières versions de MacOS.
Offline