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
, o OR
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.