<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://meet.konsthol.eu/w/index.php?action=history&amp;feed=atom&amp;title=Refactoring_Delta%5E2</id>
	<title>Refactoring Delta^2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://meet.konsthol.eu/w/index.php?action=history&amp;feed=atom&amp;title=Refactoring_Delta%5E2"/>
	<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;action=history"/>
	<updated>2026-05-15T04:17:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=128029&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=128029&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=104212&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=104212&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=87907&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=87907&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=68610&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=68610&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=45588&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=45588&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=27418&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=27418&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:17, 21 December 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
	<entry>
		<id>https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=9412&amp;oldid=prev</id>
		<title>imported&gt;Kymara: Created page with &#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &lt;pre&gt; 23:36 &lt; hendrik&gt; the problem is the way it keeps t…&#039;</title>
		<link rel="alternate" type="text/html" href="https://meet.konsthol.eu/w/index.php?title=Refactoring_Delta%5E2&amp;diff=9412&amp;oldid=prev"/>
		<updated>2010-12-21T23:17:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{Future Concept}}  {{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}  &amp;lt;pre&amp;gt; 23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps t…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Future Concept}}&lt;br /&gt;
&lt;br /&gt;
{{TODO|Format this unstructured discussion pasted from {{irc-arianne}} logs on 21st December 2010.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
23:36 &amp;lt; hendrik&amp;gt; the problem is the way it keeps track of changes.&lt;br /&gt;
23:37 &amp;lt; hendrik&amp;gt; Currently almost every object is flagged as changed every single turn.&lt;br /&gt;
23:37 &amp;lt; hendrik&amp;gt; That means very single creature we have.&lt;br /&gt;
23:39 &amp;lt; hendrik&amp;gt; adding objects to the modified map of the zone is called so often that it takes about 80% of the time used in the turn thread.&lt;br /&gt;
23:39 &amp;lt; hendrik&amp;gt; (without players)&lt;br /&gt;
23:39 &amp;lt; hendrik&amp;gt; every object keeps its own list of modifications.&lt;br /&gt;
23:40 &amp;lt; hendrik&amp;gt; there is a loop over all zones, over all modified objects, to clear it.&lt;br /&gt;
23:40 &amp;lt; hendrik&amp;gt; which then recursivly clears it on all slots and childrens.&lt;br /&gt;
23:40 &amp;lt; kymara&amp;gt; reminds me of that psychopath comment, again&lt;br /&gt;
23:41 &amp;lt; hendrik&amp;gt; so simply not adding creatures to the modification list, means they won&amp;#039;t be cleared.&lt;br /&gt;
23:41 &amp;lt; martin_&amp;gt; a psychopath comment? :)&lt;br /&gt;
23:41 &amp;lt; kymara&amp;gt; &amp;quot;Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.&amp;quot;&lt;br /&gt;
23:42 &amp;lt; martin_&amp;gt; ok this one :)&lt;br /&gt;
23:42 &amp;lt; martin_&amp;gt; but thats not easy sometimes&lt;br /&gt;
23:43 &amp;lt; kiheru&amp;gt; it&amp;#039;s safest to live in a remote place&lt;br /&gt;
23:44 &amp;lt; hendrik&amp;gt; well, the code is clean and easy to understand.&lt;br /&gt;
23:45 &amp;lt; hendrik&amp;gt; but the approach does not seem to be scaleable.&lt;br /&gt;
23:47 &amp;lt; martin_&amp;gt; do you have an idea for a better approach?&lt;br /&gt;
23:49 &amp;lt; hendrik&amp;gt; and the next thing that is slow is calculating the percepts for the players.&lt;br /&gt;
23:49 &amp;lt; hendrik&amp;gt; which is the main bottle neck on the servers nowadays.&lt;br /&gt;
23:49 &amp;lt; hendrik&amp;gt; i am currently testing a server without players, because i want to get the CPU usage of the test server down.&lt;br /&gt;
23:50 &amp;lt; hendrik&amp;gt; but i think that will help the main server, too, because most of the zones are player empty.&lt;br /&gt;
23:50 &amp;lt; hendrik&amp;gt; martin_, i have some ideas, but not ready to code it.&lt;br /&gt;
23:51 &amp;lt; hendrik&amp;gt; basically I think that instead of having modifcations maps for every single object, we should have one modification queue.&lt;br /&gt;
23:51 &amp;lt; hendrik&amp;gt; (on a per zone level, as the modifcation flag is handled already)&lt;br /&gt;
23:52 &amp;lt; hendrik&amp;gt; so it would be as simple as cleaning one map (per zone) to reset things.&lt;br /&gt;
23:52 &amp;lt; hendrik&amp;gt; It should stick to the hiearchical handling that is already there.&lt;br /&gt;
23:54 &amp;lt; hendrik&amp;gt; so something like object, attribute = new value&lt;br /&gt;
23:55 &amp;lt; hendrik&amp;gt; this way it is easy to collapse multiple changes of the same attribute.&lt;br /&gt;
23:56 &amp;lt; hendrik&amp;gt; and something similar for changes to slots and subobjects.&lt;br /&gt;
23:56 &amp;lt; hendrik&amp;gt; this approach has two advandages:&lt;br /&gt;
23:56 &amp;lt; hendrik&amp;gt; 1. no need to update the modify flag anymore.&lt;br /&gt;
23:58 &amp;lt; hendrik&amp;gt; 2. just clean the map at the top level at the end of the turn, instead of calling 5 methods for every object (plus two methods for every slot owned by them, plus the same 5 methods for every child object ,...)&lt;br /&gt;
23:58 &amp;lt; hendrik&amp;gt; Oh, and building perceptions may be as simple as dumping that map.&lt;br /&gt;
23:59 &amp;lt; hendrik&amp;gt; ---&lt;br /&gt;
00:00 &amp;lt; hendrik&amp;gt; but before i start to rewrite that completely:&lt;br /&gt;
00:00 &amp;lt; hendrik&amp;gt; * needs a good way to handle sub objects&lt;br /&gt;
00:01 &amp;lt; hendrik&amp;gt; * can we have a global cross zone unique id? (is it okay to double it&amp;#039;s size to long?)&lt;br /&gt;
00:01 &amp;lt; hendrik&amp;gt; * how to handle private attributes in the perceptions.&lt;br /&gt;
00:02 &amp;lt; hendrik&amp;gt; * continious world&lt;br /&gt;
00:02 &amp;lt; hendrik&amp;gt; ** at the network layer&lt;br /&gt;
00:02 &amp;lt; hendrik&amp;gt; ** sub zones&lt;br /&gt;
00:03 &amp;lt; hendrik&amp;gt; The continious world thingy is the main reason, i am not just starting hacking.&lt;br /&gt;
00:03 &amp;lt; hendrik&amp;gt; don&amp;#039;t want to spent lots amount of time on simething that may not be able to handle it.&lt;br /&gt;
00:04 &amp;lt; hendrik&amp;gt; Basically the sub zone thingy seems to be nice.&lt;br /&gt;
00:04 &amp;lt; hendrik&amp;gt; it reduce the network bandwith used and prevents people from hacking the client to see the compelte zone.&lt;br /&gt;
00:05 &amp;lt; hendrik&amp;gt; and it may further speed up things, not sure about that yet.&lt;br /&gt;
00:06 &amp;lt; hendrik&amp;gt; getting rid of empty perceptions would further reduce network usage.&lt;br /&gt;
00:06 &amp;lt; hendrik&amp;gt; but there are clients which do time measurement by counting perceptions.&lt;br /&gt;
00:06 &amp;lt; hendrik&amp;gt; so i don&amp;#039;t want to break that, unless there is a good reason.&lt;br /&gt;
00:06 &amp;lt; hendrik&amp;gt; with sub zone there is, because it will get even more likely that there are no changes.&lt;br /&gt;
00:09 &amp;lt; hendrik&amp;gt; but if a subzone is as large as the player screen (so that a player gets update about 4 sub zones), it means we get a lot of subzones.&lt;br /&gt;
00:10 &amp;lt; hendrik&amp;gt; so the current approach of iterating over all zones a lot, will not be good.&lt;br /&gt;
00:10 &amp;lt; hendrik&amp;gt; --------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Kymara</name></author>
	</entry>
</feed>