我目前正在开发一款基于空间的沙盒游戏,该游戏将具有自定义系统编程功能的强大功能。我想以一种既可以实现又可以实现
- 无障碍,
- 强大(最低裸线将是图尔完备性)
- 快速编码。
基于文本的语言通常仅满足后两个要求,而设计满足前两个条件的视觉语言并不难,但由于需要大量使用鼠标,视觉语言很难编程。尽管有一些非常容易使用的基于文本的语言,但我希望完全的非程序员能够使自己轻松进行编程。
我目前正在开发一款基于空间的沙盒游戏,该游戏将具有自定义系统编程功能的强大功能。我想以一种既可以实现又可以实现
基于文本的语言通常仅满足后两个要求,而设计满足前两个条件的视觉语言并不难,但由于需要大量使用鼠标,视觉语言很难编程。尽管有一些非常容易使用的基于文本的语言,但我希望完全的非程序员能够使自己轻松进行编程。
Answers:
实际上,拥有所有功能的唯一方法是实现多个接口。易于访问且功能强大通常是频谱的两端。最简单的方法是实施功能强大的系统,该系统具有一个额外的界面,允许初学者以直观的方式与系统进行交互。
允许一个允许初学者直观地进行编程的系统,也许类似于Lego Mindstorms编程工具:
有拖放组件的位置。组件具有输入和输出。组件可以是简单的事物,例如AND
,或OR
门,也可以是更复杂的事物,例如对附近敌人的测试。
理想情况下,视觉表示应在后台编译书面语言脚本。这也提供了学习语言的强大工具。如果初学者可以直观地“编写”他们的程序,然后阅读它产生的代码,那么他们更有可能理解它并能够修改产生的代码。最终,他们能够编写比单独的视觉工具更强大的代码。这满足了使用户易于编程的要求。
该系统的骨干当然是一种书面语言。视觉工具只是为了给用户一种快速的方法来编写简单的程序,并允许初学者入门。
书面语言允许高级用户执行高级操作。您甚至可以通过创建自定义脚本来允许用户创建自己的组件。然后,他们可以在快速,简单的界面中重复使用自己制作的组件,以进行快速编程。
祝好运!听起来像是一个有趣的项目。
BPEL编程语言具有视觉表示形式,并且可以使用许多工具。它是一种工作流语言,而不是编程语言,但是它是图灵完整的。它很冗长,但是对于程序员和商人来说都很容易编写,并且可以很容易地从视觉形式转换为文本形式。我认为这不会成为一种好的游戏语言,但是它可以作为灵感的来源。考虑到BPEL引擎和工具的数量,应该可以重用一些想法和/或代码。
类似BPEL的语言不会像编程那样,更像是路由和连接系统。因此,您可以将瞄准系统连接到喷枪系统,并在两者之间添加一些逻辑。
考虑这种方法:
那是我想出的最快的方法,可以使所有的糖果都没有太多的痛苦。您会获得click'n'drag noobs以及板上的vim-geeks。而且,如果您保持简单的机制(例如,触发->条件->动作),那么您就不必花费大量的精力来开发功能强大且仍易于使用的图形脚本编辑器的UI。
一些例子可以弄清楚我的意思: