Mi amigo y yo estamos en las primeras etapas de crear un lenguaje específico de dominio diseñado para la programación de juegos, para su trabajo de tesis.¿Qué características te gustaría ver en un juego de programación de DSL?
El lenguaje tendrá un nivel bastante bajo, tendrá una sintaxis tipo C, recolección de basura opcional, y estará orientado a sistemas que tienen poca memoria o capacidad de procesamiento (es decir, Nintendo DS), pero debe ser potente lo suficiente para facilitar el desarrollo de PC con facilidad. No será un lenguaje de scripting, sino uno compilado, pero como no queremos pasar meses escribiendo un compilador normal, la primera implementación será básicamente un traductor de LanguageName-to-C, con TCC o GCC como el compilador final
Ahora, tengo una pregunta para todos ustedes, los programadores de juegos por ahí:
¿Qué le gustaría ver en un lenguaje? ¿Qué características, implementación y sintaxis, serían las mejores para ello? ¿Que evitar?
Editar:
Algunas cosas que ya inventado:
- objetos basados en el estado - Un objeto puede existir en uno de sus propios estados (o sub-estados)
- eventos y funciones - los eventos no tienen que existir para ser llamados, y pueden aparecer
- asignación dinámica limitada y compatibilidad con puntero - queremos que sea lo más seguro posible
- soporte para compilación de objetos ng (Hero está compuesto (dinámicamente) de Actor, Hurtable, Dirigible, etc.)
- "recursos" en estados, cargados y descargados automáticamente al comienzo/final del estado (por ejemplo, un objeto de textura OpenGL es un recurso)
- soporte básico para la localización y la serialización
- una sintaxis que es apta para su procesamiento rápido
- queremos hacer que el lenguaje lo más consistente posible: todo lo que se pasa como valor, cada declaración tiene una sintaxis predecible (por ejemplo.
function retType name(type arg) is (qualifier, list) { }
; sinconst
,static
,public
calificadores en cualquier lugar excepto en la lista de clasificación, etc.)
Clojure tiene muchas características que admiro, especialmente en el frente de Programación Funcional. Podría hacer una buena cosa desde la cuna. – Kzqai