游戏/游戏引擎调试控制台工作原理及实现相关技术问询
关于OpenGL渲染器调试控制台的开发疑问与需求
之前我在gamedev exchange上发过这个问题,但被标记成偏题了,实在摸不准该怎么调整才能贴合主题,所以来这儿求助。我正在用OpenGL开发一个3D场景渲染器,想做一个功能强大的调试控制台——一是因为这东西对开发帮助很大,越早实现越省心;二是觉得这技术既有趣又实用。但找了一圈没什么优质资料,只找到过一个相关问题,还不确定能不能匹配我的需求。
我想要实现的控制台功能示例
我希望控制台能执行带参数的多层级命令,具体示例如下:
camera set pos:将相机位置重置为(0, 0, 0)camera set pos -3 2 5.5:将相机位置设置为(-3, 2, 5.5)camera set clip 0.1 1000:将相机近裁剪面设为0.1、远裁剪面设为1000camera set clip far 1024:将相机远裁剪面设为1024new object:向场景添加新对象,但我不确定该怎么处理用户输入可变长度的属性及组件属性(比如仅指定位置添加默认对象,或者指定网格、纹理、着色器等)new light 3 2 1 0 255 0:在(3,2,1)位置添加绿色光源new light 3 2 1 purple:在(3,2,1)位置添加紫色光源object set texture fancy_image.png:将场景中名为"objectname"的对象纹理设为"fancy_image.png"
我的核心疑问
还有几个问题一直没理清,想请教大家:
- 这个控制台应该做成引擎层面的特性,还是游戏专属的特性?这两者之间有没有明确的界限?
- 我在大学课程里粗浅学过命令模式,但感觉它太僵化了,好像满足不了我想要的这种灵活的控制台系统。是不是我完全误解了这个模式的用法?
内容的提问来源于stack exchange,提问作者georgeous




