Rebol presque en 3D !? | |
RebolEric | 15-Aug-2007/18:40:39+2:00 |
Bonjour, j'ai vu sur la toile qu'il y avait un ancien numéro de login (le 14 je crois) qui parlait de la programmation d'un jeu genre wolfenstein. J'ai vu aussi qu'il y a la copie d'un article de login sur le site RebolFrance sur la fabrication de ce genre de jeux en "presque 3D". Où en est-on aujourd'hui ? y a-t-il des jeux (des démos) programmés avec rebol quelque part ? Y a-t-il une maélioration de ce système avec des textures quelque part. Un projet éducatif intéressant à développer serait la fabrication d'un dialecte permettant aux jeunes de programmer facilement leurs propres cartes pour se promener dedans ! (Bon, ce n'est pas pour tout de suite en ce qui me concerne !!! ;-D ) | |
guest2 | 16-Aug-2007/3:47:40+2:00 |
En fait, tout est possible avec Rebol, jusqu'au mappage de textures. Si tu ne l'as pas encore fait je te conseille d'explorer les scripts qui se trouvent sur Rebol.org (recherche les Demo faites avec AGG) Le problème avec les jeux, c'est qu'on a besoin de rapidité et de ce point de vue Rebol ne permettra jamais de faire aussi bien qu'un langage compilé. A l'heure actuelle Rebol est trop lent pour faire des jeux en 3D mais avec les nouvelles possibilités d'extension de Rebol3, je gage qu'on aura bientôt la possiblité de faire bien mieux mais tout reste à faire... | |
Philippe | 17-Aug-2007/10:26:29+2:00 |
Salut, RebolEric Je pense que tu fais allusion à l'article "Ecrire un moteur de Raycasting avec View". Olivier Auverlot peut te fournir le script original qui ressemblait à ceci : REBOL [ subject: "moteur de raycasting" version: 0.7 ] px: 9 * 1024 py: 11 * 1024 stride: 5 heading: 0 turn: 10 laby: [ [ 8 7 8 7 8 7 8 7 8 7 8 7 ] [ 7 0 0 0 0 0 0 0 13 0 0 8 ] [ 8 0 0 0 12 0 0 0 14 0 9 7 ] [ 7 0 0 0 12 0 4 0 13 0 0 8 ] [ 8 0 4 11 11 0 3 0 0 0 0 7 ] [ 7 0 3 0 12 3 4 3 4 3 0 8 ] [ 8 0 4 0 0 0 3 0 3 0 0 7 ] [ 7 0 3 0 0 0 4 0 4 0 9 8 ] [ 8 0 4 0 0 0 0 0 0 0 0 7 ] [ 7 0 5 6 5 6 0 0 0 0 0 8 ] [ 8 0 0 0 0 0 0 0 0 0 0 7 ] [ 8 7 8 7 8 7 8 7 8 7 8 7 ] ] ctable: [] for a 0 (359 + 180) 1 [ append ctable to-integer (((cosine a ) * 1024) / 10) ] palette: [ 0.0.128 0.128.0 0.128.128 0.0.128 128.0.128 128.128.0 192.192.192 128.128.128 0.0.255 0.255.0 255.255.0 0.0.255 255.0.255 0.255.255 255.255.255 ] get-angle: func [ v ] [ pick ctable (v + 1) ] refresh-display: does [ retrace show display ] ecran: layout [ backtile coal ; %marbre.jpg display: box 360x200 effect [ gradient 0x1 0.0.0 128.128.128 draw [] ] edge [ size: 1x1 color: 255.255.255 ] ] retrace: does [ clear display/effect/draw xy1: xy2: 0x0 angle: remainder (heading - 44) 360 if angle < 0 [ angle: angle + 360 ] for a angle (angle + 89) 1 [ xx: px yy: py stepx: get-angle a + 90 stepy: get-angle a l: 0 until [ xx: xx - stepx yy: yy - stepy l: l + 1 colonne: make integer! (xx / 1024) ligne: make integer! (yy / 1024) laby/:ligne/:colonne <> 0 ] h: make integer! (900 / l) xy1/y: 100 - h xy2/y: 100 + h xy2/x: xy1/x + 3 color: pick palette laby/:ligne/:colonne append display/effect/draw reduce [ 'pen color 'fill-pen color 'box xy1 xy2 ] xy1/x: xy2/x + 1 ] ] bouge-perso: function [ /recule ] [ mul ] [ either recule [ mul: -1 ] [ mul: 1 ] newpx: px - ((get-angle (heading + 90)) * stride * mul) newpy: py - ((get-angle heading) * stride * mul) c: make integer! (newpx / 1024) l: make integer! (newpy / 1024) if laby/:l/:c = 0 [ px: newpx py: newpy refresh-display ] ] evt-key: function [ f event ] [] [ if (event/type = 'key) [ switch event/key [ up [ bouge-perso ] down [ bouge-perso/recule ] left [ heading: remainder (heading + (360 - turn)) 360 refresh-display ] right [ heading: remainder (heading + turn) 360 refresh-display ] ] ] event ] insert-event-func :evt-key refresh-display view/title ecran join "Raycaster " system/script/header/version Et j'envoie le reste à karim pour qu'il le mette sur RebolFrance. ===Philippe | |
Goldevil | 20-Aug-2007/23:07:58+2:00 |
Voili voilà, c'est sur le portail. Mais je suppose qu'il faudra l'intégré à Rebol Documentation Project. Pour revenir à la 3D, il y a moyen, avec rebol pro, d'accéder à des librairies dll et de faire de la 3D par ce biais. Sur rebol.org, il y a un ancien script qui affiche un cube en 3D avec le logo rebol mappé sur chaque face. Mais on touche là à l'une des faiblesses de Rebol 2.x car le script est énorme rien qu'à cause du code lié à l'interfacage de la librairie. | |
Philippe | 21-Aug-2007/8:47:32+2:00 |
Salut, Vu récemment sur Altme/Announce : le lien vers le site de PhilB Draw a surface with 3-D Perspective and allow rotation - http://peoplecards.ca/rebol/philb/utils/3D-surface.r and in the Rebol Library ===Philippe | |
shadwolf | 6-Nov-2007/3:06:52+1:00 |
il ya eu un concours de développement l'année derniere (le but étant de faire des programmes de démo a base de view) un développeur un peu barré a faire une somptueuse librairie 3D basée sur rebol/view nomé r3d (hélas 3 fois hélas le lien vers se projet que j'avais poster dans l'ancienne version du forum a été perdu. Mais bonne nouvelle je dois quand meme l'avoir dans ma base perso de logiciel REBOL ^^) | |
shadwolf | 6-Nov-2007/3:10+1:00 |
Ha ba non autant pour moi le post existe toujours (joie intense dans mon coeur) Voici le lien en esperant que ca t'inspira plein plein de ligne de codes ^^ http://www.digicamsoft.com/cgi-bin/rebelBB.cgi?thread=%3C10Nov2006195609284263100%3E | |
guest2 | 6-Nov-2007/15:00:50+1:00 |
J'ai regardé le source i-rebot et y'a pas mal d'optimisations possibles concernant le manière de mener les calculs (abus de append et de parenthèses). En fait, on aurait des fonctions de calcul matriciel sur les blocks en natif, on pourrait probablement faire des trucs très très rapides. Mais déjà rien qu'avec Rebcode, ça pourrait aller très vite. | |
Login required to Post. |