Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Motor Script Para Un Juego

Iniciado por [EX3], 01 de Junio de 2004, 11:36:10 PM

« anterior - próximo »

[EX3]

 Wenas, resulta que estoy programando la parte flexible de mi engine, el motor de scripts y me ha surgido una duda que puede costarme cara en un futuro, la cuestion es, me programo yo el motor de script a pelo o utilizo un motor ya existente?

Estoy programando en VB y mis dudas vienen a que en un principio estaba utilizando el Microsoft Script Control que me da soporte de scripts con sintaxis de Visual Basic Script (VB pero mas simplificado en cuanto a funciones) y la posibilidad de extender sus funciones con las mias pero eso me seria un problema si algun dia me decidiese a portar mi engine a C++ y puestos ya a otras plataformas. Fuera de Windows el M$ Script Control no me vale para nada por ke no tiene soporte y eso ya obiga al programa a estancarse en Windows cosa ke no me interesa  :(

Por otro lado me plantee programar yo un motor de scripts con una sintaxis sencilla, de esta manera, si tuviese ke portar el codigo a otras plataformas no me seria mucho problema, pero claro, estoy programando en VB y me da ke no va a ser muy optimo ke digamos para el rendimiento del engine por el bajo rendimiento de este lenguaje, vamos, no se, a lo mejor si, pero ahi esta la duda.

Yo realmente preferiria hacerme yo el motor script ya ke como experiencia para otras ocasiones me vendria de perlas pero si no es optimo para el rendimiento no me interesa nada. Hace tiempo estuve preguntando si LUA es soportado por VB pero parece ser ke nadie contesto. De ser asi ya seria una solucion a plantearse.

Me gustaria saber vuestra opinion al respecto, a ver si alguno se le ocurre alguna solucion al respecto o me cuenta alguna experiencia ke haya tenido con el tema de implementar scripts en sus juegos.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

rrc2soft

 En mi opinion, depende del tiempo que tengas para hacer el juego y de los requerimientos que le quieras meter al script.

Hacer un lenguaje script por tu cuenta es una experiencia sumamente agradable  :) , pero consume bastante tiempo y esfuerzo echarlo a andar. Si en un futuro vas a utilizar ese lenguaje de script en otros proyectos, entonces mereceria la pena - pero si solo lo vas a utilizar en un juego todo el tiempo que dediques a hacer tu propio script es tiempo perdido en hacer el juego. Y cuanto mas requerimientos quieras meter al script (p. ej. manejo de clases), mas tiempo tendras que estar con el.  Resumiendo: Si tienes tiempo y no lo necesitas muy complejo hazlo tu mismo. Si no, cogelo de otro sitio.

Sobre portabilidad... en ese caso lo suyo (si no quieres rehacer tu script cuando lo vayas a portar a C++/otro lenguaje) seria usar un lenguaje de script ya asentado como LUA o PYTHON, ya que pueden utilizarse en varias plataformas.

A la hora de elegir que lenguaje script vas a utilizar, tienes que tener en cuenta si vas a hacer ejecucion paralela de los scripts. Me explico: En mi juego, cada pnj ejecuta un horario (en plan ultima VII), y ese horario es una rutina script. Eso significa que cada ciclo tengo que ejecutar _una sola instruccion_ de cada rutina script para que los pnjs cumplan sus horarios en paralelo en tiempo real (sin comerse mucho tiempo de CPU por ciclo). Si en tu juego vas a hacer algo parecido, mira si los scripts que quieres utilizar permiten eso o si el script es open source (ayuda a modificarlo ;) )

Mi experiencia en el tema: Hice un lenguaje de script bastante sencillo (procedimientos/funciones como "cuerpo" del engine, todas las estructuras basicas menos el "case/switch") para la version 3 de mi engine RPG, y la verdad, con ese lenguaje todo iba bastante bien. Eso si, pase un verano entero codificandolo - aunque no tenia alternativa, ya que por aquel tiempo (1999) no existian para Pascal. Luego, cuando reescribi el engine, encontre un lenguaje script para pascal, open source, lo cual me vino de perlas ya que a) era mas potente que el mio y B) al ser open source podia modificarlo para que funcionase instruccion por instruccion. Y con el estoy ahora mismo. Y sobre portabilidad, pues miel sobre hojuelas :) , ya que FreePascal + SDL me permiten compilar para windows, linux, FreeBSD y (parece que esta tirando palante...) MacOS X. Pascal rulez!

Otra experiencia... te redirijo a CRISOLScript, Obra de Fer como parte de CRISOLEngine. Esta en C++ y completamente documentado. Tambien puedes preguntarle a el directamente sobre su experiencia.

Sobre LUA y VB... puedes preguntar en el foro de GameDev.net dedicado a scripts, he buscado y esa pregunta nadie la ha hecho.

PD: [EX3], trata de llevar palante el juego, que me gusto la descripcion que hiciste ;) .  Y como lo vas a plantear? rol, aventura? turnos, tiempo real? orientado a la accion (mas japo), orientado "conversacion"?
Edit: Rol/Aventura en tiempo real (viendolo en tu pagina)... nene guta.

Javi SJ Cervera

 A mí el Lua me da un  poco de tirria, la verdad. Como lenguajes de script yo te aconsejaría GameMonkey ( http://www.somedude.net/gamemonkey/ ), AngelScript ( http://www.angelcode.com/angelscript ) o Small ( http://www.compuphase.com/small.htm ).
== Jedive ==

[EX3]

 Como ya dije hacerme yo mi propio script seria genial, pero viene el tema de rendimiento, ke en VB eso algo ke se valora mucho mas ke en otros lenguajes, y luego tb temas de ke no sabria como implementar ciertas caracteristicas como por ejemplo dotar de soporte de arrays multidimensionales al script y demas cosas necesarias segun mi punto de vista. Por tiempo tener tengo todo el tiempo del mundo para dedicarme con ello.

No se, pero creo ke me veo apañando M$ Script Control para el motor y asi encasillarlo desgraciadamente en Windows y aun asi no seria una solucion totalmente eficiente, pero mejor ke nada...  :(

Mirare en los foros de gamedev y segure pateando los incontables caminos del Google, a ver si doi con alguna solucion favoriable y acabo usando LUA  :)

Citar[EX3], trata de llevar palante el juego, que me gusto la descripcion que hiciste  ;)
Despues de 4 años peleando por llevar el proyecto adelante no creo ke tire la toalla ahora ke es cuando empieza lo weno jeje

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Javi SJ Cervera

 oops igual te has saltado mi mensaje, que veo que lo hemos posteado al tiempo :)
== Jedive ==

[EX3]

 No si me di cuenta, Jedive xDD pero he preferido echar un ojo antes a tus links para ver ke tal. El problema de esos scripts es ke no veo por ningun lado ke tengan soporte para VB (casi ninguno ke conozca lo tiene) u otros lenguajes, pero estan muy interesantes, asi mas opciones para C++ aparte de LUA.

Dije de usar LUA por ke estoy escuchando muy buenas opiniones de el y veo ke esta muy extendido para varios lenguajes y como no, menos para VB por lo ke parece.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Jove Chiere

 [EX3], echale un ojo a Inopia, funciona todo bajo LUA y va bastante bien... Es todo OpenSource para que le eches un ojo.

http://www.netlands-project.net/inopia/
Los grafosyakuza recomiendan Wings3D - Entra en GIMOVJ  y aprende a modelar.

[EX3]

 Esta muy interesante pero sigue sin serme muy util ya ke no puedo implementar LUA en VB por el momento pero gracias por el link, esta curioso el engine  :)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

seryu

 lua esta bien, aunqe si vienes de C y vas a scriptear tu, gamemonkey sin pensarlo. de calle.

pd. antes de qe llegue ethernet, phyton es otro grande, yo personalmente no lo uso, pero es todo un mundo. como java pero en script y mas decente.

[EX3]

 Sabia ke tenia ke haber algo asi por algun lado, lo sabia! He encontrado una web donde han desarrollado una dll que engloba todas las funciones LUA para poder dar soporte a lenguajes como Delphi o VB.

Voy a echarle un ojo a ver ke tal esta el tema  :)

http://zerbe.homeunix.net/edelua.htm

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.