# Did you know that Quake 3

**URL:** <https://forum.kirupa.com/t/did-you-know-that-quake-3/262761>\
**Category:** random\
**Created:** [June 9, 2008, 6:12pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761 "2008-06-09T18:12:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![rumblesushi](https://avatars.discourse-cdn.com/v4/letter/r/b38774/32.png) [@rumblesushi](https://forum.kirupa.com/u/rumblesushi)\
**Post date:** [June 9, 2008, 6:12pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/1 "2008-06-09T18:12:56Z")

</div>

was developed procedurally?

Produral programming FTW! 😃

Does anyone know of any other major piece of software that was created procedurally?

---

<div class="post-metadata">

**Author:** ![Templarian](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/templarian/32/7152_2.png) [@Templarian](https://forum.kirupa.com/u/Templarian)\
**Post date:** [June 9, 2008, 6:22pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/2 "2008-06-09T18:22:50Z")

</div>

OOP ftw… doom I’m betting was procedural… hmm… probably a lot of older games.

Meh. What a random thread.

---

<div class="post-metadata">

**Author:** ![MTsoul](https://avatars.discourse-cdn.com/v4/letter/m/91b2a8/32.png) [@MTsoul](https://forum.kirupa.com/u/MTsoul)\
**Post date:** [June 9, 2008, 6:29pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/3 "2008-06-09T18:29:01Z")

</div>

Firefox, from the looks of its UI performance.

---

<div class="post-metadata">

**Author:** ![rumblesushi](https://avatars.discourse-cdn.com/v4/letter/r/b38774/32.png) [@rumblesushi](https://forum.kirupa.com/u/rumblesushi)\
**Post date:** [June 9, 2008, 6:46pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/4 "2008-06-09T18:46:41Z")

</div>

I think Doom was too. Any others?

---

<div class="post-metadata">

**Author:** ![nobody](https://avatars.discourse-cdn.com/v4/letter/n/94ad74/32.png) [@nobody](https://forum.kirupa.com/u/nobody)\
**Post date:** [June 9, 2008, 6:48pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/5 "2008-06-09T18:48:46Z")

</div>

snake

---

<div class="post-metadata">

**Author:** ![rumblesushi](https://avatars.discourse-cdn.com/v4/letter/r/b38774/32.png) [@rumblesushi](https://forum.kirupa.com/u/rumblesushi)\
**Post date:** [June 9, 2008, 6:50pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/6 "2008-06-09T18:50:53Z")

</div>

[quote=Templarian;2339551]OOP ftw… doom I’m betting was procedural… hmm… probably a lot of older games.

Meh. **What a random thread**.[/quote]

Thanks. I feel it suits the section perfectly 😉

---

<div class="post-metadata">

**Author:** ![Templarian](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/templarian/32/7152_2.png) [@Templarian](https://forum.kirupa.com/u/Templarian)\
**Post date:** [June 9, 2008, 6:54pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/7 "2008-06-09T18:54:23Z")

</div>

rumblesushi, as long as your not planning on using procedural programming style. :lol:. I mean really in this day-and-age its not very practical or time effective (depending on the language and IDE).

---

<div class="post-metadata">

**Author:** ![rumblesushi](https://avatars.discourse-cdn.com/v4/letter/r/b38774/32.png) [@rumblesushi](https://forum.kirupa.com/u/rumblesushi)\
**Post date:** [June 9, 2008, 7:17pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/8 "2008-06-09T19:17:22Z")

</div>

Well actually quite the opposite, I’m moving onto AS3 now, and trying to get my head round an OOP way of thinking.

However, it’s difficult for me, because I started programming with AS1, and have never learnt another language. So for years I’ve only known the procedural way, it’s so hard to think in terms of classes, even though I write reusable functions all the time.

So this thread is just defending my roots and honour 😛

---

<div class="post-metadata">

**Author:** ![snickelfritz](https://avatars.discourse-cdn.com/v4/letter/s/7ea924/32.png) [@snickelfritz](https://forum.kirupa.com/u/snickelfritz)\
**Post date:** [June 9, 2008, 7:19pm UTC](https://forum.kirupa.com/t/did-you-know-that-quake-3/262761/9 "2008-06-09T19:19:22Z")

</div>

Back in 2001, I did a lot of custom levels and shaders for Quake3, and even got some good [[COLOR=“Blue”][U]reviews[/U][/COLOR]](http://lvlworld.com/#c=m8&i=1024&d=16%20May%202008&m=All&p=review) on a few of my projects.  
Relatively easy to do, and the performance of this old engine was amazing at the time.

Here’s a snippet from one of the external shader scripts from “Flatiron” that creates a transparent rippling liquid with environment-mapped reflections on the surface.

```auto
textures/snick_terra/ripple_wawa	
	{
		qer_editorimage textures/liquids/pool3d_3.tga
		qer_trans .5
		q3map_globaltexture
		fogparms ( 0 0 .376 ) 256
		surfaceparm trans
		surfaceparm nonsolid
		surfaceparm water

		cull disable
		deformVertexes wave 64 sin .5 .5 0 .5
		{ 
			map textures/liquids/pool3d_5.tga
			blendFunc GL_dst_color GL_one
			rgbgen identity
			tcmod scale .5 .5
			tcmod transform 1.5 0 1.5 1 1 2
			tcmod scroll -.05 .001
		}
	
		{ 
			map textures/liquids/pool3d_6.tga
			blendFunc GL_dst_color GL_one
			rgbgen identity
			tcmod scale .5 .5
			tcmod transform 0 1.5 1 1.5 2 1
			tcmod scroll .025 -.001
		}

		{ 
			map textures/liquids/pool3d_3.tga
			blendFunc GL_dst_color GL_one
			rgbgen identity
			tcmod scale .25 .5
			tcmod scroll .001 .025
		}

		{
			map textures/effects/tinfx3.tga
			blendfunc add
			rgbgen identity
			tcGen environment
		}

		{
			map $lightmap
			blendFunc GL_dst_color GL_zero
			rgbgen identity		
		}
	}

```
