Tag Info

Hot answers tagged

12

I honestly don't know what next-gen engines are using these days, but I will tell you what I do know. It's easy to get confused between an optimization and the data structure used to assist in that optimization. All of the things mentioned below are for optimizations though, but I'll point out which ones are data structures specifically. BSP: Data Structure ...


12

Yes, the Unreal engine 3 for instance still uses a BSP -- mainly because it's used during the CSG process. Doom3/id tech 4 uses portals, and I think I've read something that id Tech 5 is back to BSP trees. There are some games which use octrees, too. In game, my understanding is that UE3 moved to a more dynamic approach with occlusion queries, but I would be ...


11

It's mainly used for frustum/occlusion culling and minimizing the collision checks between the objects. Not true. It's mainly used for programming convenience and hierarchial animation. There is no way culling and collision checks benefit from scene graphs. Quite the opposite, actually, since it's required to calculate and cache the world space data ...


8

If you ask 5 game developers you may well get 5 different solutions or overlapping answers. The system to go for depends a lot on the type of game and the environment you exist in. There's also the divide between offline and real-time solutions. There's also no reason why octree and BSP tree solutions aren't also still used in certain scenarios. Personally, ...


5

I tend to disagree with Trevor Powell's answer as there are clearly two different kinds of optimization here. One is optimization after the fact and to make the slow parts go fast, which is what he has touched on, but the other is designing your data structures and flow control to be at least reasonably efficient and sensible in the first place. The second ...


5

Neither is needed. The choice of scene graphs or spatial partitioning or both is a matter of optimisation. And until you have a functioning game, you have nothing to optimise. So obsessing over this sort of detail now is counter-productive to the creation of your game. My advice: make the game, then measure which bits of it are slow, and finally fix ...


3

The point is that once you cull one octree node, you can stop culling and discard all of its children therein. Consider a binary search for example. Once you know that your key isn't in one part of the array, you can stop searching that part completely. The check itself isn't easier to compute, it just decreases the number of calls you may have to make (as ...


2

If you're looking for a way to build a PVS, I wrote a couple of articles about it at one point that you might find helpful: http://accu.org/var/uploads/journals/overload89.pdf http://accu.org/var/uploads/journals/overload90.pdf The method I've described is the fairly well-known portal-based one. An easy-to-implement alternative I saw once is to generate ...


1

Luckily, the BSP file format is well documented (with an overview on wikipedia). While this is great, it's clear from the documentation that you have a good deal of work ahead of you to write a importer for .BSP files. Your first steps should be getting your file parser working through the lumps and printing out when when it reaches each face/vertex. (Make ...


1

From your sample image, it looks like the projection you're using is orthographic. If that's the case you can pre-render the whole map to an image/set of images( depending on your resolution) . Then in your game you can just crop to the portion of the image that would be visible from the camera and paint the image in the background. Of course, this will ...


1

This will depend a lot on your game. Counter-Strike, or any source engine game or any Quake derivative, and most other FPSs will have custom editing tools for the actual act of crating a level. That tool will bake the specified static meshes into the format by applying some algorithm. That format will be a spacial index. In the example case, BSP stands for ...


1

Space partitioning would be useless for A* in an established graph. Spatial partitioning speeds collision checking, which is useful when constructing a graph that you navigate with A*. In a static environment, you should be pre-calculating the graph. In a dynamic environment, you will need to do some collision-checking on-the-fly to, at the very least, ...


1

Your main problem is shadows and occlusion. It's simply not enough to light for example an old Quake-level with the trivial point-light-on-polygon model no matter if it's forward or deferred shader (the latter is just an optimization). It works fine for approximately convex objects within the scene, but the interior itself is usually highly concave and ...


1

If you're - as you say - interested in current technology : 1) Lighting : Per-pixel lighting, definitely. If you want to look at current-gen rendering, you'll be looking at writing vertex- and pixelshaders. Simple as that. They offer almost unlimited flexibility and are not much harder to use than the fixed-function pipeline, if you start to learn them ...


1

One I have heard good things about is the Sunburn engine. (Site seems down currently) Chances are you're not going to get all you want out the box. However, Riemer has a great tutorial about heightmaps here - in XNA! EDIT: This is probably a little off what you want, but Sean James has a great (well, I'm not a fan of the architecture of ...



Only top voted, non community-wiki answers of a minimum length are eligible