Navigation

    forum

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

    CartOfSwine

    @CartOfSwine

    3
    Posts
    905
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    CartOfSwine Follow

    Posts made by CartOfSwine

    • RE: Seasonal Idea: King of the Hill

      too easy for single player to control them with this set.

      I disagree. If you could build ramparts and towers then yea it would be a done deal. Since you not only have to hold the room with creep alone, but you have to protect a bunch of big CLAIM creeps camping next to the collector it makes it harder to hold.

      Another reason not to have too many collectors is the substantial energy cost to saturate them. You need a continuous supply of max size CLAIMers to max out a collector's intake, a significant drain if every room has access to the ability

      posted in General Discussion
      CartOfSwine
    • Seasonal Idea: King of the Hill

      Alright, hear me out on this, I have a neat seasonal idea

      Overview

      The map has structures called Emitter Stations (or something like that) scattered throughout that take the place of controllers. Players compete over the emitter stations with creeps containing CLAIM parts to score. The rules around scoring with emitter stations are intentionally left simple to keep the barrier of entry low, while allowing complex combat code to thrive.

      Rules

      • Emitter stations have an inherent quality. The greater the quality, the more score granted per CLAIM part
      • Emitter stations are fairly uncommon, only 2-3 per sector
      • Emitter stations close to the center of the map are of higher quality on average with the inverse being true for the outer reaches. This gives top players (who would dominate regardless) a place to compete over, mid tier player a decent place to compete with each other, and new players fairly safe places out of the way to skirmish with one another
      • Emitter stations score using the following formula (working beta) Score Gained = [claim parts present] * [quality multiplier]/([num players with claim parts present]^2). This makes alliances possible but not profitable enough for top players to consider it (and subsequently monopolize the center)

      Rationale

      The idea behind a game mode like this is to encourage new players in, provide a shallow learning curve with a high skill cap, and keep combat out of owned rooms.
      This gamemode encourages new players in by providing a good area for them to duke it out away from the titans that could wipe them. Starting in the corners of the map would be a bad idea for a mature codebase, as the quality multipliers would be too low for them to score as much as they could otherwise. Not only that, but spawning a creep with a claim part and having it stand ontop of a flag placed near an Emitter Station is fairly easy to do with slightly modified tutorial code.
      This game mode does not have much to speak of as far as new game mechanics go. It doesn't have new resources that spawn around the map and it doesn't require complex supply lines. Instead it opts for emergent complexity. Screeps only rarely requires players to engage in creep versus creep combat where one side doesn't have the massive advantages of ramparts/towers. Standing armies are expensive in screeps, so in order to properly capitalize on as many emitter stations as possible players will need to develop complex scouting to see attacks coming and spawn defenders to meet them. There is potential for an interesting game of cat and mouse there. In addition, we have the complex problem of creep versus creep combat. This is one area I would be exited to see a more developed meta in.
      At the end of the day, screeps is already full to bursting with mechanics to write code for. There is remote mining, refining minerals, boosting, invaders and mining SK rooms, power, automatic layouts, and a million other things on all but the most advanced player's TODO lists. I personally find it hard to justify joining seasonal to write code that is only useful in a seasonal context. If the rules encouraged me to build a really cool scouting and creep vs creep combat manager that is another story.

      Anyways, thats my idea. Thoughts?

      TLDR: Simple king of the hill gamemode that would be easy for newbs to get into, hard for advanced players to master, and that has some use cases in MMO

      posted in General Discussion
      CartOfSwine
    • Claiming Controller Kills moveTo?

      So I just got to GCL2 and claimed a new room. I had everything set up for multi-room control and was building a new spawn in the second room when every single creep i had stopped moving. After some debugging, I determined that not a single one of them was able to path to their memory targets. (yes, i store id numbers and use Game.getObjectById()). Every creep that was told to move was giving me -2 (no path). So I unclaimed the new controller and lo and behold they all started functioning as if nothing had happened. here is the code for my room upgrader in case it will mean something to anyone. I apologize for the lack of formatting.

      EDIT* I suppose it is also necessary to mention i checked the creep's memory as well. The source id was good, and the creep was only 6 squares or so from the controller with a clear path that worked before.

      EDIT** Ive done some more debugging. It turns out there is something affecting room position objects as well. My wall repairers are able to correctly identify walls and ramparts in need of upgrading when I only own one room, but as soon as I grab a second, their creep.pos.find() starts returning null, even though I have no maximum allowed level to upgrade my walls, and there are definitely walls in the room. I tried to jury rig it with var myRoom = Game.rooms[creep.pos.roomName]; and then using myRoom.find. myRoom was properly instantiated, but myRoom.find returned null. I'm stumped, and I can't expand until I get this figured out. 

       

       

      var roleUpgrader = {
      run: function (creep) {
      //check to make sure mem is initialized
      if (creep.memory.upgrading == undefined)
      creep.memory.upgrading = false;

      //toggle between working and gathering
      if(creep.memory.upgrading && creep.carry.energy == 0) {
      creep.memory.upgrading = false;
      }
      if(!creep.memory.upgrading && creep.carry.energy == creep.carryCapacity) {
      creep.memory.upgrading = true;
      }

      //go and upgrade
      if(creep.memory.upgrading) {
      if (creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {
      //----------------------This is the move command that was acting up (along with all the rest)
      creep.moveTo(creep.room.controller, { reusePath: 10 });
      }
      }
      //get more energy
      else {
      //source is set during spawning process for max efficiency
      mySource = Game.getObjectById(creep.memory.source);
      if(creep.harvest(mySource) == ERR_NOT_IN_RANGE) {
      creep.moveTo(mySource, {reusePath: 10},{visualizePathStyle: {stroke: '#ffaa00'}});
      }
      }
      }
      };

      module.exports = roleUpgrader;

      posted in Technical Issues and Bugs
      CartOfSwine