Answers:
刚刚为iOS开发者发现了这一点-
AsyncSocket
您可以在应用程序中设置服务器并通过终端连接到它。然后,您可以泵送远程命令并开始实时操作变量。很漂亮
集成完全解释的语言可以使您非常轻松地即时重写游戏元素。
Python,Lua等都可以明确用于此目的。Angel Engine可能可以作为示例。
热加载是另一个需要检查的元素(基本上,会触发一个事件,告诉您资产已更改-配置文件,美术元素等),然后通过一系列调节器对其进行运行,以对其进行修改最终格式,然后将现有格式替换为新格式。
我使用了快速原型引擎,该引擎使用了热加载功能,这是我的荣幸。
就涉及XNA的C ++,C#和C#而言,Visual Studio具有出色的调试工具-在代码的任何位置实时暂停应用程序,随时查看分配给变量的值,并逐步调用函数,分析调用堆栈等。此外,Pix和CLR Profiler之类的工具使DirectX(Pix)和基于CLR的语言(CLR Profiler)的开发变得非常出色。
此外,使用游戏的一个特别有用的部分是,我们有足够的空间来编写调试文本,图形等。实时显示内存使用情况,绘制的对象/顶点数量,帧速率等是绘制到屏幕上的常见信息。
在C / C ++中,一个简单的技巧是将可调整项放入静态变量,触发断点,在调试器中更改静态变量,并且该静态变量将一直存在直到退出。
我知道肖恩·詹姆斯已经说过了。但认真的说,Visual Studio(特别是调试工具)对此非常有用。
这些天我很少使用C ++,所以我不确定它们在这里的适用程度。但是对于C#(包括C#Express),您可以:
这可能会让您大吃一惊(当我发现它时,它就让我震惊了):
即时窗口实际上很难找到(位于“调试/ Windows”菜单中)。
使用Visual C#调试器的唯一主要缺点是它不喜欢更改const
值。因此,我通常会static
在调整它们的同时,使其与游戏性相关的值不变。
(另外:拥有两个监视器会很有帮助。)
现在,我必须承认上述方法涉及暂停您的应用程序-对于某些特别棘手的事情,这可能会令人不快地慢。
在这些罕见的情况下,我的工作(在XNA中)是简单地破解一些代码(可能使用上面的Edit and Continue,如上所述)来抓取Keyboard.GetState().IsKeyDown()
(实际上,我为此提供了一个更易于键入的包装器)并调整了通过击键值。任何更复杂的操作都不值得。
在实践中我通常发现大大更重要的是能够想象(而不是修改)的实时值。为此,我有一个不错的小类,可以缓冲要在帧末尾绘制的线条和文本。这对于快速制作原型也很有用。
(再次,很高兴能够在运行时“编辑并继续”这些可视化。)
(来源:andrewrussell.net)
(从这里开始)
恐怕此刻(也许以后)我没有“很好的”源发布。但这基本上只是行(对于此圆形库)和字符串(对于XNA的内置SpriteBatch)的列表。只需将其public static
放置在某处,然后使用适当的变换绘制所有内容,以使所有内容都出现在“世界空间”中(然后清除下一帧的列表)。
将变量的加载和读取绑定到文本文件中,并使用控制台中的特定键绑定或命令将其启动。