<?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/"
	>

<channel>
	<title>Ben McGraw's Egometry &#187; mcgrender</title>
	<atom:link href="http://www.egometry.com/tags/mcgrender/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.egometry.com</link>
	<description>cogito ergo stfu</description>
	<lastBuildDate>Wed, 28 Jul 2010 20:12:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Obscured References</title>
		<link>http://www.egometry.com/gruedorf/obscured-references/</link>
		<comments>http://www.egometry.com/gruedorf/obscured-references/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 21:40:50 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Gruedorf]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[mcgrender]]></category>
		<category><![CDATA[Sully]]></category>

		<guid isPermaLink="false">http://www.egometry.com/?p=244</guid>
		<description><![CDATA[This whole conundrum is a non-issue in the modern world of programming, what with fancy objects and classes and types.  ]]></description>
			<content:encoded><![CDATA[<div id="attachment_245" class="wp-caption alignright" style="width: 310px"><a href="http://www.egometry.com/wp-content/uploads/2008/11/2008-11-29_so_say_we_all.png"><img class="size-medium wp-image-245" title="2008-11-29_so_say_we_all" src="http://www.egometry.com/wp-content/uploads/2008/11/2008-11-29_so_say_we_all-300x237.png" alt="There are now 4 characters on screen.  Whee." width="300" height="237" /></a><p class="wp-caption-text">There are now 4 characters on screen.  Whee.</p></div>
<p>So, Sully&#8217;s Battlesystem had a problem.</p>
<p>It worked well as long as you had character 0 in party slot 0, and character 1 in party slot 1, but as soon as anything changed from that configuration&#8230; shit got <em>real</em>.</p>
<p>The problem was due entirely to vergec&#8217;s type-poor environment.  In the battle system party[party_idx] and party_idx were used interchangeably.  Hey, they&#8217;re both ints and they look the same, right?</p>
<p>After identifying the source of the issue, it was a matter of a global search on &#8220;party[&#8221; and identifying the spots where it was misused.  I&#8217;ve also wrapped this whole operation in a function to give a level of english for humans to see and go &#8220;oh, maybe I should give thought to this.&#8221;</p>
<blockquote><p>This whole conundrum is a non-issue in the modern world of programming, what with fancy objects and classes and types.</p></blockquote>
<p>The most fun part about this is, once I solved the party reference problem, there was a renderstack problem of exactly the same type, where renderstack references and sprite references (which are stored in two different int-indexed global stacks) were used interchangeably.  I was already in the mindset to solve this issue.</p>
<p>The whole task is documented between r187 and r197 in the <a href="http://www.verge-rpg.com/svn/sully/">sully svn repository</a>.  Top to bottom the tasks were about 8 hours of braining and typing.</p>
<p>It&#8217;s my fault for continuing down this path of madness, but there&#8217;s a massive amount of code and effort in this so I have lock-in.   Converting the whole thing to Lua would still have these issues to track down.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/gruedorf/obscured-references/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another fortnight&#8230;</title>
		<link>http://www.egometry.com/gruedorf/another-fortnight/</link>
		<comments>http://www.egometry.com/gruedorf/another-fortnight/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 03:44:59 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[Gruedorf]]></category>
		<category><![CDATA[crux]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mcgrender]]></category>
		<category><![CDATA[Sully]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[This week I got a demo running on an iPhone emulator of a tile engine. Tiles render, you can scroll across the map, tap and/or double-tap on a tile to access information associated with it, and draw text. Whee. I did this with the assistance of Rusty Larner from work, while pairing in my living [...]]]></description>
			<content:encoded><![CDATA[<p>This week I got a demo running on an iPhone emulator of a tile engine.  Tiles render, you can scroll across the map, tap and/or double-tap on a tile to access information associated with it, and draw text.  Whee.  I did this with the assistance of Rusty Larner from work, while pairing in my living room.
<p>I also started work on a map editor coded in vc. If everything goes well, Overkill will be joining in on this on his next update.</p>
<p>Finally, I updated the Sully codebase to the mark 5 render engine: now with fully functional clickable renderstack items!  Yay!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/gruedorf/another-fortnight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HUD&#8217;s Up! (oooh, redundantish.)</title>
		<link>http://www.egometry.com/egometry/huds-up-oooh-redundantish/</link>
		<comments>http://www.egometry.com/egometry/huds-up-oooh-redundantish/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 18:15:04 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[egometry]]></category>
		<category><![CDATA[astrad]]></category>
		<category><![CDATA[mcgrender]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[HUD&#8217;s Up! (oooh, redundantish.) Bet you didn&#8217;t know there was gonna be tools&#8230; other than me, that is. :( Today&#8217;s Gruedorf update is all about the game&#8217;s heads-up display. I&#8217;ve been meaning to implement this for years now, but I&#8217;ve been putting it off continuously. The Astrad is inspired heavily by Wild Arms and Lufia [...]]]></description>
			<content:encoded><![CDATA[<h3>HUD&#8217;s Up! (oooh, redundantish.)</h3>
<p>
<div style="float: right; padding: 4px; margin: 4px;"><img src=/files/gruedorf_challenge/003/2007-10-28_0_slidey!.PNG alt="Steampunky meters and sliding banners and names, oh my!"><br /><span style="color: silver; font-size: -1;">Bet you didn&#8217;t know there was gonna be<br /> tools&#8230; other than me, that is. :(</span></div>
<p>Today&#8217;s Gruedorf update is all about the game&#8217;s heads-up display.  I&#8217;ve been meaning to implement this for years now, but I&#8217;ve been putting it off continuously.</p>
<p>The Astrad is inspired <i>heavily</i> by Wild Arms and Lufia 2.  The top-left meter will be similar to the Wild Arms 3 encounter meter that lets you skip out on battles, except it&#8217;ll (when implemented) be more of a builds-up-pressure type thing than the Wild Arms 3 &#8220;countdown&#8221; gauge.  At least, that&#8217;ll be what happens in &#8220;field&#8221; areas.  I&#8217;ve got a few uses in mind for it as a feedback device in &#8220;Town&#8221; areas, mostly for use in conjunction with the equipped tool.</p>
<p>Note, the graphics for the meter aren&#8217;t final at all.  There&#8217;ll be more of a papery feel to the center bit, with a green->red metery type thing, I think.  I plan on more pipes and lights (more than the current count of zero, at least) on the widgety area, so steam can leak out of the apparatus when the meter&#8217;s in the red zone and lights can blink and such.</p>
<h3>You&#8217;re such a tool.</h3>
<p>The brown boxy area to the right of the metery area is the currently-selected-tool indicator.  Currently empty because I&#8217;ll be getting to the tools section next update, it&#8217;ll have a left/right button to mouse-flip through them, a &#8220;help&#8221; button to summon a description of the tool and everything that you &#8220;know&#8221; in game that it does thusfar (ie, you need to be told what it does by someone or need to use it in a certain way before said atom of information shows up on the help screen).</p>
<p>There&#8217;ll also be somewhere in the HUD, most likely directly right of the toolbox, a meter showing Onam&#8217;s current MP level.  This is because some of the &#8220;tools&#8221; are actually magic spells that can be used upon the environment.  And not 0MP spells like Lufia 2&#8242;s &#8220;Reset&#8221; spell!</p>
<h3>Out, out, damn spot!</h3>
<p>
<div style="float: right; padding: 4px; margin: 4px;"><img src=/files/gruedorf_challenge/003/2007-10-28_1_fadey!.PNG alt="Steampunky meters and sliding banners and names, oh my!"><br /><span style="color: silver; font-size: -1;">Transitionlicious.  The UI fades away when not in use.</span></div>
<p>In &#8220;peaceful&#8221; areas, the Heads-Up Display will fade away when the mouse has been left alone for more than three seconds, as long as nothing is changing up there.  As soon as an alert summons it back, it&#8217;ll come back.  Such triggers like flipping through active skills with whatever controller buttons are mapped to that action, moving the mouse, triggering a HUD message banner, and so on</p>
<h3>Electronic Rodents</h3>
<p>You all may have noticed that last week&#8217;s release and this week&#8217;s release both have mousey components.  Well, The Astrad is  mainly a computer game, so it&#8217;s foolish to not use the main UI device of the common computo-box for the game.  I&#8217;m planning on having every element necessary for gameplay accessible both via 8-button controller mappings (that&#8217;d be a digital D-pad, A/B/X/Y/L/R/Select/Start just like a SNES) that you can map to the keyboard or a compatible joystick, and simultaneously only need a mouse (if present).  Sorry kids, you need a mouse or a keyboard or a controller to play this game.  No telekinetic controls yet. :(</p>
<p>Movement via mouse is planned much akin to how <a href=http://actionsketch.com/ target=_new>Ragecage/Tristan</a> accomplished it in <a href=http://www.verge-rpg.com/gallery/gallery.php?snowscape target=_new2>The Snowscape Battle System HoV entry</a>.  That being an A* implementation where you click on an unobstructed tile and it tries to find a path.  My system will be a bit more picky in that it will only try to find a path through visible areas fairly close to the screen&#8217;s visible boundaries.  No autowalking across town if there&#8217;s a large obstructed area in the way between two visible points.</p>
<h3>The Astrad</h3>
<p>Today&#8217;s last point of order: I don&#8217;t recall if I ever publicly explained that &#8220;Saga of the Stars&#8221; is the translated title of the game, whereas &#8220;The Astrad&#8221; is the real title.  It&#8217;s shorter, lexicographically close to the beginning of any name list, and has a properly gruvian level of pretense, what with the faked Latin and the idea of evoking &#8220;The Aeneid&#8221; and &#8220;The Iliad&#8221; (which, of course, will not hold even the meanest candle to my finished work when completed.  Take <b><i>THAT</i></b>, Virgil!)</p>
<p>So, in effect, I&#8217;ll probably still call it SotS while referring to it as &#8220;The Astrad&#8221;.  Think of it as PSX meaning &#8220;Playstation&#8221; due to changing plans.  Or whatever.  You can retcon whatever story you&#8217;d like.</p>
<p><a href=/files/gruedorf_challenge/003/sots_2007-10-28_003.rar>Click here to download the third Gruedorf release of Saga of the Stars/The Astrad/Grutopian Delight/etc etc etc</a>.  You&#8217;ll be glad you did&#8230; unless I&#8217;m <i>lying</i>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/egometry/huds-up-oooh-redundantish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Rendtest Cometh.</title>
		<link>http://www.egometry.com/egometry/the-rendtest-cometh/</link>
		<comments>http://www.egometry.com/egometry/the-rendtest-cometh/#comments</comments>
		<pubDate>Sun, 21 Oct 2007 18:53:18 +0000</pubDate>
		<dc:creator>mcgrue</dc:creator>
				<category><![CDATA[egometry]]></category>
		<category><![CDATA[astrad]]></category>
		<category><![CDATA[mcgrender]]></category>
		<category><![CDATA[zathras]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The Rendtest Cometh. &#8230;and technology! It&#8217;s that time again, entry 002 into the gruedorf challenge. Things have picked up in this challenge, with ragamuffin me-tooers joining left and right. Of course&#8230; none of them get top billing because they are neither &#8216;grue nor &#8216;dorf. Or using verge, for that matter. Tsk, tsk. Well&#8230; maybe we [...]]]></description>
			<content:encoded><![CDATA[<h3>The Rendtest Cometh.</h3>
<p>
<div style="float: right; padding: 4px; margin: 4px;"><img src=/files/gruedorf_challenge/002/2007-10-21_0_science!.png alt="Castle Alden has so many bubbling flasks it could pass for Castle Aldenstein."><br /><span style="color: silver; font-size: -1;">&#8230;and technology!</span></div>
<p>It&#8217;s that time again, entry 002 into the gruedorf challenge.  Things have picked up in this challenge, with ragamuffin me-tooers joining left and right.  Of course&#8230; none of them get top billing because they are neither &#8216;grue nor &#8216;dorf.  Or using verge, for that matter.  Tsk, tsk. Well&#8230; maybe we could make it the Gruedorf Code Challenge, since <a href=http://codesgame.3host.biz/wordpress/ target=_new>Code</a> totally is using verge, and he has a suitably confusing nick.  I guess to disambiguate we&#8217;d then have to make it the GrueDorf-Code Code Challenge.  You know.  For that ironic sort of disambiguation.</p>
<p>But I digress.</p>
<p>
<div style="float: left; padding: 4px; margin: 4px;"><img src=/files/gruedorf_challenge/002/2007-10-21_1_rendtest.png alt="Debug statements as eyecandy.  Consider this the gameart equivalent of brutalism."><br /><span style="color: silver; font-size: -1;">that slime is totally from sully.  Thank Overkill.</span></div>
<p>My current update is a few hours of work into improving and debugging my vc-based Render Engine, lovingly known as the McGrender Engine.  Currently in it&#8217;s 5th version (#4 is in the current build of Sully), it allows for custom auto-animated sprites, static images, or &#8220;roll your own&#8221; functions (ie, Callfuncs that get triggered when they&#8217;re up on the stack).  All this is put into layer functionality so you can turn on/off layers as needed, and, say, render fancy effects between your background and your sprites, or just effect the PC sprite layer while not touching the enemy sprite layer.  Etc.</p>
<p>Also in here is bubbling click items.  Any image on in the McGrender system can be given clickable properties with a bubble-down effect: that is, if you had three clickable items layered on top of each other, you&#8217;d only activate the topmost visible clickable item.</p>
<p>The most notable virtue of the McGrender System in this demo is it&#8217;s automoving feature&#8230; which, as trivial as it is, is the reason I made mk I a few years ago.  I just wanted to throw a sprite that, while animating, would move it&#8217;s location at an even rate without me having to worry about it after setting it.  Unfortunately, non-linear movements presently need a custom function (whereas an OOP system could have some custom, but more reusable, implementation of the &#8220;Hey, I move in some way!&#8221; concept), but that&#8217;s fine.</p>
<p>Another small, but handy, feature that lets this bitch be largely hassle-free in keeping itself moving is the optional &#8220;OnStopMoving&#8221; callback function.  You can see this in effect in the demo with the close-button&#8217;s movement.  Everytime it stops, the rebounceX() function is called setting new destination coordinates and sending it on it&#8217;s merry way.</p>
<h3>Instructions for seeing this in action</h3>
<p>Okay, if it wasn&#8217;t apparent from the screenshots, talking to any of the flasks in the first room will start you into the rendertest demo.  For the interested, the pertinent code is all in ./vc/rend/ with the mcgrender.vc and sprite.vc being the &#8220;system&#8221; files, and test_render.vc being the implementation of this demo (ignore general.vc in that dir&#8230; that was me being laaaazy).</p>
<p>once you&#8217;re in the demo, you can click on the slime to watch a demo of the sprite-autohandler (changing from &#8220;idle&#8221; to &#8220;death&#8221;) being triggered by the clickable feature, and clicking on the floating winXP &#8220;X&#8221; will stop the render engine demo, whereupon you can talk to a flask ans start it over.  Exciting!</p>
<p><a href=/files/gruedorf_challenge/002/sots_2007-10-21_002.rar>Click here to download the second Gruedorf release of Saga of the Stars/The Astrad</a>.  You&#8217;ll be glad you did&#8230; probably!</p>
<h3>One last thing: new music!</h3>
<p>Zathras was inspired to make the fourth major revision to Castle Alden&#8217;s music, which is far and away the best version to date.  It&#8217;s much more soothing and gentle on the ears, and has a lot more in common with both Onam&#8217;s Theme and Amin&#8217;s theme.  Nice!  You can also check out <a href=http://www.zath.org target=_new>Zathras/Matthew Steele&#8217;s Homepage at the newly minted zath.org</a>.  Good times.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.egometry.com/egometry/the-rendtest-cometh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
