JeuWeb - Crée ton jeu par navigateur
Langages exotiques ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Langages exotiques ? (/showthread.php?tid=8042)

Pages : 1 2 3


Langages exotiques ? - Zero - 25-01-2020

Bonjour tout le monde !

Je suis un grand passionné de langages, je voulais savoir : y en a-t-il parmi vous qui ont utilisé des langages peu communs  pour développer des jeux web ? Par exemple il y en a toute une floppée qui "compilent" vers JS chez jashkenas :

https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS


RE: Langages exotiques ? - Thêta Tau Tau - 25-01-2020

Dans le temps j'avais des scripts en R pour les stats. J'avais un mutualisé en php qui récupérait les données et ensuite je téléchargeait sur mon ordi pour faire tourner les scripts (le mutualisé ne supportant pas R). C'était plus ou moins une alternative maison à google analytics. Le jeu en question étant tout pourri j'ai jamais eu assez de données pour en faire grand chose mais j'avais trouvé que ça fonctionnais plutôt bien.

Après c'est surtout j'ai fait pas mal de stats en R pour le boulot donc c’était plus facile et moins frustrant pour moi que d'utiliser google analytics ou unity analytics, je suis pas sur que R soit très utile pour la plupart des devs (R est un langage tout pourri en soit mais qui a énormément des bibliothèques de stats).

Sinon, mes derniers minis jeux sont tous sous Unity en C# compilés en webgl, mais je suis pas sur que ça soit encore considéré comme "exotique" étant donné qu'une bonne part des nouveaux jeux sur les portails de mini jeux "flash" sont désormais fait comme ça, que ce soit avec unity/C# ou avec d'autres moteurs/langages.


RE: Langages exotiques ? - niahoo - 25-01-2020

J'utilisais livescript à une époque mais un jour j'ai fini par accepter que ce n'était qu'une histoire de syntaxe et que ça restait du JS. Du coup je n'utilise rien qui compile vers JS. J'ai jamais pu blairer coffeescript par ailleurs.

Sinon Sephi et moi on utilise Elixir pour nos jeux, je l'utilise aussi professionnellement.


RE: Langages exotiques ? - Zero - 26-01-2020

Elixir ça a l'air pas mal, mais vous faites héberger la VM Erlang ? (galère ?)

Pour Unity, il me semble qu'il y a aussi Unityscript (ou quelque chose comme ça) qui ressemble beaucoup à JS ?

Après je partage ton avis sur "tout est du JS au final", mais il y a aussi toutes les optimisations que font les navigateurs sur asmjs, webassembly et compagnie : ça change un peu la donne.

J'ai découvert très récemment le protocol "dat" (pensez http en peer2peer), et le navigateur Beaker :

https://beakerbrowser.com/

J'aime bien l'idée du peer2peer, et du coup je me prend à rêver d'un langage dédié à la réalisation de jeux... qui proposerait un certain nombre d'options "clefs en main" en termes d'architecture, et qui éliminerait le boilerplate superflu. Qu'en pensez-vous ?


RE: Langages exotiques ? - Thêta Tau Tau - 26-01-2020

Unityscript c'est obsolète, les dernières versions d'unity ne supportent que le C#, mais oui c'était du JS à peu de choses près.

Vu que le C# compile en webassembly c'est pas une grosse perte (je préfère largement coder en C# qu'en js), le seul soucis étant qu'avant on pouvait récupérer des scripts js pour les mettre dans unity. Par exemple il y avait un projet pour rendre unity compatible avec meteorjs ce qui aurait été très cool, mais le projet a été abandonné du coup.


RE: Langages exotiques ? - Sephi-Chan - 26-01-2020

(26-01-2020, 12:31 PM)Zero a écrit : Elixir ça a l'air pas mal, mais vous faites héberger la VM Erlang ? (galère ?)

Oui, on lance un exécutable qui contient la VM Erlang. Le déploiement sur mon dédié de Not So Advance Wars a été tellement facile que j'ai été surpris : la procédure a fonctionné du premier coup alors que je n'avais jamais utilisé ni même vu utiliser ça.

Pour les autres technologies, j'ai fait du client Web en Javascript (ES6) assez classique (souvent avec React) et du client lourd en Lua (avec LÖVE).

Pour Seelies, je ne sais pas ce que je ferai quand viendra le temps de faire un client. Peut-être un client avec Godot ou Unity, peut-être du Web avec Canvas, peut-être du Web en bon vieux DOM/CSS/images.

J'ai l'impression qu'utiliser un système 3D pour construire et afficher le plateau de jeu me permettrait de m'affranchir de plusieurs problèmes artistiques (le dessin à proprement parler, mais aussi son découpage, son animation et son intégration) pour des problèmes plus techniques, plus à même d'être traités par moi.


RE: Langages exotiques ? - niahoo - 26-01-2020

(26-01-2020, 12:31 PM)Zero a écrit : Elixir ça a l'air pas mal, mais vous faites héberger la VM Erlang ? (galère ?)

Oui je fais une realease de mon appli et je la lance dans un container docker sur un public cloud OVH (je sais même pas si c'est un serveur physique ou un VPS en fait xD).

Mais bon en gros une release contient la VM erlang et se lance via un script bas qui est généré, genre path/ver/mon/appli/bin/mon_appli start. C'est pas galère du tout mais c'est sur que sur un hébergement qui propose que PHP ça n'est pas possible.

Alwaysdata propose de l'hébergement Elixir gratuit (mais via mix, pas une release).

Edit: toujours sur la brèche Sephi Smile


RE: Langages exotiques ? - Zero - 26-01-2020

Pas mal, je viens de lire https://learnxinyminutes.com/docs/elixir/
Il y a des choses intéressantes : le pattern matching, le spawn d'acteurs auxquels on envoie des messages, c'est le genre de choses que j'aime bien ! Je suis un grand fan de Io de Steve Dekorte, si vous connaissez.

Qu'est-ce qui fait d'Elixir votre langage de choix, ses killer feats ?

Actuellement je gribouille des essais de syntaxe mélangeant stack-based, à la Forth, et message passing.


RE: Langages exotiques ? - Sephi-Chan - 26-01-2020

Pour moi c'est le changement total de paradigme par rapport à ce dont j'avais l'habitude. Je ne raisonne plus en requête/réponse façon Web ni même avec des background jobs.

A la place, j'ai un système qui vit (des "process" qui tournent en parallèle) et avec lequel j’interagis. Je ne pense même plus à la base de données parce que je n'en utilise plus directement. Chaque process a ses propres données en interne.

Avec Seelies (que je développe suivant le pattern CQRS/ES), je ne raisonne plus qu'en actions et en événements qui changent l'état de mon système. Si on regarde le code, on peut voir d'un œil toutes les actions qui peuvent être envoyées à une partie. Ces actions sont reçues, analysée et permettent d'émettre des événements qui sont persistés et me permettent de "revenir dans le temps", de rejouer le fil de la vie de mon jeu, de l'analyser a posteriori...

Dans mes tests automatisés (je développe en TDD), je simule des parties pour définir mes cas d'erreurs ou tester mon comportement et les tests sont très expressifs et facile à suivre.

En soit, ce n'est pas tellement le langage qui est génial (bien qu'il le soit :p), mais plutôt l'approche qu'il propose pour concevoir et implémenter un système complexe.


RE: Langages exotiques ? - Xenos - 27-01-2020

Citation :je me prend à rêver d'un langage dédié à la réalisation de jeux... qui proposerait un certain nombre d'options "clefs en main" en termes d'architecture, et qui éliminerait le boilerplate superflu

Ca s'appelle un SDK non? Smile genre Unity, ou Neoaxis (niveau clef en main, je trouve ce dernier excellent; en tous cas c'était il y a 6 ans en gros, et ça m'avait bien plû)

La 3D, c'est vachement lourd quand même Sephi. Pour y avoir mis les pieds (y'a genre peut-être 10 ans hein!), c'est chronophage est complexe à gérer. Je préfère la 2D, elle donne une porte d'entrée supplémentaire: en 3D, on fait ses assets, et on doit les arranger pour qu'ils "rendent bien" (UI & UX) dans le jeu final alors qu'en 2D, on peut soit forger directement le résultat du rendu désiré (ie: un graphiste qui dessine l'image finale), soit faire des modèles comme la 3D, en tirer des rendus, les post-traiter si besoin (c'est la porte supplémentaire) et les intégrer au jeu final.

Sinon, je vais finir par classer MySQL comme un langage exotique au train où vont les choses Tongue (oui, je reste sur du classique "vanilla" JS, CSS, HTML, PHP, SVG, SQL; je trouve ça suffisant pour mes types de jeux)