Navigation

    forum

    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    1. Home
    2. Actium
    • Flag Profile
    • block_user
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Groups
    • Blog

    Actium

    @Actium

    21
    Posts
    1628
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Actium Follow

    Posts made by Actium

    • RE: creepCounter problem

      It is out of our control to save data consistently. The only thing we can do is to use old "architecture" cause it is not as buggy as new one.

      posted in Help
      Actium
    • RE: creepCounter problem

      It does not work because nodes the game world is simulated on do not see the same data at the same time. In simple words, data are inconsistent.

      posted in Help
      Actium
    • RE: Ticks Used

      Optimized a bit:
      average CPU consumption: 11.64
      average creep count: 55.88
      number of rooms: 5
      CPU limit: 20

      posted in General Discussion
      Actium
    • CPU limit

      Can somebody explain me why does a script containing the single line
      console.log(Game.cpuLimit);
      output the following:

      [10:45:31 AM] 261
      [10:45:44 AM] 281 // ok, +20 (CPU limit is set to 20)
      [10:46:08 AM] 279 // strange, -2
      [10:46:15 AM] 296 // basically, ok, +17
      [10:46:27 AM] 313
      [10:46:31 AM] 328
      [10:46:39 AM] 289 // very strange, -39
      [10:46:44 AM] 308
      [10:46:56 AM] 325
      [10:47:01 AM] 325 // strange, 0
      [10:47:12 AM] 341
      [10:47:25 AM] 360
      [10:47:37 AM] 380
      [10:47:48 AM] 399
      [10:48:01 AM] 418
      [10:48:13 AM] 418 // 0 again

      posted in Help
      Actium
    • Ticks get longer and longer and longer

      Yesterday the length of a tick was about 3 seconds. At the moment one tick is simulated in 10 seconds. Where the world is heading...

      posted in General Discussion
      Actium
    • RE: Ticks Used

      average CPU consumption: 14.77
      average creep count: 45.24
      number of rooms: 4
      CPU limit: 20

      I want to optimize my code but do not have enough time 😞

      posted in General Discussion
      Actium
    • RE: What is a good way to build proper defense at start?

      Having 2 energy sources in the room you can upgrade the controller up to level 4 until walls down.

      posted in General Discussion
      Actium
    • RE: How are we upgrading our creeps?

      You can predefine levels for every role as follows:

      var carrier_levels = [ { cost: 100, body: [ CARRY, MOVE ] }, { cost: 200, body: [ CARRY, MOVE, CARRY, MOVE ] } ];

      Then select most appropriate level for certain conditions.

      posted in General Discussion
      Actium
    • Profiling

      Disclaimer: I did not program with javascript until started playing screeps.

      Recently my script has been terminated due to CPU limit. In order to deal with this issue I wrote the following code:

      var enable_profiling = true;
      if (enable_profiling) {
          Memory.p = Memory.p || {};
      
          var wrap = function(c, n) {
              var p = Memory.p[n] || { usage: 0, count: 0 };
              Memory.p[n] = p;
      
              var f = c.prototype[n];
              c.prototype[n] = function() {
                  var ts = Game.getUsedCpu();
                  var rc = f.apply(this, arguments);
                  p.usage += Game.getUsedCpu() - ts;
                  ++p.count;
                  return rc;
              };
          };
      
          wrap(RoomPosition, 'isNearTo');
          wrap(RoomPosition, 'findPathTo');
          wrap(RoomPosition, 'isEqualTo');
          wrap(RoomPosition, 'findClosest');
          wrap(Creep, 'moveByPath');
          wrap(Creep, 'moveTo');
          wrap(Creep, 'pickup');
          wrap(Creep, 'build');
          wrap(Creep, 'repair');
          wrap(Creep, 'harvest');
          wrap(Creep, 'upgradeController');
          wrap(Room, 'lookForAt');
          wrap(Room, 'find');
          wrap(Spawn, 'createCreep');
      }
      
      ....   // main code
      
      var report_interval = 200;
      if (Game.time % report_interval == 0) {
              var summary = 0;
              for (var n in Memory.p) {
                  var p = Memory.p[n];
                  if (p.count === 0) {
                      p.average = 0;
                      continue;
                  }
                  p.average = p.usage / p.count;
                  summary += p.average;
              }
      
              for (var n in Memory.p) {
                  var p = Memory.p[n];
                  console.log(n + ': ' + p.usage.toFixed(2) + '/' + p.count + ' == ' + p.average.toFixed(2)
                              + ' (' + (p.average * 100 / summary).toFixed(2) + '%)');
              }
              console.log('--- ' + summary.toFixed(2));
      
              Memory.p = {};
      }
      

      Feel free to use it.

      posted in General Discussion
      Actium
    • RE: A potential very fast js pathfinder algorithm

      chris, probably not. I have slightly optimized the search function by caching neighbors for traversed points. The cache is gone after leaving the function.

      posted in General Discussion
      Actium