<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
    <channel>
        <title>Theodis's BYOND website</title>
        <link>http://www.byond.com/members/Theodis</link>
        <description>A nice place on the web</description>
        <lastBuildDate>Sun, 22 Nov 2009 06:15:10 GMT</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>Elemental Beta has started!</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=82174</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=82174</guid>
            <pubDate>Fri, 18 Sep 2009 13:58:43 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=82174#comments</comments>
            
            <description>Elemental:War of Magic is a game I've been looking forward to for awhile and already preordered last year despite it won't even be out until next year. However like most of Stardock's games when you preorder you get to toy around with the early betas give suggestions and stuff. The first beta copy available to preorders was released yesterday and I just love the intro.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/members/Theodis/files/Elemental/1.png&quot;&gt;&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Elemental/1t.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/members/Theodis/files/Elemental/2.png&quot;&gt;&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Elemental/2t.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/members/Theodis/files/Elemental/3.png&quot;&gt;&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Elemental/3t.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/members/Theodis/files/Elemental/4.png&quot;&gt;&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Elemental/4t.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/members/Theodis/files/Elemental/5.png&quot;&gt;&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Elemental/5t.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Just as good as Frogboy's joke prior to the release about the graphics. &lt;a href=&quot;http://forums.elementalgame.com/363898&quot;&gt;http://forums.elementalgame.com/363898&lt;/a&gt;</description>
        </item>
                <item>
            <title>Working on another map tool</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=77585</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=77585</guid>
            <pubDate>Sun, 26 Jul 2009 13:34:44 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=77585#comments</comments>
            
            <description>Kuraudo brought up how annoying data entry is in a forum post(&lt;a href=&quot;http://www.byond.com/developer/forum/?id=710218) &quot;&gt;http://www.byond.com/developer/forum/?id=710218) &lt;/a&gt;which is quite silly especially for fan material since all the data is already out there and it's a lot faster to simply write a tool to convert the data available into the format you need. Not exactly what he was whining about but gave me some interest in fiddling with making another tool for converting an image of a game map into a BYOND map and to chop up a tileset from it as well.&lt;br&gt;
&lt;br&gt;
Took me 4-5 hours of programming work but I finished my tool and tested with the FF1 maps at &lt;a href=&quot;http://achurch.org/ff1-maps.html &quot;&gt;http://achurch.org/ff1-maps.html &lt;/a&gt;. And generated &lt;a href=&quot;http://www.byond.com/developer/Theodis/FinalFantasy1Maps &quot;&gt;http://www.byond.com/developer/Theodis/FinalFantasy1Maps &lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
All that's left to do is some code clean up and to set up a UI for it. At the moment it's just hard coded calls the the programs functionality.&lt;br&gt;
&lt;br&gt;
Feel free to use the demo project for whatever, but remember that the map data itself and graphics are property of Square so if you face any legal problems with it it'll be Square after you not me. People that write fan games don't seem to be too concerned with that so have fun with it :P!</description>
        </item>
                <item>
            <title>Complex pathfinding</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=53981</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=53981</guid>
            <pubDate>Sun, 08 Feb 2009 20:45:33 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=53981#comments</comments>
            
            <description>My pathfinder library is very robust, powerful, and I get the feeling is underused compared to what it is capable of. To demonstrate the power of the library I whipped up a demo to show how the library could be used for non standard movement.&lt;br&gt;
&lt;br&gt;
The limitations on movement in the demo are as follows&lt;br&gt;
Mob can move forward or backward&lt;br&gt;
Mob can only turn by 45 degrees when also making a move in that direction&lt;br&gt;
Mob can't clip corners when moving diagonal&lt;br&gt;
&lt;br&gt;
Originally I was going to use a tank graphic but then I remembered I can't draw and just went with an arrow instead. Just click on the map to move to that tile.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/developer/Theodis/ComplexPathfindingDemo&quot;&gt;http://www.byond.com/developer/Theodis/ ComplexPathfindingDemo&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
And if you cut out the comments the amount of code to make that work is actually pretty small for quite an impressive effect.&lt;br&gt;
&lt;br&gt;
This library has many potential applications and the demo provided with the library just shows the basics of how to use it. Since I haven't really used it myself I don't have too many ideas for practical applications in BYOND that people might need it for. So I'm open to suggestions for demo ideas if people are having specific pathfinding issues they need an example of a solution for.&lt;br&gt;
&lt;br&gt;
[Edit] And if you want to have more fun with you can easily control the possible movement since I did it on a case by case basis in the AdjacentNodes proc. If you want to see it pathfind without moving straight forward just comment out the line that tests and adds nodes for forward. Or if you want to disable turning while moving backwards, or just left turns it's real easy to do with the code and interesting to see how it comes up with paths without certain kinds of movement.</description>
        </item>
                <item>
            <title>Updated Region</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=53615</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=53615</guid>
            <pubDate>Wed, 28 Jan 2009 19:17:58 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=53615#comments</comments>
            
            <description>A post by LummoxJR made me realize that something similar to what I was attempting with my RefSortedList is already hard coded into BYOND with associative lists. I updated my Region library to use them rather than standard lists and got a massive performance boost which should make it run much much better on large areas and even a good performance boost on smaller ones.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/developer/Theodis/Region&quot;&gt;http://www.byond.com/developer/Theodis/Region&lt;/a&gt;</description>
        </item>
                <item>
            <title>More library goodness</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=53335</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=53335</guid>
            <pubDate>Wed, 21 Jan 2009 13:27:30 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=53335#comments</comments>
            
            <description>&lt;a href=&quot;http://www.byond.com/developer/Theodis/Region&quot;&gt;http://www.byond.com/developer/Theodis/Region&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Like it says in the description it's pretty much a wrapper on the flood fill algorithm. It works similar to my RegionMap library except that it only gets an individual region rather than divide up a set area into many regions. Another difference is that it isn't bound to a turf grid like RegionMap so Regions can be built out of any graph style data structure as long as you can provide the node connections from a node as well as having a starting node you can build a region from it.&lt;br&gt;
&lt;br&gt;
However RegionMap is significantly faster per region over a large area so if you want to divide up an entire map it is a better solution if it is possible(ie your map is built out of turfs rather than say datums for a text game or something). Not to say Region is slow just not as fast. On my computer a region built over a 10,000 tile area took about 2 and a half seconds. And on smaller areas like in the demo of about 200 tiles it on average takes about 5 milliseconds per call so on room sized areas of under 20 tiles you should be able to call it without noticeable overhead hundreds of times in a tick.&lt;br&gt;
&lt;br&gt;
To try and speed up the Region library I built a special list data structure to handle the contents list. The reason why Region is slower than RegionMap is because Region stores all the nodes its been to in a list whereas for RegionMap it's just flagged on a 2D list that matches the size of the search area. Whenever a new node is being added the algorithm needs to check if it's already been added. With Region it needs to search through the whole list to check if the node is already in so as the list gets larger and larger this check gets slower and slower. With RegionMap it just indexes to the grid position which is just as fast regardless of how big of an area it's already added.&lt;br&gt;
&lt;br&gt;
On a normal unsorted list you need to check every item up to the item you are finding it to find it. However if the list is sorted you can perform a binary search which requires significantly less checks which is why my special list should have been faster. Unfortunately that didn't work out because while it doesn't take as many checks each check is much slower for my list because the built in find has direct access to an objects unique hash whereas I need to use \ref to build a string version of it for each check for both datums being compare.&lt;br&gt;
&lt;br&gt;
But I've made the list available for anyone who is curious about it.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/developer/Theodis/RefSortedList&quot;&gt;http://www.byond.com/developer/Theodis/RefSortedList&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
If we ever get a more direct way of getting at an objects hash value it may actually be more useful. At the moment it's probably only useful for quickly taking out duplicate values and nulls in a list.&lt;br&gt;
&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;
&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/RefSortedList/r = &lt;span class=&quot;dmkeyword&quot;&gt;new&lt;/span&gt;(somelist)
r.RemoveDuplicatesExact()
somelist = r.contents
&lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;(somelist[1] == null)
    somelist.Cut(1,2)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
This is only useful if the item order isn't important as it will sort out everything based on it's \ref value.</description>
        </item>
                <item>
            <title>QuickSort Update</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=53078</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=53078</guid>
            <pubDate>Wed, 14 Jan 2009 13:02:21 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=53078#comments</comments>
            
            <description>Noticed a tiny bug in my QuickSort library. On full sorts it had no effect other than being slower than it should be. And on partial sorts it would mess with item positions outside the lower bound of the sorting area.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/developer/Theodis/QuickSort&quot;&gt;http://www.byond.com/developer/Theodis/QuickSort&lt;/a&gt;</description>
        </item>
                <item>
            <title>10 years on BYOND</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=45459</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=45459</guid>
            <pubDate>Thu, 17 Jul 2008 21:06:21 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=45459#comments</comments>
            
            <description>&lt;img src=&quot;http://www.byond.com/members/Theodis/files/Clipboard02.png&quot;&gt;&lt;br&gt;
&lt;br&gt;
That is a snapshot of the rougelike news site which I archived when it was announced it was going down since it still had useful links and info at the time. But back when it was online it was pretty much the first site I went to when I got online to see if any roguelikes got updated to play around with. It's safe to say I checked out the DUNG site shortly after the posting since I was real interested in game creation stuff, having no decent programming talent just yet.&lt;br&gt;
&lt;br&gt;
BYOND certainly has &lt;a href=&quot;http://www.byond.com/members/Theodis?command=view_post&amp;amp;post=22321&quot;&gt;changed&lt;/a&gt; a lot since I started using it. In fact when I joined there weren't even forums for it yet and all there was, was a few demos, and night soil. A shame I haven't really done too much during all that time especially recently. My last game was Racing Game which I initially released over half that time ago. So aside from updating my libraries I've pretty much just been a lurker.&lt;br&gt;
&lt;br&gt;
And I know someone is going to point out that my key date doesn't match. So I suggest checking out Dan or Tom's key date or anyone's really old key and you'll notice they all show the same date. That's since the key system has also changed a bit. Originally there was a simple web form for requesting a key and it wasn't automatically processed. You had to wait a bit for them the email you back the key file. That and keys required periodic reactivation which never worked just right for me which is why there is a theodis2 key, theodis3 key, theodis4 key, etc. I ended up just making new keys every time my last one died. This was after the process was automated and before the old keys got updated which is why my theodis2 key shows an older date.&lt;br&gt;
&lt;br&gt;
Anyway enough ranting about my key and hopefully BYOND will be around another 10 years for me to lurk around!</description>
        </item>
                <item>
            <title>Tiny Priority Queue update</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=42893</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=42893</guid>
            <pubDate>Tue, 13 May 2008 21:32:02 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=42893#comments</comments>
            
            <description>Just updated my priority queue library and added in two simple procs.&lt;br&gt;
&lt;br&gt;
List() - Returns a list version of the queue leaving the original queue in tact&lt;br&gt;
&lt;br&gt;
RemoveItem(i) - Finds and removes the item i if it is in the queue.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/developer/Theodis/PriorityQueue&quot;&gt;http://www.byond.com/developer/Theodis/PriorityQueue&lt;/a&gt;</description>
        </item>
                <item>
            <title>Racing Game update</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=41052</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=41052</guid>
            <pubDate>Mon, 31 Mar 2008 23:20:15 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=41052#comments</comments>
            
            <description>Just made an update. Give it a shot if you have version 414 of BYOND. If you aren't running Windows 98 or Windows ME you should be pleased(and if you are it'll probably crash :P). I also wanted to see how horribly laggy multi player is but couldn't find anyone to test with. If you can test this please comment.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/Theodis/RacingGame&quot;&gt;http://www.byond.com/games/Theodis/RacingGame&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
[Edit] For some reason a few junk files ended up in the cars folder. And unfortunately updating can only add/replace files not remove them. So if you want to get rid of the bad car entries so random car doesn't select blank cars delete the zero length files in the cars folder. Also I'm phasing out the maps not made by Foomer since they just aren't at the same level of quality. You can keep them around if you want but they won't be included in the game package anymore.</description>
        </item>
                <item>
            <title>Took 5+ years...</title>
            <link>http://www.byond.com/members/?command=view_post&amp;post=40782</link>
            <guid>http://www.byond.com/members/?command=view_post&amp;post=40782</guid>
            <pubDate>Tue, 25 Mar 2008 06:23:10 GMT</pubDate>
            
            <comments>http://www.byond.com/members/Theodis?command=view_comments&amp;post=40782#comments</comments>
            
            <description>Took over 5 year but I finally got the feature I wanted for Racing Game! Anyway just added 2 lines of code to have it set the client pixel offsets and it looks wonderful. If anyone wants to see an example of the new client pixel offsets you can check out Racing Game.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/Theodis/RacingGame&quot;&gt;http://www.byond.com/games/Theodis/RacingGame&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
[Edit] Actually almost 6 years now &lt;a href=&quot;http://www.byond.com/developer/forum/?id=102345&quot;&gt;ID:102345&lt;/a&gt;.</description>
        </item>
            
    </channel>
</rss>

