Digital Amusement Game Development

Talk about the pond in the forums!

The n00b's Make It Go
guide to making a map in minutes.

Currently in the pond:
(dynamically generated)

a_wily_duck.jpg
a_wily_duck2.jpg
a_wily_duck3.jpg
archive01.shtml
archive02.shtml
archive03.shtml
archive04.shtml
archive05.shtml
archive06.shtml
archive07.shtml
archive08.shtml
archive09.shtml
archive10.shtml
archive11.shtml
archive12.shtml
archive13.shtml
archive14.shtml
archive15.shtml
archive16.shtml
archive17.shtml
barrettdaniel.doc
cgi
da-net-images
exhibition
gamedev.shtml
gamedev.shtml.bak
gamedev_test.html
images
index.shtml
mapping
maps
pico.core
quakecon2003
stuff
urban_terror_splat.jpg
wilyduck

Urban Terror - a Quake 3 Total Conversion - www.urbanterror.net
Clan FSK405 - The most generous clan in the community!






04-22-2003
The release of ut_momentum beta 1 will be postponed until tomorrow.



04-21-2003
Big props to the UrT mappers that have put up with me thus far. :) I now know what caused my rotation problem with my brushes - simply it was the snap to grid option. When I turned off snap to grid, I could move and rotate my object/model freely. That's a HUGE relief. I then updated the textures on the monitor to use smaller textures, since one of them was an expensive .tga I was experimenting with. Thanks again to the UrT mapping forum guys.

I was messing around with fog again, after I fleshed out the living room. I managed to crash my system after "doing things" to the fog in-game. LOL. With a few extra tweaks, I'll have my map ready for a first release by tomorrow night. One thing I hope to accomplish by then is shadering the wall textures so they don't absorb so much light (so you don't see the glow spheres).

I tried adding a breakable entity to my mirror - and it worked! The cool part is, watching the FPS, one notices the performance hit immediately. 70 fps before, 100 fps after breaking the mirror. Yeah. I also gain about 10 fps everytime I break a window (of course I lose that 10 fps before when I stand right in front of it so q3 has to render everything with that shader).

Last note for today, back to the rotational problem. It appears that you must load the map with snap to grid disabled, else the rotated brushes can warp. I did notice one texture misaligned even then, but after realigning it, saving, and reloading the file, it stablized. Remember - first beta tomorrow!



04-20-2003
(SS|KAG_PIRATE) then a duck wadly by me and went QUAKE

It's great that the path I'm paving is beginning to help others. In some ways, I suppose I'm creating inspiration to map, which is also great. I'm planning on a 1st beta release when I get the basic build of the map down, which shouldn't be too long from now. At this point, I've populated the kitchen, and created the living room. Once I add the windows, front hallway and closet, front door/porch, and populate the living room, I see a potential release. So all you eager beavers out there in clan |FOOF| will have your first chance to stomp around in my pad. ;)

Quick note, I messed up an image from yesterday, fixed (you can see the whole map now). Anyway, I went through my map and miterboxed everything I could find. What's that again? From yesterday: "It involves taking two connecting brushes, and reducing 3 brush faces into two by re-adjoining them at a 45 degree angle." It actually wasn't so hard, did take a little time, and I learned something. Shortcut keys are your friend. I think I knocked down the compile time by .5 seconds after, which isn't all that, but fine.

I've got some special plans for the map too... the specifics on those won't be revealed until much later, but I guarantee good times. And now for today's tip! You want textures. Where to put them, what to do?? It's easy! We'll use Kag as our example n00b mapper. :) Create a directory "q3ut2/textures/kag". Put all your jpg's and tga's in that directory. While we're at it, create a shader file called "kag.shader" (leave it blank that's fine) and put that shader file in "q3ut2/scripts". Lastly, add "kag" to your "q3ut2/scripts/shaderlist.txt" file. In Gtk, when you select "textures - shaderlist.txt only" then you will see "kag" in your menu. Select "kag", and all your textures load in the texture window. Cheesecake!

Last for today, I played around with the skybox a bit. Copying the fullmoon skybox to my own skybox, I messed around with the shader to see how I could affect lighting. I was not happy with light blue light so I changed it to white light, then dropped the intensity to almost nothing. Check it out:
textures/dan/dan_fullmoon
{
	surfaceparm noimpact
	surfaceparm nolightmap
	surfaceparm sky
	q3map_sun 1.0 1.0 .9 1 1 1    <--- says: red 100% green 100% blue 90%
	q3map_surfacelight 50                    and intensity of 1
	q3map_globaltexture
	q3map_lightsubdivide 512
	skyparms env/dan/dan_fullmoon 256 -
}
I'll go over more of this at a later time. But for now, I leave you with the current look of the kitchen!





04-19-2003
Much progress has been made since yesterday! Here's what's to know today: I have now fleshed out the bathroom and bedroom part of the map. The kitchen exists, but building that is tomorrows' project. For the bathroom, I intend to have the shower spraying water and creating a steamy atmosphere - i.e. fog. So at first, I had a mirror in the bathroom, and a second in the bedroom. Now for those unaware, usage of mirrors ought to be thin in one's map due to the fps hit. I knew this, but since it is my first map, I figure what the hell, it's not playable material anyway. However, what I found is that for some reason, having two mirrors doesn't work, as one wants to render stuff that's not there (even though they never see each other). So back to the bathroom. I figured in this steamy environment, the mirror would be fogged up. I placed a solid black texture behind a glass brush. Instant foggy mirror look. As for placing the fog, that's for another day. I finally figured out what I was doing wrong with jumppads. I was linking an origin brush (via the trigger_push entity) to the target_position entity. This doesn't work. However, a simple brush with a caulk texture linked to the target_position works fine. Hmm. Well, why in the hell would I have a jumppad in my map designed to be a model of my house?? To jump on the bed of course!!



Take a look... I haven't really textured any of the objects yet, but as you can see, it's coming out nicely. I had BIG problems once again making the toilet bowl object, so I scrapped it and made an even better, more simple model. Speaking of models... I have been reading through the Gtk manual. I know chipping away at a brush is a totally noobish way to make an object, so in searching for a better tool, something called Milkshake has been mentioned. A new quest! Either way, I'm looking at myself as an amature now rather than noob. Level up? Yeah! :)



Lastly today, I've been learning about the value of caulking. For the unaware, a caulk texture will not render in the q3 engine, but a caulked brush should reduce map compile times. So, as I read, clean mapping involves caulking all non-viewable brush faces. I spent a chunk of time going through my map and caulking all non-viewable surfaces, and also timed compiling the map before and after.

Before: 33.65 seconds
After:  30.19 seconds
It appears to have an effect... The compile I ran was "(test) BSP -meta, -vis, -light -fast -filter" in 1.3.7. The next thing to do is "miterboxing" and I am not looking forward to that. It involves taking two connecting brushes, and reducing 3 brush faces into two by re-adjoining them at a 45 degree angle. I looked through all my brushes, and there's much optimization to be done.... :(

Until tomorrow!





04-18-2003
Sorry I have to start out like this, but this is necessary info for any Gtk mapper. I've nailed down what's causing the vertex warping problem. Gtk does not appear to like floating point vertexes AT ALL. I mean it really gets back at you for making it think about non-integer values. Thus, arbitrary rotations that are not divisible by 90 degrees cause weird things to happen. I'm taking this into the UrT forums to see what they think. I've submitted a bug request to Q3Radiant.com as well. The new dev version of Gtk (1.3.7) did not solve my problem either. So in that regards, I've done mostly troubleshooting, rather than mapping, over the past day. Yuk!

Anyway, we've got today's tip. How did I make that slight light beam come out of the monitor? Easy - but I did encounter some amusing problems while making the beam. Load the sfx/beam texture, and apply the beam to whatever sides of a brush that you want to see a beam on. The rest of the faces, apply the common/caulk texture. Here's where one of yesterday's bugs tried to ruin my beam. The beam won't necessarily apply in the direction you want it to... so in the surface inspector, just rotate it, right? WRONG. The texture will do everything you don't want it to, no matter how hard you try otherwise. What you can do is one of two things - project the texture like I did yesterday, or rotate the brush to where the texture wants to default to then rotate the brush back. Both ways are ghetto and require patience. I can see now why many people are discouraged from designing maps (in addition to the compounding amount of problems I've had thus far!).

Tomorrow I will have created more simple objects into my map, and expanding the map. I still really like my monitor! :)


04-17-2003
Today my eyebrows are crunched together and I'm about to break something between them. Couple of bugs in Gtk are really messing with me... two particuarilly: brushes that suddenly want to become a different shape and the broken texture fit command. With enough time I can create a work around, but I shouldn't be dedicating so much time fighting against the tool. I'm downloading a new version of Gtk (1.3.7) that will hopefully fix these problems.

Now the good news! Not only do I have a monitor now, but I've skinned it too. Skinning is kind of tricky. Here's how to make it simple. Find your object that you want to skin. Create a new square brush of the same dimensions as the outer edges of the face of the object you will skin (including all brush faces). Move that brush parallel to the faces, and probably move the brush away some. Now, you may project the texture onto those faces. Shift-control left-click the outer face of the square brush to select it. Click the texture you want. That face has your texture, and to project it, shift-control middle-click the faces on the object - all of them. Your texture projects, your object skins. Done!

I made a wooden room to play in. Check out how beautiful that monitor turned out!


For now, it appears Gtk has another bug that doesn't know how to project correctly sometimes, so you may have to select the square brush face, then a face of your object, then back to the square brush to wisen up Gtk. Ridiculous, yes. Anyway, we shall push onward.

I've tried a couple other techniques as well. The first, I added an aura beam glow to the front of the monitor (very cool). I'll explain that later. I also added a light of (5) intensity for added glow effects. The other technique was creating a texture with transparencies (like a fence). This technique was another example of digging around the net for correct information. Combining what I learned from SweetnutZ's shiny window tutorial and Q3Lab's shadering tutorial, I was able to create the correct shader that allows for transparency. Here's the result:

textures/yourtextures/trans_tex_image
{
    surfaceparm trans
    surfaceparm alphashadow
    surfaceparm nomarks
    cull none
    nopicmip
    {
        map textures/yourtextures/trans_tex_image.tga
        blendFunc GL_ONE GL_ZERO
        alphaFunc GE128
        depthWrite
        rgbGen identity
    }
    {
        map $lightmap
        rgbGen identity
        blendFunc GL_DST_COLOR GL_ZERO
        depthFunc equal
    }
}

Remember, any questions about what I'm doing, how I do it, or whatever else, you can always email me or find me on ETG #FSK405!



04-16-2003
Back in the goo with you. Since yesterday, a new form of evolution has transpired... I have created an object!! My Sony 19" monitor now has a home in the pond. I've learned quite a few things about creating an object that I'll share today.



First, anyone who has come this far knows how to make boxes/brushes and lay textures on them. But what if you don't want to make a 6 sided box? Well there are the default shapes you can create (i.e. 5 sided, 8 sided brushes). Those won't cut it. What will cut it though is the magical clipper tool. At first it doesn't make any sense, but you know what's up - I'll break it down for you!

You've got a brush, 6 sided, nothing special. One of those unfortunate corners are about to get hacked off. Select that brush in front of you in the 2d graph window. The clipper assumes what to do based on your axis in 2d mode (like top down view XY). What you will do is drop two points onto the brush using control-rightclick, and think of it as a clean samurai cut. Then you can delete either side of the cut based on how you positioned your 2 points. Hit enter, done! Your 6 sided cube brush is now a 7 sided brush that looks like one of the edges were crushed in. You can change the axis and continue to cut the brush to your desire.

Here's where the trick comes in. When you cut the brush, the editor will create other simple brushes to build your complex shape. So the more cuts you put in, the more brushes you create. For extra detail, hit E to move edges around (again based on your axis) or hit V to adjust verticies.

On today's final note, problems and bugs with GtkRadiant involving today's topics. For reasons unknown to me yet, if I select the whole monitor, or all the brushes that make it up, and rotate the object, then move the rotated object, Gtk gets confused and starts moving verticies where I don't want them. So you'll have to preposition where you want your object, then rotate it to it's final position. Using the default XYZ rotate buttons appear to be safe. Based on this observation, and the fact that Gtk doesn't appear to do well with objects less that 1 unit, I'd say there's a problem with floating point numbers.

Aaaaaaaannnnnd ...... the Make It Go tutorial is complete!!! Yeah!!!

'Til tomorrow!




04-15-2003
Tax day, biatches!!! Time to pay the mutha fuckin piper! Well the pond here can help release some of that depressing stress. Today we find more mapping newb goodies to feast on! Yeah check that fine image above, and you know you're in good hands.

Alright so here's what's floatin today. I made the textures for the desk and the entertainment center. It was a little tough getting the wood texture to tile fluidly, due to light variances gradiantly from edge to edge. Here's the trick of the day. Check the left pic with the two pieces of furniture. The desk on the left uses the original wood texture, HOWEVER you will immdiately notice how it is blurred. The wood texture on the entertainment center is much sharper.

The blurred texture is the default horizontal and vertical stretch for the texture. I find that reducing the stretch from the default .5 to .25 cleans the texture up nicely. Tomorrow I'll show you the results of using the correct stretch on the desk. I did update the dark wood texture since the screenshot was taken, so now it represents a darker, deeper wood color. I cheated a bit with the entertainment center, using the same desk wood texture, but changing the hue/brightness/etc.


I've got the basic setup for the hallway, bedroom, bathroom, and kitchen now. Since these screenshots were taken, I've repositioned the rooms to match the thickness of the walls. Now, at first I thought it would be tough, but then I discovered the "select inside" button. Basically you make a brush that encompasses the area you want to select, and it will select all brushes inside, as it says. This was really useful for copying the window from the computer room and pasting it into the bedroom. Of course, I had to first decide where in the bedroom the window would go, make a brush of matching size and CSG subtract the area out of the wall (then put the window there). I've been making sure that brushes don't clip other brushes, because apparently the compiler takes longer while it figures out how to unclip them.

I also played with lighting, and tried my hand at fog. The fog was unsuccessful, creating weird artifacts. Lighting on the map changes depending on the depth of compiling... which I found via trial and error. Lots of trial and error going on! No problem! The duck knows how to stay afloat. At some point here I'll post the textures I've made so you can use them too if you'd so like. Check you tomorrow!

04-14-2003 pm
Ok, so now that it's not 4 in the morning, I can make thumbnails for the new screenshots! You can see a significant difference in look of the floor and walls. The bookshelves and window sill uses a slightly blueish white texture which makes their flat white color work well. The carpet texture is my carpet, and the walls my walls. I'll continue using my own patterns whenever possible. I intend to get the texture for my desk and entertainment center.
 

04-14-2003 am
Early update, probably be a second later today. I've finished the floor, wall/ceiling, window sill, and bookshelf textures. Spent quite a bit amount of time on playing with the lights. Probably be quicker to read a faq on lights... will do soon, good leaning experience in the meantime. It's actually starting to look like a room!!

04-13-2003
All new screenshots of my computer room! Working on the lighting. I have textured my first object! The gold-colored PC you see is my real PC, named Phoenix Omega. It's what I do my fragging (and mapping) on. It was a pain in the but as all things are when you don't know the tricks, it was worth it. I continue my endevor!


04-12-2003
Today's tip: Textures - one block unit it 16 pixels tall and wide. You can flip a face texture by assigning a negative value to the horizontal or vertical stretch in the surface inspector.

4-11-2003
Until I figure out exactly what I'm going to put here, here's a couple pics of the (my first) map I'm working on. It's a replica of the first floor of my house, starting in my computer room. The first day of building it, I worked on figuring out proportions between Quake3/Urban Terror units and inches. For your handy reference, here they are below:

Convert inches to block units
  • Width/Length = inches * 1.6
  • Height = inches * 1.165

Then I was working with lighting, and various simple entities, like rotating doors and breaking glass. Below is the first and second screenshot of my computer room as of current:

facing window, hall
opposite corner, new closet, better lighting

I also have a tutorial for first-time (newbie) mapmakers. It's clear and concise, and most importantly... accurate! Check it out!



The Digital Amusement Network