No. Al menos, probablemente no.
Este es un caso muy frecuente de reinventar la rueda en el desarrollo del juego, un error que todavía es bastante popular.
Si haces esta pregunta, es muy probable que te influya lo que otros hacen, así que mira lo que Epic Games acaba de hacer con Unreal Engine:
- UE3 tenía un elemento UnrealScript personalizado, extraño, no optimizado y difícil de depurar,
- Si el rumor es cierto, su soporte se está eliminando en UE4 , a favor de las DLL de C ++ recargables en caliente.
¿Crees que puedes hacerlo mejor que Epic?
La creación de lenguajes de programación pertenece a los creadores de lenguajes de programación , no a los ingenieros de juegos.
Se necesitan años y años para que un lenguaje se vuelva completamente maduro, y su conjunto de herramientas que lo acompaña (compilador, enlazador, intérprete, depurador ...) se puede usar. Hoy en día tienes muchas soluciones disponibles a mano, así que no hay absolutamente ninguna razón real para comenzar algo nuevo desde cero, al menos no si el objetivo es simplemente hacer un juego. Período.
Para responder a sus preguntas secundarias, no, por estas mismas razones, nunca he implementado mi propio lenguaje de secuencias de comandos. Pero he sufrido mucho con algunos a medio hornear. Debido a que se crearon con una característica muy limitada en mente, siempre tuvieron estas pequeñas peculiaridades que te vuelven loco. A menudo, pasarás muchísimo tiempo intentando evitar las limitaciones del idioma en lugar de solo crear tu juego.
Si la razón por la que desea crear un lenguaje es porque está destinado a ser utilizado por personas que no conocen muy bien la programación, o si cree que lo necesita porque quiere algo muy específico de dominio, déjeme decirle que estos también malas razones Puede escribir una API de muy alto nivel con funciones que do_what_they_say_and_say_what_they_do()
, y un código repetitivo muy simple que expone su uso básico. Sus usuarios no tan técnicos estarán encantados de aprender un poco de programación, y usted estará encantado de no estar limitado por algún lenguaje mal implementado.
Entonces, como esto puede sonar un poco brusco o incluso duro, diré que hay un caso en el que podría tener sentido: si quieres aprender cómo se hace un lenguaje de secuencias de comandos. Pero por favor, por favor, si lo haces: no obligues a otros a usarlo.
Editar
Acabo de echar un vistazo a la lista de comandos de Cave Story que has vinculado. Ay:
<ECJx:y [EC?] Jump @ Jump to event Y if any npc with ID X is present
No quiero mostrar falta de respeto al desarrollador detrás de Cave Story, pero este es un ejemplo perfecto de una simple lista de comandos que muta en un lenguaje de script personalizado incontrolable. Esto podría seguir siendo útil para un desarrollador único o un equipo muy pequeño, pero en esta etapa le aconsejo que cambie a un lenguaje Turing completo y bien probado (por ejemplo, Lua), donde podría hacer:
if (npc.id == x) then
jump_to_event(y)
end
Esto facilitará mucho las cosas cuando, por ejemplo, necesite una condición más compleja:
if (npc.id == x) or (npc.type == "enemy") then
jump_to_event(y)
end