<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PTR Changelog 2017-02-01]]></title><description><![CDATA[<p><em>This post describes changes on the <a href="/hc/en-us/articles/205999532-Public-Test-Realm" target="_blank" rel="nofollow noreferrer">Public Test Realm</a>. The estimated launch date is February 6. See commits in the <code>ptr</code> branch at our GitHub repositories: <a href="https://github.com/screeps/engine/commits/ptr" target="_blank" rel="nofollow noreferrer"><code>engine</code></a>.</em></p>
<p>Introduced new room visuals mechanics. They provide a way to show any visual debug info in your rooms. You can use the <code>RoomVisual </code>object to draw simple shapes in the room that are visible only to you. Learn more in the <code>RoomVisual</code> object <a href="/hc/en-us/articles/115000962829" rel="nofollow noreferrer">documentation</a>.</p>
<p><img src="https://s3.amazonaws.com/forum-static.screeps.com/55ca7b1b-49e3-41af-899a-ea9c1ab02b2b.gif"></p>
<p><em>Tell us what do you think about these upcoming changes in the comments below!</em></p>
<p> </p>]]></description><link>http://screeps.com/forum/topic/302/ptr-changelog-2017-02-01</link><generator>RSS for Node</generator><lastBuildDate>Sun, 15 Mar 2026 01:32:07 GMT</lastBuildDate><atom:link href="http://screeps.com/forum/topic/302.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Feb 2017 12:33:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p><em>This post describes changes on the <a href="/hc/en-us/articles/205999532-Public-Test-Realm" target="_blank" rel="nofollow noreferrer">Public Test Realm</a>. The estimated launch date is February 6. See commits in the <code>ptr</code> branch at our GitHub repositories: <a href="https://github.com/screeps/engine/commits/ptr" target="_blank" rel="nofollow noreferrer"><code>engine</code></a>.</em></p>
<p>Introduced new room visuals mechanics. They provide a way to show any visual debug info in your rooms. You can use the <code>RoomVisual </code>object to draw simple shapes in the room that are visible only to you. Learn more in the <code>RoomVisual</code> object <a href="/hc/en-us/articles/115000962829" rel="nofollow noreferrer">documentation</a>.</p>
<p><img src="https://s3.amazonaws.com/forum-static.screeps.com/55ca7b1b-49e3-41af-899a-ea9c1ab02b2b.gif"></p>
<p><em>Tell us what do you think about these upcoming changes in the comments below!</em></p>
<p> </p>]]></description><link>http://screeps.com/forum/post/1508</link><guid isPermaLink="true">http://screeps.com/forum/post/1508</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>There are perfomance issues on the PTR server currently. Please use <a href="https://screeps.com/ptr/#!/sim/" target="_blank" rel="nofollow noreferrer">PTR simulation</a> if you want to try this new feature.</p>]]></description><link>http://screeps.com/forum/post/1509</link><guid isPermaLink="true">http://screeps.com/forum/post/1509</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>I Love it!</p>
<p>There's definitely a lot of uses for it, especially for visualizing data we've stored. That'll go along way to help with debugging.</p>
<p><img src="https://s3.amazonaws.com/forum-static.screeps.com/ccdfa76f-dc77-40cc-99eb-24e1b8e995a3.png"></p>
<p>Took about a minute or two to figure out and get working. Kudos for keeping it simple! <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>]]></description><link>http://screeps.com/forum/post/1510</link><guid isPermaLink="true">http://screeps.com/forum/post/1510</guid><dc:creator><![CDATA[Syncaidius]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<div id="wmd-preview-section-342" class="wmd-preview-section preview-content">
<p>Syncaidius, glad to hear that! By the way, it is easier to do that using the built-in <code>Room.visual</code>property:</p>
</div>
<div id="wmd-preview-section-333" class="wmd-preview-section preview-content">
<pre class="prettyprint"><code class=" hljs bash"><span class="hljs-keyword">for</span>(<span class="hljs-built_in">let</span> rn <span class="hljs-keyword">in</span> Game.rooms) {
  <span class="hljs-keyword">for</span>(<span class="hljs-built_in">let</span> i=<span class="hljs-number">0</span>; i&lt;<span class="hljs-number">10</span>; i++) {
    Game.rooms[rn].visual.circle(<span class="hljs-number">10</span>+i, <span class="hljs-number">15</span>, {fill: <span class="hljs-string">'#00ffff'}</span>);
  }
}</code></pre>
</div>]]></description><link>http://screeps.com/forum/post/1511</link><guid isPermaLink="true">http://screeps.com/forum/post/1511</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>Thanks Artem! I realised right after posting the pic that my rushed code was a bit too rushed. <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p> EDIT: Knocked up a quick (fake) wall planner with visuals:</p>
<p><img src="https://s3.amazonaws.com/forum-static.screeps.com/5dc1f7b8-e1a4-4710-8878-2d90a14c1bb1.png"></p>
<pre>module.exports.loop = function () {<br>    let fakeWallBoxSize = 20;<br>    let inc = fakeWallBoxSize - 1;<br>    let startPos = {x: 10, y: 10};<br>    let endPos = {x: startPos.x + fakeWallBoxSize, y: startPos.y + fakeWallBoxSize};<br>    <br>    // Draw a rectangle made of dots. Fake plan of some walls just for testing!<br>    for(let rn in Game.rooms){<br>        let room = Game.rooms[rn];<br>        <br>        // Left-Right<br>        for(let x = startPos.x; x &lt; endPos.x; x += inc){<br>            for(let y = startPos.y; y &lt; endPos.y; y++){<br>                let tileStuff = room.lookForAt(LOOK_TERRAIN, x,y);<br>                if(tileStuff[0] == "wall")<br>                    continue;<br>                room.visual.circle(x, y, {fill: "#00FFFF"});<br>            }<br>        }<br>        <br>        // Top-Bottom<br>        for(let y = startPos.y; y &lt; endPos.y; y += inc){<br>            for(let x = startPos.x; x &lt; endPos.x; x++){<br>                let tileStuff = room.lookForAt(LOOK_TERRAIN, x,y);<br>                if(tileStuff[0] == "wall")<br>                    continue;<br>                room.visual.circle(x, y, {fill: "#00FFFF"});<br>            }<br>        }<br>    }<br>}</pre>]]></description><link>http://screeps.com/forum/post/1512</link><guid isPermaLink="true">http://screeps.com/forum/post/1512</guid><dc:creator><![CDATA[Syncaidius]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>This does indeed look great.</p>
<p>I've also left you a <a href="https://github.com/screeps/engine/commit/dc158b67c884e7658e671fcfd3f6f5bf1c2efe8c#commitcomment-20696178" target="_blank" rel="nofollow noreferrer">comment at the commit</a> regarding the choice of design, would be great if you could answer my question here or directly in GitHub.</p>
<p>From a user's view it would also be great if we can get a variable for currently viewed rooms (VIEWED_ROOMS or Game.viewedRooms), so we only generate Visuals for rooms we're actively watching. Would this be possible to implement at all?</p>]]></description><link>http://screeps.com/forum/post/1513</link><guid isPermaLink="true">http://screeps.com/forum/post/1513</guid><dc:creator><![CDATA[PostCrafter]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>PostCrafter, I copy-pasted your comment here if you don’t mind. We try to keep all PTR discussions here on the PTR forum.</p>
<blockquote>
<p>This looks great and we’re already actively discussing in slack on how we are going to use this addition. May I ask what made you decide to attach the functions (addVisual, getVisualSize and cleanVisual) to console instead of RoomVisual (the constructor, not the prototype)?</p>
</blockquote>
<p>It was done due to internal mechanics, since <code>console</code> object is shared between runner and runtime spaces, but <code>RoomVisual</code> is only visible to the runtime space.</p>
<blockquote>
<p>From a user’s view it would also be great if we can get a variable for currently viewed rooms (VIEWED_ROOMS or Game.viewedRooms), so we only generate Visuals for rooms we’re actively watching. Would this be possible to implement at all?</p>
</blockquote>
<p>I can’t see any viable way to implement this right now.</p>]]></description><link>http://screeps.com/forum/post/1514</link><guid isPermaLink="true">http://screeps.com/forum/post/1514</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>Nice! it looks much simpler to use than my screeps-visual userscript, looking forward to it in the main server <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--smile"
      title=":D"
      alt="😄"
    /></p>]]></description><link>http://screeps.com/forum/post/1515</link><guid isPermaLink="true">http://screeps.com/forum/post/1515</guid><dc:creator><![CDATA[ags131]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>Thanks a lot for the fast response. I'll try and keep my future discussions in the forum.</p>
<p>I arguably don't know enough about how the different processes interact with each other and which context objects they share yet.<br>If it's possible I'd prefer the functions to be removed from console, so they can be implemented at a cleaner place (Game.visual(s) comes to my mind), before people start using that in their code.</p>]]></description><link>http://screeps.com/forum/post/1516</link><guid isPermaLink="true">http://screeps.com/forum/post/1516</guid><dc:creator><![CDATA[PostCrafter]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>@Artem Why the limit on 20 rooms?</p>]]></description><link>http://screeps.com/forum/post/1517</link><guid isPermaLink="true">http://screeps.com/forum/post/1517</guid><dc:creator><![CDATA[Atavus]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<blockquote>
<p>@Artem Why the limit on 20 rooms?</p>
</blockquote>
<p>Otherwise you could create a RoomVisual for every single room in the world, post hundreds of visuals to it and crash the server.</p>]]></description><link>http://screeps.com/forum/post/1518</link><guid isPermaLink="true">http://screeps.com/forum/post/1518</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>&gt;Otherwise you could create a RoomVisual for every single room in the world, post hundreds of visuals to it and crash the server.</p>
<p> </p>
<p>Wouldn't we get an out of memory before that? (created one of those once, sorry)</p>
<p> </p>
<p>Could we tie this to GCL? I'd love to have my home rooms visualized when I'm online without having to alter my memory:</p>
<pre>Memory.enabledVisuals = {};<br>Memory.enabledVisuals["E5N7"] = true;<br>Memory.enabledVisuals["W3N9"] = true;<br>Memory.enabledVisuals["E3N8"] = true;</pre>
<p>This way we won't have to override the visuals methods to "mock" or "ignore" those visuals. Math.ceil(GCL * 1.5) seems like enough, with a base of 20.</p>]]></description><link>http://screeps.com/forum/post/1519</link><guid isPermaLink="true">http://screeps.com/forum/post/1519</guid><dc:creator><![CDATA[Dissi]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>I actually got an idea of how to get rid of this limit completely. Will post an update tomorrow.</p>]]></description><link>http://screeps.com/forum/post/1520</link><guid isPermaLink="true">http://screeps.com/forum/post/1520</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/42">@Dissi</a> Tying it to GCL sounds pretty reasonable. I say that as a GCL2 player.</p>
<p> </p>
<p>EDIT: @Artem but that's just as good. <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p> </p>]]></description><link>http://screeps.com/forum/post/1521</link><guid isPermaLink="true">http://screeps.com/forum/post/1521</guid><dc:creator><![CDATA[Syncaidius]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>To track which rooms your clients are looking at...</p>
<p><strong>Client side</strong></p>
<p><a href="https://github.com/Esryok/screeps-browser-ext/blob/master/visible-room-tracker.user.js" rel="nofollow noreferrer">https://github.com/Esryok/screeps-browser-ext/blob/master/visible-room-tracker.user.js</a></p>
<p><strong>Server side</strong></p>
<p><a href="https://github.com/Esryok/screeps-browser-ext/blob/master/agent-modules/VisibleRoomTracker.js" rel="nofollow noreferrer">https://github.com/Esryok/screeps-browser-ext/blob/master/agent-modules/VisibleRoomTracker.js</a></p>]]></description><link>http://screeps.com/forum/post/1522</link><guid isPermaLink="true">http://screeps.com/forum/post/1522</guid><dc:creator><![CDATA[Esryok]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2017-02-01 on Invalid Date]]></title><description><![CDATA[<p>This is amazing! Thank you! Is there an estimate on when it will go live? </p>]]></description><link>http://screeps.com/forum/post/1523</link><guid isPermaLink="true">http://screeps.com/forum/post/1523</guid><dc:creator><![CDATA[Helam]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>