2009-03-12 34 views
5

Estoy buscando diseñar un lenguaje de secuencias de comandos para juegos y me preguntaba qué personas empleadas en la industria de los juegos consideraban elementos/propiedades esenciales para un buen lenguaje de scripting. Esto incluye cosas como:¿Qué características de lenguaje son necesarias para las secuencias de comandos del juego?

  • estática vs tipos dinámicos
  • Quién ha de estar dirigida a: programadores o diseñadores?
  • sintaxis (debe tener el aspecto de C?)
  • ¿Qué tan alto debe ser? (C vs Lisp por ejemplo - o imperativo frente a funcional)
  • ¿Qué debe poder hacer? ¿Qué tan rápido debe ser ?

También, he escuchado de algunas fuentes que los guiones tienden a ser muy simples ya que están escritos por diseñadores más que por programadores. ¿Es este el caso?

Respuesta

7

¿Qué le parece buscar en los lenguajes que se usan en scripts en juegos como Python y Lua para tener algunas ideas?

Tanto pasar a ser de tipo dinámico, y en términos de sintaxis, Python no es muy parecido a C, y Lua no es muy similar a C.

Probablemente, la razón por la que se utilizan las secuencias de comandos del juego es la facilidad de incrustar el lenguaje como un motor de scripting, en todo caso. Si el lenguaje debe diseñarse teniendo en cuenta a los diseñadores, quizás los requisitos del idioma deban cambiarse para adaptarse a las necesidades de los diseñadores, en lugar de tener un lenguaje que se integre más fácilmente en un juego.

1

Mi lenguaje de scripting del juego ideal tendría una sintaxis similar a Python y podría incrustarse en otros idiomas tan fácilmente como LUA.
Además, debe poder integrarse dentro de XNA, que actualmente (y probablemente siempre) carecerá de las características de reflexión de las que dependen LuaInterface y IronPython incrustado.

3

Parece que hace una pregunta muy general (si no sabe qué debe hacer el lenguaje de scripting, o qué tan rápido debe ser) y espera respuestas específicas.

La razón principal para un lenguaje de scripting es permitir a las personas cambiar el juego sin hackear el código fuente. Vámonos con eso.

Por lo tanto, debe estar dirigido más a los diseñadores, ya que no van a piratear el código fuente, y los programadores lo harán. Debe ser lo suficientemente rápido como para ejecutar el juego correctamente. Tiene que ser lo suficientemente potente como para que los diseñadores puedan poner lo que van a poner. (Sí, estas son respuestas vagas, pero no se proporciona suficiente información para ser más específico.)

So , olvídese de las características que serían de utilidad principalmente para programadores, como cualquier modelo de sintaxis particular o tipeo estático. Los diseñadores no se dejan engañar por la sintaxis C, y no quieren preocuparse por el tipado estático o la administración de la memoria.

El uso de un lenguaje ya establecido presenta algunas ventajas reales. Los diseñadores pueden tener alguna experiencia con eso, ya está documentado, y ya se han hecho muchas cosas difíciles para usted. Esto incluye el diseño del lenguaje: los programadores no son necesariamente buenos para ver lo que es bueno acerca de un lenguaje de scripting.

Esto sugiere algo así como Lua o Python.

+0

Estoy totalmente de acuerdo con esto: no hay ni puede haber una respuesta "correcta" para lo que el scripting debe hacer, ya que depende de la aplicación y del equipo. – Kylotan

1

Depende en parte de qué departamento hará la mayoría de las secuencias de comandos. Si los diseñadores de niveles, por ejemplo, están haciendo una gran parte de las secuencias de comandos, entonces el mejor tipo de lenguaje sería algo más cercano al lenguaje natural que no requiera una curva de aprendizaje abrupta. Un diseñador de niveles no necesariamente quiere aprender sintaxis compleja como C/C++ solo para reproducir un sonido.

Un lenguaje seudo podría tener este aspecto (TES Construction Set scripting es así):

script MagicCaveDoorScript 
    on UseAction 
     if HasItem magicDoorKey 
      PlaySound2D magicDoorOpen 
      ChangeArea magicCave01 
     else 
      Message "You need the magic door key to enter..." 
     end 
    end 
end 

Pero si los programadores son los que hacen una gran cantidad de las secuencias de comandos entonces su probablemente más flexible y potente de usar un lenguaje más complejo como Lua o Squirrel con clases, objetos y demás.

Un buen aspecto de crear un lenguaje de script "más simple" es que la implementación no es tan compleja como los lenguajes más difíciles y también le permite desarrollar herramientas para crear scripts a través de una GUI, como elegir una lista de sonidos para reproducir, una lista de elementos monstruosos para adjuntar, etc.

Cuestiones relacionadas