Почему первая? Потому что раньше были игры для программистов, и были стратегические ММО-игры. Но до нас еще никто не делал игру, которая одновременно и является ММО с единым постоянным миром, и при этом целиком и полностью ориентирована на программистов.

В ноябре прошлого года мы запустили краудфандинговую кампанию на Indiegogo, собранные средства с которой позволили доработать прототип до полноценного продукта. Весь июнь и июль получившие приглашение игроки тестировали версию Early Preview. И вот, теперь мы объявляем о публичном запуске этого необычного проекта. Встречайте Screeps!



Под катом небольшое описание, отзывы и технические подробности проекта.

Screeps (от слов scripts и creeps) — это онлайновая стратегическая игра в реальном времени. С точки зрения игровой механики это довольно классическая игра: есть карта, ресурсы, база, юниты, развитие и взаимодействие с другими игроками. Только вот контроль над юнитами не просто «непрямой», а целиком и полностью заключается в написании скриптов AI. Вы пишете код на полноценном JavaScript (но возможно и использование компиляторов из других языков в JavaScript, коих великое множество), который исполняется на сервере в игровом цикле, отдавая команды юнитам и строениям, и наблюдаете за происходящим в реальном времени. Единственная возможность влиять прямым образом на то, что происходит на экране — ставить флаги и назначать места строительства.

Факты об игре:

  • Ваш игровой код выполняется на сервере непрерывно, даже когда вы оффлайн.
  • Мир Screeps постоянный, единый для всех игроков и развивается в реальном времени, в отличие от других программистских игр, основанных на разовых матчах между игроками.
  • Мир генерируется процедурно и, хотя игрокам предоставляется ограниченное пространство для заселения, оно способно бесконечно увеличиваться по мере необходимости. На данный момент сгенерировано 1600 игровых комнат.
  • В игре есть режим симуляции, в котором скрипты выполняются в браузере, а не на сервере. Этот режим доступен без регистрации на сайте.
  • Игровые скрипты можно писать как с помощью внутриигрового редактора, так и с помощью внешних IDE, используя инструменты для коммита скриптов в игру.
  • Скрипты выполняются на сервере через полноценную виртуальную машину iojs, доступны некоторые возможности ES6.
  • Выполнение скрипта каждого игрока в виртуальной машине ограничено по времени, поэтому нужно думать об оптимизации.
  • Каждому игроку предоставляется 2 Мб памяти для постоянного хранения произвольной JSON-структуры данных.
  • В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
  • Еще из того, что планируется в будущем: выпуск всего игрового движка в виде отдельного npm-пакета, чтобы было возможно свободно запускать игровую симуляцию на локальной машине для любых целей.

Немного отзывов:








Модель оплаты игры подписочная, игрок оплачивает время CPU для выполнения своих скриптов. В скором времени станет доступно специальное Twitter Promo, с помощью которого раз в месяц можно будет бесплатно получить кредиты CPU для минимально необходимого лимита серверных ресурсов.

Ссылки по теме:


Хорошей всем пятницы!

Комментарии (62)


  1. marenkov
    14.08.2015 16:06
    +37

    Платить за возможность писать скрипты? Кажется я что-то пропустил.


    1. Coffin
      14.08.2015 16:13
      +22

      Вы пропустили современную модель мира выкачивания бабла за каждый пук :)


    1. halyavin
      14.08.2015 16:18
      +4

      Вы наверняка пропустили игру Colobot. Жаль, что её идея не нашла продолжения. Хотя вот сейчас прочитал, что ее выложили под GPL.

      en.wikipedia.org/wiki/Colobot


      1. Rondo
        14.08.2015 16:43
        +1

        Отличная игра, жаль, что нельзя было в реал-тайм отслеживать показатели — данные обновлялись пару раз в секунду, что было недостаточно для каких-то точных движений, приходилось угадывать, сколько займет то или иное действие, и какая будет задержка получения состояний, иначе запаздывание превращало запланированные движения в какую-то ерунду — пока измерял расстояние и угол, пока изменял мощность двигателя, уже всё пять раз изменилось. Можно было на основе эмпирических данных о задержках довольно неплохо игнорировать такие изменения, которые просто не успеваешь обработать, но это всё равно не то.


      1. v673
        15.08.2015 17:37
        +1

        К слову, писал статью как-то о ней:
        v673.com/programmers-games/colobot-and-ceebot

        И еще ряд моих статей по играм для программистов:
        v673.com/category/programmers-games


      1. DanielVartanov
        15.08.2015 19:14
        +1

        Я так её обажал, что сел и начал писать свою. Тоже с добычей ресурсами, ботами, батареями и прочим. Только опен-сорсную и бесплатную, в отличие от авторов игры в топике :)


        1. Dr_XaoS
          16.08.2015 08:34

          А я два раза садился писать. На второй даже что-то вменяемое вышло — github.com/drxaos/robocoder


        1. halyavin
          17.08.2015 11:26

          Много раз думал об этом, но меня всегда отпугивала идея программировать 3d физику. Однако, теперь куча профессиональных движков бесплатны для некоммерческого использования, так что сейчас реализовать идею должно быть на много легче. Инди-игра Kerbal Space Program уже делает почти всё, что нужно для колобота.


          1. DanielVartanov
            17.08.2015 11:43

            Я тоже много думал над физикой и 3d-графикой. В итоге оказалось, что плоского мира и rogue-like графики хватает для любого фана. На деле трёхмерность Colobot'а усложняет пользовательские алгоритмы, делает чрезвычайно сложным боевое взаимодействие нескольких роботов.


      1. KyberPrizrak
        17.08.2015 11:32

        Скорее это логическое продолжение Ants AI Challenge. На хабре есть десяток статей про данное мероприятие.


    1. artch
      14.08.2015 19:12
      +2

      Платить за возможность писать скрипты?
      Платить за то, чтобы ваши скрипты выполнялись на игровом сервере раз в секунду нон-стоп 24/7.


      1. zharikovpro
        14.08.2015 20:11

        Вопрос в том, с кого проще собрать оплату. Да еще так, чтобы это пошло проекту развиваться. Например, платить могут компании за хантинг талантливых специалистов с помощью этой площадки.


      1. egor_masalitin
        14.08.2015 20:27
        -3

        раз в секунду нон-стоп 24/7.

        Простите, но моя малинка за 15$(не в месяц) может выполнять их гораздо быстрее


        1. AndersonDunai
          16.08.2015 02:04
          +3

          Дадите мне и еще нескольким тысячам дюдей позапускать на ней что-то бесплатно?


  1. egor_masalitin
    14.08.2015 16:17
    +7

    Правда, мне нравится идея, мне нравится дизайн, все красиво и мило. Но слишком жесткая система с оплатой. Плюс слишком сильные ограничения на скрипты. Я был бы счастлив, будь эта игра open-source, что бы любой мог модифицировать, и что бы были полностью бесплатные сервера. Это лично мое мнение. Да, я понимаю, что любая работа должна быть оплаченной, но я думаю система добровольного доната (без плюшек за это в реальной игре), была бы лучше. Это лично мое мнение. Вы в начале говорите что все зависит не от времени, потраченного на игру, а от интелекта, но в то же время, тот, кто больше платит, имеет большее преимущество.

    И все вроде бы и нравится, и документация, и идея, но лично я никогда не любил игры, в которых мне нужно каждый месяц платить за возможность играть.


    1. 4dmonster
      14.08.2015 16:42

      У них написано что собираются выпустить код сервера, что бы можно было их использовать «для любого применения».


      1. egor_masalitin
        14.08.2015 16:47

        Да, но я говорю про подход в целом, сейчас фактически нет способа бесплатно играть с другими людьми, даже триала.


        1. Vinchi
          15.08.2015 09:07

          Система добровольного триала была бы лучше — чем лучше то? Вы триалите, пишете код, вам надоедает, и все, и где деньги?
          Написано же берут деньги за мощности. И никаких преимуществ я не вижу если все платят и так. Преимущества у того, кто написал код лучше.


    1. artch
      14.08.2015 16:53

      Вы в начале говорите что все зависит не от времени, потраченного на игру, а от интелекта, но в то же время, тот, кто больше платит, имеет большее преимущество.
      Не совсем так, об этом тут написано support.screeps.com/hc/en-us/articles/203914932-How-CPU-Credits-and-limits-work


      1. egor_masalitin
        14.08.2015 16:56

        Я сейчас в частности имею ввиду допустим ситуацию, что человек, который вложил достаточное количество средств — сможет играть без ограничений для себя и сколько угодно дней, а мне, допустим, хватит даже при всех оптимизациях, на месяц, но я не хочу платить каждый месяц 10$ за игру. За эти же деньги можно арендовать вполне приличный VPS. Но опять же, это сугубо мое субъективное мнение. Вполне допускаю, что другие так не считают.


        1. allebedev
          14.08.2015 18:03
          -1

          Ну вот опять, стоит кому-то сделать что-то стоящее, так обязательно кто-то вылезет с брюзжанием «хочу все на халяву». Вы не отдаете себе отчет, что из-за таких любителей побрюзжать в конечном итоге в нашей стране все так туго с инновациями? Не нравится концепция проекта — проходите мимо. Если вам нравится система добровольного доната — заплатите автору молча, а не разглагольствуйте об этом. Сначала попробуйте сами прожить на заработок по такой схеме, потом поделитесь опытом.

          Ну то есть в теории я в чем-то с вами согласен, концепция «добровольного доната» выглядит приятнее. Но только начинать надо с другого конца. Сначала должно появиться достаточное количество людей, готовых добровольно донатить, чтобы можно было окупить хотя бы затраты на разработку, а потом уже можно было бы внедрять такую схему. Идите и агитируйте их.


          1. dobriykot
            14.08.2015 18:57

            Мне нравится концепция, давно следил за проектом, но теперь играть не буду. Потому что 10 долларов слишком высокая цена за браузерную игру. На эти деньги можно выбрать любую «большую» mmo.


            1. artch
              14.08.2015 19:08

              Вполне комфортно играть можно и за $5 в месяц.


              1. zharikovpro
                14.08.2015 20:13

                За 5$ в месяц можно «играть» в огромное количество «игр» на своем VPS от Digital Ocean, без таких жестких ограничений и с бОльшей пользой. Вывод — даже 5$ это дороговато при подобной альтернативе.


                1. artch
                  14.08.2015 20:37
                  +3

                  Обратите внимание на эту фразу в статье:

                  В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
                  Таким образом, вы сможете иметь свой VPS, интегрировать его со Screeps, и выполнять на нем игровой просчет, не покупая серверное время в игре.


                  1. egor_masalitin
                    14.08.2015 22:20
                    +1

                    Это по настоящему хорошая идея, значит также можно будет строить на своих VPS возможность регистрации и выполнения всех команд на ней, буду ждать. Спасибо вам.


            1. allebedev
              14.08.2015 22:04

              Сожалею, если у вас все так туго с финансами. Однако ваше утверждение по сути похоже на «10 долларов — слишком высокая цена за книгу. На эти деньги можно купить 3 бутылки водки!». Сравнивать этот проект с обычными играми глупо.


              1. dobriykot
                15.08.2015 22:17

                С чего вы взяли что у меня туго с финансами? Я говорю лишь о том, что то что я сейчас вижу никак не стоит десяти долларов в месяц. Ну и система доната (максимум 10 долларов в день, как я понял) убивает интерес, потому что вливающих деньги в игру будет трудно догнать.


                1. artch
                  15.08.2015 23:14

                  Максимум $25 в месяц, а не $10 в день.

                  От «влитых» денег не зависит скорость игрового прогресса, а просто несколько уменьшается необходимость оптимизации скриптов для экономии CPU.


          1. egor_masalitin
            14.08.2015 20:25

            Вы меня неправильно поняли, я немного о другом, почему нельзя допустим ввести систему 5$ — одна комната? Без такой жесткой привязки.


            1. artch
              14.08.2015 20:35

              Как раз именно это и будет прямая оплата игровых преимуществ, чистый pay-to-win. Больше платите, больше комнат, лучше игровое развитие. Сейчас же оплачивается более честный первичный ресурс — игровое время.


              1. egor_masalitin
                14.08.2015 22:22

                Простите, я видимо не так понял, под комнатой я имел ввиду аккаунт, имелось ввиду что вроде как покупаешь игру, или допустим 10 в год, хотя может так туго с финансами только у меня:)


                1. Vinchi
                  15.08.2015 09:10
                  +2

                  Видимо у вас реально туго с финансами. Идите пишите программы за деньги.


        1. selenite
          15.08.2015 03:36
          -1

          просто js-разработчики признали кошмарную тормознутость своей платформы в вычислительно тяжелых задачах — не один сервер это «съест»…


    1. mrpsycho
      14.08.2015 17:27

      сервера бесплатные… наверное можно придумать архитектуру, где оплата будет выделение своих мощностей.
      те, хочешь играть — выдели процессор, рам и хдд.

      для такой штуки это самое оно.


      1. zharikovpro
        14.08.2015 20:15
        +1

        Можно еще дальше пойти при другой модели. Например, игрок вносит на счет 10$, за которые покупает начальный ресурсы (какой-то минимум). И далее ресурсы можно отвоевывать у других игроков)))


        1. artch
          14.08.2015 20:36

          Да, у нас есть определенные мысли на этот счет. Возможно, реализуем в ближайшем будущем.


  1. sba
    14.08.2015 16:18

    Account credentials are invalid

    Пилили пилили да видимо не допилили. Получаю это сообщение при попытке логина. Естественно перед этим подтвердил адрес электронной почты. Почта подтвердилась без ошибок.


    1. Goodkat
      14.08.2015 16:53
      +1

      Да у них везде там:

      500 Internal Server Error

      nginx/1.6.2


    1. artch
      14.08.2015 19:19

      Ошибка исправлена. Попробуйте, пожалуйста, сейчас.


  1. Reposlav
    14.08.2015 16:28
    +8

    Круто, игра для ботоводов. Буду надеяться, что все ботоводы перейдут в нее из других игр


  1. Goodkat
    14.08.2015 17:02

    Why not go with a flat subscription rate equal for all to make it absolutely honest?

    In short: because it will not work.

    Screeps has an open shared world. Each player is free to choose his or her place to live and develop. Because of this, had we a flat subscription rate, any player could easily register several fake accounts to play side-by-side in alliance and thus get the same increase of the total CPU used by this player, which would be impossible to track. In fact, a very unique aspect of this game is that it is about programming where account activity is totally automatic. The only thing that differentiates accounts from each other is game scripts, but scripts can be obfuscated with the help of different algorithms which makes them impossible to compare. Alas, introducing a single CPU rate leads not to more honesty but to more abuse.


    Какое-то невнятное объяснение. Что мешает пользователю создать «several fake accounts to play side-by-side» и оплачивать их по текущей схеме?


    1. Azilot
      14.08.2015 18:27
      +1

      Возможно то, что нет смысла объединять 2 стратегии по 100 мс, если можно просто купить одну на 200.
      Хотя это конечно не мешает заплатить по максимуму за 2 стратегии и объединить их.


  1. vsb
    14.08.2015 19:04

    В туториал сыграл, ничего не понял. Какая цель игры, какие средства. Есть ли улучшения, исследования. Почитаю документацию на досуге. Выглядит интересно, хотя реализация, конечно, ой, ошибки и недоделки на каждом шагу, ну это дело поправимое.


    1. artch
      14.08.2015 19:10

      Цель игры — контроль над территорией. Средства как в любой стратегии — военные, экономические, дипломатические.

      ошибки и недоделки на каждом шагу
      Пожалуйста, помните о том, что проект только запустился. Об ошибках и недоделках нам будет очень интересно услышать на contact@screeps.com.


  1. saggid
    14.08.2015 19:11
    +4

    Сидеть и снова заниматься написанием кучи кода тогда, когда ты наконец можешь отдохнуть от своей основной деятельности — неужели это действительно то, чем хочется заниматься программисту?) Особенно когда ты всю неделю надрывал свой мозг в стремлении написать все наилучшим образом в своём основном рабочем проекте.

    Лучше я всё-таки в ралли своё погоняю, или с сыном поиграюсь) Яваскрипта мне и на работе как-то хватает))


    1. AMDmi3
      14.08.2015 20:28
      +2

      Просто есть люди которые любят своё ремесло.


      1. egor_masalitin
        14.08.2015 20:29
        +5

        Если ты хочешь отдохнуть от работы — не значит, что ты не любишь свое ремесло.


    1. arvitaly
      14.08.2015 23:44
      +1

      Кстати, у меня есть некий programmer-hack. Если устаю от самого программирования, а не от предметной области, значит я чересчур увлекся абстракциями, фабриками фабрик и преждевременными оптимизациями.
      В целом, в Screeps намного важнее стратегия, чем программирование, это все же игра, просто с более удобным интерфейсом для программистов.


  1. stepik777
    14.08.2015 22:08

    Лучше бы всё-таки сделали возможность играть вручную, чтобы проще было разобраться в самой игре.


    1. artch
      14.08.2015 23:02

      В симуляции есть режим Custom Mode, там можно ставить любые объекты и экспериментировать с ними.


  1. Fedot
    15.08.2015 11:50
    +1

    Интересная мысль, но моё избалованное IDE сознание отказывается понимать как разбираться с API если даже в консоле нет никакого дополнения кода.
    Если бы была удобная среда разработки скриптов, мне кажется игра нашла бы значительно больше отклика у людей. Сейчас же что бы написать простой скрипт, нужно смотреть документацию. По моему это многих оттолкнёт, на первых парах как минимум. Что собственно и произошло со мной.
    Хотя в целом идея мне понравилась.


    1. Stalker_RED
      15.08.2015 17:27

      Насколько я понял, есть возможность использовать сторонние IDE.


    1. artch
      15.08.2015 20:39
      +2

      Посмотрите в сторону ScreepsAutocomplete, с ним довольно просто можно настроить свою любимую IDE.


      1. Fedot
        17.08.2015 00:42

        Это то что нужно, спасибо!


  1. Spin7ion
    15.08.2015 14:24

    А вот интересно услышать про внутренности игры. Часть сайта это PHP (проскакивает в URL), а вот симуляция на сервере как сделана?


    1. artch
      15.08.2015 20:40
      +1

      PHP нет вообще. Все работает на io.js, на клиенте AngularJS.


  1. BoShurik
    15.08.2015 15:01

    А есть/планируется интеграция с git? Было бы неплохо привязывать репозиторий к аккаунту, чтобы все скрипты брались от туда.


    1. artch
      15.08.2015 20:41
      +1

      Есть возможность настроить автоматический pull скриптов из репозитория на GitHub.


  1. KyberPrizrak
    17.08.2015 15:13
    +1

    В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
    Скажите, а когда это планируется?
    Просто хочется писать на «родном» языке, и без ограничений на CPU (есть большое желание поиграться с нейронными сетями).


    1. artch
      19.08.2015 22:23

      Через пару месяцев, думаю.


      1. edeldm
        20.08.2015 13:54
        +1

        Дайте 150 CPU в месяц = 5мс ЦПУ за такт в день.
        Стимулируйте таланты!!!
        Не каждый школьник готов выложить 300р в месяц * 12 = 3600руб в год за «игру».

        Вы получите популярность и заработаете больше $ за счет количества игроков!

        Как только игрок войдет в «раш», ему просто нужны будут CPU для контроля своей орды, тогда и получите свои $,
        но сначала «прочувствовать» игру просто необходимо за Free CPU Per Month.