What did you find annoying/hard when you started out with this game?
-
I've been around for a while, but have (relatively) recently started over from scratch trying to go with the fully automated approach, and what I have found to be incredibly annoying is the data that is available to users through the ui that isn't available to your scripts. Information on other players GLC/rooms, market data/history, being able to destroy spawns in your owned rooms, and the worst offender of all zero info on novice/respawn areas. My latest experience has shown me that screeps has an excellent api for a semi automated approach, but when it comes to full automation, it doesn't make all of the data available to you that is necessary to make informed high level decisions.
-
Very annoying was, that invaders are too strong too early. Sometimes they can't be defeated with towers at RCL below 8 and then they break walls.
The documentation doesn't document every aspect of the game. Many details must be looked up in the screeps code. Like:
- When do invaders spawn? (the exact algorithm is not documented)
- Which groups of spawned invaders are possible? (the algorithm for groups of invaders is not documented)
- If many creeps attack, move and heal each other, at which order do these things happen, when does the damage apply?
All the answers can be found in code, but not in the documentation.
But most annoying was, when I had a first plan to move thousands of tiny creeps with almost no CPU usage, just to find out that every intent has some insane cpu-cost of 0.2. That just changed all the strategies.
And still annoying is, that the UI cannot cancel, destroy or kill more than one construction site, building or creep per tick.
-
It seems like most of the invader docs you want are here.
- When do invaders spawn? (the exact algorithm is not documented)
Every room where energy is mined has an inner counter at approximately 100,000 units of mined energy (plus some random variable). After this counter times out, a new game-controlled creep appears at one of the room exits with the goal of hunting your creeps.
- Which groups of spawned invaders are possible? (the algorithm for groups of invaders is not documented)
There is a 10% chance that you will get not only a lone Invader but a whole company of them, from 2 to 5. Each Invader has its own role: melee attacker, ranged attacker, or healer. Ranged attackers are different from melee ones in their behavior: they try to stay at a distance from your creeps. The function of healers is evidently to heal other raid members. Also, some creeps may be boosted with , , , or .
-
Old thread, but why not bump it!
For me I think my main gripe was movement between rooms and room visibility. It just didn't seem clear enough what was allowed, and what was not. I can move to a RoomPosition but I can't move to a saved object ID... wtf? I now understand some of the reasoning behind this, but at the time it felt arbitrary and unintuitive.
I still think room visibily and movement between rooms is one of the most clunky part of this game. I remember once I first had roads I had a movement glitch if I didn't have visibilty into a room with roads. moveTo would move to a room with no visibilty, gain visibily, and then repath based on the roads it just saw. Often this would mean moving back to the room it just came from... triggering an infinite loop of moving between the two rooms gaining and losing knowledge about the roads.
Then there's findClosestByRange and findClosestByPath not working across rooms for absolutely no good reason. What's with that?
-
Thanks for asking for feedback. I just wrapped up my first month so I'm pretty new. Before I start complaining, let me say to all the devs listening that this game has been awesome. I tried it once upon a time during the Kickstarter and was thrilled to see it up on Steam. I hope that you're doing well!
-
Creeps: I didn't find it anywhere in the documentation that creeps can't occupy the same space. It's pretty fundamental to how you plan your room and your movement. I also found it a bit tedious that I can to enumerate all the creep parts during spawn. Maybe the spawnCreep method could accept an array of creep part amounts - or something. I don't want the game to provide utiltiies for everything but this was the first boring util I had to write.
-
Visual Update Bugs: Many times when I leave my session and come back, I see non-existant creeps left in the view. At first I didn't know this was a bug, and I wasted time trying to figure out why these creeps weren't behaving. Now I know to refresh every time I come back to an old session. Also, I experience "bursts" of movement from time to time which seems like the client catching up to the server state. Again, usually F5 fixes this.
-
Performance: I typically use my mid-range desktop for development, but I also like to break out my Chromebook for a quick 10 minute session when I think of something. Writing a little routine on the couch while watching TV has been really fun for me, and I would really love it if there was a "low performance" mode. I've even wanted to check in on my creeps while on my phone. That was hilarious; I basically had to restart my phone.
-
Code Organization: Usually the first thing that we all have to figure out is how we're going to manage our IDE and source control. I've struggled a bit. GitHub integration doesn't seem to work right for me, so every time I want to make a change to "production" I have to re-sync using Account Settings. It would be ideal if GitHub integration was improved. I'd love to be able to use branches! It might be something I did wrong, but if so, documentation needs to be improved. If there's a bug, I already have an open issue in the system. Oh, I also had to learn the hard way that modules all have to be placed at the top level. I didn't understand this at first and started building a folder structure.
-
-
Notices the topic and decides to add his two cents.
I won't detail what was said earlier, but the two main concerns I had when beginning (and somehow still struggle with by the way) are:
- The lack of debugging tool. Especially, default errors are not user-friendly and it is impossible to debug situations were your script cpu "explodes" as you can't log or save anything.
- Moving between rooms, especially when creeps cannot move one tile per tick and get back to the last room where they can move again but...
About second problem, would it be possible to move creeps one tile away when entering a room (so that they appear on tile 1 instead of tile 0 for example) ? This shouldn't break too much current code bases.
-
@hiryus said in What did you find annoying/hard when you started out with this game?:
About second problem, would it be possible to move creeps one tile away when entering a room (so that they appear on tile 1 instead of tile 0 for example) ? This shouldn't break too much current code bases.
What if that space is already occupied? Room2Room movement just works because the content of the edge pieces just get exchanged...
Also many people use that for their combat code .. I think a different solution would be nice .. but I can't imagine one that is that easy and "just works"
-
Ok besides the fact that my script on the server is still the modified tutorial stuff. ( Still not done with screeps math so I haven't even begun to write a program and i have lately a lack of motivation)
I find a couple of things annoying:
- Js
- There is no balanced progress in terms of RCL and ability which results in less to none satisfaction on a level up until you hit 6 which immediately overwhelmed you with a shit ton of new stuff to be coded
- Documentation is a mess (API is OK so)
- No official generated ts files for intellisense
- No auto conversion for object -> memory -> object this is critical for newbies yes it might take more CPU but in the long shot it is better to be explicit disabled instead of non existent.
- Did I mention js? But that's more a personal preference.
Surprisingly I had no problems with room transitions which seems to be a big gripe for a lot of people.
-
Some form of testing framework for screeps would be a godsend. With how slow ticks are sometimes it takes hours or days to fail. I remember being very frustrated coming back the next day to find everything died overnight quite a few times.
A small shard with 1sec ticks that didn't add to accounts (no GCL/credits carry over) would be a great way for new players to test things, its a lot to expect a new player to go to 3rd party hosted servers.
-
@davaned said in What did you find annoying/hard when you started out with this game?:
Some form of testing framework for screeps would be a godsend. With how slow ticks are sometimes it takes hours or days to fail. I remember being very frustrated coming back the next day to find everything died overnight quite a few times.
A small shard with 1sec ticks that didn't add to accounts (no GCL/credits carry over) would be a great way for new players to test things, its a lot to expect a new player to go to 3rd party hosted servers.
You can use private server for that.
-
@w4rl0ck the private server is not a test suite. While it's certainly possible to run tests on the server, it isn't possible to do things like reset the game state for each test or provide stubs for certain services.
-
@tedivm said in What did you find annoying/hard when you started out with this game?:
@w4rl0ck the private server is not a test suite. While it's certainly possible to run tests on the server, it isn't possible to do things like reset the game state for each test or provide stubs for certain services.
Yes I only wanted to quote the second part which is about test servers.
While I agree that a test suite would be great I donโt think that this is a job for the devs to create and I donโt think that writing tests is something a screeps starter would use/miss ( which this thread is about )
I think setting up a local test server is more important for a beginner, or should be, to not do the first steps seeing the scripts moving in 4-6 second steps. Maybe a button to delay the start of the subscription. Let the user start with 10 cpu until he is ready to use more. Introduce something that let server-mods add panels or buttons to the client to create debug/helper mods that allow ui elements. Using the web simulator is ok, but it stops beeing useful soon. A local server with a server mod that allows changing the tick speed, but with the same ui like the web simulator would be the god tool for a beginner. A button to finish buildings, to change the controller level, save/restore a room .... the possibilities would be endless.
I know some servers have mods that allow for example changing storage contents by script, spawning customized invader groups on command in sk rooms and it playing multiple users on the same server using the steam client to check combat code. There is also a mod to run the server tick by tick or to connect a debugger but that wonโt work for a shared server. Manipulating whole room states or spawning hostile creeps with certain scripts would possibly be not hard to do if some of the experienced guys are interested in doing