Page 1 of 1

3 ans plus tard, nouveau moteur raycasting pour Ndless 3.1 !

Unread postPosted: 14 Jun 2013, 14:59
by matref
Salut les gens :)

Rappelez-vous, c'était il y a maintenant 3 ans, peu après la sortie de la toute première version de Ndless, Critor vous annonçait la venue d'un nouveau moteur 3D de type raycasting pour la Ti-Nspire non-CX. Ce moteur, développé par le légendaire Bwang, est depuis tombé en désuétude avec l'avènement de nDoom, le portage de Doom que tout le monde connaît maintenant, utilisant lui le moteur original du non moins original Doom, celui-ci étant bien plus rapide (et surtout bien plus compatible avec les OS 3.x.x) que le moteur de Bwang.

Moi qui suis, comme vous le savez peut-être déjà, un grand passioné de 3D, j'étais très déçu de ne pas pouvoir coder de bon vieux jeux à la Wolfenstein 3D, étant donné que le moteur de Bwang n'était plus du tout compatible avec les versions récentes de Ndless (qui ne sont d'ailleurs plus tellement récentes aujourd'hui, c'est dire).

Devant cette situation inacceptable, je décide donc de reprendre donc le flambeau du raycasting et vous présente nRayC, mon nouveau moteur 3D compatible toutes TI-Nspire munies de Ndless 3.1 ! :#tritop#:

Plus qu'un moteur 3D, c'est surtout une librairie de programmation de jeux, puisque j'ai inclus toute une flopée de fonctions plus ou moins utiles (ça va de l'allumage de pixel au positionnement sur une map, en passant par le traçage de triangle et bien évidemment le raycasting ;) ). Ce dont je suis particulièrement fier, c'est que l'unique programme compilé fonctionnera aussi bien sur les Nspire CX que non-CX !

nRayCdemoCX.png
nRayCdemoNonCX.png


Le but premier de cette librairie étant bien évidemment de mettre en œuvre la technique du raycasting, j'ai écris et compilé une petite preuve de faisabilité (proof-of-concept pour les puristes ;) ) : un labyrinthe tout ce qu'il y a de plus normal, mis à part le fait que :
  • Vous évoluez dans un monde entièrement 3D avec 5 textures haute résolution (64*64) :#top#:
  • 4 des 5 textures sont chargées depuis un fichier externe grâce à la fonction loadBMP de la librairie :#top#:
  • La 5ème texture est générée et éditée tout au long du programme, indépendamment de la librairie :#top#:
  • Les collisions sont parfaitement détectées :#top#:
  • Et le plus important, ça tourne plutôt vite mine de rien :D

La librairie n'est évidemment pas terminée, il reste tout un tas de trucs à gérer, notamment la gestion de sols, de plafonds, d'objets etc. Mais le plus gros est déjà fait ;)

TI-Planet : donne une nouvelle dimension à ta Nspire :#top#:


Télécharger la démo (suivez les instructions dans le readme pour y jouer, source incluse) : nRayC demo
Télécharger le code source de la version bêta du moteur (pas encore de documentation, mais vous pouvez utiliser le code source de la démo pour vous aider) : nRayC source v0.2

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 14 Jun 2013, 15:41
by Levak
matref wrote:Moi qui suis, comme vous le savez peut-être déjà, un grand passioné de 3D,

** de moteurs 3D.

Être passionné de 3D c'est autre chose.

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 14 Jun 2013, 15:44
by diot
Levak wrote:
matref wrote:Moi qui suis, comme vous le savez peut-être déjà, un grand passioné de 3D,

** de moteurs 3D.

Être passionné de 3D c'est autre chose.


Devant un tel travail, je m'amuserais pas à chercher les fautes de langue mais je dirais plutôt que c'est super !!! :) :)

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 14 Jun 2013, 16:38
by Hayleia
Idem, je trouve ça génial. Juste une question, est-ce que ça supporte aussi les objets qui ne sont pas des murs ? Je veux dire, si on veut se déplacer, mais aussi avoir des ennemis qui se déplacent, a-t-on un moyen "facile" de faire ça avec ton moteur ?

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 14 Jun 2013, 16:55
by matref
Merci à vous :)

Et les sprites ne sont pas encore supportés, mais c'est bien évidemment prévus.

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 15 Jun 2013, 18:29
by mdr1
Bien joué !

Le programme est aussi rapide sur ému que sur caltos chez moi, peut-être que t'as oublié que t'avais Nover sur ta caltos.

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 15 Jun 2013, 20:25
by matref
Sauf que je suis constamment à 120 MHz sur ma CAS :D donc ça compte pas.

Re: 3 ans plus tard, nouveau moteur raycasting pour Ndless 3

Unread postPosted: 15 Jun 2013, 20:28
by Excale
L'émulateur va plus vite (que la Nspire réelle©) pour certaines opérations, et plus lentement pour d'autres. Donc selon le programme...