qbismSuper8 builds

Discuss programming topics for the various GPL'd game engine sources.
qbism
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Re: qbismSuper8 builds

Post by qbism »

Sorry about the vis, but nonetheless thrilled by this map :biggrin: I noclipped to get a similar viewpoint to the pre-release promo shot just to see if it could happen.
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: qbismSuper8 builds

Post by Baker »

I'm going to use your source to try to finish big map compatibility, as the sources in Baker's tutorials weren't compatible enough.
It was a high quality reference. :smile: I used it as double-check when discovering 2-3 oversights. And used it as a double-check discovering and correcting 2-3 weaknesses in the Fitz 0.85 implementation.

Considering the number of Quake bugs in the QIP tracker, I think Metlslime did an awesome A level job. My tutorial was an A-.

I would feel better if I had documented the protocol 666 bugs I corrected in the FitzQuake 0.85 thread at func. One involved interpolation of static brush models, which are rarely used in maps.

Well, the short version is --- FitzQuake 0.85 protocol 666 lead to the Quake we all take for granted today. Combined with the hard work from MH to spec out BSP2 (gb, LordHavoc also?). But Spike was the play maker that made the difference, because before he added to a Mark V build, it wasn't entirely understood by non-skygods how to add BSP2 to an engine.

So MH did the work, Spike created the Rosetta stone. The rest is what we enjoy in Quakespasm and all the other engines that adapted the change that Spike made.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: qbismSuper8 builds

Post by Baker »

Not on topic exactly:

No edit button? No reply button?

It's like the Dark Ages!

I'd complain except it's nice that Inside3D isn't dead. And except the fact that, well, I am complaining! Not to anyone in particular.

I guess PHPBB is now like Linux. It's mostly good and then suddenly buttons or things everyone uses on daily basis suddenly vanish.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Re: qbismSuper8 builds

Post by Spike »

there is supposedly an edit button... somewhere... you might need to use tab to find it, but its there!
yay for minimalist user interfaces!

I'd completely forgotten about that markv patch. I was about to deny working on it too.
I believe it still has a couple of limits, specifically the max_leafs limit, which is imposed by lots of static buffers all over the place. probably also others due to me being lazy.
I kinda wish bsp2 had a concept of clusters, and stored the various brushes too, and lightmap scaling, and embedded rgb lighting. that's not entirely just wishful thinking - all but the first of those are already actually implemented to some degree via extra bspx lumps, but meh, needs tools, and people willing to utilise it, and that requires standards, and that requires harassing people, and I'm lazy, and its easier to just directly load .map files... wait, this isn't the what are you up to thread.</tangent>

bsp2 really is just a case of making dupe versions of the various bsp dfoo_t structures so that all the shorts are either ints or floats. then using one set or the other. the existing byteswapping code means that its all copied over anyway.
and to then make sure all your mfoo_t structures also use ints instead of shorts... hint: msvc has a setting to enable warnings about data type truncations, which can be quite handy in situations like this, yay for easy debugging.

regarding 666, what irks me is that it still has no way to report to the server that a client supports it, so public servers either can't use 666, or many clients crash-to-console. imho, this makes it pointless as far as multiplayer is concerned.
the server is free to implement as little of the protocol as it wishes (see msvc remark above), considering that much of the protocol doesn't contribute to anything to do with map sizes (just precache limits iirc), so long as other clients don't get confused (I think you'd need the nextthink values networked, I don't remember anything else). the client only really needs to implement as much of it as the server does, yay for subsets (stub the rest if you cba to implement it properly yet, ideally with helpful messages about it being you that is lazy rather than the server being buggy). yay for implementing things in phases - the only way to get something working without getting bored before its complete!
its probably worth mentioning rmqe's 999 protocol, which is mostly just 666 but with some extra options for different primative sizes (which allows smoother rotations or larger boundaries to maps). I think it also adds .scale, but meh to that.

EDIT: mwahaha! yay tab!
qbism
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Re: qbismSuper8 builds

Post by qbism »

Do the huge signon packet sizes of bsp2 maps prohibit multiplayer? It takes an efficient protocol just to keep the signon below 64Kbytes (unsigned int).
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Re: qbismSuper8 builds

Post by Spike »

technically, you don't need to write baselines and spawnstatics inside a singular signon buffer, one way is to use multiple signon buffers (with a lower size that keeps other quake clients happy, like quakeworld), or to generate that data on a per-client basis (fte does this in order to cope with different types of client).

this can be done without using a new protocol of course, but still takes some notable server changes.

what's more of an issue is the 1024-byte unreliable datagram limit. you can boost that limit but doing so results in vanilla clients erroring out, or you can leave it as it is and end up with various entities going invisible.
clients that support fitz666 can be expected to also support significantly higher sizes (the exact new limit is a little harder to predict), however, sending packets larger than 1450 or so (1512 - udp+ip+quake overhead+vlan+pppoe+etc) will result in fragmentation - and not all routers/hosts support fragmentation.
fitz666 doesn't provide anything to work around this.

bsp2 itself doesn't result in larger packet sizes, rather it just provides more playing area for entities and submodels to be within.
you can have the same issues with bsp29 (especially the unreliable datagram limit).
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: qbismSuper8 builds

Post by Baker »

qbism there is a guy named Legend that has posted in the Arcane Dimensions forum about troubles running Arcane Dimensions in QBism super8. He has also posted in at func.

Just wanted to point this out so you know.

(He's knows his way around Quake and QuakeC and stuff so he's probably very helpful in bug reporting).
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
qbism
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Re: qbismSuper8 builds

Post by qbism »

Thanks. There's an overflow affecting the vid buffer. No crash when the mod's progs.dat is removed, and maps load fine. So guessing progs.dat or a limit-breaking custom asset is the issue.
qbism
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Re: qbismSuper8 builds

Post by qbism »

The Medusa bug! manifestation: overflow into video memory and eventual crash when rotating view toward a specific direction... weird.
Image
mankrip
Posts: 924
Joined: Fri Jul 04, 2008 3:02 am

Re: qbismSuper8 builds

Post by mankrip »

Try "r_drawentities 0;r_drawviewmodel 0". If the bug vanishes, disable each entity type individually until you find the cause.

Reducing the viewsize also helps to investigate such things while avoiding crashes.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
Dev blog / Twitter / YouTube
ericw
Posts: 92
Joined: Sat Jan 18, 2014 2:11 am

Re: qbismSuper8 builds

Post by ericw »

I see the shotgun model at the bottom of the screen, but I know progs/v_shadaxe0.mdl (the axe viewmodel) causes problems for software renderers, I've seen screen corruption like that screenshot, and it crashes Baker's MarkV-Winquake when you switch to the axe.

So with any luck the underlying cause is the same..
ericw
Posts: 92
Joined: Sat Jan 18, 2014 2:11 am

Re: qbismSuper8 builds

Post by ericw »

Oh, the rockets pickup is another example, this is dm4:
Image
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: qbismSuper8 builds

Post by Baker »

Interesting.

I have some buffer guard code that isn't enabled in a release build obviously that should let me quickly find when and where that happens.

But I'm not really in engine coding mode and won't be for months.

I don't like anything in an engine misbehaving, but never encountered a model doing that.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
qbism
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am
Contact:

Re: qbismSuper8 builds

Post by qbism »

Mankrip, it did not crash after that. And ericw, you nailed it. There must be something funky with the mdls. They look OK in Noesis but saved as a smaller file. After batch re-saving the whole set the crash and vid overflow is gone.

Also the files are smaller after this.

Updated progs mdls zip: https://qbism.com/download/file.php?id=29
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: qbismSuper8 builds

Post by Baker »

qbism, after you did that does Arcane Dimensions run?

You might let Sock know about that in the func_msgboard Arcane Dimensions board. I'm pretty sure he would want to know and fix.

Also at the end of this thread:

http://celephais.net/board/view_thread. ... &start=392

legend and mk are discussing something about beam models in super8 (and by extension mk's engine I guess).
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Post Reply