Actualmente estoy trabajando en un juego sandbox basado en el espacio que contará con la capacidad de programar sus sistemas a medida. Quiero implementar esto de una manera que sea a la vez
- accesible,
- Potente (un mínimo sería la integridad de Turing)
- rápido para codificar.
Los lenguajes basados en texto generalmente solo satisfacen los dos últimos requisitos, y si bien no es difícil diseñar un lenguaje visual que satisfaga los dos primeros, los lenguajes visuales son difíciles de programar debido a que requieren un uso extensivo del mouse. Si bien hay algunos lenguajes basados en texto muy accesibles, quiero que los no programadores completos puedan facilitarse en la programación.
game-design
software-engineering
Dimitriye98
fuente
fuente
Respuestas:
Realmente, la única forma de tener todas las características es implementar múltiples interfaces. Accesible y poderoso son a menudo dos extremos de un espectro. La forma más fácil de hacer esto es implementar un sistema potente, que tenga una interfaz adicional para permitir a los principiantes interactuar con el sistema de manera intuitiva.
Permitir un sistema que permita a los principiantes programar visualmente, quizás algo similar a las herramientas de programación de Lego Mindstorms :
Donde hay componentes de arrastrar / soltar. Los componentes tienen entradas y salidas. Los componentes pueden ser cosas simples como
AND
, oOR
puertas, o más complejas como una prueba para enemigos cercanos.Idealmente, la representación visual debería estar compilando un script de lenguaje escrito en segundo plano. Esto ofrece una herramienta poderosa para aprender el idioma también. Si un principiante puede "escribir" su programa visualmente, luego leer el código que produce, es mucho más probable que lo entiendan y puedan modificar el código producido. Eventualmente, ser capaz de escribir código más poderoso que lo que permiten las herramientas visuales. Esto cumple el requisito de facilitar a los usuarios la programación.
La columna vertebral del sistema, por supuesto, es un lenguaje escrito. Las herramientas visuales son solo para brindar a los usuarios una forma rápida de programar algo simple y permitir que los principiantes comiencen.
El lenguaje escrito permite a los usuarios avanzados hacer cosas avanzadas. E incluso puede permitir a los usuarios crear sus propios componentes, creando scripts personalizados. Luego pueden reutilizar los componentes que hicieron en una interfaz rápida y fácil para una programación rápida.
¡Buena suerte! Suena como un proyecto divertido.
fuente
Es posible que desee echar un vistazo a Google de manera bloqueada , ya que combinan los elementos visuales con términos de programación reconocibles y mantienen un nivel de accesibilidad bastante decente.
Puede echar un vistazo a la demostración de Maze en busca de inspiración, muchos de mis amigos no programadores fueron capaces de completar la mayor parte de los acertijos usándola, satisfaciendo al menos algunos de sus criterios vigentes.
fuente
Me sorprende que esto no se haya mencionado antes, pero Scratch del MIT utiliza una interfaz de bloque que es rápida de codificar. Permite a los usuarios crear sus propias funciones y puede volverse sorprendentemente complejo para un lenguaje creado para enseñar a los niños cómo código.
Stencyl es otro ejemplo de codificación de bloque que hace algo más similar a lo que quieres. La codificación con bloques como estos es mucho más eficiente y requiere menos tiempo que las interfaces de programación visual como las utilizadas por Lego NXT. Stencyl permite a los usuarios codificar en Actionscript o en bloques.
Pido disculpas por la falta de imágenes, todavía no tengo suficiente reputación para publicar imágenes.
fuente
El lenguaje de programación BPEL tiene representación visual y muchas herramientas que funcionan con él. Es un lenguaje de flujo de trabajo, no un lenguaje de programación, pero está completo. Es detallado, pero es fácil de escribir tanto para programadores como para empresarios y es fácilmente traducible de forma visual a textual. No creo que sea un buen lenguaje de juego, pero puede servir como fuente de inspiración. Y dada la cantidad de motores y herramientas BPEL, debería ser posible reutilizar algunas ideas y / o códigos.
El lenguaje similar a BPEL no se sentirá como programación, más como enrutamiento y conexión de sistemas. Por lo tanto, puede tener un sistema de orientación conectado a un sistema de armas con cierta lógica en el medio.
fuente
Considere este enfoque:
Esa es la forma más rápida en la que puedo pensar para obtener todos los dulces sin demasiado dolor. Obtienes los noobs click'n'drag y los vim-geeks a bordo. Y si mantiene la mecánica simple (por ejemplo, Trigger -> Condición -> Acción), entonces no tiene que gastar muchos años en desarrollar una interfaz de usuario para un editor de script gráfico potente y aún fácil de usar.
Algunos ejemplos para aclarar lo que quiero decir:
fuente