Maximum draw distance?

Discuss programming topics for the various GPL'd game engine sources.
Post Reply
mrmmaclean
Posts: 33
Joined: Sun Aug 22, 2010 2:49 am

Maximum draw distance?

Post by mrmmaclean »

I'm not sure if this goes here but...

Is there a maximum draw distance in software quake engines?

I am interested in random map generation such as mapgen and qb-mapgen, and I understand that they are not vis'ed as they can't be. However, what stops the renderer from getting bogged down by having a non-vis'ed map? Is it a draw distance cap or something else?
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Post by leileilol »

No, but there is a MAX SURFS and MAX LEAFS which comes into play.

You'd have to rework the renderer to make some weird form of faux hidden surface removal for "stable" performance.
i should not be here
mrmmaclean
Posts: 33
Joined: Sun Aug 22, 2010 2:49 am

Post by mrmmaclean »

Thanks for the reply. That sounds terrible (as in to implement)... I'll take a look.
andrewj
Posts: 133
Joined: Mon Aug 30, 2010 3:29 pm
Location: Australia

Post by andrewj »

The main problem with a non-vis'd map is not rendering performance, but the fact that the server needs the visibility info to decide which entities to tell the client about. A large map with a lot of entities will become unplayable, with entities disappearing and "Packet Overflow" messages flooding the console.

Fwiw I'm working on a random map generator, though it will be a while yet before the Quake support is any good. Recently I implemented a simple vising scheme which was enough to make most large maps playable.
qbism
Posts: 1238
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Post by qbism »

It can get bogged-down, but watching faces get far-clipped is annoying. Things that improve speed:

1. 'Sealed' tiles- no windows to see distant tiles.

2. Use Skip texture on back faces w/ supporting compiler or remove skip tool.

3. Larger tiles and smaller max tile value. Instead of individual 1x1 grid sections, think of 2x2 or 3x3 grid prefabs with several combo variations.
Sajt
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Post by Sajt »

Depends what kind of random maps you're after. If you mean randomly generating a .map then compiling it, no problems there. hmap2's vis process has a view distance feature I think which you can combine with distance fog.

Otherwise, if you're generating maps in QC (just sticking together brushmodels)... I don't really recommend pursuing this route :P

By the way, if you're interested in generated .maps, you could check out LordHavoc's map generator. I haven't used it myself, but I played coop with LordHavoc using bsps he produced with it. The results are somewhat simplistic, but a lot of fun (if played in DPMod).
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
mrmmaclean
Posts: 33
Joined: Sun Aug 22, 2010 2:49 am

Post by mrmmaclean »

Sajt, thanks for the warning but the ability to have random level generation during play calls to me and I cannot resist its siren song! (a little hyperbole but honestly I do appreciate your wisdom on the matter) I have already assumed it's going to be a struggle.

qbism, I hear you on the faces disappearing, it looks just plain ugly, but I thought there might be some kind of solution there. As far as your suggestions go, those are some great things to consider. The remove skip is a given, but I have been torn on the larger pieces versus, say, 64x64 tiles, a la 2D tile scrolling engines.

andrewj, I wasn't quite aware of that fact and thank you for pointing it out. I'm totally stoked to see what you come up with in your own project, good luck!

FYI, I'm going more a rogue-like/dungeon crawl route with my project, using the quake side of things for the visual aspect and the Flash side for most of the game logic. I'm using qbism's Super8 engine with a few hack built-ins to make QC variables accessible from Flash and vice-versa (hack is the best way to describe it because there's really no error handling in the matter) and also a function that allows Flash to add strings to Quake's command buffer. So, I can have a button in Flash that changes the map, for example. I can also save any values I need in Actionscript 3.0, so things like having multiple exits/entrances between maps is easy to handle. Nothing is really finished but I'll share the code if anyone wants it, what little there is anyway!
qbism
Posts: 1238
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Post by qbism »

Given a tile set with a mix of typical maze shapes, corridors, tees, dead-ends, and so forth, there will be an 'optimal' farclip. The farclip is based on a distance that's longer than most views likely to be created. A tileset with a large proportion of open squares and corridors will have a high optimum farclip. A set with lots of corners and tees can be lower.
Post Reply