在工作中,我正在开发这个"神秘" - 类型(2D)游戏,用户围绕房间/位置,点击对象(对象/物品/人)并获得某种形式的反馈,如消息,聊天(想想RPG聊天)或找一些项目。
目前使用的技术
目前它使用纯HTML / CSS开发,其中一切都是div。动画根据适用性使用CSS3动画或jQuery动画。使用简单按钮实现聊天(点击,取决于回复做某事)。涉及游戏阶段的平移 - 可视区域小于实际游戏阶段。因此,用户将通过点击和拖动来拖动舞台。
问题
此处的详细信息并不重要...如果您愿意,可能只想浏览此部分
最有问题的部分是性能。在移动设备上,对于像这样的简单2D游戏来说,它非常生涩。水龙头不是真正的响应,有时需要更多的水龙头来注册。我们已经尝试过尽可能使用CSS动画和变换。
第二个问题是调试。由于这个游戏是在客户端的应用程序上播放的,它将自己的游戏嵌入到应用程序浏览器/ webview中。调试变得更加复杂(没有Chrome usb /远程调试,目前我们使用Firebug Lite - 这是一个痛苦而缺乏功能......)。性能也受到进一步影响。似乎有一些奇怪的错误,比如在错误的时间运行的jQuery动画回调。视图意外滚动。有时,对象的点击区域偏离实际对象 - 当用户平移舞台时,图形按预期移动,但点击区域离开对象 - 例如。点击对象的右侧会触发它,但不会点击对象(这会发生在特定品牌的某些设备上)
有任何建议吗?
对于这种类型的游戏,游戏引擎是否合适?哪一个?我看到的大多数都是针对更复杂的游戏而且可能包含的内容过多。
使用HTML5 canvas可以解决我的图形性能问题吗?另一款游戏是使用ImpactJS开发的,它的类型不同,性能也算不错。但是通过这个聊天和点击(交互)游戏,我想知道是否真的需要这么大的框架。
答案 0 :(得分:2)
水龙头的问题在于手机处理的点击次数与触摸次数不同:每次点击都有延迟(300毫秒,如果我没有弄错的话),在此期间它会等待用户执行双击。这通常是移动设备上大多数迟缓的原因所在。
你从未描述过哪个部分确实导致游戏表现不佳。如果屏幕上有大量的元素,每个元素都有自己的CSS(尤其是像阴影,动画......这样的CSS),它可能会减慢你的游戏速度。
使用canvas(并删除jQuery以从应用程序中挤出最大性能)可能是个好主意。没有任何庞大的框架/引擎。使用canvas还可以帮助您解决调试中描述的问题 - 虽然您无法检查画布上的每个元素,但像移动的对象/点击区域这样的东西不会像所有内容一样发生(聊天除外)我强烈建议你不要在画布上渲染文字,因为它很慢)位于一个元素中,所有的分层都会在画布上发生,而不是CSS。
但不要忘记:虽然精心设计的画布应用程序可能肯定会超越您现有的应用程序,但如果做得不好也会表现更差。