Latest tut on Quake 3 maps

A forum to store posts deemed exceptionally wise and useful
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

Sure you can have terrain and an open roof that looks at the sky; the trick is that even the skies are boxes closing your map, only that you apply a sky shader to them. When you load this level into Irrlicht (since Irrlicht doesn't read Q3 shaders) you'll get a missing shader error in the console and a blank space, so you load an Irrlicht skybox instead and you're done.

Same with terrain. Gtkradiant 1.4 comes with Gensurf as plugin so you can generate terrain directly within the editor and it will be map-format-compatible. But you must always enclose it or surround it by closing boxes (no leaks) textured with the sky shader. Unfortunately, Gtkradiant 1.5 comes with no plugins and it seems like they haven't developed any of them for 1.5.

Better yet! an image is worth a 1000 words!
1.Create a huge box in Radiant. This box will be the container of your level so make it big enough to wrap your level. By default it will display the "no shader" texture.
http://afecelis.gdlib.net/Irrlicht/skies01.jpg
2.With your box selected, click on the "hollow" button (red mark). You'll get 6 brushes created and now you can move inside your cube in the 3d view.
http://afecelis.gdlib.net/Irrlicht/skies02.jpg
3.Texture your 6 brushes with a sky shader.
http://afecelis.gdlib.net/Irrlicht/skies03.jpg
4.Build your level inside. No leaks guaranteed! :wink:
http://afecelis.gdlib.net/Irrlicht/skies04.jpg
5.Compile and load into Irrlicht. Remember to add an Irrlicht skybox to replace the quake skybox.
http://afecelis.gdlib.net/Irrlicht/skies05.jpg

In case you don't have Q3 sky shaders, you can find some very cool ones here:
http://amethyst7.gotdoofed.com/env.htm
remember to follow the instructions included to get them to work properly, specially for the lighting part.

As a final note, I'm also planning to update the tutorial witn a much faster approach: using openarena (free opensource port of Quake 3 with free content) combined with the latest version of radiant 1.5 to create a fast,robust and efficient pipeline for Irrlicht. This way we could create and try the levels immediately and then move everything to our Irrlicht projects. It's how I'm working now and it really is simpler and faster.

Info on openarena here:
http://cheapy.deathmask.net/

Hope it helps! :wink:
Last edited by afecelis on Wed Jun 07, 2006 4:57 pm, edited 1 time in total.
Mecharius
Posts: 17
Joined: Wed Jun 07, 2006 7:05 am

Post by Mecharius »

Thanks afecelis, that was a very complete answer in quite a short time!

I was thinking about making a big box about the terrain, but didn't realise the whole shader not displaying thing :)
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

Some more news. Just downloaded and tried the standalone version of Gensurf and it works very nice. It generates your terrain in map format that you can then load in radiant and build your level based on it.
Image

you can get Gensurf here:
http://tarot.telefragged.com/gensurf/downloads.htm
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

here's a quick update to the tutorial; more than an update it's acomplement to it and a quicker alternative.
1. Download the latest Gtkradiant build here:
http://zerowing.idsoftware.com/files/ra ... -07-22.msi
2. Download Openarena, you'll find several mirrors here:
http://cheapy.deathmask.net/
openarena offers us a free version of Quake3 with free content and it's fully recognized by Radiant.
3. Install each of the programs. For radiant use the "complete" option.
4. Launch Gtkradiant; hit "p" to open its preferences. Go to Global-game, and choose Quake III arena from the dropdown list. Uncheck "startup" so that it always loads Quake 3 by default.
Image
5.Now go down to Settings-Paths and set the path to where you installed openarena:
Image

You're done! Now you can follow the other tips in the tutorial to create Q3 maps for Irrlicht! Just copy your textures into the /baseq3/textures folder and radiant should detect them.
Last edited by afecelis on Mon Jul 24, 2006 1:22 am, edited 1 time in total.
3DG|Bugo
Posts: 3
Joined: Thu Jun 29, 2006 6:07 am
Location: Buenos Aires, Argentina
Contact:

Post by 3DG|Bugo »

afecelis wrote:When you load this level into Irrlicht (since Irrlicht doesn't read Q3 shaders) you'll get a missing shader error in the console and a blank space, so you load an Irrlicht skybox instead and you're done.
Hi. I followed your guideline step by step, and i managed to get a skybox working ok through the addSkyBoxSceneNode, but here's the thing:

I've made the big bounding box to prevent leaking, applied a sky shader texture from the Q3 Package in gtkRadiant 1.5, and when i load the bsp in my test app, i get no shader error, but also no shader loaded of course, just the "static" sky texture...

Any thoughts? I guess gtkRadiant 1.5 is not inserting shader information into the BSP file...

The result of this, is that my bounding box actually does have a texture, which prevents from seeing the SkyBox unless i go out of it. An alternative i've found but i don't quite like, is just applying any texture to the bounding box, and not putting that texture in my .pk3. This way, it fails loading it and making the bounding box transparent, allowing me to see the skybox...

Any help would be appreciated.

Regards,
Alan //
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

You could try then texturing it with the "caulk" texure. This way you won´t get any leaks and since CAULK is an invisible texture you´ll be able to see thru it and load your Irrlicht skybox. Although the lighting you get on your levels from sky shaders (I mean the lightmapping) is pretty cool and you´d be sacrificing it.

could you uplaod your app to test it out and see what's wrong with your skybox? :wink:
3DG|Bugo
Posts: 3
Joined: Thu Jun 29, 2006 6:07 am
Location: Buenos Aires, Argentina
Contact:

Post by 3DG|Bugo »

afecelis wrote:You could try then texturing it with the "caulk" texure. This way you won´t get any leaks and since CAULK is an invisible texture you´ll be able to see thru it and load your Irrlicht skybox. Although the lighting you get on your levels from sky shaders (I mean the lightmapping) is pretty cool and you´d be sacrificing it.

could you uplaod your app to test it out and see what's wrong with your skybox? :wink:
Sure, thx a lot. I'll upload it after reaching home from work tonight, the C++ App for Visual C++ (including the .pk3 i've created) and the source .map file i'm using from gtkRadiant as a test. =)
3DG|Bugo
Posts: 3
Joined: Thu Jun 29, 2006 6:07 am
Location: Buenos Aires, Argentina
Contact:

Post by 3DG|Bugo »

Well i've tried from Scratch with the "bleached" skybox at that site you gave. Now when my app starts, it warns "Could not load texture "bleached_skybox". Is the bsp still leaking? What should be the error? Something like "shader couldn't be loaded" or what?.

Is there a way to ask the engine to check for leakeage?.

The "bleached_skybox" is a shader for sure in gtkRadiant since it apears with the white border...

Regards, Alan //

Here's the proyect anyway: http://www.3dgames.com.ar/temp/JogoBonito.rar
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

Hi Alan,

Sorry for not replying any sooner but I was a bit busy.

There are several issues with your map and hence your pk3. First of all, it's not monumental...at all! :wink: hehehe, it barely contains the player. Use Gtkradiant´s grid as guide. If you set it to 8 units then each major guideline is approximate to 1 meter, so in this case your level would only be 2x4x2m height. But that's not the problem. The real problem is that you didn't include any textures for your map in the pk3 file! So I tried retexturing it and creating a new pk3 file and it worked!
Image
your skybox is properly loaded outside of it.

I'd suggest 2 things.
1. Grab my modified pk3 file here:
http://afecelis.gdlib.net/Irrlicht/MonumentalBase.pk3
and check how things are organized.
2. re-read the tutorial as I explain which folders need to be created for a proper pk3 file. And what each should contain.

oh yes, las thing; you're loading the skybox from the pk3 file and works ok. I usually load the 6 images directly. But your way is more "a la" quake 3 way. :wink:

hope it helps
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Hey im having trouble using gensurf with radiant. When I create a map file using gensurf and load it using radiant I get nothing, also it cannot find the shaders. I think im a little uneducated on this process here do you know of any tutorials for using gensurf + gtkradiant? I will check the gensurf website now...
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

No help here?
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

Quake 3 Shaders will never load in Irrlicht. As of Gensurf, terrain creating process is pretty straight forward and visual. I usually change some values, preview the terrain, save as .map and then open this map in radiant, surround it by a skybox and build my level on it.

As of tutorials, there are not many around but they're pretty concise:
http://www.vlatitude.com/tutorials.php?tutID=42
http://www.gamedesign.net/node/595?PHPS ... 107a5850c3
http://tarot.telefragged.com/gensurf/appendix.htm#tips
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Thank you! :D
KG
Posts: 35
Joined: Wed Jun 07, 2006 12:00 am

Post by KG »

The link in the first post doesn't seem to be working for me. Does anyone still have a copy of it?
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Actually, all of gdlib.net seems to be offline for me. Lets hope its just temporary.
Post Reply