3 ms·
Problem is how to handle worst-case scenarios. With pre-rendered movies that might or might not be a problem, and even if it is - it's production one (e.g. you
by malkia 16y ago
Problem is how to handle worst-case scenarios. With pre-rendered movies that might or might not be a problem, and even if it is - it's production one (e.g. you can't predict how many well for how many days you would render your movie)
But for a game - this means dropping the frame rate, making it visually unappealing.
That's why Ray-casting would never pick up for real-time games (Unreal most definitely is not doing any ray-casting, I'm just giving it as a an extreme example).
The other problem is content creation. Current games are 7-15gb of compressed data - half of them textures, rest models, animations, etc. and fitting that in memory (and loading it in memory).
Even with the fastest drives, you end up spending a lot of time loading (or streaming).
Then if that thing looks so real, you start feeling that something ain't right if your gun can't really destroy every piece of a building... And later allowing that in the engine, makes it worse as not much pre-processed data can be reused (static lighting, bsp geometry, etc.). Or you do it (somehow) real-time.
Also this complicates the game "AI" - there is no real AI in an FPS shooter - it's simply too god damn hard. Just think about the cover system, and how laughable it would be if you have destructible surfaces, and you can see the "AI" guy trying to hide behind thinking it was a fine cover point.
Less realism, more constrained world, and better gameplay are the key components to good gaming... Not fancy graphics all the way :)
- barrkel 16y agoContent will have to be increasingly procedurally generated. I worry less about the practical size of the content - to be frank, I think games will likely trend towards being rendered in whole or in part remotely, with consoles being dumb clients - than the manpower and budget required to create it. I lament constriction - I haven't bought any of the latter games in the Call of Duty series owing to how constrained and linear they are. Games like Far Cry or Just Cause 2 are more my style; but these sandbox games tend to gain from more freedom, rather than lose. Re cover: "all" the AI needs to do is have a desired target location such that the AI's bounding box is fully or partially contained in volumes that are not in the player's line of sight (i.e. in shadow imagining the character's head as a light source). I don't think that's an insurmountable problem.
- chipsy 16y agoI think a really strong FPS AI would be a technical achievement similar to automatic car driving; it has have a "real eyesight" algorithm, notice motion, understand varied terrain, etc. A basic LOS check is insufficient since there's lighting, smoke, semi-transparent items like fences etc. included in typical FPS environments. Even considering that the data structures for the world and rendering can be reused for AI purposes, it's still pushing our current hardware to expect to get a whole squad of really detailed, smart AIs and also have a playable action game with modern graphics quality. It's a lot easier, for the purpose of making a novel, amusing game, to just back off from realism and find other things to try.
- dkersten 16y agoA fuzzy LOS algorithm may work: have a "vision" value, when the LOS algorithm encounters an "object", add the objects opaqueness to the vision, if the vision is below a threshold, continue the ray, otherwise stop. Any objects of interest it calculates are made "fuzzy" based on its vision value. Also increase the vision value with distance, darkness, fog etc. That way, partially obscured, distant or dark objects have a higher vision value and are therefore treated as fuzzy, meaning the AI has only partial information on it (depending on how fuzzy). Now distant and obscured objects are visible to the AI, but it won't know everything about them and could choose to ignore them, investigate or take some other intelligent action.
- barrkel 16y agoit's still pushing our current hardware to expect to get a whole squad of really detailed, smart AIs and also have a playable action game with modern graphics quality I don't buy this for a moment. On multicore PCs, graphics horsepower is almost completely separate from CPU horsepower available for AI. Modern games rarely escape the 15..40% CPU utilization envelope on my machine (i7 920); there is bags and bags of concurrent room. Memory usage is barely noticeable (very rarely more than 2GB as most games are 32-bit, meanwhile I have another 10GB twiddling its thumbs). Meanwhile, it's the GPU that is normally limiting framerate, but only because I'm pushing up anti-aliasing, anisotropic filtering and shadow quality. I think consoles are the bigger issue: games are no longer designed to take advantage of modern PC hardware. Instead, they're developed with consoles in mind, with graphics parameters that can be turned up on the PC. But gameplay and AI doesn't get nearly the same tunable love as graphics - and in some ways it shouldn't as it would change the nature of the game - but it remains that modern PC hardware, outside of straight-line single-threaded performance and the GPU, is not particularly taxed by modern games.
- Dn_Ab 16y agoI mean no offence but I think the term you are looking for is raytracing not raycasting. Raycasting is kind of a stilted version of raytracing and was used in Wolfenstein3D and those old 3D games from the DOS days.
- malkia 16y agoThanks for spotting that one! I meant ray-tracing really.
- johngunderman 16y ago> That's why Ray-casting would never pick up for real-time games (Unreal most definitely is not doing any ray-casting, I'm just giving it as a an extreme example). I'm not convinced that you are correct here. Although ray-tracing has not been a good option in the past due to processor limitations, we're reaching the point at which it may become feasible. Because ray-tracing scales linearly with the number of cores you use, modern CPUs are fairly well equipped to work with it, albeit at sub-optimal framerates. See the following (from 2007) for reference: http://www.q4rt.de/ http://www.q4rt.de/ Outside of this, consider that the only way vector graphics are allowed to perform at their current level is due to the existence of discrete graphics cards which are optimized for the necessary matrix calculations. If we were to develop discrete cards for ray-tracing, we could potentially see amazing results. For example, in 2009 IBM developed a computer that could run full-scene ray-tracing at 1080p averaging 90 FPS. While I do not know how complex said scene was, I'm optimistic about the future of ray-tracing.
- malkia 16y agoJust because it scales with the number of cores, it does not mean it would keep fps in reasonable range given random camera position and orientation. Take a look at Intel's raytracing demo, and when you go close to the lamps (shiny bulby spherical objects with lots of reflections) you get a lot of slowdown (using same amount of cpus). That's what I'm talking about. Yes you can tweak it, but it loses it's purpose.
- Devilboy 16y agoThat's easy to work around, you just stop computing once you hit your time limit on that pixel. It'll be good enough.
- cma 16y agoIf every pixel takes too long you get nothing; plus you wasted computing power to find out. A different solution is to cast a sparser set of rays as things slow down, and then use compressed sensing (which has a runtime complexity independent of scene complexity) to integrate the full scene. Then as the scene gets more complex, you get what (visually) amounts to a heavily compressed jpeg.
- KeithMajhor 16y agoWhy is real time ray-tracing infeasible?
- MrScruff 16y agoIt's not infeasible, obviously you could ray trace a fairly simple scene in real time with modest hardware. The question is, can ray tracing ever produce a better result than rasterization in the same amount of time? The answer at the moment is no, and probably will be for the foreseeable future. Even in high end film work, ray tracing is used sparingly where needed.