<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
    <channel>
        <title>DarkCampainger's site</title>
        <link>http://www.byond.com/members/DarkCampainger</link>
        <description></description>
        <lastBuildDate>Sat, 11 Feb 2012 01:46:26 +0000</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>Looking for GIAD 2011 play testers</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250862</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250862</guid>
            <pubDate>Sun, 05 Feb 2012 06:48:09 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=250862#comments</comments>
            
            <description>(Sorry to intrude, CauTi0N. Iain mentioned that some of the CQ regulars and others showed an interest in helping test for GIAD 2011, and since the blog forums are gone now, this was the next best place to contact them)&lt;br&gt;
&lt;br&gt;
I've been working with Iain to get the judging under way for GIAD 2011 (yikes, it's already 2012!). We need some play testers to help us with the multiplayer games. I'm hoping to host sessions the next two weekends (around Feb 11th/17th) but I'm open to shifting things around depending on people's schedules. If you're interested, &lt;a href=&quot;http://www.byond.com/forum/?post=250861&quot;&gt;please post on the thread in the Contests &amp; Events forum&lt;/a&gt;. For fairness, people who submitted entries will not be allowed to be apart of the testing. There are more details in the other thread.&lt;br&gt;
&lt;br&gt;
Thanks.</description>
        </item>
                <item>
            <title>Looking for GIAD 2011 play testers</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250861</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250861</guid>
            <pubDate>Sun, 05 Feb 2012 06:47:24 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=250861#comments</comments>
            
            <description>I've been working with Iain to get the judging under way for GIAD 2011 (yikes, it's already 2012!). However, we need some play testers to help us with the multiplayer games.&lt;br&gt;
&lt;br&gt;
Details:
&lt;ul&gt;
&lt;li&gt;I'm hoping to host sessions the next two weekends (&lt;b&gt;around Feb 11th and 17th&lt;/b&gt;) but I'm open to shifting things around depending on people's schedules.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;The first session will be GMT: 22:00 Saturday February 11, 2012&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;To see the date in your local time zone, see the date attached to this event&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;For fairness, people who submitted entries will not be allowed to play on the &lt;b&gt;primary&lt;/b&gt; testing server.&lt;/li&gt;

&lt;li&gt;We had 18 entries (pre-disqualifications, including single player games)&lt;/li&gt;

&lt;li&gt;We'll likely try to spread the testing out over 2 days (or maybe three) to keep things reasonable.&lt;/li&gt;

&lt;li&gt;I would expect each day of testing to run from an hour to 90 minutes&lt;/li&gt;

&lt;li&gt;We're now doing open testing, so if you're free, pop into the server and help us out! If the primary server is full, I will also be hosting a secondary server for people who just want to try out the games&lt;/li&gt;
&lt;/ul&gt;
&lt;font style=&quot;font-size: 7px;&quot;&gt;&lt;strike&gt;If you're interested, please post in this thread with what days/times work for you.&lt;br&gt;
If you guys/gals are up for it, I would also like to implement a &quot;community score&quot; into the judging, although that will require testers to play every entry--even the single player ones. It would just be a quick 1-5 score in a couple of categories.&lt;br&gt;
I'll update this post in a bit with a better count of how many multiplayer games we have and an estimate of how many testers we'll need for each day.&lt;/strike&gt;&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;We will now be doing open play testing, so if you're free, please pop in and play a round or two with us!&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;This post will be updated with the server address and game details during the event.&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
So, BYOND community: help us get these things judged!&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/9/12&amp;gt;&lt;br&gt;
Updated time to reflect first playtesting session.&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/10/12&amp;gt;&lt;br&gt;
Scrapping the community scores element in favor of open testing</description>
        </item>
                <item>
            <title>Constrain window to aspect ratio</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195017</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195017</guid>
            <pubDate>Thu, 20 Oct 2011 22:46:56 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=195017#comments</comments>
            
            <description>&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmcomment&quot;&gt;//Title: forceAspectRatio&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Credit to: DarkCampainger&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Contributed by: DarkCampainger&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Special thanks to: Beatmewithastick (for posting the question)&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;This verb resizes the passed window to the passed aspect ratio, tracking the&lt;br&gt;  window's previous size so it knows if it should grow or shrink. Use this verb&lt;br&gt;  by calling it from the the desired window's Resize command:&lt;br&gt;    forceAspect [window] [aspectRatio]&lt;br&gt;    forceAspect &amp;quot;default&amp;quot; 1.3333&lt;br&gt;&lt;br&gt;It is recommended that you manually call this verb when the player logs in,&lt;br&gt;  so the system can set up the lastWindowWidth/Height lists and correctly&lt;br&gt;  interpret the user's resize as a grow or shrink.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;client&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// We track the previous window size to determine if the user is trying to&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   shrink or grow the window&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/&lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/lastWindowWidth = list() &lt;span class=&quot;dmcomment&quot;&gt;// Associative list of &amp;quot;window&amp;quot; = width&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/&lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/lastWindowHeight = list() &lt;span class=&quot;dmcomment&quot;&gt;// Associative list of &amp;quot;window&amp;quot; = height&lt;/span&gt;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// This verb should be called from the &amp;quot;Resize command&amp;quot; of the window you&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   want to constrain. Pass its name and the aspect ratio.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   Example: forceAspect &amp;quot;default&amp;quot; 1.3333&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;verb&lt;/span&gt;/forceAspect(window=&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt; &lt;span class=&quot;dmkeyword&quot;&gt;as&lt;/span&gt; text|null, aspect=4/3 &lt;span class=&quot;dmkeyword&quot;&gt;as&lt;/span&gt; num|null)&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Get and parse the width/height of the window's size&lt;/span&gt;&lt;br&gt;            size = winget(src, window, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;size&amp;quot;&lt;/span&gt;)&lt;br&gt;            delimiter = findtext(size, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;x&amp;quot;&lt;/span&gt;)&lt;br&gt;            width = text2num(copytext(size, 1, delimiter))&lt;br&gt;            height = text2num(copytext(size, delimiter+1, 0))&lt;br&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Calculate the counterpart to each dimension that would give the&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;//    desired aspect ratio&lt;/span&gt;&lt;br&gt;            heightForWidth = round(width/aspect) &lt;span class=&quot;dmcomment&quot;&gt;// Height based on width&lt;/span&gt;&lt;br&gt;            widthForHeight = round(height*aspect) &lt;span class=&quot;dmcomment&quot;&gt;// Width based on height&lt;/span&gt;&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Determine if the user is stretching or shrinking the window&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Calculate the changes in width/height from the previous window size&lt;/span&gt;&lt;br&gt;            changeWidth = (!lastWindowWidth[window] ? 0 \&lt;br&gt;                    : width - lastWindowWidth[window])&lt;br&gt;            changeHeight = (!lastWindowHeight[window] ? 0 \&lt;br&gt;                    : height - lastWindowHeight[window])&lt;br&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Take the greatest change, and see if it's an increase or decrease&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;//   For an increase, we assume the user is growing the window&lt;/span&gt;&lt;br&gt;            grow = ((abs(changeWidth) &amp;gt; abs(changeHeight)) ? changeWidth : changeHeight) &amp;gt;= 0&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// If we're growing to fit and the height deviates the most,&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;//   Or if we're shrinking to fit and the width deviates the most&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;((grow &amp;amp;&amp;amp; widthForHeight&amp;gt;width) || (!grow &amp;amp;&amp;amp; widthForHeight&amp;lt;width))&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Reconstrain the width to the height&lt;/span&gt;&lt;br&gt;            width = widthForHeight&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;else&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Otherwise reconstrain the height to the width&lt;/span&gt;&lt;br&gt;            height = heightForWidth&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Store the size so we know next time if they're shrinking or stretching the window&lt;/span&gt;&lt;br&gt;        lastWindowWidth[window] = width&lt;br&gt;        lastWindowHeight[window] = height&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Update the window size&lt;/span&gt;&lt;br&gt;        winset(src, window, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;size='&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[width]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[height]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;'&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
        </item>
                <item>
            <title>The &quot;Create your own CSS&quot; CSS</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=114648</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=114648</guid>
            <pubDate>Fri, 17 Jun 2011 05:13:19 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=114648#comments</comments>
            
            <description>&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
body&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the pages background color */&lt;/span&gt;&lt;br&gt;    background-color: #93B4E2;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image (&amp;quot;url('URL_TO_IMAGE')&amp;quot;)*/&lt;/span&gt;&lt;br&gt;    background-image: none;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image position (center, left, right, top, bottom, pixelX, pixelY, percentX%, percentY%)*/&lt;/span&gt;&lt;br&gt;    background-position: center center;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image attachment (scroll, fixed)*/&lt;/span&gt;&lt;br&gt;    background-attachment: fixed;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image repeat (no-repeat, repeat, repeat-x, repeat-y)*/&lt;/span&gt;&lt;br&gt;    background-repeat: no-repeat;&lt;br&gt;}&lt;br&gt;&lt;br&gt;a&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the link color */&lt;/span&gt;&lt;br&gt;    color: #E5FB00 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.page_header .title, .page_header .subtitle&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the title's text color */&lt;/span&gt;&lt;br&gt;    color: #E5FB00 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, .comment, .title, p, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text color */&lt;/span&gt;&lt;br&gt;    color: #05316D !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, .comment, #content .title, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box color */&lt;/span&gt;&lt;br&gt;    background: #6996D3 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box border rounding (0px to 30px) */&lt;/span&gt;&lt;br&gt;    border-radius: 0px !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, #center #comments_box, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 3px solid #284C7E !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;input[type=text], textarea&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text-input background color */&lt;/span&gt;&lt;br&gt;    background: #0F4FA8 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text-input text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the boxes' border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 1px solid #6996D3 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;input[type=button], input[type=submit]&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the button-input background color */&lt;/span&gt;&lt;br&gt;    background: #0F4FA8 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the button-input text color */&lt;/span&gt;&lt;br&gt;    color: #93B4E2 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the boxes' border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 2px outset #6996D3 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.style1, .style2&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post shell background color */&lt;/span&gt;&lt;br&gt;    background: #4380D3 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post shell text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.style3&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post content background color */&lt;/span&gt;&lt;br&gt;    background: #6996D3 !important;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post content text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/* Minor fixes */&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmpreprocessor&quot;&gt;#tab_content {background: transparent !important;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmpreprocessor&quot;&gt;#fan_content {margin-top: 40px !important;}&lt;/span&gt;&lt;br&gt;.title {margin-left: 10px !important;margin-right: 10px !important;}
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
Here's a basic style sheet that will allow you to control the style across your page. Simply fill in the values with what you want (those without clear values are commented with the list of possible choices).&lt;br&gt;
&lt;br&gt;
Currently, you can configure:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Your page background color and/or image&lt;/li&gt;
&lt;li&gt;The color of all links&lt;/li&gt;
&lt;li&gt;The page title color&lt;/li&gt;
&lt;li&gt;The text color, background color, and border of all boxes&lt;/li&gt;
&lt;li&gt;The background color, text color, and border of input boxes and buttons&lt;/li&gt;
&lt;li&gt;The text color and background color and forum posts&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
As you can see from my site (at the time of this writing), the design is very simple.&lt;br&gt;
&lt;br&gt;
If you have any questions or requests for additions, feel free to post in the comments.&lt;br&gt;
&lt;br&gt;
You can do a quick google search for good color schemes (I used &lt;a href=&quot;http://colorschemedesigner.com/#&quot;&gt;this site's color scheme designer&lt;/a&gt;).</description>
        </item>
                <item>
            <title>GSD? GSD.</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113876</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113876</guid>
            <pubDate>Mon, 30 May 2011 07:57:23 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113876#comments</comments>
            
            <description>&lt;center&gt;&lt;a href=&quot;http://www.byond.com/developer/DarkCampainger/StaticLightingGenerator2?invite=DarkCampainger&quot;&gt;&lt;img src=&quot;http://www.byond.com/games/banners/90518.png&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;
&lt;br&gt;
By some stroke of luck, I managed to fix that last bug and finish version 2.3 of my Static Lighting Generator. Go check it out, it's pretty cool.&lt;br&gt;
&lt;br&gt;
Unfortunately, I didn't get to implement the &lt;i&gt;really&lt;/i&gt; cool optional features I had hoped too, but I did get all of my required ones:&lt;br&gt;
&lt;br&gt;
Static Lighting Generator 2.3&lt;br&gt;
- Transfer to libpng &amp;radic;&lt;br&gt;
- Support for southward-facing walls &amp;radic;&lt;br&gt;
- Support for rectangular icon_sizes &amp;radic;&lt;br&gt;
- Upgrade to filter-strip method &amp;radic;&lt;br&gt;
- Support for perspective-skew &amp;radic;&lt;br&gt;
- Semi-transparent walls (optional) ~&lt;br&gt;
- Light shapes (optional) ~&lt;br&gt;
&lt;br&gt;
(&amp;radic; means done, ~ means almost done)&lt;br&gt;
&lt;br&gt;
As much as I would love to spend one more day trying to get those last two in, I've got finals coming up and I need to get back to my real work. Anyways, the more I look at &lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_002.png&quot;&gt;it&lt;/a&gt;, the less I think transparency is fully working. Also, if working on this has taught me anything, things never go as planned, and never take as long as you expect.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;</description>
        </item>
                <item>
            <title>GSD: Lighting Generator Progress?</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113871</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113871</guid>
            <pubDate>Mon, 30 May 2011 04:40:57 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113871#comments</comments>
            
            <description>Well, almost 2 days have passed since I ran into one more bug in my generator. I just finally fixed it, I think.&lt;br&gt;
&lt;br&gt;
Despite how diminutive that particular manifestation of the bug was, it was actually quite serious, especially in regard to the potential for user-defined &quot;light shapes&quot;. It turned out the vertices of the light-blocking tiles that fell &quot;behind&quot; the point being lit were being discarded (which seemed like a perfect solution at the time). Now the system runs edge-intersections on any vertices that fall behind the point or light source, to make sure their edges wouldn't affect the light's path. You would think it would be simple to fix, and I guess it would have been if I had chosen the right solution from the start, but now it finally works (third solution's the charm... I hope!)&lt;br&gt;
&lt;br&gt;
Here's a screenshot of one of the other rooms. Notice that light can't sneak through diagonals any more.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Things left to do:&lt;br&gt;
- &lt;strike&gt;Fix walls (I broke them, I guess)&lt;/strike&gt;&lt;br&gt;
- &lt;strike&gt;Finish perspective&lt;/strike&gt;&lt;br&gt;
- Add transparency property to encoded data&lt;br&gt;
- Add light shapes (maybe)&lt;br&gt;
- Add light shapes to encoded data (maybe)&lt;br&gt;
- Buffer optimization (maybe)&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 1&amp;gt;&lt;br&gt;
&lt;br&gt;
Fixed the walls. Turns out I had made an &quot;optimization&quot; where they used the same buffer as the floors, and they were overwiting the floor's data before it was saved. Yay early-optimization.&lt;br&gt;
&lt;br&gt;
Anyways, I don't think I've shown off the walls before:&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2&amp;gt;&lt;br&gt;
&lt;br&gt;
Perspective is in. Tiles are 32x16.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;</description>
        </item>
                <item>
            <title>GSD: Hrm</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113807</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113807</guid>
            <pubDate>Sat, 28 May 2011 07:33:33 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113807#comments</comments>
            
            <description>&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_001.png&quot; style=&quot;width:100%;max-width:640px;height:auto;&quot;&gt;&lt;br&gt;
&lt;br&gt;
Can you spot the flaw?&lt;br&gt;
&lt;br&gt;
So close, yet so far away.&lt;br&gt;
&lt;br&gt;
Checklist so far:&lt;br&gt;
&lt;br&gt;
Static Lighting Generator 3&lt;br&gt;
- Transfer to libpng &amp;radic;&lt;br&gt;
- Support for southward-facing walls &amp;radic;&lt;br&gt;
- Support for rectangular icon_sizes &amp;radic;&lt;br&gt;
- Upgrade to &lt;strike&gt;planar mapping&lt;/strike&gt; filter strip method &amp;radic; (renamed! :)&lt;br&gt;
- Support for perspective-skewed icon_sizes ~&lt;br&gt;
- Semi-transparent walls (optional) ~&lt;br&gt;
- Update map-encode format for new features&lt;br&gt;
- Arbitrarily shaped (convex) and sized &quot;shadow shapes&quot; (optional)&lt;br&gt;
&lt;br&gt;
(&amp;radic; means done, ~ means almost done)&lt;br&gt;
&lt;br&gt;
So, it looks like I'm on track. I even added a fancy help page and progress bar to the generator. What I'm happy with most is how fast it can chug along now--I guess the new method is both more accurate and a bit faster!&lt;br&gt;
&lt;br&gt;
Once I track down the cause of that flaw, I'll finish up perspective and transparency. Of course, I marked transparency as almost done, and I haven't even tested a transparent wall.&lt;br&gt;
&lt;br&gt;
Oh, Idea! I'll just make them all transparent really quick:&lt;br&gt;
&lt;br&gt;
&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_002.png&quot; style=&quot;width:100%;max-width:640px;height:auto;&quot;&gt;&lt;br&gt;
&lt;br&gt;
Huh. I... think.. that's right? At least it looks cool. It'll probably look better when they aren't all considered separate objects...&lt;br&gt;
&lt;br&gt;
Anywho, thought I'd share a stupid mistake that had me scratching my head for half a night:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
darkness -= light-&amp;gt;intensity-dist, 0.0f * options-&amp;gt;falloff * filter;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
No error or nut'in. I couldn't for the life of me figure out why everything was hard-edged, and spent a while walking through all the new code for the new generation method, and that's sitting in my old code. Gah. This is why people need sleep, otherwise they just delete &lt;tt&gt;max( )&lt;/tt&gt; and leave the arguments behind!</description>
        </item>
                <item>
            <title>GSD: Progress on my generator, woo!</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113730</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113730</guid>
            <pubDate>Thu, 26 May 2011 12:24:41 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113730#comments</comments>
            
            <description>Well, with only &lt;strike&gt;5&lt;/strike&gt; 6 days left in the month (bonus day!), I'm glad to report I made a fair amount of progress on my &lt;a href=&quot;http://www.byond.com/members/IainPeregrine?command=view_post&amp;post=112789&quot;&gt;Get Something Done&lt;/a&gt; &lt;a href=&quot;http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113057&quot;&gt;goals&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
After pulling a three-day &quot;all-nighter&quot; to work on programming homework for class, I decided to pull one for my own projects. I dusted off my lighting generator's code and set to cleaning it up and reorganizing it. Unfortunately, one of my goals (Support for rectangular icon_sizes) requires a rather extensive repurposing of my variables. Previously, I had all of my measurements in tiles. But now that a tile's height and width may differ, a euclidean distance measured in tiles doesn't mean anything, so I'll have to convert everything over to pixels. It's changes like these that create hours and hours of debugging just to find you forgot to &quot;subtract one&quot; from some variable. I haven't started this conversion yet, and I'm not looking forward to it.&lt;br&gt;
&lt;br&gt;
Another change is that the generator will be in EXE form instead of DLL. This change is just about done, and I've added a slew of option flags and a help page so it can be run standalone (you know, for all 1 times that will happen). The real advantage is the console output will be displayed to the user, so I can show a progress bar and output errors.&lt;br&gt;
&lt;br&gt;
Perhaps the most interesting update is the switch from my old generation method (I guess technically casting rays) to a new one (which I'll just call &quot;light filter strips&quot;). I just finished up the data structure that will track the various levels of transparency that make up the light that reaches each pixel, and I can't wait to use it. Writing the data structure was the bulk of the work, so now I just have to make the generator use it. It's pretty extensive, so I'm hoping to be able to get the semi-transparent objects and arbitrarily shaped (convex) &quot;shadow shape&quot; features in before the deadline.&lt;br&gt;
&lt;br&gt;
I guess the last big task I have to complete on it (besides the conversion, blech) is to rewrite my encoded data format to handle all the new features I added. I'm tempted to cut corners and just dump a massive text file, as it is just temporary. I guess only time will tell what kind of time I have.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I have a cat on my lap. Good night.</description>
        </item>
                <item>
            <title>Direct Child Type</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195023</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195023</guid>
            <pubDate>Tue, 10 May 2011 04:56:36 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=195023#comments</comments>
            
            <description>&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmcomment&quot;&gt;//Title: isDirectChild&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Credit to: Darkcampainger&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Contributed by: DarkCampainger&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;// Returns if childType is a direct child of parentType&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;/isDirectChild(childType, parentType)&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// Check if the child is derived form the parent at all&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;(!ispath(childType,parentType))&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;return&lt;/span&gt; 0&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// Check that the types are not equivalent&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;(childType == parentType)&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;return&lt;/span&gt; 0&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// If it's the direct descendant, there should only be one more / in its type&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;return&lt;/span&gt; !findtext(&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[childType]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;,&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;,length(&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[parentType]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;)+2)&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;// Example output:&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//   isDirectChild(/obj/item/knife, /obj/item) = 1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//   isDirectChild(/obj/item/knife/steel, /obj/item) = 0&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//   isDirectChild(/obj/button, /obj/item) = 0&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
        </item>
                <item>
            <title>Get something done-ish</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113057</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113057</guid>
            <pubDate>Mon, 09 May 2011 15:14:42 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113057#comments</comments>
            
            <description>I'm going to try and participate in Iain's annual &lt;a href=&quot;http://www.byond.com/members/IainPeregrine?command=view_post&amp;post=112789&quot;&gt;Get Something Done&lt;/a&gt; event. Right now, my plan is to complete EITHER of the following, but not both:&lt;br&gt;
&lt;br&gt;
Static Lighting Generator 3&lt;br&gt;
- Transfer to libpng &amp;radic;&lt;br&gt;
- Support for southward-facing walls &amp;radic;&lt;br&gt;
- Support for rectangular icon_sizes&lt;br&gt;
- Support for perspective-skewed icon_sizes&lt;br&gt;
- Upgrade to planar mapping method&lt;br&gt;
- - Fixes eclipse bug, makes next two possible&lt;br&gt;
- Arbitrarily shaped (convex) and sized &quot;shadow shapes&quot; (optional)&lt;br&gt;
- Semi-transparent walls (optional)&lt;br&gt;
&lt;br&gt;
That list is a little misleading, because I've just implemented several of those over the past couple of hours for Darke (turns out there's a bug in GDI+ 1.0 with large image dimensions, that isn't in the vista/win7-only GDI+ 1.1). Marked 'em with a &amp;radic;, and some of the others are partially implemented, or at least planned out.&lt;br&gt;
&lt;br&gt;
Failing an interest in that, I'll give myself a second option just to double my chances:&lt;br&gt;
&lt;br&gt;
- Complete ANY TWO of the unfinished demos or libraries I have laying around, complete with comments, relevant demonstration code, and hub page.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Best of luck to everyone else who is participating!</description>
        </item>
            
    </channel>
</rss>


