<?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>Projects &#8211; Rotates.org V12</title>
	<atom:link href="https://www.rotates.org/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.rotates.org</link>
	<description>The personal blog of developer, photographer and designer Lewis &#039;SEPTiMUS&#039; Lane</description>
	<lastBuildDate>Sun, 03 May 2026 17:01:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.rotates.org/wp-content/uploads/2025/06/cropped-rotates-logo-32x32.png</url>
	<title>Projects &#8211; Rotates.org V12</title>
	<link>https://www.rotates.org</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">6964888</site>	<item>
		<title>Disassembling Chaos</title>
		<link>https://www.rotates.org/2026/04/30/disassembling-chaos/</link>
					<comments>https://www.rotates.org/2026/04/30/disassembling-chaos/#respond</comments>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 22:40:24 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Plugs]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Battle of the Wizards]]></category>
		<category><![CDATA[chaos]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=410</guid>

					<description><![CDATA[I&#8217;ve been plugging away at a couple of side projects lately; though both in the same general domain as Archaos. One of them is to get to grips with the original game&#8217;s mechanics a bit better, I&#8217;ve been using the wonderful Skoolkit by Richard Dymond to extract and annotate: https://www.archaos.co.uk/chaos-disassembly/ A lot of the heavy [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve been plugging away at a couple of side projects lately; though both in the same general domain as Archaos. One of them is to get to grips with the original game&#8217;s mechanics a bit better, I&#8217;ve been using the wonderful <a href="https://github.com/skoolkid/skoolkit">Skoolkit</a> by Richard Dymond to extract and annotate: <a href="https://www.archaos.co.uk/chaos-disassembly/">https://www.archaos.co.uk/chaos-disassembly/</a></p>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="563" height="520" src="https://www.rotates.org/wp-content/uploads/2026/04/image-563x520.png" alt="Lots of extracted graphics" class="wp-image-411" srcset="https://www.rotates.org/wp-content/uploads/2026/04/image-563x520.png 563w, https://www.rotates.org/wp-content/uploads/2026/04/image-300x277.png 300w, https://www.rotates.org/wp-content/uploads/2026/04/image.png 682w" sizes="(max-width: 563px) 100vw, 563px" /></figure>
</div>


<p>A lot of the heavy work has been via the use of AI (<a href="https://claude.ai/">Claude </a>in this case). I&#8217;ve been using it both as a learning exercise in agentic workflows, and, honestly, just because it&#8217;s a lot of fun! I really wish I&#8217;d learned Z80 assembly back in the day, but I never got round to picking it up before I&#8217;d moved on to higher level stuff. Now, I can work with a game I&#8217;m super-familiar with, and see the code that drives it, and that&#8217;s a really cool way to get into it.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="256" height="96" data-id="412" src="https://www.rotates.org/wp-content/uploads/2026/04/beam3_cast.gif" alt="" class="wp-image-412"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="256" height="96" data-id="413" src="https://www.rotates.org/wp-content/uploads/2026/04/beam4_dragon.gif" alt="" class="wp-image-413"/></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="256" height="96" data-id="414" src="https://www.rotates.org/wp-content/uploads/2026/04/beam1_arrow.gif" alt="" class="wp-image-414"/></figure>
</figure>



<p>Anyway, hopefully the disassembly is as useful (or just interesting) to everyone else as it has been to me. It&#8217;s not finished yet, but lots of good stuff is there now. <s>I&#8217;ll be putting the source for it all on Github soon, once I&#8217;ve tidied things up.</s> This is now available to view on Github here: <a href="https://github.com/lewster32/chaos-disassembly">https://github.com/lewster32/chaos-disassembly</a><br><br>If anyone&#8217;s interested I&#8217;ll even write about the process. A lot of it was setting up the tools and reference materials, and finding concrete known places to start in the code to then work back from.</p>



<figure class="wp-block-audio"><audio controls src="https://www.rotates.org/wp-content/uploads/2026/04/sC275_magic-bolt-beam.wav"></audio></figure>



<p>Props goes to other people&#8217;s work in starting to crack the code open in Skoolkit, such as <a href="https://github.com/ZXGuesser/chaos-disassembly">https://github.com/ZXGuesser/chaos-disassembly</a> &#8211; this one especially proved invaluable as a reference guide to keep things on track.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.rotates.org/2026/04/30/disassembling-chaos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://www.rotates.org/wp-content/uploads/2026/04/sC275_magic-bolt-beam.wav" length="52964" type="audio/wav" />

		<post-id xmlns="com-wordpress:feed-additions:1">410</post-id>	</item>
		<item>
		<title>Archaos: beta 3</title>
		<link>https://www.rotates.org/2026/03/22/archaos-beta-3/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 11:21:17 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Plugs]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Battle of the Wizards]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=407</guid>

					<description><![CDATA[A new major release has just dropped. This contains many fixes, QoL improvements and such, but the highlights are: With all that though, we&#8217;re not done yet! Here are some of the things I have planned still: Anyway, enough gassing. Go play it here: https://www.archaos.co.uk/ If you&#8217;re interesting in the nerdy stuff, visit the Github [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>A new major release has just dropped. This contains many fixes, QoL improvements and such, but the highlights are:</p>



<ul class="wp-block-list">
<li><strong>Much more competent computer wizards.</strong> They now act much smarter with regards to their spell choices, unit movement and so on. The general intelligence they display can also be modified with a new difficulty slider in the (also new) player configuration menu. As the difficulty increases, so too does their aggression, sneakiness and attention span.</li>



<li><strong>Mobile support</strong>. While the game has long been &#8216;sorta&#8217; playable on mobile, it now has proper support for things like panning around the board, auto-focusing on the next player and more. The UI has also been tweaked to fit better at mobile viewport sizes.</li>



<li><strong>Enhanced spells and units.</strong> A small but growing selection of new spells are available (they can also be turned off if you want a more classic experience). They include some powerful new dragons, a unique immobile ranged-attack unit and a few more. I have several more spells and units planned &#8211; see <a href="https://www.rotates.org/old/chaos/">this document</a> for more info.</li>



<li><strong>Better UI</strong>. The UI elements I created many moons ago were partially implemented, but some of the UI was still just placeholder stuff. Now all of the menus, inputs, checkboxes etc. have the correct styling.</li>



<li><strong>Many bugs fixed.</strong> Yep. There were a lot. Notable ones include being unable to fly-attack enemies in some cases, and computer wizards raising dead units right under the feet of a non-dead unit. You can view more info on Github&#8217;s bugs page: <a href="https://github.com/lewster32/archaos/issues?q=is%3Aissue%20label%3Abug">https://github.com/lewster32/archaos/issues?q=is%3Aissue%20label%3Abug</a></li>



<li><strong>Tests, tests and more tests.</strong> Under the hood, there&#8217;s now a huge suite of over 1,000 tests that run before every deployment. This has proven invaluable in fixing and adding features while being confident I&#8217;ve not broken anything.</li>
</ul>



<p>With all that though, we&#8217;re not done yet! Here are some of the things I have planned still:</p>



<ul class="wp-block-list">
<li><strong>Remote multiplayer.</strong> It&#8217;s the most requested feature, and something I&#8217;ve experimented with a lot in the past. I now have many of the building blocks in place to get this right, so this is still definitely on the cards.</li>



<li><strong>Tutorials.</strong> For Chaos die-hards, it should be very easy to pick up and play Archaos, but I&#8217;m acutely aware it&#8217;s a game with a learning curve, despite all of the effort I&#8217;ve made to have it explain itself and try not to overwhelm the player. That said, a nice set of tutorial scenarios to introduce new players to the mechanics would be a very nice thing indeed.</li>



<li><strong>Standalone client.</strong> While it&#8217;s very convenient to play Archaos on the web, and it was indeed built to be a web-based game, I&#8217;d like to look at distribution of the game as a standalone thing. I&#8217;ve already got a pretty good working prototype of a slimline desktop client powered by <a href="https://tauri.app/">Tauri</a>, so having this able to be distributed via something like Steam is now a definite goer. Watch this space!</li>



<li><strong>More spells and units.</strong> As mentioned above, I don&#8217;t want to stop at the few new spells and units I&#8217;ve added. Eventually I&#8217;d like to get them all in there! This would also come with a way for each game to select the available set of spells wizards have access to.</li>



<li><strong>More interesting board terrain.</strong> Right now, everything happens in the rectangular void, as it did in the original. I&#8217;ve always been interested in having a bit more variation in the scenery though. Trees, walls, ruins, visual variety to the floor types and more are all things I&#8217;d like to add to spice up the look and feel of the board, as well as potentially add some obstacles and dangers. All optional of course!</li>
</ul>



<p>Anyway, enough gassing. Go play it here: <a href="https://www.archaos.co.uk/">https://www.archaos.co.uk/</a></p>



<p>If you&#8217;re interesting in the nerdy stuff, visit the Github repository here: <a href="https://github.com/lewster32/archaos/">https://github.com/lewster32/archaos/</a> &#8211; you can also post any bugs, suggestions or comments in the <a href="https://github.com/lewster32/archaos/issues">issues board</a>.</p>



<p>Have fun!</p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">407</post-id>	</item>
		<item>
		<title>Archaos: beta 2</title>
		<link>https://www.rotates.org/2026/01/11/archaos-beta-2/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sun, 11 Jan 2026 22:19:54 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Plugs]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=402</guid>

					<description><![CDATA[After quite a few years (people operating on geological time may be starting to sense a pattern here) I&#8217;ve updated the Archaos beta at www.rotates.org/archaos/2021 What&#8217;s new? Why, I thought you&#8217;d never ask! You can follow along with the updates, check out the source code, raise issues or even contribute on the Github page here: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>After quite a few years (people operating on geological time may be starting to sense a pattern here) I&#8217;ve updated the Archaos beta at <a href="https://www.rotates.org/archaos/2021">www.rotates.org/archaos/2021</a></p>



<p>What&#8217;s new? Why, I thought you&#8217;d never ask!</p>



<ul class="wp-block-list">
<li>Up to <strong>8 players</strong> can now duke it out for wizardy supremacy.</li>



<li>Numerous bugs have been fixed, especially around mounted wizards.</li>



<li><strong>Computer controlled wizards</strong> are now available, and can be mixed and matched with human players just like the original. They&#8217;re currently not the smartest tools in the shed, but they&#8217;re able to cast all spells and use all units reasonably effectively.</li>



<li>The code has had lots of <strong>inline documentation</strong> added, and the dependencies are almost entirely up to current versions (with the exception of <a href="https://phaser.io/">Phaser</a>, which introduced some breaking changes in recent versions that I need to catch up with).</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="563" height="397" src="https://www.rotates.org/wp-content/uploads/2026/01/image-563x397.png" alt="All's fair in love and wizard war" class="wp-image-403" style="width:563px;height:auto" srcset="https://www.rotates.org/wp-content/uploads/2026/01/image-563x397.png 563w, https://www.rotates.org/wp-content/uploads/2026/01/image-300x211.png 300w, https://www.rotates.org/wp-content/uploads/2026/01/image-768x541.png 768w, https://www.rotates.org/wp-content/uploads/2026/01/image.png 813w" sizes="auto, (max-width: 563px) 100vw, 563px" /><figcaption class="wp-element-caption">Another hard day&#8217;s work in the realms of limbo.</figcaption></figure>
</div>


<p>You can follow along with the updates, check out the source code, raise issues or even contribute on the Github page here: <a href="https://github.com/lewster32/archaos">https://github.com/lewster32/archaos</a></p>



<p>The game has also now been listed on <a href="https://osgameclones.com/chaos-the-battle-of-wizards/">Open Source Game Clones</a>, so thanks to <a href="https://github.com/ju5">ju5</a> for doing that! It also has a listing on <a href="https://chaosremakes.fandom.com/wiki/Archaos">https://chaosremakes.fandom.com/wiki/Archaos</a> which I&#8217;ve dutifully updated a bit.</p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">402</post-id>	</item>
		<item>
		<title>CodePen greatest hits pt. 1</title>
		<link>https://www.rotates.org/2025/06/26/codepen-greatest-hits-pt-1/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Thu, 26 Jun 2025 19:01:24 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Past]]></category>
		<category><![CDATA[Plugs]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=399</guid>

					<description><![CDATA[I&#8217;ve always enjoyed short, snappy little projects that deliver a quick dose of dopamine, and I&#8217;m a big fan of CodePen as a way to exercise that &#8216;tinker and play&#8217; attitude. One of my earlier and more involved pens was the result of a thought: &#8220;What if 8-bit but open world?&#8221;. A great candidate seemed [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve always enjoyed short, snappy little projects that deliver a quick dose of dopamine, and I&#8217;m a big fan of <a href="https://codepen.io/lewster32">CodePen</a> as a way to exercise that &#8216;tinker and play&#8217; attitude.</p>



<p>One of my earlier and more involved pens was the result of a thought: <em>&#8220;What if 8-bit but open world?&#8221;</em>. A great candidate seemed to be Jet Set Willy, and luckily there&#8217;s an absolutely excellent <a href="https://skoolkit.ca/disassemblies/jet_set_willy/index.html">disassembly of the game</a> available. It was fascinating to dive into the data and see how efficiently everything was packed in there while remaining pretty readable. Before the days of widespread fast and convenient compression, programmers just squeezed things down to the last bit.</p>



<p>I ended up writing various routines to process things in a way that looked true to the original, including figuring out how to parse the attributes (the way the Speccy encoded colour and more into 8&#215;8 pixel blocks with a single byte) and generate all of the graphics, rooms and movement patterns.</p>



<p>It&#8217;s not complete unfortunately &#8211; the arrows and the rope swinging routine got the better of me at the time, but I still think it&#8217;s still a really cool little bit of nostalgia, and decently structured (for the time at least; this is pre-ES6 JavaScript).</p>



<p>Anyway, here it is in all its glory. Enjoy!</p>



<div class="wp-block-cp-codepen-gutenberg-embed-block cp_embed_wrapper"><iframe id="cp_embed_MKQzPm" src="//codepen.io/anon/embed/MKQzPm?height=450&amp;theme-id=dark&amp;slug-hash=MKQzPm&amp;default-tab=result" height="450" scrolling="no" frameborder="0" allowfullscreen allowpaymentrequest name="CodePen Embed MKQzPm" title="CodePen Embed MKQzPm" class="cp_embed_iframe" style="width:100%;overflow:hidden">CodePen Embed Fallback</iframe></div>



<p>I quite like the big comment attempting to explain all the bitwise stuff:</p>



<pre class="wp-block-code" style="font-size:12px"><code>    // The attribute format is a single byte containing 2x 1-bit values for flash and bright, then 2x 3-bit values for paper and ink
    // So the value 221 (binary 11011101) broken down becomes flash 1 (1), bright 1 (1), paper 011 (3) and ink 101 (5)
    // To extract these, we perform up to two operations:
    // 1. We perform a bitwise AND on the value with a bitmask of corresponding length for how many bits you want to extract - if 
    // we're looking for a boolean here (using a single bit in the mask), we can just coerce it with the !! operator as the outcome
    // will be zero for false and non-zero for true
    // 2. We perform a bitwise shift to the right so that the bits we're interested in are at far right side
    //
    // Examples:
    // To get the bright value (1 - true) from 221 (11011101):
    // 221 &amp; 64 = 64  (binary: 11001101 AND 01000000 becomes 01000000)
    // !!64 = true    (binary: 01000000 is non-zero, so it becomes true)
    //
    // To get the paper value (3) from 221 (11011101):
    // 221 &amp; 56 = 24  (binary: 11011101 AND 00111000 becomes 00011000)
    // 24 &gt;&gt; 3  = 3   (binary: 00011000 shifted right 3 times becomes 00000011)
    //
    // Quite a nice explanation of what you can do with bitwise operators can be found here:
    // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
    // 
    // P.S. I revised this whole intro in September 2020 as I realised I didn't understand bitwise operations as well as I should
    // have. Littered throughout this code are examples of the old inefficient method of "shift then and", as opposed to the
    // 'correct' way of doing things (especially for single bits). No doubt there's more on this for me to learn but it's good to
    // be honest.</code></pre>



<p>I&#8217;ll write up a few more of these for other pens I&#8217;ve done if there&#8217;s any interest. Let me know in the comments or via one of my socials if you&#8217;d like to know more about any of these, or indeed anything else I&#8217;ve done!</p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-bluesky  wp-block-social-link"><a href="https://bsky.app/profile/lewster32.dev" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Bluesky</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a href="https://x.com/lewster32" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-codepen  wp-block-social-link"><a href="https://codepen.io/lewster32" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"></path></svg><span class="wp-block-social-link-label screen-reader-text">CodePen</span></a></li></ul>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">399</post-id>	</item>
		<item>
		<title>Archaos: beta 1</title>
		<link>https://www.rotates.org/2021/12/05/archaos-beta-1/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sun, 05 Dec 2021 13:29:01 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Webdev]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=377</guid>

					<description><![CDATA[It&#8217;s been a while has it not? Well, here we are near the end of 2021 and what do I have but&#8230; a beta release of Archaos! Yes, that&#8217;s right, the game I&#8217;ve been working on most of my adult life finally gets a public, playable release! This iteration has taken just over a month [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>It&#8217;s been a while has it not?</p>



<p>Well, here we are near the end of 2021 and what do I have but&#8230; a beta release of Archaos! Yes, that&#8217;s right, the game I&#8217;ve been working on most of my adult life finally gets a public, playable release!</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://rotates.org/archaos/2021/images/web/logo.png" alt=""/></figure></div>



<p>This iteration has taken just over a month from start to beta, and I&#8217;m pretty happy with where it is right now. There are of course bugs, inconsistencies, and annoyances, as well as some big missing features (computer opponents and multiplayer being the ones I feel most will point out) but I hope to address these in time.</p>



<p>If you want to play it now, you can do so here: <a href="https://www.rotates.org/archaos/2021/" target="_blank" rel="noreferrer noopener">https://www.rotates.org/archaos/2021/</a></p>



<p>It currently has no network multiplayer or computer opponents (things I plan on addressing in due time) and has some bugs and inconsistencies, but I&#8217;ve managed to have a decent amount of relatively &#8216;vanilla&#8217; experiences now playing the game on my own.</p>



<p>The source code is also public, available at my Github: <a rel="noreferrer noopener" href="https://github.com/lewster32/archaos" target="_blank">https://github.com/lewster32/archaos</a> &#8211; please do feel free to report any bugs or requests features etc. on here, and I&#8217;ll do my best to get around to them.</p>



<p>Thanks for holding on there, it&#8217;s been a journey.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">377</post-id>	</item>
		<item>
		<title>Phaser Isometric plug-in</title>
		<link>https://www.rotates.org/2014/08/08/phaser-isometric-plug-in/</link>
					<comments>https://www.rotates.org/2014/08/08/phaser-isometric-plug-in/#comments</comments>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Fri, 08 Aug 2014 14:53:43 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Phaser Isometric]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[axonometric]]></category>
		<category><![CDATA[dimetric]]></category>
		<category><![CDATA[Isometric]]></category>
		<category><![CDATA[Phaser]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[plugin]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=358</guid>

					<description><![CDATA[Recently, as part of my continued work on Archaos (yes, I&#8217;m still working on it, never fear!) I put together an isometric (well, axonometric to be a little less precise) renderer for Richard Davey&#8216;s wonderful Phaser HTML5 game development framework. It&#8217;s got a nice adjustable axonometric projection helper, a simple and fast physics engine based on [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Recently, as part of my continued work on Archaos (yes, I&#8217;m still working on it, never fear!) I put together an isometric (well, axonometric to be a little <em>less</em> precise) renderer for <a href="http://twitter.com/photonstorm" target="_blank" rel="noopener noreferrer">Richard Davey</a>&#8216;s wonderful <a href="http://phaser.io" target="_blank" rel="noopener noreferrer">Phaser</a> HTML5 game development framework. It&#8217;s got a nice adjustable axonometric projection helper, a simple and fast physics engine based on Phaser&#8217;s own bread-and-butter Arcade Physics, and it&#8217;s probably close to production ready. I deliberately kept the system simple, and the API as close to the existing Phaser API as possible to allow for quick adoption, and it plugs in pretty much seamlessly.</p>
<p>You can view the microsite I put together for it <a href="http://rotates.org/phaser/iso" target="_blank" rel="noopener noreferrer">here</a>, browse the repo (and maybe even if you feel like it, or spot some of my horrendous and inevitable broken maths, contribute) on GitHub <a href="https://github.com/lewster32/phaser-plugin-isometric/" target="_blank" rel="noopener noreferrer">here</a>, view the API docs <a href="http://udof.org/phaser/iso/doc/Phaser.Plugin.Isometric.html" target="_blank" rel="noopener noreferrer">here</a>, and I&#8217;ll also be posting some simple examples to demonstrate the various features shortly. Enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.rotates.org/2014/08/08/phaser-isometric-plug-in/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">358</post-id>	</item>
		<item>
		<title>It&#8217;s still alive&#8230;</title>
		<link>https://www.rotates.org/2014/03/29/its-still-alive/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sat, 29 Mar 2014 17:24:56 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Projects]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=353</guid>

					<description><![CDATA[www.archaos.co.uk More soon&#8230;]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.archaos.co.uk/">www.archaos.co.uk</a></p>
<p>More soon&#8230;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">353</post-id>	</item>
		<item>
		<title>Financial hiatus</title>
		<link>https://www.rotates.org/2013/05/01/financial-hiatus/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Wed, 01 May 2013 17:20:21 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Personal]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=346</guid>

					<description><![CDATA[I&#8217;m taking a little bit of a break from Archaos at the moment as more immediate priorities have arisen &#8211; notably my financial status! As you probably know, I quit my full time job in September of last year to work on Archaos, and indeed I&#8217;ve made a lot of progress; as much if not [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;m taking a little bit of a break from Archaos at the moment as more immediate priorities have arisen &#8211; notably my financial status! As you probably know, I quit my full time job in September of last year to work on Archaos, and indeed I&#8217;ve made a lot of progress; as much if not more in my abilities as a programmer as on the game itself.</p>
<p>As it stands, I need to do a partial rewrite on the client, as some aspects of it (mainly legacy stuff from last year) have become unmaintainable. Sounds drastic but I assure you this is only a minor setback; lots of Archaos is done and working to my satisfaction (the server for example is in a pretty good state at the moment, and the implemented features are working very efficiently) however the rigours of dealing with stateful asynchronous stuff all over the place (via the network, player inputs, waiting for animations and so on) combined with the lack of any kind of pattern have led to a game which as it stands is becoming near impossible to debug. Action must be taken, and that will begin with the application of a proper MVC pattern to the client game code.</p>
<p>In order to continue to be able to work on Archaos, I&#8217;ve taken on some web jobs (which bizarrely appeared totally out of nowhere from friends right as my savings were about to dry up) but this is a temporary thing and as soon as they&#8217;re done, I&#8217;ll be back onto Archaos and aiming for a beta release.</p>
<p>I can only apologise for the seemingly endless false starts and broken deadlines for those of you who&#8217;re following this project &#8211; it&#8217;s embarrassing to keep having to explain myself. My focus is however still solidly on getting Archaos finished and released, and then getting to the bit I&#8217;ve been really looking forward to; extending the game through new modes, features, spells and units!</p>
<p>Stay tuned!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">346</post-id>	</item>
		<item>
		<title>Pathfinding and interaction</title>
		<link>https://www.rotates.org/2013/03/31/pathfinding-and-interaction/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sun, 31 Mar 2013 14:59:08 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=341</guid>

					<description><![CDATA[I&#8217;ve spent the last few days working on the pathfinding system on Archaos. This replaces the previous and temporary &#8216;one step at a time&#8217; way that non-flying units were controlled, and makes the process of moving of your units much easier and faster. I&#8217;ve spent a fair bit of time testing the system and comparing [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve spent the last few days working on the pathfinding system on Archaos. This replaces the previous and temporary &#8216;one step at a time&#8217; way that non-flying units were controlled, and makes the process of moving of your units much easier and faster.</p>
<p>I&#8217;ve spent a fair bit of time testing the system and comparing movement ranges with the <a title="The ultimate Chaos creature infographic!" href="https://rotates.org2012/11/27/the-ultimate-chaos-creature-infographic/">infographic</a> posted previously. Due to some discrepancies with the way the original game handled non-flying movement, calculation of a non-flying unit&#8217;s range isn&#8217;t trivial &#8211; and when you throw in obstacles and danger of your unit getting engaged, the efficiency and accuracy of the pathfinding system becomes vital. I may still need to tweak it a little further but at the moment I&#8217;m very happy with the results.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-343" alt="archaos-pathfinding" src="https://rotates.org/wp-content/uploads/2013/03/archaos-pathfinding1.gif" width="451" height="292" /></p>
<p>Ease of interaction is one of the top priorities of the game; if the game&#8217;s controls aren&#8217;t implemented correctly, it could quickly get very annoying &#8211; for instance, if it was easy to accidentally move a unit to the wrong position. This is especially important when dealing with mobile devices, which offer less feedback and less accurate interaction methods.</p>
<p>With this in mind, all actions carried out in the game must be confirmed, either by tapping twice in the same spot, or by tapping the &#8216;confirm&#8217; button which will appear once you&#8217;ve tapped to express your intent. This method seamlessly works between mobile and desktop, with intent on the desktop being indicated as you hover your mouse over the board.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">341</post-id>	</item>
		<item>
		<title>Future proofing</title>
		<link>https://www.rotates.org/2013/03/23/future-proofing/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sat, 23 Mar 2013 20:26:31 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[NodeJS]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=337</guid>

					<description><![CDATA[For the last few weeks I&#8217;ve been adding in two very important systems to Archaos &#8211; namely real-time communications via TCP, and the use of a database back-end for the server. The first makes games much more responsive, and allows the server to inform connected players of actions as and when they happen. It will [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>For the last few weeks I&#8217;ve been adding in two very important systems to Archaos &#8211; namely real-time communications via TCP, and the use of a database back-end for the server. The first makes games much more responsive, and allows the server to inform connected players of actions as and when they happen. It will also pave the way for an exciting addition I have planned, which will (hopefully) combat the inevitable pacing problems that arise from typical turn-based games. If you want to know more about what I&#8217;m getting at, give <a href="http://www.lostgarden.com/2005/06/space-crack-fixing-turn-based-strategy.html" target="_blank">this excellent article</a> a read.</p>
<p><div id="attachment_339" style="width: 213px" class="wp-caption alignright"><a href="https://rotates.org/wp-content/uploads/2013/03/servers.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-339" class="size-medium wp-image-339" alt="The database server, client and game server respectively." src="https://rotates.org/wp-content/uploads/2013/03/servers-203x300.png" width="203" height="300" srcset="https://www.rotates.org/wp-content/uploads/2013/03/servers-203x300.png 203w, https://www.rotates.org/wp-content/uploads/2013/03/servers.png 514w" sizes="auto, (max-width: 203px) 100vw, 203px" /></a><p id="caption-attachment-339" class="wp-caption-text">The database server, client and game server respectively.</p></div></p>
<p>The second addition is a solid database-driven server. Until now, as a temporary solution I&#8217;d been storing all of the game data in a single file. When the server opened, it read all of the users and games from this file, and then stored all of the data in memory. If the data changed, the server would periodically save the entire file back to disk. The server would only write the data to disk if it had changed, and only once every so often &#8211; this kept writes to a minimum. The solution was fine for small scale testing, but it would not have scaled up well &#8211; quickly consuming all of the memory in the server machine, as well as being difficult to manage.</p>
<p>Now all of the data is stored on a <a href="http://www.mongodb.org/" target="_blank">mongoDB</a> server in essentially the same format. The game server is then only responsible for the manipulation of the data, and not the storage and management of it. The game server itself is relatively simple in its approach; when a user sends an action, it loads the game, determines if the action can be performed, and if so what the outcomes are. It then saves the changed game back to the database and sends the actions to all of the connected players (which it does via TCP). The game server never keeps games, users, units or anything else in memory for longer than it needs to check or manipulate it. There are no special objects or instances; every function works only on the raw data. I may introduce some caching to reduce database operations later but at this stage the setup is fairly efficient.</p>
<p>So, I have what I feel is a solid base now, I&#8217;ve got some of the actions in and working (such as creating, joining and leaving games, unit movement and engagement) and now it&#8217;s just a case of writing the client-side stuff for the remaining actions, adding in the spell system and then getting it out there for public beta testing!</p>
<p>Look out soon for another post on the spell system and how I intend to tweak it to provide a more balanced start to each game.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">337</post-id>	</item>
	</channel>
</rss>
