<?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>chaos &#8211; Rotates.org V12</title>
	<atom:link href="https://www.rotates.org/tag/chaos/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>chaos &#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>Julian Gollop has an announcement to make&#8230;</title>
		<link>https://www.rotates.org/2012/11/02/julian-gollop-has-an-announcement-to-make/</link>
					<comments>https://www.rotates.org/2012/11/02/julian-gollop-has-an-announcement-to-make/#comments</comments>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Fri, 02 Nov 2012 20:18:10 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Plugs]]></category>
		<category><![CDATA[Battle of the Wizards]]></category>
		<category><![CDATA[chaos]]></category>
		<category><![CDATA[Julian Gollop]]></category>
		<category><![CDATA[remake]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=274</guid>

					<description><![CDATA[Earlier on I got wind of news that very nearly made my heart stop. OK it&#39;s official! I am working on a sequel/remake to my classic ZX Spectrum game &#39;Chaos&#39; &#8211; for iOS, PC, Mac &#8211; maybe more. &#8212; Julian Gollop (@julian_gollop) November 2, 2012 Yes, Julian Gollop &#8211; creator of the original Chaos, of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Earlier on I got wind of news that very nearly made my heart stop.</p>
<blockquote class="twitter-tweet" data-width="500" data-dnt="true">
<p lang="en" dir="ltr">OK it&#39;s official! I am working on a sequel/remake to my classic ZX Spectrum game &#39;Chaos&#39; &#8211; for iOS, PC, Mac &#8211; maybe more.</p>
<p>&mdash; Julian Gollop (@julian_gollop) <a href="https://twitter.com/julian_gollop/status/264373422216314880?ref_src=twsrc%5Etfw">November 2, 2012</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>Yes, <a href="http://www.twitter.com/julian_gollop" target="_blank">Julian Gollop</a> &#8211; creator of the original Chaos, of the original X-Com, and of many other seminal classics, has begun work on his own remake of Chaos using <a href="http://www.unity3d.com" target="_blank">Unity 3D</a> to initially target PC, Mac and iOS. He also stated:</p>
<blockquote class="twitter-tweet" data-width="500" data-dnt="true">
<p lang="en" dir="ltr"><a href="https://twitter.com/MullinsDaRapper?ref_src=twsrc%5Etfw">@MullinsDaRapper</a> I want to keep combat/movement very close to the original, with some tweeks.</p>
<p>&mdash; Julian Gollop (@julian_gollop) <a href="https://twitter.com/julian_gollop/status/264384106245267456?ref_src=twsrc%5Etfw">November 2, 2012</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>&#8230;which bodes well for it sticking to the original winning formula.</p>
<p>Development on the game has only just begun, and Julian is currently looking for good artists. He has estimated that the game will take around a year to finish, so we&#8217;ll all have to be patient.</p>
<p>I guess the recent massive success of <a href="http://www.xcom.com/enemyunknown/" target="_blank">XCOM: Enemy Unknown</a> has brought Gollop back to the forefront and given him the motivation needed to revisit what has to be in my (and many other people&#8217;s) opinion one of the greatest games of all time.</p>
<p>Julian, if you read this, I wish you all the very best with your remake. Chaos has been crying out to be remade for a modern market, and a market that&#8217;s now clearly in the right place to readily accept a multi-platform turn-based strategy title such as this.</p>
<p>What however does this mean for Archaos? Surely with this title coming out, it makes Archaos obsolete and possibly in danger of legal action as it will directly compete with Julian&#8217;s version on the same platforms?</p>
<blockquote class="twitter-tweet" data-width="500" data-dnt="true">
<p lang="en" dir="ltr"><a href="https://twitter.com/lewster32?ref_src=twsrc%5Etfw">@lewster32</a> I have no problem with it, don&#39;t worry.</p>
<p>&mdash; Julian Gollop (@julian_gollop) <a href="https://twitter.com/julian_gollop/status/264447744213663745?ref_src=twsrc%5Etfw">November 2, 2012</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>Sometimes it really is worth meeting your heroes.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.rotates.org/2012/11/02/julian-gollop-has-an-announcement-to-make/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">274</post-id>	</item>
		<item>
		<title>Non techies avert your eyes</title>
		<link>https://www.rotates.org/2010/01/04/non-techies-avert-your-eyes/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Mon, 04 Jan 2010 00:34:39 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[actions]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[chaos]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[mechanics]]></category>
		<category><![CDATA[piece]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[spell]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=190</guid>

					<description><![CDATA[The server is really starting to take shape now. Turns and phases flow along nicely, and I&#8217;ve spent the last few days working on the spellcasting system. If you&#8217;ve read the Google Code page on Spells you&#8217;ll know that the spells themselves are simply sandboxed Javascript functions. I had thoughts before about writing some kind [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The server is really starting to take shape now. Turns and phases flow along nicely, and I&#8217;ve spent the last few days working on the spellcasting system. If you&#8217;ve read the Google Code page on <a href="http://code.google.com/p/archaos/wiki/Spells">Spells</a> you&#8217;ll know that the spells themselves are simply sandboxed Javascript functions. I had thoughts before about writing some kind of scripting language for the spells because I wanted maximum flexibility, but it dawned on me that simply giving the spells access to the game and board data themselves in the native language would be the best way to do it. I also not long after that thought about making the validation step the spell goes through beforehand (i.e. where it tells you you can&#8217;t cast the spell here, or you can&#8217;t cast it on this piece or whatever) in a similar manner, but subsequently rejected it for one very good reason: the clients also need to validate at their end, and they may not be written in Javascript!</p>
<p>For those interested in creating a client (and because the code isn&#8217;t yet ready for viewing!) here&#8217;s the current output of a test run on the server. Note that games, pieces and spells have a unique game ID, which is a letter followed by an incrementing numeric value. One of the current things I&#8217;m working on is cleaning up the code so all possible references are made to these UIDs, and not directly to the objects, as this will make things safer and more manageable within the engine at the expense of a little bit of performance (no doubt I&#8217;ll rewrite much of this at a later date so there are two &#8216;levels&#8217; of code; the UID data-driven level that the users interact with, and the deeper object-driven stuff that processes things.</p>
<pre class="javascript" name="code">{
  "turn" : 1,
  "phase" : "select_spell",
  "interaction" : "all",
  "finished" : true,
  "actions" : [
    {
      "type" : "select_spell",
      "player" : "lewster32",
      "time" : 1262563476,
      "data" : {
        "spell" : "s0"
      }
    },
    {
      "type" : "select_spell",
      "player" : "bobster16",
      "time" : 1262563476,
      "data" : {
        "spell" : "s6"
      }
    }
  ]
}
</pre>
<pre class="javascript" name="code">{
  "turn" : 1,
  "phase" : "cast",
  "interaction" : "sequence",
  "finished" : true,
  "actions" : [
    {
      "type" : "cast",
      "player" : "lewster32",
      "time" : 1262563476,
      "data" : {
        "spell" : "s0",
        "target" : {
          "x" : 0,
          "y" : 1
        }
      }
    },
    {
      "type" : "spawn",
      "player" : "lewster32",
      "time" : 1262563476,
      "data" : {
        "x" : 0,
        "y" : 1,
        "occupant" : {
          "uid" : "p2",
          "owner" : "lewster32",
          "properties" : {
            "movement" : 1,
            "combat" : 7,
            "defense" : 8,
            "maneuver" : 6,
            "resistance" : 4
          }
        }
      }
    },
    {
      "type" : "succeeded",
      "player" : "lewster32",
      "time" : 1262563476,
      "data" : {
        "spell" : "s0",
        "target" : {
          "x" : 0,
          "y" : 1
        }
      }
    },
    {
      "type" : "end_turn",
      "player" : "lewster32",
      "time" : 1262563476
    },
    {
      "type" : "cast",
      "player" : "bobster16",
      "time" : 1262563476,
      "data" : {
        "spell" : "s6",
        "target" : {
          "x" : 11,
          "y" : 1
        }
      }
    },
    {
      "type" : "spawn",
      "player" : "bobster16",
      "time" : 1262563476,
      "data" : {
        "x" : 11,
        "y" : 1,
        "occupant" : {
          "uid" : "p3",
          "owner" : "bobster16",
          "properties" : {
            "movement" : 1,
            "combat" : 6,
            "defense" : 5,
            "maneuver" : 2,
            "resistance" : 4
          }
        }
      }
    },
    {
      "type" : "succeeded",
      "player" : "bobster16",
      "time" : 1262563476,
      "data" : {
        "spell" : "s6",
        "target" : {
          "x" : 11,
          "y" : 1
        }
      }
    },
    {
      "type" : "end_turn",
      "player" : "bobster16",
      "time" : 1262563476
    }
  ]
}
</pre>
<p>These are what every player will receive at the end of each phase. They contain each action performed by the players in the order that they performed them, and timestamped for reference and backup purposes. Players have relatively limited access to the game in terms of actions, just like in the original game. A player may select spells, cast spells, move and attack pieces and end their turn. From these actions however, more actions may occur, so a player casting a spell on tile x will set off a chain of actions, where the server rolls against the spell&#8217;s chance, then (if successful) performs the spell&#8217;s effect, which may be to spawn a new piece or whatever.</p>
<p>Soon I&#8217;ll be locking down the format of these outputs, and documenting the errors and notices a user receives directly. This will allow for anyone wishing to do so to begin planning or working on a client &#8211; and I sincerely hope people do!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">190</post-id>	</item>
	</channel>
</rss>
