Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Utilidad del Scripting

Iniciado por fiknius, 28 de Septiembre de 2009, 02:20:40 PM

« anterior - próximo »

fiknius

Hola a todos,

Llevo tiempo leyendo por los Foros que la gente usa lenguajes de Scripts en sus videojuegos y no entiendo muy bien para que. Yo he usado Javascript en paginas web, incluso scripts de SQL pero no se me ocurre la utilidad en los videojuegos, supongo que no tendran nada que ver.
¿Podria alguien darme una pequeña explicacion o ejemplo de para que se usan?

Gracias y un saludo.

[EX3]

Para que se suelen usar? Generalmente para poder reprogramar o ampliar funcionalidades del juego o el propio motor sin tener que reprogramar ni recompilar todo los binarios. Por ejemplo, se suelen usar en muchos juegos para definir la logica de algunas entidades o eventos en niveles. Puedes usarlos tambien para definir propiedades o añadir rutinas a player por ejemplo, usando la misma base de la entidad en el motor cambiar su logica o manejo. Las posibilidades pueden muchas, incluidas para desarrollar herramientas que conecten con el motor y poder realizar acciones que no estaban planteadas desde un inicio.

Seguramente se pase alguien mas curtido en el tema y te sepa exponer ejemplos o experiencias en proyectos propios. Lo dicho arriba por mi es mas lo visto en motores como Half-Life y similares y tambien los usos que implementaria en mi propio motor o juego.

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

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

fiknius

Pero eso tambien puedes conseguirlo con un fichero de configuracion de nivel por ejemplo, donde posiciones las entidades y le asignes algun tipo de funcionalida que hayas programado en el motor ¿no?.

Ademas supongo que tendras que integrar en tu motor un interprete de ese lenguaje de Script para que traduzca esas ordenes a las funciones creadas por ti en el motor. Quiza es esta parte la que no llego a entender del todo.

Hasta que no vea un ejemplo practico de su aplicacion, creo que no me voy a hacer a la idea  :P .
Gracias EX3.

[EX3]

Cita de: fiknius en 28 de Septiembre de 2009, 04:21:55 PM
Pero eso tambien puedes conseguirlo con un fichero de configuracion de nivel por ejemplo, donde posiciones las entidades y le asignes algun tipo de funcionalida que hayas programado en el motor ¿no?.
Pero ya estas limitado a esas funcionalidades que tenga el motor, si quieres hacer algo fuera de eso ya tendrias que programarlo y volver a compilar todo el binario.

Cita de: fiknius en 28 de Septiembre de 2009, 04:21:55 PM
Ademas supongo que tendras que integrar en tu motor un interprete de ese lenguaje de Script para que traduzca esas ordenes a las funciones creadas por ti en el motor. Quiza es esta parte la que no llego a entender del todo.
Aqui suele haber motores de scripting desarrollados y muy optimizados. El que parece ser mas popular suele ser LUA, sintaxis practicamente igual a la de C++ y muy agil y ligero al ejecutar los scripts. El asunto es que tu defines enlaces entre funciones de tu motor y el interprete script, de forma que puedas llamarlas desde el script.

Cita de: fiknius en 28 de Septiembre de 2009, 04:21:55 PM
Hasta que no vea un ejemplo practico de su aplicacion, creo que no me voy a hacer a la idea  :P .
Suponte el ejemplo de juegos comerciales como Half-Life o Unreal Tournament. El Unreal Engine por ejemplo implementa su propio lenguaje de programacion basado en C++ llamado Unreal Script. De lo mas potente y flexible hasta la fecha. Esto permite que usando el mismo motor del Unreal Tournament 3 mediante programacion de logica (eventos, controles del jugador, rutinas de juego en cooperativo, implementacion de la camara, comportamiento de la IA, diseño de la interfaz/menus/HUD, etc...) via UScript se puedan hacer juegos como Gears Of War, Bioshock o Mirror's Edge o incluso, como los propios creadores del UE demostraron, coger un juego como el Gears of War tal cual y en una tarde convertirlo en un juego de golf con unas pocas modificaciones del codigo del script del juego. Piensa tambien que muchas veces esto te permite modificar codigo en tiempo de ejecucion de ciertos modulos que compongan el juego, lo que, al desarrollar ciertos modulos te permite probar, diseñar, mejorar o ampliar en tiempo de ejecucion, con lo cual ganas en tiempo que si tuvieras que parar la ejecucion, modificar codigo, compilar y volver a ejecutar hasta el punto de prueba. Piensa que esto del scripting es como desarrollar modulos o plugins para una aplicacion, se trata de dejar una puerta abierta en un programa cerrado para poder ampliar o modificar funcionalidades y comportamientos en caso de necesitarse. El si es una ventaja o no, util o no, practico o no, depende del proyecto y del programador.

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

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

fiknius

Creo que me voy haciendo una idea, joer y yo que no le daba mucho importancia al tema y permite una flexibilidad en el motor bestial jejeje...
Muchas gracias por iluminarme, pero creo que para mi proyecto, de momento, con unos ficheros de configuracion bien estructuraditos sera suficiente  :D

Saludos.

fjfnaranjo

Offtopic: Joder EX3, me gustaría ponerte una estrellita de esas de GMail por lo clara que ha sido la explicación :P
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

[EX3]

Cita de: fjfnaranjo en 28 de Septiembre de 2009, 09:20:06 PM
Offtopic: Joder EX3, me gustaría ponerte una estrellita de esas de GMail por lo clara que ha sido la explicación :P
No preguntes por que pero ultimamente tiendo a entender como ironia comentarios como este, ¿tan mal me he explicado en el post anterior? xDDDDDDDDDDDDDDDD

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

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

Pogacha

#7
OJO que el scripting tiene un costo tambien y no sirve para todo.
Es una herramienta y solo sirve bien aplicada, piensa lo complicado que es pintar con un martillo :)
Tan solo queria agregar eso, nosotros aun no lo hemos implementado y recien para el proximo desarrollo tenemos pensado hacerlo.
Saludos

[EX3]

Cierto, me enrolle en todo lo referente a las posibilidades que ofrece este camino y se me olvido hablar del coste de proceso en ejecucion, gran fallo por mi parte  ^_^'

Todavia recuerdo una de las primerisimas versiones de mi proyecto, aquella que se componia principalmente del interprete de scripts para practicamente toda la programacion del juego y anda que no se notaba la perdida de rendimiento en comparacion a programarlo directamente en codigo (sumandole que era Visual Basic 6.0 y un interprete de VBScript pues apaga y vamonos :P).

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

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

fiknius

EX3 no se te ha ocurrido, tu que eres moderador, abrir una especie de hilo o lo que sea, en el cual se vayan explicando todo este tipo de cositas y para que se utilizan.
Seguro que para los que teneis el culo pelao en el tema os parece absurdo, pero para los que cada vez nos vamos metiendo mas nos viene muy bien saber lo que es un Shader y para que se utiliza, o lo que es el Clipping, o BackFaceCulling o cualquiera de estas palabrejas que podemos ver continuamente en cualquier manual y que a los que empezamos nos suenan a chino.
Ademas cada uno puede aportar su experiencia respecto a la tecnica que se explique en cada momento y seguro que descubrimos aplicaciones nuevas e interesantes.

Ahí dejo eso jejeje...
Saludos.

fjfnaranjo

Cita de: fiknius en 29 de Septiembre de 2009, 10:45:19 AM
EX3 no se te ha ocurrido, tu que eres moderador, abrir una especie de hilo o lo que sea...

Se supone que tenemos un wiki, y tal.

Pero es que pocos tenemos tiempo para dedicarnos a rellenarlo  :P

De todas formas, mientras no preguntes cosas obvias o que se puedan buscar en 1 minuto en Google aquí siempre te vamos a responder si lo sabemos. Y siempre está la función buscar del foro...
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

[EX3]

Como te ha comentado fjfnaranjo, en la practica el foro cuenta con un Wiki, enlace que encontraras en el menu superior, que vendria de lujo para hacer un glosario de terminos como dices. El asunto es que la gente se moje y se anime a meter entradas para crearlo pero la verdad es que estamos muy perros o nos falta tiempo para ponernos al tema.

Haz una cosa, abre un tema nuevo en el foro general y haz la propuesta, a ver que le parece al resto del personal, quizas alguno se anime :)

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

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

fiknius







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.