sonoftheflame was the first player I interviewed in this series. It turns out, he had read one of my articles on reddit and he asked me if I was “that bonziaferroni”. It looks like he picked an excellent room: two sources with plenty of access and amazing defense characteristics. Without further ado, here is our chat:
Q. How did you hear about Screeps?
A. I first saw Screeps in the Steam store. It seemed interesting but also a little intimidating so I just wish-listed it. It was brought back to my attention when I saw it in the humble bundle. Having “discovered” reddit between then and now I decided to check out the subreddit and after reading about the Screeps Warfare Championships I thought that the game itself looked quite fun and decided to give it a go.
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?
A. As far as actual object oriented programming my prior experience was with a couple of semesters of python 4+ years ago back in school. On the other hand, I do work for a web hosting company so bash scripting, mysql queries, and a small amount of php make regular appearances in my day.
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?
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. One of the biggest challenges so far has been trying to understand the error outputs in the console. In the emails generated by the live world I now see that it includes the module and line number of the error, but in the simulation room where I did my initial testing that information was not included. Something minor is that the simulation room with its 4 sources spoiled me and I was not expecting the 1 and 2 source rooms I found in the starter areas.
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?
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. I had an issue where all throughout the spawning process a certain role of creep would have the correct role saved in its memory, but as soon as it was done spawning the role would change. I put all sorts of console.log entries all throughout my code just to try and pinpoint how it was possibly happening. Eventually I found out that in a custom property I had added to the room prototype, I had added I had only used a single = and was changing the creep’s role rather than testing it.
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?
For what I would like to see more of in the docs would probably be more in-depth information on “creating” prototypes in addition to the existing information about modifying existing prototypes, and more information on how things that are in main.js but outside the export loop are handled. I’m still working on understanding that.
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. I have been peeking into other player’s rooms to see if any of their behavior appears “better” than what I am currently doing (such as separating harvesters and haulers) so too much forecasting is tough, but currently I am working on further reducing my CPU use, improving/creating active offence & defenses, figuring out extractors and the market, and automating the placement and building of basic structures such as roads, walls, ramparts, and extensions