我不知道是否允许在这里提出这个问题,但我会尝试任何方式。
我正在寻找一种简单的编程语言供普通用户理解和编写,因为我正在制作一款游戏。我正在用C ++构建我的框架。
我在考虑Lua,但我认为这对普通用户来说可能太难了。
只需要前进,射击,抓住这个,把它放在这里等基本动作。这是一款基于平铺的游戏。
答案 0 :(得分:9)
Lua是个不错的选择。这正是Lua设计的那种东西。
您可以极大地影响用户在如何为游戏设计Lua API方面的容易程度。如果你设计一个复杂的,难以使用的API或要求他们使用Lua中的一些更高级的功能,那么它将更加困难。如果您改为使用易于使用的API,那么人们应该很容易从示例开始并获取他们需要知道的内容。
答案 1 :(得分:4)
如果你认为Lua太难了,那么你可能不会寻找通用编程语言(另一个建议是Python)。而是考虑创建domain-specific language。我将在这里对你的游戏做一些假设,但你可以,例如,你可以实现一个基于规则的脚本语言,其中每个脚本代表一个敌人的行为:
can_see(player) and distance_to(player) > 100:
run_towards(player)
can_see(player) and distance_to(player) < 100:
shoot_at(player)
default:
wander()
在每个推理步骤,可以执行第一个匹配规则。在这种情况下,需要某种形式的hysteresis来防止你的NPC出现无法判断。
如果使用有限数量的关键字和运算符,这基本上会将您的编程语言简化为单个if-else。您甚至可以专门为您的语言创建一个带有IntelliSense的自定义编辑器。如果您的用户可以使用它,则可以使用嵌套规则:
can_see(player):
distance_to(player) > 100:
run_towards(player)
default:
shoot_at(player)
在某些时候你可以开始允许变量和用户定义的函数,但是从一开始就是一个通用语言可能是更好的选择!所以你看,主要问题是在通用性和用户友好性之间找到平衡。
答案 2 :(得分:2)
只需提供一个GUI来创建游戏的工作流程吗?
您可以查看:http://en.wikipedia.org/wiki/List_of_educational_programming_languages新手可能很容易理解