Minimalist Gamedev idtech2 (Q2) based engine plan

Discuss programming topics for the various GPL'd game engine sources.
Post Reply
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Minimalist Gamedev idtech2 (Q2) based engine plan

Post by Dr. Shadowborg »

Still intend to use FTE for Smash, so this is more of a wishlist / todo / something I'd like to see done / etc. I won't pretend this is something I currently have the knowledgebase to achieve at this time. Backwards compatibility with Quake / Quake 2 is to be tossed aside.

Everybody feel free to chime in / suggest stuff / point out stupid things.

Engine:
- Fix pre-existant bugs.
- Dump software renderer in favor of optimized OpenGL 1.2 and OpenGL 2.1 renderers. OpenGL 2.1 can do all the fancy eyecandy heavy lifting, while 1.2 is meant for older / more limited hardware.
- Add support for IQM, MD3.
- Improve sound system with engoo-style stuff
- Improve Multiplayer Networking. Based on how much better Q2 copes with my 500+ ping than regular NQ does, look into seeing if this can be improved further.
- Add skeletal / physics support for ragdolls
- Figure out some way of doing UT / Doom3 style ammo counters on parts of model skins. May require new model format or something.

Gamecode:
- Add tons of comments to enable use as a means of learning C. Have been reading C Primer Plus which is making me appreciate the differences and limitations of QuakeC more.
- Look into making it more secure against malware (i.e. somebody overwriting your exe, files, etc.) by doing some sort of Q3 VM or something...

Map Format:
- Increase allowed sizes of Q2BSP to something like BSP2. Should be a good match, since Q2BSP has those vis goodies for doors and stuff...
- Maybe figure out a way of going directly to .tga, and skipping .wal files. Could cause some problems with level editors though...
- Add Q3BSP / FBSP mirrors / portals stuff

More to come as I think of it...
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: Minimalist Gamedev idtech2 based engine plan

Post by frag.machine »

Dr. Shadowborg wrote:Dump software renderer in favor of optimized OpenGL 1.2 and OpenGL 2.1 renderers. OpenGL 2.1 can do all the fancy eyecandy heavy lifting, while 1.2 is meant for older / more limited hardware.
If you're aiming for 5 to 10 year-old hardware I think it's safe by now to completely discard OpenGL 1.2 support. Please, let it go for once. :)
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Re: Minimalist Gamedev idtech2 based engine plan

Post by Dr. Shadowborg »

frag.machine wrote: If you're aiming for 5 to 10 year-old hardware I think it's safe by now to completely discard OpenGL 1.2 support. Please, let it go for once. :)
More like 15-year old hardware. Think Mobility M3's and Rage 128s. Also hardware you might find in moldy ooooold laptops. :P
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: Minimalist Gamedev idtech2 based engine plan

Post by frag.machine »

Dr. Shadowborg wrote:
frag.machine wrote: If you're aiming for 5 to 10 year-old hardware I think it's safe by now to completely discard OpenGL 1.2 support. Please, let it go for once. :)
More like 15-year old hardware. Think Mobility M3's and Rage 128s. Also hardware you might find in moldy ooooold laptops. :P
This project will be anything but "minimalist"... ;)
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Re: Minimalist Gamedev idtech2 based engine plan

Post by Dr. Shadowborg »

frag.machine wrote: This project will be anything but "minimalist"... ;)
Ergo why there are TWO renderers mentioned? :P

Seriously. If I had mentioned there would be a software render instead of a OGL 1.2 render, you'd probably still be complaining. It's not even like I want it to do fancy stuff like bloom, spinning wheels, etc. I just want it to work at a basic, crude level. You know, like software was to the opengl render back in 1998-1999. :P

I see nothing else about the project particularly bothers you though. That's good. :wink:

Anyway, nothing is likely to happen on this front until I have enough art and sound assets together for Smash. No point messing around with this until you have some sort of game to build it around...
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: Minimalist Gamedev idtech2 based engine plan

Post by frag.machine »

Dr. Shadowborg wrote:
frag.machine wrote: This project will be anything but "minimalist"... ;)
Ergo why there are TWO renderers mentioned? :P
Sorry, didn't notice you mentioned two renderers. My bad.
Dr.Shadowborg wrote: Seriously. If I had mentioned there would be a software render instead of a OGL 1.2 render, you'd probably still be complaining. It's not even like I want it to do fancy stuff like bloom, spinning wheels, etc. I just want it to work at a basic, crude level. You know, like software was to the opengl render back in 1998-1999. :P
Sorry again, didn't want to annoy you. It's your project after all, please feel free to ignore my comments.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Re: Minimalist Gamedev idtech2 (Q2) based engine plan

Post by Dr. Shadowborg »

Sorry, its actually my bad for posting something silly like this. :oops:

The more I look at this, the more I realize that this wouldn't really be all that useful unless it was a package that came with at least a dedicated model editor and map editor. :-/

Oh well, it was just a crazy idea anyway...
JasonX
Posts: 422
Joined: Tue Apr 21, 2009 2:08 pm

Re: Minimalist Gamedev idtech2 (Q2) based engine plan

Post by JasonX »

Why not build on top of something much more versatile such as the Tesseract engine? It's rock-solid, has a much more permissive license than id tech's, very very easy to add new gameplay logic (since it has just the barebones) and the code is very well written.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Re: Minimalist Gamedev idtech2 (Q2) based engine plan

Post by mh »

Different people have different definitions of "minimalist" and some say "minimalist" when what they really mean is actually something else.

The comment upthread about supporting both GL 1.2 and GL 2.1 being anything but minimalist is too true: at the most basic level, for everything you do you will have to do it twice.

The main point to note is about supporting older hardware. I see this desire expressed elsewhere by people wishing to keep the GL version low, and it's necessary to ask: do these target systems actually exist or is this just a theoretical goal? Because if you're coding to a hypothetical target system that doesn't actually exist, you're wasting your time and only fooling yourself.

It's a fallacy to think of shaders as only being for "fancy stuff like bloom, spinning wheels, etc". With shaders you can do things like corrected water warps, hardware-accelerated frame interpolation, etc, without even moving beyond the original engine's look and feel. And all of this can be done with less code, and simpler code, than brute-forcing it in software. A more specific example: have a look at FitzQuake's sky code. All of that can be done in about 50 lines of C code, with significantly higher quality and performance, by moving to shaders. I know which approach I consider to be simpler and more minimalist.

I've a Quake 2 engine that's D3D9, Shader Model 3 only, and with no fallback paths for older hardware, which I consider minimalist. There's a single code path to maintain and debug, performance and appearance is consistent across a wide range of hardware from multiple vendors, the code is clean and simple and all the vendor-specific special-casing in the original is totally ripped out. None of that would have been achievable if I hadn't picked a good, sensible baseline and decided that I had no interest in supporting anything below it.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Re: Minimalist Gamedev idtech2 (Q2) based engine plan

Post by Dr. Shadowborg »

JasonX wrote:Why not build on top of something much more versatile such as the Tesseract engine? It's rock-solid, has a much more permissive license than id tech's, very very easy to add new gameplay logic (since it has just the barebones) and the code is very well written.
Not a bad idea to look into at some point in the future, that said, 250+mb / 587mb (sauerbraten) is quite a download.... :shock:
Post Reply