Index | FAQ | Search | Memberlist | Usergroups | Profile | Log in to check your private messages | Log in | Register

Single Player Engine Needs? Goto page 1, 2 Next

| Inside3d Forums Forum Index -> Engine Programming

View previous topic :: View next topic
Author | Message
--- | ---
Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Mon Jun 14, 2010 11:19 am Post subject: Single Player Engine Needs? |

Lately I have been preoccupied with compiling a list of the types of things that would enhance single player and/or cooperative play. I'm not talking classic Quake here, more as a general open-minded single player modding, which I know at this point some cannot relate to.
First, I'll list some of my past priorities or things that caught my attention to set the tone and then explain some present ones.
As always, software renderer support remains on the radar.
Past priorities and interests:
1. Alpha support. Since this is universally supported in all modern engines, not so important. (Although alpha texture support remains important, you can't build complex entities like doors with a window in them with just alpha support because alpha affects and entire entity).
2. Rotation support. Combined with LordHavoc's work on hmap, I actually have a fully functioning "tool set" from NQ engine support to a cheaty tool emulating origin brush support in compilation plus rotating door support mostly from Avirox's QuakeLife mod. When I get less lazy I'll do a QC tutorial.
3. Monster clip. Can creatively be used to restrict monsters to an area instead of writing complex QuakeC AI.
4. Chaseactive 2 and "3" support. Fragmachine's tutorial does this great. Chaseactive "3" support, at least in my mind, is the ability to support a chase_active 2 camera that does not do any traceline checking and has an absolutely static position (to emulate other games).
5. True chase active fixes. MH and R00k solved these.
6. 24-bit color. Half-Life bsp, but better would be making an alternate Quake map format.
7. MP3 support freeing up the engine restrictions a bit. Admittedly Windows is the target of that tutorial but since OS X and the PSP support that in certain ports this is largely universal.
8. "Seamless world". The Quake2 test code satisfactorily achieved that goal.
Current Interests:
1. 24-bit software renderer. Spike has a great implementation of this in FTEQW and when I get non-lazy I'll work through it.
2. Level intermissions displaying a graphic or movie.
3. Clock running backwards to support timed missions with count downs visible to the user. R00k's example qc code appears to suggest this is a ProQuake only feature?
4. Vwep. A universal method using q1 model. The "Feral" mod has an interesting way, but it is QuakeC based attachment. Would allow player and enemies to weirld a variety of different weapons without the need for countless models.
5. Volumetric fog. Maybe asking for too much since I can't see how software renderer's would support fog.
6. Minimaps supported also by software renders.
7. "World" maps supported also by software renders.
8. "Death animations" supporting custom views when a player is killed. Possibly also custom views for a player being "knocked to the ground" with getting a 40% of more attack from an enemy.
9. Mission achieved or failed screens plus things like proper autosave even in a complex multimap world. Relates to "seamless world".
10. Ability to implement "xp sprites" for an experienced based system (i.e. show onscreen messages that slightly move and fade out near a killed monster the experience you received).
11. Basic communication ability of NPCs and monsters, likely to be derived from the FuhQuake autoid feature altered to support what a monster or NPC is saying.
12. Support for multiple skyboxes within a single map. I can't recall the need at the moment.
I know this is kind of a vague thread at this point but I believe it will take shape as I get a couple of tutorials out and if I have any luck creating a couple of example mods showcasing some of this.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Sajt Joined: 16 Oct 2004 Posts: 1026 |

Posted: Mon Jun 14, 2010 11:47 am Post subject: Re: Single Player Engine Needs? |

Baker wrote:
4. Chaseactive 2 and "3" support. Fragmachine's tutorial does this great. Chaseactive "3" support, at least in my mind, is the ability to support a chase_active 2 camera that does not do any traceline checking and has an absolutely static position (to emulate other games).
5. True chase active fixes. MH and R00k solved these.

Huh?

Baker wrote:
7. MP3 support freeing up the engine restrictions a bit. Admittedly Windows is the target of that tutorial but since OS X and the PSP support that in certain ports this is largely universal.

Ogg vorbis*

Baker wrote:
8. "Seamless world". The Quake2 test code satisfactorily achieved that goal.

Hub system*

Baker wrote:
10. Ability to implement "xp sprites" for an experienced based system (i.e. show onscreen messages that slightly move and fade out near a killed monster the experience you received).

If you mean numbers floating around in the world like sprites, this was my first (only??) released (mini-)mod, from QExpo 2003. I don't have it anymore, but it added Final Fantasy-style floating numbers indicating how much damage you did. I think Wazat even "adopted" it for some mod of his, but I can't remember.

Baker wrote:
11. Basic communication ability of NPCs and monsters, likely to be derived from the FuhQuake autoid feature altered to support what a monster or NPC is saying.

Huh?
Also, a few of these things are properly solved in CSQC, so you should add that to the top of your list. Anyway, does DarkPlaces not work for you? Or do you want (for some reason) a software counterpart to do all this stuff too?
_________________
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.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Mon Jun 14, 2010 12:23 pm Post subject: Re: Single Player Engine Needs? |

Sajt wrote:

Baker wrote:
4. Chaseactive 2 and "3" support. Fragmachine's tutorial does this great. Chaseactive "3" support, at least in my mind, is the ability to support a chase_active 2 camera that does not do any traceline checking and has an absolutely static position (to emulate other games).
5. True chase active fixes. MH and R00k solved these.

Huh?

http://forums.inside3d.com/viewtopic.php?t=1158
I'll post screenshots some time, but more or less I'm referring to being able to customize the camera like that Quake Arcade mod.

Quote:

Baker wrote:
8. "Seamless world". The Quake2 test code satisfactorily achieved that goal.

Hub system*

Fine, I'll refer to it as that although at least my plans for this have little or nothing to do with hubs.

Quote:

Baker wrote:
10. Ability to implement "xp sprites" for an experienced based system (i.e. show onscreen messages that slightly move and fade out near a killed monster the experience you received).

If you mean numbers floating around in the world like sprites, this was my first (only??) released (mini-)mod, from QExpo 2003. I don't have it anymore, but it added Final Fantasy-style floating numbers indicating how much damage you did. I think Wazat even "adopted" it for some mod of his, but I can't remember.

http://web.archive.org/web/20030903200641/www.qexpo.com/booths.php?id=9
Yeah, too bad the link to the download doesn't work at archive.org

Quote:

Baker wrote:
11. Basic communication ability of NPCs and monsters, likely to be derived from the FuhQuake autoid feature altered to support what a monster or NPC is saying.

Huh?
Also, a few of these things are properly solved in CSQC, so you should add that to the top of your list. Anyway, does DarkPlaces not work for you? Or do you want (for some reason) a software counterpart to do all this stuff too?

Well, DarkPlaces can only take me to Windows, OS X and Linux where OpenGL is available and the drivers work with DarkPlaces.
I've done engine modding for OS X, Linux, PSP, Flash and SDL and DirectX and any platform I can compile for I can do it too. Even the Quake Wii port has absorbed a tutorial or 2 of mine.
I don't view Quake as a desktop-only platform and the idea of only targeting the established desktop platforms with hardware acceleration isn't appealing to me. I have made maps with rotating doors and such, for example, that run on the PSP and Flash and could just as easily run on any Quake-ported platform.
[Really, I need to finish a mod I am working on a demonstration purpose super-platform modification so possibilities are understood. Gameplay isn't about just fancy effects and so forth. Even standard QuakeC is quite good for game play elements.]
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Mon Jun 14, 2010 12:41 pm Post subject: Re: Single Player Engine Needs? |

Sajt wrote:
If you mean numbers floating around in the world like sprites, this was my first (only??) released (mini-)mod, from QExpo 2003. I don't have it anymore, but it added Final Fantasy-style floating numbers indicating how much damage you did.

Recovered:
http://qexpo2003.quakedev.com/uploaded/9/digits.zip
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Sajt Joined: 16 Oct 2004 Posts: 1026 |

Posted: Mon Jun 14, 2010 1:14 pm Post subject: |

Ohh... you weren't supposed to actually dig that up _________________ 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.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Mon Jun 14, 2010 1:16 pm Post subject: |

Sajt wrote:
Ohh... you weren't supposed to actually dig that up

Heheheh
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Mon Jun 14, 2010 1:58 pm Post subject: Re: Single Player Engine Needs? |

3. EXT_DIMENSION_PHYSICS 4. EXT_CSQC can do either, or svc_finale can do 3. 5. tracebox 7. mp3 is patented, so this is risky. ogg is distributable. 8. "Seamless world". The Quake2 test code satisfactorily achieved that goal.
1. Good luck with that.
2. playdemo instead of changelevel. put a changelevel at the end of the demo. you'll lose your items. not easy to make such a demo though, but not easy to make a vid either.
3. EXT_CSQC(_SIMPLE)
4. EXT_CSQC, but will need a database of angles/offsets.
6. EXT_CSQC, with prerendered maps, or picture-in-picture.
7. ?
8. EXT_CSQC. Please don't do it server side...
9. EXT_CSQC + hub-supporting saved games.
10. EXT_CSQC (doesn't need to be sprites, can just unproject)
11. EXT_CSQC
12. Skyrooms may be more interesting (skyroom first pass, second pass draw sky first as depth-only without colour writing and draw the regular view). Job done. You can do that with CSQC if your map is leaky, but you do need to choose the correct skyroom for your location on the map.
_________________
What's a signature?

Back to top |

mh Joined: 12 Jan 2008 Posts: 910 |

Posted: Mon Jun 14, 2010 2:53 pm Post subject: |

The MP3 patent only covers distribution of codecs; writing playback software that just uses those codecs through a 3rd party framework should be mostly cool. The DirectShow/Windows code I wrote is fully legal, and will also handle playback of any file format that you have a DirectShow codec installed for. I've tested it with MIDI, WMA, WAV, etc and it works seamlessly, so it's not restricted to MP3. It can even stream audio over the internet with a few minor modifications.
One point that's been on my mind lately. I remain unconvinced that HL BSP is a viable alternative. The only real advantages it has are that it's relatively easy to include in an engine, and that it's relatively easy to map for. But that needs to be weighed against the fact that it basically offers nothing (aside from an extra clipping hull) that hasn't already been accomplished by engine mods. You may as well just use Q1 BSP with a LIT file, some skybox textures and some external textures, to be honest.
I would vote for Q2 BSP as a better alternative. It's open source so there are no dodgy legalities, we have a working implementation (in the form of the Q2 engine) and oodles of sample maps. It has better visibility, higher limits, and basically fixes everything that was wrong or annoying about Q1 BSP without making changes to the format that are too radical to integrate.
Aside from that, one way I can see to support multiple skyboxes, and skyrooms, is by using BSP model entities. Just draw the world without any sky surfaces and draw the entitiy with them. Any reason why that wouldn't work?
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Mon Jun 14, 2010 4:13 pm Post subject: Re: Single Player Engine Needs? |

Spike wrote:
3. EXT_DIMENSION_PHYSICS 4. EXT_CSQC can do either, or svc_finale can do 3. 5. tracebox 7. mp3 is patented, so this is risky. ogg is distributable. 8. "Seamless world". The Quake2 test code satisfactorily achieved that goal.
1. Good luck with that.
2. playdemo instead of changelevel. put a changelevel at the end of the demo. you'll lose your items. not easy to make such a demo though, but not easy to make a vid either.
3. EXT_CSQC(_SIMPLE)
4. EXT_CSQC, but will need a database of angles/offsets.
6. EXT_CSQC, with prerendered maps, or picture-in-picture.
7. ?
8. EXT_CSQC. Please don't do it server side...
9. EXT_CSQC + hub-supporting saved games.
10. EXT_CSQC (doesn't need to be sprites, can just unproject)
11. EXT_CSQC
12. Skyrooms may be more interesting (skyroom first pass, second pass draw sky first as depth-only without colour writing and draw the regular view). Job done. You can do that with CSQC if your map is leaky, but you do need to choose the correct skyroom for your location on the map.

So, in other words, Baker should instead learn CSQC and write the long awaited "CSQC for dummies - the ultimate guide to modding in modern Quake engines" ?
EDIT: I can contribute with the book front cover
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/
Last edited by frag.machine on Mon Jun 14, 2010 9:45 pm; edited 1 time in total

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Mon Jun 14, 2010 4:19 pm Post subject: |

mh wrote:
One point that's been on my mind lately. I remain unconvinced that HL BSP is a viable alternative. The only real advantages it has are that it's relatively easy to include in an engine, and that it's relatively easy to map for. But that needs to be weighed against the fact that it basically offers nothing (aside from an extra clipping hull) that hasn't already been accomplished by engine mods. You may as well just use Q1 BSP with a LIT file, some skybox textures and some external textures, to be honest.

Actually, hl1bsp format offers a couple more interesting features that unfortunately were left off in Baker's tutorial because they would affect engine behavior a lot (for instance, use of a centralized texture WAD2 file, support for transparent and alpha-masked textures and a plethora of other CONTENT_* types).
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Mon Jun 14, 2010 4:31 pm Post subject: |

MH, directshow requires windows. Many linux distros don't come with a built-in mp3 codec, for the same reason that you can't have one built in to quake. If its ogg, you can run it anywhere, even psp. HLBSP has alpha-tested surfaces built into the bsp tree. While its textures are paletted, they are individually paletted. And they can still be embedded within the bsp itself (which is better for engines that can download maps). There is a radiance tool, but also a light tool too, from what I remember.
Yes, you also get an extra clipping hull. However... The player and the 'shambler' hulls are different sizes. This generally means that monsters come out wrongly. This is not good, unless you are making a true total conversion.
Q2 bsp is nearly identical to Q1 bsp in terms of rendering, yes. You need to test contents slightly differently (==0 instead of !=-1), but renderingwise that's the only real difference. Clipping-wise is very different though, where its identical to Q3 bsp, but without the curves.
Q2BSP provides surface flags (including transparency, but only useful on non-world ents), which can contain all sorts of fun stuff. It has a radiance app already, like halflife (hurrah for orange!). It has no hull restrictions, so you can crouch, make custom sized monsters, etc etc.
Skyboxes are by default, so no legacy skies. While the format is similar, the contents changes requires that a lot of bsp-walking code is duplicated. pointcontents is a 'fun' builtin to make. Textures are always exteternal. This is both good and bad, but it does complicate downloading maps from servers automatically, but does mean that they tend to be smaller each time.
I do favour q2bsp myself, but I do not feel that it would ever come as standard, and certainly not as an easy tutorial (see csqc :P ).
_________________
What's a signature?

Back to top |

Dr. Shadowborg Inside3D Staff Joined: 16 Oct 2004 Posts: 726 |

Posted: Mon Jun 14, 2010 6:02 pm Post subject: |

What would be cool is if we could have a hybrid format named for example MQBSP (Modern Quake BSP) that would combine the best features of Q1BSP, Q2BSP, and HLBSP... _________________ "Roboto suggests Plasma Bazooka."

Back to top |

r00k Joined: 13 Nov 2004 Posts: 483 |

Posted: Mon Jun 14, 2010 6:36 pm Post subject: Re: Single Player Engine Needs? |

Baker wrote:
Lately I have been preoccupied with compiling a list of the types of things that would enhance single player and/or cooperative play.

Lists are good!
I have lists all over the place...sadly I get preoccupied writing lists instead of code

Quote:
As always, software renderer support remains on the radar.

Every platform has its own gfx API, software reminds me of coding for one cpu, which limits your target audience?

Quote:
1. Alpha support. Since this is universally supported in all modern engines, not so important. (Although alpha texture support remains important, you can't build complex entities like doors with a window in them with just alpha support because alpha affects and entire entity).

ALSO ALPHA SUPPORT FOR HALFLIFE MAPS/objects (oops caps)

Quote:
5. True chase active fixes. MH and R00k solved these.

All i did was round off point A to point B by 90% and set the zNear clipping plane to 1. Frikac wrote the original fix.

Quote:
6. 24-bit color. Half-Life bsp, but better would be making an alternate Quake map format.

That's 2 features. If using the HL1 map format purely for 256 colors, just pick a viable texture loader and use 24bit media.
HL1 map format really is simple to add to existing format.
[quote]
7. MP3 support ....
[quote]
OGG via openAL might be better

Quote:
2. Level intermissions displaying a graphic or movie.

Could add a command buffer string to the worldspawn key token thingy, this cmd_buf[1024] could be "playdemo blah", or "menu_something", or "map mymap"...? (security issues arise!)

Quote:
3. Clock running backwards to support timed missions with count downs visible to the user. R00k's example qc code appears to suggest this is a ProQuake only feature?

No, this was the communication from quakeC to PQ like a clc_stringcmd, but parsed discretely by ProQuake to overwrite the time display.

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Mon Jun 14, 2010 6:40 pm Post subject: |

Dr. Shadowborg wrote:
What would be cool is if we could have a hybrid format named for example MQBSP (Modern Quake BSP) that would combine the best features of Q1BSP, Q2BSP, and HLBSP...

Agreed, and I would even dare to add some Q3BSP features.
Also, just a look in the recents threads and one can easily add a couple more items to this list, such more control over the viewweapon properties (skins, effects, etc) and tracebox...
This lists looks more and more with what I had in mind for the QSB 1.0.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Mon Jun 14, 2010 11:30 pm Post subject: Re: Single Player Engine Needs? |

Baker wrote:
http://qexpo2003.quakedev.com/uploaded/9/digits.zip

Sajt, this is a pretty neat mod you made.

frag.machine wrote:
So, in other words, Baker should instead learn CSQC and write the long awaited "CSQC for dummies - the ultimate guide to modding in modern Quake engines" ? EDIT: I can contribute with the book front cover

Lovely

Spike wrote:
2. playdemo instead of changelevel. put a changelevel at the end of the demo. you'll lose your items. not easy to make such a demo though, but not easy to make a vid either.

Thinking about this more and not the obvious flaws of that, it would break any capability of playing coop across maps.
If the idea were more oriented towards, say, playing an ROQ format movie or displaying an intermission TGA or writing text on the screen, it would be better keeping the server running and having some equivalent of pause going on.
I'm not against CSQC and I like the idea of it, and think some things in the engine like sbar.c are a royal mess.
At the same time, CSQC end results to my knowledge don't get recorded into a demo do they?
I'm trying to think of where the lines falls between actually getting something done and carried across the finish line versus a standards paradigm.
What sucks at this point is that there are so few actual completed works involving CSQC (maybe Nexuiz and that's it? Although it does have several mods) and the rest are somewhat demos or betas.
Winning ugly is still a win, just that it has long-time viability limitations and future headaches.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Display posts from previous:

| Inside3d Forums Forum Index -> Engine Programming | All times are GMT Goto page 1, 2 Next
Page 1 of 2

Jump to:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2004 phpBB Group