中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 2311|回复: 11

[新闻] EXPERIMENTAL BETAS - INTERPOLATING THE FUTURE(未翻译)

[复制链接]
发表于 2011-6-16 18:50:08 | 显示全部楼层 |阅读模式

As mentioned on the forum, a few beta-patches released recently contain "highly experimental" features. Their most visible manifestation so far were various bugs, including severe ones, like substantial memory leaks, and a single line in the changelog:

[79670] Fixed: AI warping at distance in single-player.

It is therefore not unexpected some users started to wonder what is going on and what is this "new experimental technology" about.

The goals of the technology are as follows:

- fixing the old problem of far units "jumping"

- improving the frame-rate

- based on this technology even unit jumping seen in multi-player could be reduced

I will first describe what is the "new technology" about, and then how it will address the goals.

Interpolating visuals

Until now the link between the simulation and rendering was straightforward in our games: first the simulation has updated the world state, then the rendering has rendered it. This is quite a common architecture in games, it is simple, but it comes with some drawbacks:

- when the simulation of the objects in the game world is complex, increasing frame rate becomes very hard, as the simulation can be very hard to optimize

- when you reduce the frequency of simulation for some game objects to improve performance, the objects start jumping

- it is hard to make the rendering to run in parallel with simulation, as it is sharing the same data, resulting in either race conditions or a significant synchronization overhead

The solution to all of these problems in simple: make simulation independent on rendering, and interpolate results of simulation to have the onscreen motion smooth (this is well known approach in gaming industry, one good description can be found at Fix your timestep!). Some of you may ask now: if it is this simple, why took it so long to implement it in our games? As usual, it shows it is not as simple as it seems at first sight. If implemented naively, the result would be very ugly. As there are many units in our games and their simulation is quite complex, we want their timestep to be not something like 1/60 sec, but rather 1/10 sec or even more. While adding interpolation improves framerate, it also increases the latency, the increase being the timestep. The latency is already quite high because of multiple stages participating in the process (see Gamasutra articles Programming responsiveness and Measuring Responsiveness in Video Games), but increasing it 100 ms or more would result in a game with a high framerate, but very slugging controls. Fortunately, it seems there might be an other way.

Living in the future

Living in the future

The increased latency is primarily a problem for the player. Imagine we could simulate the player each frame, but the rest of the game would have the fixed time step. "Elementary, dear Watson?" Not that fast, dear Holmeses, we are not done yet. If done this way, the result would look nice, but you would be often unable to hit anything, as everything would be displayed on the screen on a position where it was 100 ms before, which in case of fast running soldier means about 50-70 cm away, enough to miss when shooting. The final solution we are implementing is similar, but a bit more elaborate. You can imagine it like all AI units are living in the future, but player interacting with "recent" state, which from their point of view is already "past" state. There are multiple corner cases to be solved with various possible combinations of "recent" and "future" objects interacting, but with some work it looks possible. And this is exactly what is the point of those "experimental" betas.

Current state

Recent versions already have interpolations fully working (you should never see a far units jumping in single-player), they have a player living "now", nearby units live "now" as well, and only distant units live "in the future". We did not allow the future for the nearby units yet, as there still some corner cases unsolved. Before we proceed to that, we want to make sure we have fixed all the major issues caused by the pure fact the changes were very extensive and deep in the core engine.

Future future

We hope that most of the issues with the future are solved now as of 81921 beta and we will soon be able to proceed into enabling this technology fully. This should hopefully improve the frame-rate on its own, but furthermore it will provide us a solid basis to make more of the rendering to run in parallel, and to improve the multi-player "jumping" issues as well.

 楼主| 发表于 2011-6-16 18:56:38 | 显示全部楼层
BI要对显示效率和拟真效果相冲突的问题开刀了。
发表于 2011-6-16 19:23:21 | 显示全部楼层
优化
期待啊
发表于 2011-6-16 19:58:07 | 显示全部楼层
新技术,力顶
发表于 2011-6-16 20:01:32 | 显示全部楼层
这算不算拿我们当AA3 的实验小白鼠?
发表于 2011-6-16 20:02:09 | 显示全部楼层
本帖最后由 aammooss1122 于 2011-6-16 20:02 编辑

其中一项是提高帧速率呀〜〜〜

有希望提高自身的帧速率!!!!!!!!!太好了
发表于 2011-6-16 20:04:58 | 显示全部楼层
本帖最后由 aammooss1122 于 2011-6-16 20:05 编辑

其实of far units "jumping"是甚麼

我好像沒有出现过这个情況....

其实是甚麼呢???
发表于 2011-6-16 21:26:52 | 显示全部楼层
你把视距调小一些  按鼠标右键远眺  远处的物体就会出现  松开鼠标 远处的物体就消失了

这个优化好  
发表于 2011-6-16 23:31:29 | 显示全部楼层
aammooss1122 发表于 2011-6-16 20:04
其实of far units "jumping"是甚麼

我好像沒有出现过这个情況....

联网时候经常出现,看远距离别人走动或者车辆移动时候不是连续的,而是一顿一顿的。单机偶尔会遇到。
发表于 2011-6-17 01:01:17 来自手机 | 显示全部楼层
也就是所谓的联机瞬移问题。
这样就好打多了。
本来因为不同服务器不同的ping就要单独去算提前量,再加上瞬移,远了基本没法打。
发表于 2011-6-17 12:52:17 | 显示全部楼层
-.-希望能解决吧。。。
发表于 2011-6-17 15:16:19 | 显示全部楼层
呜呜呜····希望能把光的问题在解决下吖,哈哈{:soso_e144:}
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-30 01:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表