<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Shores of Nis</title>
	<atom:link href="http://shoresofnis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://shoresofnis.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 05 Jan 2012 23:03:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='shoresofnis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Shores of Nis</title>
		<link>http://shoresofnis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://shoresofnis.wordpress.com/osd.xml" title="The Shores of Nis" />
	<atom:link rel='hub' href='http://shoresofnis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to make a map.</title>
		<link>http://shoresofnis.wordpress.com/2011/02/11/how-to-make-a-map/</link>
		<comments>http://shoresofnis.wordpress.com/2011/02/11/how-to-make-a-map/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 01:48:42 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=335</guid>
		<description><![CDATA[so&#8230;  i some how stumbled on this webpage: http://www.ehow.com/how_2057344_develop-plot-fiction.html for fun, i thought i&#8217;d just convert this so that it is relevant to mapping. Identify your conflict. Without a conflict, there is no story to tell. Two of your characters (at least) want different things and only one can get what he or she wants. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=335&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>so&#8230;  i some how stumbled on this webpage: http://www.ehow.com/how_2057344_develop-plot-fiction.html</p>
<p>for fun, i thought i&#8217;d just convert this so that it is relevant to mapping.</p>
<p><span id="more-335"></span></p>
<p><span style="color:#000000;"><em>Identify your conflict. Without a conflict, there is no story  to tell. Two of your characters (at least) want different things and  only one can get what he or she wants.</em></span></p>
<p><strong>Make sure there is always somewhere to go.  The player should always have a clear goal in mind, even if it&#8217;s just &#8216;there&#8217;s a monster, go shoot it&#8217; or &#8216;i&#8217;ve never been here before, let&#8217;s look around&#8217;.</strong></p>
<p><em>Think of a triangle. Your story should take the shape of a  lopsided triangle. It starts on the left corner, which is your first  paragraph; it progresses in a long, sloping line to the apex of the  triangle, which is the climax of the story; it then falls quickly to the  right corner, which is the last paragraph of your story. This will give  you an idea of how many plot points you need before the climax and how  many afterward.</em></p>
<p><strong>The map should become progressively more difficult as time wears on.  Likewise, weapons and ammo as well as armor should become more powerful as the challenge becomes higher.</strong></p>
<div><em>Start with an unhappy main character. If your protagonist is  happy, why would he or she embark on a struggle that will take him or  her to the climax of the story?</em></div>
<div></div>
<div><strong>Try to lead the player on.  Put powerful weapons on display but just out of reach.</strong></div>
<p><em>Give the main character obstacles and encouragement. It must  be difficult but not impossible to obtain the goal. Remember that other  characters are terrific sources of both obstacles and encouragement.</em></p>
<p><strong>Gvery once in a while, give the player a little something extra, both in monsters and items.  a mega-health or shambler in otherwise normal combat areas.</strong></p>
<p><em>Put the gun on the mantle. A writing aphorism states that if  one character will shoot another at the end of a play, the audience  needs to see the gun on the mantle at the beginning of the play. Fill in  your story with the details needed to make the climax inevitable.</em></p>
<p><strong>If you&#8217;re going to put in keys or other barriers, make sure the player actually sees those barriers first, before unlocking them.  The only exception to this would be if you had multiple routes to the same goal.</strong></p>
<p><em>Make the reader nervous. Just before the climax of the story,  it must seem that all is lost for the main character before some  last-minute action turns things around and brings on the climax of the  story.</em></p>
<p><strong>This one&#8217;s easy:  try to scare the player.  Place monsters in places the player might not look automatically or force them to fight monsters from more difficult angles.  Alternatively, lull the player into complacency and then shake them up.</strong></p>
<p><em>Wrap things up. After the climax, make sure there are no  loose ends, no unresolved plot points that would leave the reader  unsatisfied.</em></p>
<p><strong>It&#8217;s advisable to make the map in such a way that it&#8217;s possible to get 100% kills and secrets even after you&#8217;ve gotten to the end.</strong></p>
<p>&nbsp;</p>
<p>&#8230;just so i wrote something on this blog in 2011. :P</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/335/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=335&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2011/02/11/how-to-make-a-map/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>ne_qcStarter released (1.0.0)</title>
		<link>http://shoresofnis.wordpress.com/2010/12/22/ne_qcstarter-released-1-0-0/</link>
		<comments>http://shoresofnis.wordpress.com/2010/12/22/ne_qcstarter-released-1-0-0/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 02:12:33 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[ne_qcStarter]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=328</guid>
		<description><![CDATA[A program of dubious usefulness, this should speed up the creation of frame macros when making a new monster. I don&#8217;t know if there are better options out there, but I enjoy doing this kind of thing so I didn&#8217;t really check all that hard. It&#8217;s not terribly difficult to use, just fill in some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=328&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A program of dubious usefulness, this should speed up the creation of frame macros when making a new monster.</p>
<p>I don&#8217;t know if there are better options out there, but I enjoy doing this kind of thing so I didn&#8217;t really check all that hard.</p>
<p>It&#8217;s not terribly difficult to use, just fill in some text boxes and it spits out QC code for monster frame macros.  Things like stand, walk, run&#8230;  It doesn&#8217;t create anything like the main monster function or setting up .th_xxxx links&#8230;  I suppose I might do that if it bothers me enough.</p>
<p><a href="http://necros.quaddicted.com/downloads/ne_qcStarter100.zip">[Download from Quaddicted]</a></p>
<p>Note that this is a visual basic program, so you&#8217;ll need the microsoft VB runtimes.<br />
More detailed instructions are in the readme inside the zip archive.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=328&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/12/22/ne_qcstarter-released-1-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>ne_q1spCompilingGui update (1.0.3)</title>
		<link>http://shoresofnis.wordpress.com/2010/11/03/ne_q1spcompilinggui-update-1-0-3/</link>
		<comments>http://shoresofnis.wordpress.com/2010/11/03/ne_q1spcompilinggui-update-1-0-3/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 17:27:32 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[mapping / level design]]></category>
		<category><![CDATA[ne_q1spCompilingGui]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=325</guid>
		<description><![CDATA[A couple of oversights were brought up on func_msgboard.  Namely there was no .lit support for coloured lighting nor .pts file support for loading pointfiles in the engine.  This is a small update to address those two points. Additions in 1.0.3: -Automatically copies .lit file into output folder. -Automatically copies .pts file into output folder. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=325&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of oversights were brought up on func_msgboard.  Namely there was no .lit support for coloured lighting nor .pts file support for loading pointfiles in the engine.  This is a small update to address those two points.</p>
<p><em>Additions in 1.0.3:</em></p>
<p><em>-Automatically copies .lit file into output folder.</em><br />
<em>-Automatically copies .pts file into output folder.</em></p>
<p><a href="http://necros.quaddicted.com/downloads/ne_q1spCompilingGui103.zip">[Download from Quaddicted]</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=325&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/11/03/ne_q1spcompilinggui-update-1-0-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>On Quake Weapons:</title>
		<link>http://shoresofnis.wordpress.com/2010/10/12/on-quake-weapons/</link>
		<comments>http://shoresofnis.wordpress.com/2010/10/12/on-quake-weapons/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 22:02:18 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=267</guid>
		<description><![CDATA[A little bit about the different weapons available in stock quake.  not really that interesting, just a poorly formatted post where i talk about the q1 guns a bit. Axe Ammo Type N/A Rate of Attack 2/second Attack Period 0.5 seconds Ammo Consumption / Shot N/A Ammo Consumption / Second N/A Damage / Attack 20 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=267&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A little bit about the different weapons available in stock quake.  not really that interesting, just a poorly formatted post where i talk about the q1 guns a bit.</p>
<p><span id="more-267"></span></p>
<p>Axe <img class="alignright" style="margin-right:164px;" title="axe" src="http://shoresofnis.files.wordpress.com/2010/10/axe.jpg?w=146&#038;h=96" alt="" width="146" height="96" /></p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">N/A</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">2/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.5 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">N/A</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">N/A</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">20</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">40</td>
</tr>
</tbody>
</table>
<hr size="3" />Shotgun <img class="alignright" style="margin-right:164px;" title="sg" src="http://shoresofnis.files.wordpress.com/2010/10/sg.jpg?w=131&#038;h=96" alt="" width="131" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Shells</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">2/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.5 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">1 Shell</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">2 Shells</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">24</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">48</td>
</tr>
</tbody>
</table>
<hr size="3" />Super Shotgun <img class="alignright" style="margin-right:164px;" title="ssg" src="http://shoresofnis.files.wordpress.com/2010/10/ssg.jpg?w=184&#038;h=96" alt="" width="184" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Shells</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">1.43/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.7 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">2 Shells</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">2.86 Shells</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">56</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">80</td>
</tr>
</tbody>
</table>
<hr size="3" />Nailgun <img class="alignright" style="margin-right:164px;" title="ng" src="http://shoresofnis.files.wordpress.com/2010/10/ng.jpg?w=139&#038;h=96" alt="" width="139" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<col width="262"></col>
<col width="99"></col>
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Nails</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">10/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.1 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">1 Nail</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">10 Nails</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">9</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">90</td>
</tr>
</tbody>
</table>
<hr size="3" />Super Nailgun <img class="alignright" style="margin-right:164px;" title="sng" src="http://shoresofnis.files.wordpress.com/2010/10/sng.jpg?w=170&#038;h=96" alt="" width="170" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Nails</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">10/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.1 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">2 Nails</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">20 Nails</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">18</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">180</td>
</tr>
</tbody>
</table>
<hr size="3" />Grenade Launcher <img class="alignright" style="margin-right:164px;" title="gl" src="http://shoresofnis.files.wordpress.com/2010/10/gl.jpg?w=217&#038;h=96" alt="" width="217" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Rockets</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">1.67/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.6 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">1 Rocket</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">1.67 Rockets</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">100 &#8211; 120</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">167 &#8211; 200</td>
</tr>
</tbody>
</table>
<hr size="3" />Rocket Launcher <img class="alignright" style="margin-right:164px;" title="rl" src="http://shoresofnis.files.wordpress.com/2010/10/rl.jpg?w=234&#038;h=96" alt="" width="234" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Rockets</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">1.25/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.8 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">1 Rocket</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">1.25 Rockets</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">100 &#8211; 120</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">125 &#8211; 150</td>
</tr>
</tbody>
</table>
<hr size="3" />Lightning Gun <img class="alignright" style="margin-right:164px;" title="lg" src="http://shoresofnis.files.wordpress.com/2010/10/lg.jpg?w=194&#038;h=96" alt="" width="194" height="96" /></p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="4" width="378">
<tbody>
<tr valign="TOP">
<td width="262">Ammo Type</td>
<td width="99">Cells</td>
</tr>
<tr valign="TOP">
<td width="262">Rate of Attack</td>
<td width="99">10/second</td>
</tr>
<tr valign="TOP">
<td width="262">Attack  Period</td>
<td width="99">0.1 seconds</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Shot</td>
<td width="99">1 Cell</td>
</tr>
<tr valign="TOP">
<td width="262">Ammo Consumption / Second</td>
<td width="99">10 Cells</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Attack</td>
<td width="99">30</td>
</tr>
<tr valign="TOP">
<td width="262">Damage / Second</td>
<td width="99">300</td>
</tr>
</tbody>
</table>
<hr size="3" />we can pull some interesting information from these stats:</p>
<p>&nbsp;</p>
<p><span style="text-decoration:line-through;">the SG is exactly half as powerful as the SSG.  that actually surprised me at first glance, as i always felt the SSG had an edge on the SG.  obviously, if we&#8217;re talking pure burst potential, then yes, the SSG edges out, but over a sustained fight (and assuming close range), the SSG is only twice as powerful.</span></p>
<p>edit:  the above was incorrect, apparently because i can&#8217;t count. 9_9</p>
<p>the SSG deals 28 damage per shell, vs the SG&#8217;s 24 damage per shell, giving it more efficiency.  Note that to the Doom2 SSG, which is nearly 3x more as powerful as the Doom2 SG has a more noticeable difference in efficiency.</p>
<p>even with the correction above, however, if you are looking purely at ammo balance, then the Quake shotguns are easier to account for.  quake&#8217;s shotguns only differ a small amount in ammo consumption vs damage whereas in Doom, a player favouring the SSG might start to accrue excess ammo over SG players.</p>
<p>obviously, different weapons are different and the Doom SSG pays for it&#8217;s ammo efficiency with an even wider spread than Quake&#8217;s SSG making it very situational.</p>
<p>for pure damage potential, aside from the LG, the SNG is the highest dps weapon available, topping even the GL and RL.  It&#8217;s fast projectile speed and 100% accuracy making it pretty much the go-to weapon for nearly any situation, ammo permitting.</p>
<p>lately, i&#8217;ve felt that the SNG could fully <em>replace</em> the NG when picked up.  They accomplish the exact same role and neither has different damage/ammo rates.  The NG deals 9 damage per nail, the SNG deals 9 damage per nail.  Only the SNG does it <em>faster</em>.  There is absolutely no reason to use the NG after picking up the SNG because the only thing that happens is you kill <em>slower</em>, which is never desirable.  the only possible reason i can imagine is you have trouble aiming; missed shots would cost less ammo.</p>
<p>the LG, of course, is absolutely ridiculous at 300 dps.  Shamblers have 600 hp:  it would take a whole 2 seconds to down one.</p>
<p>i do like that iD included a room clearing weapon without making it stupidly overpowered like Doom&#8217;s BFG.  i just wish that it had more utility to it rather than just sheer damage output.</p>
<p>if the lightning bolt was able to pass through enemies to deal damage to the ones behind it, it would make the weapon more of a strategic choice.  you could still use it on high hp monsters like shamblers and vores, but if you saw a group of knights or hknights, it would be a viable tactic to try to line them up for a good lightning blast.  even if successive lightning hits reduced damage by 50% or something such that: first target: 30 damage, second target 15 damage, third target 7 damage, fourth target 0 damage it would still be quite useful.</p>
<p>the LG-&gt;water discharge is an interesting mechanic, of course, but one that&#8217;s never exploited.  i suspect it&#8217;s because of the binary nature of the mechanic:  you either don&#8217;t discharge into water and live or you do and flat out die (the sole exception is if you have a very small amount of cells, but then it doesn&#8217;t matter because the explosive damage is negligeable anyway).  even if the player has the pentagram, you still loose <em>all</em> of your cells which is a sacrifice that is hard to justify:  there&#8217;s no guarantee that the discharge explosion will kill all targets as they have to not only be near enough but in LOS of you.</p>
<p>if the LG water discharge instead only consumed 15-30 cells, created an explosion about the power of a rocket centered on you BUT only dealt ~30-50 damage to you, it might be a choice the player is willing to make.  the damage wouldn&#8217;t outright kill you, but it&#8217;s not something you&#8217;d want to try without armor.</p>
<p>also notable is that the GL has an edge in damage, assuming you hit the target 100% of the time.  the only problem with the GL is that it deals damage differently (and in a less reliable way) than the RL.</p>
<p>the RL first applies random damage between 100 to 120 to the target that is hit and then creates explosive damage while <strong>ignoring</strong> the first target.</p>
<p>the GL simply creates an explosion around the grenade, irregardless of the target it hits (assuming it did).  what this means is that larger monsters like ogres and shamblers (ignoring shambler 50% damage reduction on explosives) may receive less than 100 minimum damage, even if they are direct hits.  this actually created a bug with quoth&#8217;s vermis and grenades.  because the vermis&#8217; bounding box is so large, it was possible for grenades to hit it in such a way as to not deal any damage at all.  this probably made vermis combat a lot harder depending on how you aimed.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=267&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/10/12/on-quake-weapons/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/axe.jpg" medium="image">
			<media:title type="html">axe</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/sg.jpg" medium="image">
			<media:title type="html">sg</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/ssg.jpg" medium="image">
			<media:title type="html">ssg</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/ng.jpg" medium="image">
			<media:title type="html">ng</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/sng.jpg" medium="image">
			<media:title type="html">sng</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/gl.jpg" medium="image">
			<media:title type="html">gl</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/rl.jpg" medium="image">
			<media:title type="html">rl</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/10/lg.jpg" medium="image">
			<media:title type="html">lg</media:title>
		</media:content>
	</item>
		<item>
		<title>ne_q1spCompilingGui update (1.0.2)</title>
		<link>http://shoresofnis.wordpress.com/2010/09/05/ne_q1spcompilinggui-update-1-0-2/</link>
		<comments>http://shoresofnis.wordpress.com/2010/09/05/ne_q1spcompilinggui-update-1-0-2/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 18:19:02 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[mapping / level design]]></category>
		<category><![CDATA[ne_q1spCompilingGui]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=263</guid>
		<description><![CDATA[I posted about this on func_msgboard, so if you frequent that board, there&#8217;s nothing new here. I&#8217;ve updated my ne_q1spCompilingGui with a couple of new features: Additions in 1.0.2: -Supports skip tools First, specify the tool&#8217;s filename in the Folder Setup dialog. In the main dialog, you can check the box &#8220;SKIP&#8221; next to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=263&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I posted about this on func_msgboard, so if you frequent that board, there&#8217;s nothing new here.</p>
<p>I&#8217;ve updated my ne_q1spCompilingGui with a couple of new features:</p>
<p><em>Additions in 1.0.2:</em></p>
<p><em>-Supports skip tools</em></p>
<p><em>First, specify the tool&#8217;s filename in the Folder Setup dialog.  In  the main dialog, you can check the box &#8220;SKIP&#8221; next to the QBSP checkbox.   The skip tool will run right after QBSP.</em></p>
<p><em>-Supports pointfile copying and renaming.</em></p>
<p><em>Once your map has been compiled and generated a<br />
.pts file, you can choose File-&gt;Pointfile (Ctrl+P).  This copies the newly generated .pts file back to the source folder so you can load it up in your editor.</em></p>
<p><em>Check the radio button in the Folder Setup dialog to choose between .lin or .pts extensions.  .lin is for GTKRadiant which does not load .pts files.</em></p>
<p><a href="http://necros.quaddicted.com/downloads/ne_q1spCompilingGui102.zip">[Download from Quaddicted]</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=263&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/09/05/ne_q1spcompilinggui-update-1-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>review: tdl – The Death Lair by Trinca</title>
		<link>http://shoresofnis.wordpress.com/2010/06/26/review-tdl-%e2%80%93-the-death-lair-by-trinca/</link>
		<comments>http://shoresofnis.wordpress.com/2010/06/26/review-tdl-%e2%80%93-the-death-lair-by-trinca/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 00:37:43 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[quake]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=249</guid>
		<description><![CDATA[A mixture of metal and medieval, shaken&#8211; not stirred. Yeah, that was lame.  But this map isn&#8217;t.  What we have here is a failu&#8211; ok, I don&#8217;t know why I&#8217;m quoting films. What we have here is a solid map combining q1met and medieval textures.  This map looks like it would feel right at home [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=249&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A mixture of metal and medieval, shaken&#8211; not stirred.</p>
<p><span id="more-249"></span>Yeah, that was lame.  But this map isn&#8217;t.  What we have here is a failu&#8211; ok, I don&#8217;t know why I&#8217;m quoting films.</p>
<p>What we have here is a solid map combining q1met and medieval textures.  This map looks like it would feel right at home in quake&#8217;s second episode, only it would outshine all the stock maps due to it&#8217;s clean brushwork and overall polish.  From a technical standpoint, this is probably Trinca&#8217;s best map.</p>
<p>The theme is consistent throughout.  Trims are used heavily to good effect which is what makes this map look so polished.  I can&#8217;t recall seeing a single misaligned texture.  Well, I guess I&#8217;m not counting the weird &#8216;operating table&#8217; texture which was used as a wall decoration when it&#8217;s clearly meant to be used on a horizontal surface.  There are tools and a magnifying glass (??) sitting on it which make it look stupid when it is used on a wall.</p>
<p>Lighting is well done if maybe dark in some areas.  I can forgive this as I&#8217;m still using a CRT monitor when most have LCDs and LCDs tend to be brighter with less contrast.  For example, I had built the first half of ne_tower with an LCD display and when I brought it onto my CRT, I couldn&#8217;t see anything at all.  I ended up feeding a global command line to brighten everything up again and then everyone said it was too bright. o.o;;</p>
<p>Anyway, there are no unsourced lights here.  Everything has an emitter with nice spotlights alleviating the texture tiling.  My one complaint is that the yellow spotlight texture doesn&#8217;t use any fullbrights which makes it look dull.  I checked out stock quake, and it turns out that<em> is</em> how the original texture was like, so it&#8217;s hard to fault Trinca in this case.  I would have liked if he had replaced the yellow pixels with fullbright yellow though.  Same goes for those blue strip lights.  I guess I only noticed this because I ran in to the same problem with one of Kell&#8217;s metal textures where I had to redo it to use fullbrights.</p>
<p>Gameplay is smooth without any insane fights or annoying ambushes.  That&#8217;s not to say there aren&#8217;t any ambushes or close calls, but that Trinca exercised restraint this time around.  Gameplay is much more balanced than some of his earlier maps and he even provided a quad for the ending which caps the whole map off with a bang.  I suppose if you don&#8217;t take full advantage of the quad, the end may be quite difficult.  Certainly not impossible but surely not as fun.</p>
<p>The map follows a linear route but allows a bit of freedom as you can pick up weapons in a slightly different order.  On the other hand, if you don&#8217;t pick up the weapons in the correct order, you can be under-gunned in successive areas and you&#8217;ll have to back-track anyway.  Because of it&#8217;s compact nature, I never got lost after picking up the two keys.  I always knew how to get to the correct key door.  Some locked bars open up as well to speed things up.</p>
<p>Texture choice, as noted above is a mixture of medieval blocks, wizard floor tiles and metal.  In some ways, it makes me feel that this is how quake&#8217;s ep2 would have been like if the iD mappers had more time on their hands and more advanced mapping tools and compilers.</p>
<p>This map is decidedly unambitious.  It&#8217;s sad that that word has negative connotations because in this case it&#8217;s the restraint that is this map&#8217;s strength.  It&#8217;s not trying to be the next big thing, it&#8217;s trying to be a solid, well built map that is fun, and it succeeds quite handily at that.</p>
<p>I guess it&#8217;s too early for my <a href="http://shoresofnis.wordpress.com/2010/05/06/doom-vs-quake/">other blog post</a> to have influenced the outcome here, but this is exactly the sort of thing I was talking about.</p>
<p>Thanks, Trinca. :P</p>
<p><a href="http://www.quaddicted.com/filebase/tdl.zip">Direct download from Quaddicted</a><br />
<a href="http://celephais.net/board/view_thread.php?id=60437&amp;start=0">Release Thread on func_msgboard</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=249&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/06/26/review-tdl-%e2%80%93-the-death-lair-by-trinca/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>Always a bigger fish</title>
		<link>http://shoresofnis.wordpress.com/2010/06/10/always-a-bigger-fish/</link>
		<comments>http://shoresofnis.wordpress.com/2010/06/10/always-a-bigger-fish/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 20:30:43 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[quake]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=246</guid>
		<description><![CDATA[if you&#8217;re fighting a shambler and someone casts Summon Bigger Fish, how are you supposed to do collision? for reference, vector    VEC_HULL_MIN = '-16 -16 -24'; vector    VEC_HULL_MAX = '16 16 32'; vector    VEC_HULL2_MIN = '-32 -32 -24'; vector    VEC_HULL2_MAX = '32 32 64'; the first set of vectors is for hull1.  these are your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=246&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>if you&#8217;re fighting a shambler and someone casts Summon Bigger Fish, how are you supposed to do collision?</p>
<p><span id="more-246"></span></p>
<p>for reference,</p>
<pre>vector    VEC_HULL_MIN = '-16 -16 -24';
vector    VEC_HULL_MAX = '16 16 32';

vector    VEC_HULL2_MIN = '-32 -32 -24';
vector    VEC_HULL2_MAX = '32 32 64';</pre>
<p>the first set of vectors is for hull1.  these are your small monsters like knights and zombies.  hull2, the second set of vectors is your ogres and shamblers.</p>
<p>if left to it&#8217;s own devices, quake has a funny way of handling collision  for bounding boxes (hence forth, bbox) that have dimensions larger than  the standard HULL2 size.</p>
<p>if for example, you created a new size:</p>
<pre>vector    VEC_HULL3_MIN = '-128 -128 -24';
vector    VEC_HULL3_MAX = '128 128 64';</pre>
<p>when quake is deciding where this new large monster will collide with the world, it will first default to hull2 in the bsp (i can only assume that somewhere in the source code, there&#8217;s an &#8220;if size is small, else just use hull2&#8243; somewhere).  but it will only collide against the first VEC_HULL2 units starting at your VEC_HULL3_MIN.</p>
<p>that is to say, only the coordinates from -128 -128 -24 to -64 -64 64.  this means that in some cases, your VEC_HULL3 sized monster will appear to be colliding correctly with the world, and at other times it will dip half way into the wall.</p>
<p>so how to get around this?</p>
<p>we know that no matter what bbox size, one monster will never walk inside another one.  the shambler on shub niggurath&#8217;s island in end.bsp can&#8217;t walk through shub herself even though she has a gigantic bbox.</p>
<p>so what are the properties needed to make use of this?  from testing, it seems as long as an entities .solid is SOLID_BBOX, this is enough.</p>
<p>NOTE that it MUST be a SOLID_BBOX, and not a SOLID_BSP, because a SOLID_BSP, while an entity, still uses HULL1/2 collision.</p>
<p>so what does this really mean?  essentially, we have to &#8216;trace&#8217; the walls of any area we want to have larger bbox monsters moving around in with box entities.</p>
<p>obviously though, that&#8217;s not enough.  if we left it that way, the player would bump into those box entities as well as other monsters.</p>
<p>so, we shall have to do some hackery to get around that.</p>
<p>first we should create our collision entities.</p>
<pre>void () func_clipModel_on =
{
	if (self.state == 0 ) //off, turn on
	{
		self.state = 1;
		setorigin( self, self.origin - '8000 8000 8000' );
	}
};

void () func_clipModel_off =
{
	if (self.state == 1 ) //on, turn off
	{
		self.state = 0;
		setorigin( self, self.origin + '8000 8000 8000' );
	}
};

void() func_clipModel =
{
	self.movetype = MOVETYPE_FLY;
	setmodel (self, self.model);
	setsize (self, self.mins, self.maxs);
	setorigin (self, self.origin);

	self.solid = SOLID_BBOX;
	self.model = string_null;

	self.state = 0; //always initially off.
	setorigin( self, self.origin + '8000 8000 8000' );

};</pre>
<p>you may recognize this is originally how hipnotic created their func_togglewalls.</p>
<p>the main differences here are they work in reverse (are always initially off) and are not SOLID_BSP.  if you care, you could also modify this code so you don&#8217;t need to use brush models but just specify a mangle but that&#8217;s outside the scope of this post.</p>
<p>note that MOVETYPE_FLY is used.  to be honest, i&#8217;m not sure why it&#8217;s not MOVETYPE_NONE, and i can&#8217;t think of why it can&#8217;t be that.  just don&#8217;t use MOVETYPE_STEP, TOSS, BOUNCE&#8230; or it will fall to the ground.</p>
<p>there&#8217;s also two functions that were added, func_clipModel_on and func_clipModel_off.  i used the same method hipnotic did to toggle the walls on and off because i didn&#8217;t care to find a better way.  it works and there&#8217;s no need to change it.  note that these functions don&#8217;t just toggle.</p>
<p>ok, so that fluff is out of the way.  here&#8217;s the actual interesting stuff.</p>
<p>what you want to do is co-opt your movetogoal and walkmove functions so that these func_clipModels are only solid while you&#8217;re performing the built in function, and non-solid the rest of the time.</p>
<p>but you don&#8217;t want these to be solid for EVERY movetogoal call, since the small monsters don&#8217;t need it.</p>
<p>i opted for two things.</p>
<p>1.  only large monsters should use the special code</p>
<p>2. each large monster should only use it&#8217;s own set of func_clipModels and not other large monster&#8217;s set.</p>
<p>i tie a monster to it&#8217;s clipModels via &#8216;clipModel&#8217;-&gt;&#8217;targetname&#8217; fields first.</p>
<p>next, all monsters use a wrapper movement function that passes the actual move function (ai_run, ai_charge, etc).</p>
<p>keep in mind, however, that this technique can easily be used for monster-only clip.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=246&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/06/10/always-a-bigger-fish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>rawr</title>
		<link>http://shoresofnis.wordpress.com/2010/06/04/rawr/</link>
		<comments>http://shoresofnis.wordpress.com/2010/06/04/rawr/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 01:57:50 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[quake]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=241</guid>
		<description><![CDATA[Rawwrrr&#8230; So, Rogue were really nice and left a usable base frame inside the dragon mdl which made re-rigging it a breeze. it&#8217;s a shame that the &#8216;hands&#8217; on the dragon are not modeled, but just part of the skin, so articulating them is impossible.  still, the wings were belt well such that using them [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=241&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://shoresofnis.files.wordpress.com/2010/06/dragon.jpg"><img class="size-full wp-image-242 aligncenter" title="dragon" src="http://shoresofnis.files.wordpress.com/2010/06/dragon.jpg?w=535" alt=""   /></a></p>
<p>Rawwrrr&#8230;</p>
<p><span id="more-241"></span></p>
<p>So, Rogue were really nice and left a usable base frame inside the dragon mdl which made re-rigging it a breeze.</p>
<p>it&#8217;s a shame that the &#8216;hands&#8217; on the dragon are not modeled, but just part of the skin, so articulating them is impossible.  still, the wings were belt well such that using them for &#8216;gestures&#8217; and also walking should be easy.</p>
<p>i was always so disappointed with this monster.  i mean, it&#8217;s the end boss for the entire expansion and all it ever did was follow a preset path.  it doesn&#8217;t even fire all that often.  in fact, i probably died more often to the random earthquakes throwing me into the lava than this guy.</p>
<p>hopefully some new animations and the large bbox hack will breathe some new life into this guy.  it would be interesting to script it so it could interact with the world geometry a bit.  landing on ledges/roofs (like in the harry potter movie).  something theatrical, befitting of an end boss.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/241/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=241&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/06/04/rawr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>

		<media:content url="http://shoresofnis.files.wordpress.com/2010/06/dragon.jpg" medium="image">
			<media:title type="html">dragon</media:title>
		</media:content>
	</item>
		<item>
		<title>review: arwop – A Roman Wilderness of Pain</title>
		<link>http://shoresofnis.wordpress.com/2010/05/19/review-arwop-%e2%80%93-a-roman-wilderness-of-pain/</link>
		<comments>http://shoresofnis.wordpress.com/2010/05/19/review-arwop-%e2%80%93-a-roman-wilderness-of-pain/#comments</comments>
		<pubDate>Wed, 19 May 2010 07:39:24 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[quake]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=232</guid>
		<description><![CDATA[before you read this, i feel i should warn you there are some spoilers in here.  i figure it&#8217;s long enough after the initial release that this should be ok, but if you haven&#8217;t played it yet, you may want to skip this post. i know it says &#8216;review&#8217;, but these &#8216;review&#8217; posts are probably [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=232&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>before you read this, i feel i should warn you there are some spoilers in here.  i figure it&#8217;s long enough after the initial release that this should be ok, but if you haven&#8217;t played it yet, you may want to skip this post.</p>
<address>i know it says &#8216;review&#8217;, but these &#8216;review&#8217; posts are probably more like commentary than a review intended to pique someone&#8217;s interest.<br />
</address>
<p>i initially played this map pack a few months ago, back when it first was released but never finished it (i got to the second map and hit a gameplay snag and gave up).</p>
<p>then sock started playing q1sp releases and i was reminded of this when he dropped his comment concerning this map.</p>
<p>so i decided to give this another go.</p>
<p><span id="more-232"></span></p>
<p>the first thing about these maps is that they are huge.  in both gross size and gameplay length.  i got a big surprised when i got to, what i thought was, the end of the first map (roman1) and found there was a whole other area with a visually distinctive theme.  a very pleasant surprise indeed.</p>
<p>tronyn has a very unique take on all the texture themes he chose to use.  some texture choices are questionable (q3&#8242;s block3b floor tex used as a brick wall) but not so bad that they are show stoppers.</p>
<p>a lot of the areas remind me of the rome levels in jericho.  very bloody but fairly wide-open and very cool.</p>
<p>gameplay is another story, unfortunately.  skill settings are way off (as per usual with tronyn&#8217;s maps&#8211; sorry man).  the readme is misleading as it just uses the skill descriptions that was in the 1997 quake manual.  easy is about what modern players consider normal.  normal is what modern players considering hard, and hard doesn&#8217;t even bear thinking on.  oh, if that&#8217;s not enough, nightmare is (apparently) even harder and hell (new skill level) features respawning monsters and other fun things of that nature. -_-;</p>
<p>i honestly can&#8217;t see anyone playing on nightmare without either playing super conservatively or exploiting AI shortfalls and geometry.  i suppose hell skill would have to be played like a speedrun since the monsters would endlessly respawn, unlike your ammo.</p>
<p>so, that said, after my first try on normal skill (this is the skill level i always use to play maps), i sucked it up and chose easy.  (incidentally, i got killed twice in the start map, once when i jumped into the blood looking for secrets and another time from the exploding barrels that i thought might have something in them, so you can see the kind of mood the map was setting, lol)</p>
<p>on easy, the maps are quite fun with some hectic fights but all doable with plenty of ammo and lots of weapon choices.  there are enough cells and nails once you get passed the first map, so that you rarely have to use shotguns and if you somehow do run out, you get the grenade launcher and rocket launcher not too long after as well.</p>
<p>there are a number of custom weapon in this mod but things are kept from becoming confusing by actually replacing weaker versions with their stronger counterparts.  for example, the SNG replaces the NG, the laser rifle replaces the laser gun, the chainsaw replaces the axe&#8230;</p>
<p>i remember being hesistant when kell was outlining how he wanted the warhammer to work in quoth.  &#8216;you want it to replace the axe?&#8217; i thought.  it ended up working really well and does so again here.  the important thing here is that the weapon that is replacing the old one should not have any drawbacks the original one didn&#8217;t have.  for example, replacing the shotgun with the super shotgun would be inappropriate because the super shotgun has some serious disadvantages and fulfills a different role.</p>
<p>the most useful ones i&#8217;ve found were the laser gun (and later the laser rifle).  there are tons of cells, enough even to splurge and use the lightning gun for it&#8217;s higher damage rate from time to time.</p>
<p>the changes that allow melee weapons to kill zombies makes them a viable choice now.  i used the chainsaw quite a bit actually, and it&#8217;s very satisfying (although very noisy).</p>
<p>there are a couple of poor routes and item placements.  in particular, the silver key is hidden almost like a secret in the first level and is not required until much later.  you can play for a good 10 minutes before needing to open a silver key door while the key itself is available almost from the get-go.  what ends up happening is you are following one route and come to a complete dead-end with no idea where to go and you have to just search around for the silver key until you find it.</p>
<p>the second map has a similar problem.  near the start, you have to press 5 lionhead buttons to progress, but one of those buttons is up in an area i initially thought was a secret (it&#8217;s the ledge where the vore is in the building that has the green marble demon face from doom on the ground level).  i found it after much frustration by walking into a dark corner and finding a hidden lift (it was under the ground and not visible, and there are no items there to entice you to go there).</p>
<p>a final hiccup has to do with the final battle.  it&#8217;s very challenging but fun.  you fight a spell casting necromancer who can teleport around (indeed, the model is from hexen 2, and the AI is very similar to it as well) and he can resurrect dead monsters.  a very fun fight over all with a lot of movement and action.</p>
<p>the problem arises when you kill the necromancer.  as his parting gift to you, he summons a cyberdemon.  the cyberdemon uses typical AI that it is known for from Doom, but he also retains his insanely high health.  to make matters worse, it also starts a second monster spawner similar to Doom2&#8242;s level 30 end boss.  at this point, ammo is low and, although some ammo is spawned in to help, it isn&#8217;t really enough.</p>
<p>the weapon of choice, the thing you&#8217;ve been saving ammo up for the whole pak&#8211; the ice crossbow (fuck if i&#8217;m going to try to type out that ridiculous name) has a very poor rapport with the cyberdemon.  specifically, unless the ice arrow <strong>kills </strong>the target, there is very little feedback on whether you hit your target or not.  essentially, the ice arrow passes right through the cyberdemon (as it&#8217;s supposed to&#8211; the ice arrow can kill multiple monsters in a line) without letting me know if i&#8217;ve hit it or not.  not even any particles or a sprite.</p>
<p>ammo isn&#8217;t the only problem.  the ground is very uneven in this area.  there&#8217;s a pentacle built out of brushes embedded in the ground.  it&#8217;s very easy to get snagged on it.</p>
<p>essentially, the second phase of the boss battle would have been much more fun with a lot more ammo and proper clipping over the terrain (or turning the pentagram into a func_illusionary).</p>
<p>in the end, i cheated with god mode and chainsawed the cyberdemon to death.</p>
<p>something i appreciated a lot was the invisibility in roman2.  i wish i would see the ring more often in a situation where it matters instead of just tossing it out as a consolation prize in a secret.  indeed, i&#8217;d like to see some modifications to the ring.  maybe something like:</p>
<p>-picking up the ring causes all monsters actively chasing you to forget you</p>
<p>-attacking will awaken monsters, but only as long as you continue to attack.  not attacking for (arbitrary) 5 seconds causes them to forget you.</p>
<p>an implementation like this where the ring isn&#8217;t just an all or nothing could lead to some interesting fights.</p>
<p>anyway, the raft ride in roman2 is cool.  a little nuts, but not insta-death (at least, not on skill0 o.o). and all 3 maps have an excellent sense of place.  most of them are really just one gigantic area with structures built into it.  it must have been absolute hell to vis, but pays off by giving a lot of scenery to look at to produce a parallax effect with world geometry.  it makes everything very impressive.</p>
<p>so, in the end, we have one of those maps that should definitely be played although not quite a classic.</p>
<p>be wary of skill levels and don&#8217;t feel ashamed to pick easy mode!</p>
<p><a href="http://www.quaddicted.com/filebase/arwop.zip">ARWOP &#8211; Direct Download from Quaddicted</a></p>
<p><a href="http://celephais.net/board/view_thread.php?id=60400&amp;start=0">Release thread on func_msgboard</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=232&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/05/19/review-arwop-%e2%80%93-a-roman-wilderness-of-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
		<item>
		<title>creating mover hierarchies</title>
		<link>http://shoresofnis.wordpress.com/2010/05/08/creating-mover-hierarchies/</link>
		<comments>http://shoresofnis.wordpress.com/2010/05/08/creating-mover-hierarchies/#comments</comments>
		<pubDate>Sun, 09 May 2010 03:01:24 +0000</pubDate>
		<dc:creator>necros</dc:creator>
				<category><![CDATA[mapping / level design]]></category>
		<category><![CDATA[quake]]></category>

		<guid isPermaLink="false">http://shoresofnis.wordpress.com/?p=222</guid>
		<description><![CDATA[i&#8217;ve often talked about this, but only till a month ago did i really try to do it. this type of thing should be done in the engine, of course, by using some kind of local coordinate system that is based on a child&#8217;s parent, but whatever. this is qc, so it&#8217;s haxored in as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=222&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>i&#8217;ve often talked about this, but only till a month ago did i really try to do it.</p>
<p><span id="more-222"></span></p>
<p>this type of thing should be done in the engine, of course, by using some kind of local coordinate system that is based on a child&#8217;s parent, but whatever.</p>
<p>this is qc, so it&#8217;s haxored in as best i could.  this means that it&#8217;s not usable in quite a few situations, namely for moving other movers around.</p>
<p>all bsp movers like doors and buttons store both the start and end points of their movements in .pos1 and .pos2 vectors.  this means that you would need to update these as well.  and then you&#8217;d have to account for exceptions like if the child is moving when the parent starts to move (or write locking functions to disallow child movement).</p>
<p>i found it best to limit myself to things like torches, triggers and some custom entities that don&#8217;t move (like guis and non-moving rotaters).</p>
<p>first, let&#8217;s figure out how we want to do this.</p>
<p>i elected to use two strings, .bind and .bindName (similar to target and targetname).  you <em>could</em> use bind -&gt; targetname, but there may be situations where this could cause trouble (i encountered some).  better to create all knew fields and avoid that entirely.</p>
<p>essentially, what you&#8217;re going to want to do is set the origin of the children each frame to maintain their offset with the parent.</p>
<p>this can be done easily by writing a small bit of code into startFrame.  you can create a haxor .string field called &#8216;isParentMoving&#8217; or somesuch, and search for matches with the string &#8220;TRUE&#8221; (which we will set later).  after that, just set the origin to the parent&#8217;s + the offset:</p>
<pre><span style="color:#008000;">local    entity    childEntity, _parent;
local    vector    offset, childVec;

childEntity = find(world, isParentMoving, "TRUE");
while(childEntity != world)
{
    if (childEntity.bindParent == world) //this will set up bindParent for any that aren't.
         childEntity.bindParent = find(world, bindName, childEntity.bind);        

    _parent = childEntity.bindParent;
    offset = childEntity.bindOffset;

    childVec = _parent.origin + offset;
    childVec = childVec + (_parent.velocity * frametime); //project forward in time for next frame to maintain correct position
    setorigin(childEntity, childVec);    

    childEntity = find(childEntity, isParentMoving, "TRUE");
}</span></pre>
<p>note that there&#8217;s an if check for .bindParent.  if it&#8217;s not set, we set it to the parent entity and this will save us from doing an extra search next frame to find the parent again.</p>
<p>as you can see, we need an &#8220;offset&#8221;, a vector between the child and parent.  we can do this easily because the SUB_CalcMove function is the only one used for movement, so everything passes through there that moves.</p>
<pre><span style="color:#008000;">if (self.bindName)
{
     bindChild = find(world, bind, self.bindName);
     while (bindChild != world)
     {
          bindChild.isParentMoving = "TRUE";
          bindChild.bindOffset = bindChild.origin - self.origin;

          bindChild = find(bindChild, bind, self.bindName);
     }
}</span></pre>
<p>because we used bindName instead of targetname, it&#8217;s really easy to check if an entity has children or not.</p>
<p>remember, this will be the parent who is calling this function, so we need to loop through all the children, set the offsets and also set the isParentMoving string so it will be found by the bit of code in startFrame.</p>
<p>i briefly toyed with the idea of creating a queue out of entities so that you could drop children entities into the queue that needed to have their origins updated, but found that i was too lazy to write data structures and just left it up to the find() function.</p>
<p>btw, don&#8217;t forget to turn off the entity updates in SUB_CalcMoveDone:</p>
<pre><span style="color:#008000;">if (self.bindName)
{
     bindChild = find(world, bind, self.bindName);
     while (bindChild != world)
     {
          bindChild.isParentMoving = "FALSE";

          setorigin(bindChild, self.origin + bindChild.bindOffset);
          bindChild.velocity = '0 0 0';

          bindChild = find(bindChild, bind, self.bindName);
     }
}</span></pre>
<p>you may be wondering:  it&#8217;d be easier to just set velocity!  let the engine handle the movement.</p>
<p>the problem is that if you have entities bound that are MOVETYPE_NONE, velocity settings will not have any effect.</p>
<p>also, for MOVETYPE_PUSH entities, they will <em>only</em> move if their .nextthink is set to other than 0.  Some MOVETYPE_PUSH entities may be (and probably are) using their nextthinks for something else, so cheap hacking in a nextthink may create problems with those entities.</p>
<p>better to just setorigin() and be done with it.  note, however, child bsp models will not push the player, so he may become stuck if a child moves into the player via the parent.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shoresofnis.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shoresofnis.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shoresofnis.wordpress.com/222/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shoresofnis.wordpress.com&amp;blog=12731864&amp;post=222&amp;subd=shoresofnis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://shoresofnis.wordpress.com/2010/05/08/creating-mover-hierarchies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b06a452f56e0a95b729bd43df5bc3a21?s=96&#38;d=identicon&#38;r=R" medium="image">
			<media:title type="html">cjones</media:title>
		</media:content>
	</item>
	</channel>
</rss>
