Actually, on reflection, this is probably a problem that should go into the Technical Issues and Bugs forum. Could this be moved over there?
Posts made by Shadou
-
RE: FR: Fix Room.deserializePath()
-
FR: Fix Room.deserializePath()
I've been beating my head against trying to get creeps to follow a serialized path that goes through a border, and have come to the conclusion that it just can't be done with the built in serializer/deserializer, and we have to write our own serializer/deserializer if we want a creep to follow a path in memory through a room border.
I've written a custom pathfinder, using PathFinder.search, and have been happy with the paths it has given me that go through borders, and would dearly love to actually use these paths with creep.moveByPath(). But Room.serializePath() output from a PathFinder path looks something like 2310undefinedundefinedundefinedundefinedundefinedundefinedundefined.......
Ok, so with the help of some of the great patrons of the chat, I've managed to write up a module to convert the PathFinder output to something that would be accepted by both Room.serializePath and creep.moveByPath. After ironing out the directional problem when crossing borders, I've got a function that will theoretically send a creep through a border and continue the path on the other side. At least, when you look at the pre-serialized path and the Room.serializePath output, it looks fine. The directions all look fine on the serialized path, and the locations are all good on the pre-serialized path. But comparing the paths before and after it's been serialized and deserialized, we see a BIG problem with the serializer.The serialized path string doesn't have any dx or dy information. Just a start location and a string of directional numbers in the format XXYYDDDDDDDDD. The deserializer is obviously just taking the start location, and incrementing/decrementing XX and YY before outputting an array of objects in the form of {x: x, y: y, dx: dx, dy: dy, direction: direction}. But when it hits a border number (0 or 49), it just keeps going. So in the deserialized path, even if you have a valid serialized string, you'll see x and y numbers outside of the bounds of 0 to 49. A creep following the deserialized path will stop at the border and complain that it's not on its path.
I'm currently working on writing my own deserializer module that would take the serialized string and output back to an array of objects with the x and y bounded to 0 to 49. But it would REALLY be appreciated if this functionality would be built into the deserializer.
-
RE: Gradual opening of novice sectors
It's already sink or swim out there. Once you've dominated a 4x4, if the inner rooms open you have a chance to text your code against other players who dominated their 4x4 before the other players in the world at large come hammering at your door.
As you said, it's unlikely that your code can be fully implemented in 24 noobie-day time, and players who have their code figured out are going to dominate their 4x4 anyway and displace the players that haven't yet fully implemented their code. Those players will likely move to a new 4x4, and have another period of time to implement their code and dominate their 4x4, or not. Having the inner walls open and being introduced to other players that also rose to dominance in their 4x4, or not, gives you a chance to refine your scripts against other players who are on the same level as you; they have their code implemented, but it hasn't been refined against competition yet. And it gives you some further experience with scripting before the outer walls open, and your code needs to, at that point, be perfect. Or, it's not ready yet, and you get crushed by the world outside your 10x10, and have to start over again in another 4x4.
-
Gradual opening of novice sectors
I don't know if this has been brought up before, but a brief scan of other topics hasn't yielded any matching results. I'd like to propose an improvement to the newbie sectors.
Currently, newbies are confined to their 4x4 cells, with a + of walled-off rooms separating them from three other 4x4 cells, separated from the rest of the world by a 10x10 wall around the whole sector. Once a new player has conquered their 4x4 cell, whether that takes 4 days or 20, they're cut off from any further expansion opportunities until all the walls open. Then they have to deal with the older players in cell blocks closer to the center of the map, while being unprepared by their experience in their 4x4 cell block to defend against another player on a similar footing.
What I'd like to propose is that the walls in a newbie cell block open gradually. The inner walls remain for half the duration of the novice protection time, allowing novices in their 4x4 cell blocks to fight for dominance amongst themselves... but then, after giving enough time for each 4x4 block to have a clear dominant player (or not), the inner walls open and introduce the players in the cells to their neighbors.
This would allow the more dominant players in each cell block an opportunity to further expand, and test their scripts against other players who rose to dominance in their own 4x4 cells, before they meet yet more dominant players in the world at large. I think it would be a good thing, and prepare novice players more for the world outside their little 4x4/10x10 blocks.
-
Unwritten rules of conduct?
This is really bothering me, and I'm starting to think that I'M the crazy one here. Someone give me some help here.
I'm not going to name any names, because I don't want to make this about my personal issue with someone. Those of you that do know what I'm talking about, please don't drag that into here. This topic, removed from the personal issue, is about trying to find out what the unwritten rules of decency here are.Currently, I am aware of at least one predatory player that is preying on novices. They spawn in an area, attack any novices that were unable to build up to a tower fast enough to defend, and respawn when they run out of weak prey. And again, I'm not going to name any names, because I do not want my personal grievance with one of these to muddy this topic. Again, those of you that know of the situation, leave it outside this topic.
The main problem here is I can't get anyone to agree that this is a bad thing. I get told it's a competition, that they're playing within the rules, and that I'm imposing my moral standards of human decency on others. They tell me that I'm being inflexible in my beliefs, and that I shouldn't be bothered by this kind of behavior.
WHAT?
This kind of behavior CAN'T be good for the playerbase. First off, the protective walls are only 20000 ticks, which at the game's current average 1 per 3 second rate of ticks means about 16 hours, give or take depending on tick rate fluctuation. A player can NOT build a tower until RCL 3, which even assuming 10 of your average 2-source room's 20 energy per tick income is going into the controller, takes 4520 ticks to accomplish. That's almost 4 hours at the average tick rate. A new player who codes a little, gets their controller up to level 2, sets up their base at that level, and then decides that, since RCL3 is going to be a while, they'll come back tomorrow to finish their initial base setup is well outside of protection by the time they return. This kind of player has not had the time for the game to grow on them, has little invested in the game (especially if they bought on steam), and if they come back the next day to find their base in ruins after another player attacked them, they may well quit and try to get a refund. It's a rare few players, given the target market, that will dust themselves off and try again; those players are the rare gems that are at the higher end of the programming skill curve, and won't be frustrated as much by being killed in a game they're struggling to understand.
We have players that are SPECIFICALLY targeting these players. Is this against the rules? No. But is it good for the game? Most assuredly not! Is it against the general standards of human decency? That's what I'm trying to determine here. Is it predatory? Most definitely yes.
Now, I understand that this is a competitive game, and that there is going to be collateral damage here. It doesn't make any difference to the player described above whether the attacking player is doing so because they're being predatory, or because the new player was unfortunate to place themselves in a room the attacking player wanted. But in the case of the predatory player, they're not even playing the game as intended, in my personal opinion. They're abusing the fact that they can still spawn in novice rooms, and using their advantage in experience in coding for the game and their already built scripts to bully players that don't have any of it figured out yet. They're not doing collateral damage, they're attacking the trickle of new players into the game at the source.
I think something should be done about this, but I can't even get anyone to agree that this is a problem. IS this a problem as I've lined this out? I submit this for developer and general evaluation. Are these players playing the game as intended, or is this an oversight on the part of the developers? Does this bother anyone else, or am I barking up the wrong tree here?
If something should be done about this, does it need to be social, or programmed? Again, I can't even get people to agree that this is an issue. It's allowed within the game rules, so it must not be wrong, right? Human standards of honor and decency? Those have no place in a GAME. So, if this is determined by the developers to be a problem, I'm leaning toward the solution needs to be programmed into the game.
Apologies for this long-winded post, but I am having to call my own sanity into question here, and would REALLY like to get more general feedback on this. And yes, I understand I'm opening myself up to possible trolling here, and can only hope on the miniscule chance that I get any reasonable replies.
-
RE: What's the reasoning behind waiting for dead users' controllers to time out?
See, I don't entirely agree with that reasoning. If a player has been completely wiped out, has no creeps and no spawns anywhere, sure, it would be technically possible for their friends to build it back up... but I see two problems with that reasoning.
1: the friends have to, at their own expense, build the spawn and protect the room from whoever wiped out the player in the first place. As NPC invaders despawn when the room is devoid of creeps, it was most certainly another player that caused them to be in such a position, and if the reason for the attack was the player's interest in capturing the room for themselves, they're certainly not going to allow the player to be built back into place without some retaliation, which the rebuilding players have to be prepared for... not just for the time the spawn is building, but also for the time the base is building back up to the point it can defend itself.
2: at the point you have lost all your spawns, assuming you are higher than just the GCL 1-3 scrubs in the novice area, you have LOST. You are being driven back, your territory is being taken. Someone stronger than you is kicking over your sand castle and taking your beach toys. You were down to your last spawn, and your friends were not able to help you protect your last line of defense. You are DEAD. You can contribute nothing more to your own defense, and the burden of protecting your territory now falls on the shoulders of your friends. And sure, if the room was RCL8, you have a couple weeks for your friends to help you. But if you're in this situation, realistically, are you going to stick it out for your friends to help you fight a battle you've already lost? Or are you going to respawn and get started again in a more favorable position?
So I really don't see the logic in allowing someone who is effectively dead to be rebuilt by friends. If you're losing badly enough to lose all your spawns, your friends are either unable or unwilling to help you. Personally, I don't see the few edge case scenarios where a friend was simply late to respond and help you as being worth the weeks it takes for a high level controller to decay for an already dead player.
-
FR: Dead players immediately lose controllers
I think players should immediately lose control of all room controllers if they lose their last spawn. Currently, we have to wait for them to either respawn, which makes it impossible to know when the room is going to become available and plan accordingly, or for the controller to decay, which takes days to weeks at the current speed of ticks per second.
I don't think players should immediately lose the controller if they lose the spawn in the room, that's not what I'm asking. I'm asking that a player with NO spawns be cleaned up from the map. They are dead, they are not going to recover, and we still have their decaying corpse floating around being unsightly.
Can we have this? Please?