Atualmente, estou trabalhando em um jogo sandbox baseado em espaço, que contará com a capacidade de programar seus sistemas de maneira personalizada. Eu quero implementar isso de uma maneira que seja ao mesmo tempo
- acessível,
- poderoso (o mínimo necessário seria a perfeição)
- rápido para codificar.
As linguagens baseadas em texto geralmente atendem apenas aos dois últimos requisitos e, embora não seja difícil projetar uma linguagem visual que satisfaça os dois primeiros, as linguagens visuais são difíceis de programar devido à necessidade de uso extensivo do mouse. Embora existam algumas linguagens baseadas em texto muito acessíveis, quero que não programadores completos possam facilitar a programação.
game-design
software-engineering
Dimitriye98
fonte
fonte
Respostas:
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
, comoOR
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.
fonte
Você pode querer dar uma olhada no bloco do Google , eles combinam os elementos visuais com termos de programação reconhecíveis, mantendo um nível de acessibilidade bastante decente.
Você pode dar uma olhada na demonstração do Maze para se inspirar, muitos dos meus amigos não programadores foram capazes de percorrer a maior parte dos quebra-cabeças usando-a, satisfazendo pelo menos alguns dos seus critérios em vigor.
fonte
Estou surpreso que isso não tenha sido mencionado antes, mas o Scratch do MIT usa uma interface de bloco que é rápida para codificar. Permite que os usuários criem suas próprias funções e podem se tornar surpreendentemente complexos para uma linguagem criada para ensinar às crianças como código.
Stencyl é outro exemplo de código de bloco que faz algo mais parecido com o que você deseja. Codificar com blocos como esses é muito mais eficiente e consome menos tempo do que as interfaces de programação visual como as usadas pelo Lego NXT. O Stencyl permite que os usuários codifiquem o Actionscript ou os blocos.
Peço desculpas pela falta de fotos, ainda não tenho reputação suficiente para postar imagens.
fonte
A linguagem de programação BPEL possui representação visual e muitas ferramentas que trabalham com ela. É uma linguagem de fluxo de trabalho, não uma linguagem de programação, mas está completa. É detalhado, mas é fácil escrever para programadores e pessoas de negócios e é facilmente traduzível da forma visual para a textual. Eu não acho que seria uma boa linguagem de jogo, mas pode servir como fonte de inspiração. E, dada a quantidade de ferramentas e mecanismos BPEL, deve ser possível reutilizar algumas idéias e / ou código.
A linguagem do tipo BPEL não se parece com programação, mais como roteamento e conexão de sistemas. Assim, você pode ter um sistema de mira conectado a um sistema de armas com alguma lógica no meio.
fonte
Considere esta abordagem:
Essa é a maneira mais rápida em que consigo pensar em obter todos os doces sem muita dor. Você recebe os noobs click'n'drag e os vim-geeks a bordo. E se você mantiver a mecânica simples (por exemplo, Trigger -> Condition -> Action), não precisará gastar o tempo de trabalho no desenvolvimento de uma interface do usuário para um editor de script gráfico poderoso e ainda fácil de usar.
Alguns exemplos para esclarecer o que quero dizer:
fonte