Realmente, a única maneira de ter todos os recursos é implementar várias interfaces. Acessível e poderoso são frequentemente duas extremidades de um espectro. A maneira mais fácil de fazer isso é implementar um sistema poderoso, que possui uma interface adicional para permitir que iniciantes interajam com o sistema de maneira intuitiva.
Permitindo um sistema que permita que os iniciantes programem visualmente, talvez algo semelhante às ferramentas de programação Lego Mindstorms :
Onde existem componentes de arrastar / soltar. Os componentes têm entradas e saídas. Os componentes podem ser simples AND
, como OR
portões, ou mais complexos, como um teste para inimigos próximos.
Idealmente, a representação visual deve compilar um script de linguagem escrita em segundo plano.Isso oferece uma ferramenta poderosa para aprender o idioma também. Se um iniciante pode "escrever" visualmente seu programa, então leia o código que produz, é muito mais provável que o entenda e possa modificar o código produzido. Eventualmente, conseguir escrever código mais poderoso do que as ferramentas visuais por si só permitem. Isso cumpre o requisito de facilitar a programação dos usuários.
A espinha dorsal do sistema, é claro, é uma linguagem escrita. As ferramentas visuais são apenas para fornecer aos usuários uma rápida maneira de programar algo simples e permitir que iniciantes iniciem.
A linguagem escrita permite que usuários avançados façam coisas avançadas. E você pode até permitir que os usuários criem seus próprios componentes, criando scripts personalizados. Em seguida, eles podem reutilizar os componentes criados em uma interface rápida e fácil para uma programação rápida.
Boa sorte! Soa como um projeto divertido.