Screeps Arena Preorder



  • The alpha isn't currently available (the top post says "our current ETA for Closed Alpha is Q1 2021"), but you can preorder it from https://screeps.com/a/#!/arena if you want it at a discount.

    👍


  • @artch sounds great! I have some questions and feedback:

    Is the matching system inspired by Gladiabots? Have you played that game? It has a similar system where you play against different versions of AI of other players. I believe they call it a “ghost” of another player. Each ghost has it’s own Elo rating. It seems to work well in that game and I think it will work well here too.

    I would like to suggest another feature for Arena that is also in Gladiabots. It is a single-player campaign but the opponents in the campaign would be “ghosts” or “versions” of actual player code that was used in multiplayer (anonymously). (See https://wiki.gladiabots.com/index.php?title=Campaign For some small explanation). The code used in the campaign changes every season so it has replay-ability and adapts to strategies of the players over time.

    This was very fun in Gladiabots and I believe it would have a big benefit for Screeps Arena because of this:

    I know many people who have tried to play Screeps but want to be perfect or “ready” before they face other players. They spend too much time trying to prepare and sometimes quit before they ever even spawn into the public server.

    If there was a campaign similar to Gladiabots where you can face real challenges and progress in difficulty I think it would help retain more players with different play styles and different development styles.

    Just an idea, I thought it was brilliant when I learned how Gladiabots is doing this.


  • Dev Team

    @helam I never played Gladiabots (I don't like visual coding). I came up with this idea absolutely on my own during prototyping the game design. However, it seems obvious enough for coding games that I'm not surprised that other people are doing that. It will be interesting to see how it's going to play in the Screeps setting with real coding.

    👍


  • So excited for this!! I preordered closed alpha. I have played the regular screeps for maybe 160 hours (I know not long). But I want that faster response of attack / defend.

    When I was in highschool, taking computer science (we learned Java), we use to play a game towards the end of the semester (not in Java) called robowar (https://en.m.wikipedia.org/wiki/RoboWar). The entire class would program their bots and we’d all go at it. In that game there was limitations such as health / computing speed/attack and such for each tournament. You’d basically get points to choose from and so many points made different class robots. Could use energy for attack / shields. Had to predict shots or sense them coming and react which may consume all your energy to move. And then the teacher would give the Friday winner and next week we’d fight again watching it run on the projector.

    Screeps is fun. Gets me back into programming. I may use something for google sheets in the real world but that about it. Been taking a class (on JavaScript) getting myself ready. :)) no open source code for me. It’s not winning if you didn’t make it imo.


  • Dev Team

    Take a look at how the game API will look in Arena:

    import {Game, Spawn, MOVE} from '/game';
    import {work} from './roles/work';
    
    const myCreeps = [];
    let mySpawn;
    
    export function loop() {
    
        if(!mySpawn) {
            mySpawn = Game.getObjectsByPrototype(Spawn).find(i => !!i.my);
        }
    
        if(Game.time === 1) {
            let creep = mySpawn.createCreep([MOVE]);
            creep.role = 'worker';
            myCreeps.push(creep);
        }
    
        myCreeps.forEach(creep => {
            if(creep.role === 'worker') {
                work(creep);
            }
        });
    }
    

    Fully implemented ES6 modules with native folders support, guaranteed global during the entire match, globally persistent game objects, no Game.creeps or creep names since you can organize your own global data structures with them, no Memory since you can simply set properties on real live object instances. It will be fun!

    👍😍


  • @artch That definitely look interesting! Happy to see things like ES6 syntax making it into the game.

    However, this sounds like a significant API departure from the main MMO, do you have plans to upgrade the main MMO API to ES6 modules in a similar fashion?

    Or is it expected that MMO bots and Arena bots will always be fundamentally different?


  • Dev Team

    @keidence Upgrading MMO to this API would be, although very desirable, an extremely complicated task. It's a major refactor of almost everything in the runtime. Probably someday, but no promises.



  • @artch Will arena have a fog of war or full vision in the arena?

    I find the idea of having to scout the enemy important, it also allows you to do "sneaky" things if the opponent does not scout you 🙂

    Depends a lot of the units that are implemented. I'm just thinking of RTS games in general 🙂



  • Hopefully both, depending on the arena. Seems possible to make it optional without too much design headache.


  • Dev Team

    @thmsn During the alpha and the first season it will be full vision, but we will experiment on it later.

    👌


  • I would surely enjoy a FOW kinda gameplay, could make it so creeps gets a 5 radius sight and have a boost to expand, that or an observer 😉 tower, to allow an occasional remote view at a location.



  • @artch Looking good! Any plans to use the latest version of Lodash in arena API?


  • Dev Team

    @tehfiend No plans to use built-in lodash at all 🙂 You can import your version at your own convenience.

    👏

  • YP

    will there be a simulator to test the code locally, maybe run it against a second script?


  • Dev Team

    @w4rl0ck No. But you will be able to run non-rating games to test your code.


  • YP

    @artch I don‘t really understand how debugging your script will work .. will you be able to log to console and download the log together with the game or something like that? I imagine it will be really difficult to understand what‘s going on with your creeps just by watching the game, especially for new players without experience with screeps

    Personally I don‘t like to develop in big iterations .. I like to create test setups on private server / sim and work on code and test small changes... it sounds like that won‘t really work with arena.



  • @artch Have you decided how you will handle CPU? As one option, I like the idea of setting it up similar to a chess clock. Each side gets x CPU for the entire match and if you run out you lose. Also ensures these types of matches have a well defined life span and adds weight to CPU management as a strategy. Could run this as an alternative option to the existing x CPU / tick + bucket system.


  • Dev Team

    @w4rl0ck You will be able to watch console logs during the match in real time, and download them later too. However, you cannot change anything during the match, so small iterations are not possible indeed.


  • Dev Team

    @tehfiend This is a great idea, we will definitely consider it.

    👍


  • @tehfiend That is an awesome idea! It opens up endless avenues for exploring efficiency after "virtually every strategy is discovered" 5 years from now. I can see the E-Sport footage now... "Well, Steve, they are both using virtually identical quad attack squad strategies, but look at the CPU usage... I think we can see how this is going to end!"