Rebol presque en 3D !?
RebolEric15-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 )
guest216-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...
Philippe17-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
Goldevil20-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.
Philippe21-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
shadwolf6-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 ^^)
shadwolf6-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
guest26-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.


Powered by RebelBB and REBOL 2.7.8.4.2