Our next new player, outrAJeous, has chosen a room in a novice area that appeared in the middle of the map rather than at the edges. His previous room met a bitter fate at the hands of a neighbor and he is now motivated by the truest objective one can have in Screeps… revenge! outrAJeous generously gave me the coordinates to his previous room and permission to post the history, see below.
Q. How did you hear about Screeps?
A. I ran across Screeps while looking through the Steam Summer Sale. I had never heard of it, but once I read the description I had to give it a try.
Q. Screeps seems to attract a wide variety of players, from complete beginners to hobbyists to professionals. What level of programming experience are you starting out with?
Q. I know some people are here to learn, some for the coding challenges, some for world domination, and some for all of the above. What would you say are your biggest motivations for playing the game?
A. The biggest wake up call I got when I started programming professionally is how insanely inefficient all of my code was. I’ve learned a lot about architecture and edge cases the last few months, and I’ve been dying to apply that to a project of my own. I really like how, with Screeps, I can see the affects of my code in real time. The constant challenge of making my code as modular as possible while still making my creeps act efficiently in a RTS sense is amazing.
Q. I know you’ve only been playing for a short time, but what are some of the biggest challenges you’ve run into so far?
A. It seems like there is a way to use a different IDE instead of the in browser one. I got Atom to auto-complete with the Screeps syntax, but I haven’t yet found a way to push the code to the site without copy and pasting. I know there seems to be some decent git hub support, but it requires giving Screeps full access to all my repositories and organizations, which is something my work would not allow.
Here’s something you might be interested in! Grunt-screeps (https://www.npmjs.com/package/grunt-screeps)
Q. When I’m playing, sometimes I’ll be working on a problem and I’ll have a breakthrough. Either my code suddenly starts working as intended or I have a really good idea that I want to try out. Have you had any “eureka” moments so far?
A. I’m trying to play a lot without a guide or too many outside resources. It’s just more fun for me that way. The second day I was playing, I realized how annoying it was to check each creeps memory to figure out their role. I put up with this way longer than I needed to. One “aha” moment later, and now all my creeps are named with their role and a unique number automatically. The numbers also get reused after a creeps dies.
Q. We are learning here. Do you have any particularly funny moments to share about your learning process? Code gaffes, silly bugs, sudden realization that Screeps already has pathfinding… too late.
A. My first rendition of my naming code had a flaw that I didn’t notice until the next day. It was meant to name a builder “Builder1”, and if that name was taken it was to try “Builder2” and so on until it found an unused one. I made an error in a for loop, however, and woke up to a bunch of creeps with names like: “Harvester123456789”. It made me laugh quite a bit.
Q. How about the resources available for new players — from the official documentation to the articles/guides that other players have created — Do you find them to be sufficient? Were there any that seem to be particularly helpful? Any gaps or resources you’d like to see?
A. The official documentation is immensely helpful, and I also think that tutorial did a great job. There is a pretty big gap when search for information about IDEs, as I mentioned above, but so far that has been the only problem.
Q. In about a month I’ll be doing a follow-up article and it will cover some of your progress over that time. What things do you plan to work on? Any goals in mind?
A. Short term, I really want to extend my bases to two rooms and change my code to work with that efficiently. Also, I was wiped for the first time while at the gym about an hour before writing this. So revenge is also on my mind.