Je travaille actuellement sur un jeu de bac à sable basé sur l'espace qui offrira fortement la possibilité de programmer vos systèmes sur mesure. Je veux mettre cela en œuvre d'une manière à la fois
- accessible,
- puissant (le strict minimum serait turing-exhaustivité)
- rapide à coder.
Les langages basés sur du texte ne satisfont généralement que les deux dernières exigences, et même s'il n'est pas difficile de concevoir un langage visuel qui satisfait les deux premiers, les langages visuels sont difficiles à programmer car ils nécessitent une utilisation intensive de la souris. Bien qu'il existe des langages textuels très accessibles, je souhaite que les non-programmeurs complets puissent se familiariser avec la programmation.
game-design
software-engineering
Dimitriye98
la source
la source
Réponses:
Vraiment, la seule façon d'avoir toutes les fonctionnalités est d'implémenter plusieurs interfaces. Accessible et puissant sont souvent les deux extrémités d'un spectre. La façon la plus simple de le faire est d'implémenter un système puissant, doté d'une interface supplémentaire pour permettre aux débutants d'interagir avec le système de manière intuitive.
Permettant un système qui permet aux débutants de programmer visuellement, peut-être quelque chose de similaire aux outils de programmation de Lego Mindstorms :
Où il y a des composants glisser / déposer. Les composants ont des entrées et des sorties. Les composants peuvent être des choses simples comme
AND
, ou desOR
portes, ou plus complexes comme un test pour les ennemis proches.Idéalement, la représentation visuelle devrait compiler un script de langage écrit en arrière-plan.Cela offre également un outil puissant pour apprendre la langue. Si un débutant peut "écrire" visuellement son programme, alors lire le code qu'il produit, il est beaucoup plus susceptible de le comprendre et de pouvoir modifier le code produit. Finalement, être capable d'écrire du code plus puissant que les outils visuels seuls le permettent. Cela répond à l'exigence de faciliter la programmation des utilisateurs.
L'épine dorsale du système, bien sûr, est un langage écrit. Les outils visuels sont juste pour donner aux utilisateurs un rapide moyen de programmer quelque chose de simple et permettre aux débutants de commencer.
Le langage écrit permet aux utilisateurs avancés de faire des choses avancées. Et vous pouvez même permettre aux utilisateurs de créer leurs propres composants, en créant des scripts personnalisés. Ils peuvent ensuite réutiliser les composants qu'ils ont créés dans une interface rapide et facile pour une programmation rapide.
Bonne chance! Le project semble amusant.
la source
Vous voudrez peut-être jeter un œil à Google en bloc , ils combinent les éléments visuels avec des termes de programmation reconnaissables tout en maintenant un niveau d'accessibilité assez décent.
Vous pouvez jeter un coup d'œil à la démo Maze pour vous inspirer, beaucoup de mes amis non programmeurs étaient capables de parcourir la plupart des énigmes en l'utilisant, satisfaisant au moins certains de vos critères.
la source
Je suis surpris que cela n'ait pas été mentionné auparavant, mais Scratch du MIT utilise une interface de bloc qui est rapide à coder. Il permet aux utilisateurs de créer leurs propres fonctions et peut devenir étonnamment complexe pour un langage qui a été construit pour enseigner aux enfants comment code.
Stencyl est un autre exemple de codage par blocs qui fait quelque chose de plus similaire à ce que vous voulez. Le codage avec des blocs comme ceux-ci est beaucoup plus efficace et prend moins de temps que les interfaces de programmation visuelles comme celles utilisées par Lego NXT. Stencyl permet aux utilisateurs de coder en Actionscript ou en blocs.
Je m'excuse pour le manque d'images, je n'ai pas encore assez de réputation pour poster des images.
la source
Le langage de programmation BPEL a une représentation visuelle et de nombreux outils qui fonctionnent avec. C'est un langage de workflow, pas un langage de programmation, mais il est complet. Il est verbeux, mais il est facile à écrire pour les programmeurs et les hommes d'affaires et il est facilement traduisible de la forme visuelle au texte. Je ne pense pas que cela ferait un bon langage de jeu, mais il peut servir de source d'inspiration. Et compte tenu de la quantité de moteurs et d'outils BPEL, il devrait être possible de réutiliser certaines idées et / ou du code.
Le langage de type BPEL ne ressemblera pas à de la programmation, mais plutôt à des systèmes de routage et de connexion. Vous pouvez donc avoir un système de ciblage connecté à un système d'armes à feu avec une certaine logique entre les deux.
la source
Considérez cette approche:
C'est à peu près la façon la plus rapide à laquelle je peux penser pour obtenir tous les bonbons sans trop de douleur. Vous obtenez les noobs click'n'drag ainsi que les vim-geeks à bord. Et si vous gardez la mécanique simple (par exemple Trigger -> Condition -> Action), vous n'avez pas à passer des années-homme à développer une interface utilisateur pour un éditeur de script graphique puissant et toujours facile à utiliser.
Quelques exemples pour clarifier ce que je veux dire:
la source