Запущена первая в мире ММО-стратегия для программистов

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

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



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

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

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

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

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








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

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


    Хорошей всем пятницы!
    Поделиться публикацией

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

      +37
      Платить за возможность писать скрипты? Кажется я что-то пропустил.
        +22
        Вы пропустили современную модель мира выкачивания бабла за каждый пук :)
          +4
          Вы наверняка пропустили игру Colobot. Жаль, что её идея не нашла продолжения. Хотя вот сейчас прочитал, что ее выложили под GPL.

          en.wikipedia.org/wiki/Colobot
            +1
            Отличная игра, жаль, что нельзя было в реал-тайм отслеживать показатели — данные обновлялись пару раз в секунду, что было недостаточно для каких-то точных движений, приходилось угадывать, сколько займет то или иное действие, и какая будет задержка получения состояний, иначе запаздывание превращало запланированные движения в какую-то ерунду — пока измерял расстояние и угол, пока изменял мощность двигателя, уже всё пять раз изменилось. Можно было на основе эмпирических данных о задержках довольно неплохо игнорировать такие изменения, которые просто не успеваешь обработать, но это всё равно не то.
              +1
              К слову, писал статью как-то о ней:
              v673.com/programmers-games/colobot-and-ceebot

              И еще ряд моих статей по играм для программистов:
              v673.com/category/programmers-games
                +1
                Я так её обажал, что сел и начал писать свою. Тоже с добычей ресурсами, ботами, батареями и прочим. Только опен-сорсную и бесплатную, в отличие от авторов игры в топике :)

                  0
                  А я два раза садился писать. На второй даже что-то вменяемое вышло — github.com/drxaos/robocoder
                    0
                    Много раз думал об этом, но меня всегда отпугивала идея программировать 3d физику. Однако, теперь куча профессиональных движков бесплатны для некоммерческого использования, так что сейчас реализовать идею должно быть на много легче. Инди-игра Kerbal Space Program уже делает почти всё, что нужно для колобота.
                      0
                      Я тоже много думал над физикой и 3d-графикой. В итоге оказалось, что плоского мира и rogue-like графики хватает для любого фана. На деле трёхмерность Colobot'а усложняет пользовательские алгоритмы, делает чрезвычайно сложным боевое взаимодействие нескольких роботов.
                    0
                    Скорее это логическое продолжение Ants AI Challenge. На хабре есть десяток статей про данное мероприятие.
                    +2
                    Платить за возможность писать скрипты?
                    Платить за то, чтобы ваши скрипты выполнялись на игровом сервере раз в секунду нон-стоп 24/7.
                      0
                      Вопрос в том, с кого проще собрать оплату. Да еще так, чтобы это пошло проекту развиваться. Например, платить могут компании за хантинг талантливых специалистов с помощью этой площадки.
                        –3
                        раз в секунду нон-стоп 24/7.

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

                      И все вроде бы и нравится, и документация, и идея, но лично я никогда не любил игры, в которых мне нужно каждый месяц платить за возможность играть.
                        0
                        У них написано что собираются выпустить код сервера, что бы можно было их использовать «для любого применения».
                          0
                          Да, но я говорю про подход в целом, сейчас фактически нет способа бесплатно играть с другими людьми, даже триала.
                            0
                            Система добровольного триала была бы лучше — чем лучше то? Вы триалите, пишете код, вам надоедает, и все, и где деньги?
                            Написано же берут деньги за мощности. И никаких преимуществ я не вижу если все платят и так. Преимущества у того, кто написал код лучше.
                          0
                          Вы в начале говорите что все зависит не от времени, потраченного на игру, а от интелекта, но в то же время, тот, кто больше платит, имеет большее преимущество.
                          Не совсем так, об этом тут написано support.screeps.com/hc/en-us/articles/203914932-How-CPU-Credits-and-limits-work
                            0
                            Я сейчас в частности имею ввиду допустим ситуацию, что человек, который вложил достаточное количество средств — сможет играть без ограничений для себя и сколько угодно дней, а мне, допустим, хватит даже при всех оптимизациях, на месяц, но я не хочу платить каждый месяц 10$ за игру. За эти же деньги можно арендовать вполне приличный VPS. Но опять же, это сугубо мое субъективное мнение. Вполне допускаю, что другие так не считают.
                              –1
                              Ну вот опять, стоит кому-то сделать что-то стоящее, так обязательно кто-то вылезет с брюзжанием «хочу все на халяву». Вы не отдаете себе отчет, что из-за таких любителей побрюзжать в конечном итоге в нашей стране все так туго с инновациями? Не нравится концепция проекта — проходите мимо. Если вам нравится система добровольного доната — заплатите автору молча, а не разглагольствуйте об этом. Сначала попробуйте сами прожить на заработок по такой схеме, потом поделитесь опытом.

                              Ну то есть в теории я в чем-то с вами согласен, концепция «добровольного доната» выглядит приятнее. Но только начинать надо с другого конца. Сначала должно появиться достаточное количество людей, готовых добровольно донатить, чтобы можно было окупить хотя бы затраты на разработку, а потом уже можно было бы внедрять такую схему. Идите и агитируйте их.
                                0
                                Мне нравится концепция, давно следил за проектом, но теперь играть не буду. Потому что 10 долларов слишком высокая цена за браузерную игру. На эти деньги можно выбрать любую «большую» mmo.
                                  0
                                  Вполне комфортно играть можно и за $5 в месяц.
                                    0
                                    За 5$ в месяц можно «играть» в огромное количество «игр» на своем VPS от Digital Ocean, без таких жестких ограничений и с бОльшей пользой. Вывод — даже 5$ это дороговато при подобной альтернативе.
                                      +3
                                      Обратите внимание на эту фразу в статье:
                                      В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
                                      Таким образом, вы сможете иметь свой VPS, интегрировать его со Screeps, и выполнять на нем игровой просчет, не покупая серверное время в игре.
                                        +1
                                        Это по настоящему хорошая идея, значит также можно будет строить на своих VPS возможность регистрации и выполнения всех команд на ней, буду ждать. Спасибо вам.
                                    0
                                    Сожалею, если у вас все так туго с финансами. Однако ваше утверждение по сути похоже на «10 долларов — слишком высокая цена за книгу. На эти деньги можно купить 3 бутылки водки!». Сравнивать этот проект с обычными играми глупо.
                                      0
                                      С чего вы взяли что у меня туго с финансами? Я говорю лишь о том, что то что я сейчас вижу никак не стоит десяти долларов в месяц. Ну и система доната (максимум 10 долларов в день, как я понял) убивает интерес, потому что вливающих деньги в игру будет трудно догнать.
                                        0
                                        Максимум $25 в месяц, а не $10 в день.

                                        От «влитых» денег не зависит скорость игрового прогресса, а просто несколько уменьшается необходимость оптимизации скриптов для экономии CPU.
                                    0
                                    Вы меня неправильно поняли, я немного о другом, почему нельзя допустим ввести систему 5$ — одна комната? Без такой жесткой привязки.
                                      0
                                      Как раз именно это и будет прямая оплата игровых преимуществ, чистый pay-to-win. Больше платите, больше комнат, лучше игровое развитие. Сейчас же оплачивается более честный первичный ресурс — игровое время.
                                        0
                                        Простите, я видимо не так понял, под комнатой я имел ввиду аккаунт, имелось ввиду что вроде как покупаешь игру, или допустим 10 в год, хотя может так туго с финансами только у меня:)
                                          +2
                                          Видимо у вас реально туго с финансами. Идите пишите программы за деньги.
                                    –1
                                    просто js-разработчики признали кошмарную тормознутость своей платформы в вычислительно тяжелых задачах — не один сервер это «съест»…
                                  0
                                  сервера бесплатные… наверное можно придумать архитектуру, где оплата будет выделение своих мощностей.
                                  те, хочешь играть — выдели процессор, рам и хдд.

                                  для такой штуки это самое оно.
                                    +1
                                    Можно еще дальше пойти при другой модели. Например, игрок вносит на счет 10$, за которые покупает начальный ресурсы (какой-то минимум). И далее ресурсы можно отвоевывать у других игроков)))
                                      0
                                      Да, у нас есть определенные мысли на этот счет. Возможно, реализуем в ближайшем будущем.
                                  0
                                  Account credentials are invalid

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

                                    +1
                                    Да у них везде там:
                                    500 Internal Server Error

                                    nginx/1.6.2
                                      0
                                      Ошибка исправлена. Попробуйте, пожалуйста, сейчас.
                                      +8
                                      Круто, игра для ботоводов. Буду надеяться, что все ботоводы перейдут в нее из других игр
                                        0
                                        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
                                          Возможно то, что нет смысла объединять 2 стратегии по 100 мс, если можно просто купить одну на 200.
                                          Хотя это конечно не мешает заплатить по максимуму за 2 стратегии и объединить их.
                                          0
                                          В туториал сыграл, ничего не понял. Какая цель игры, какие средства. Есть ли улучшения, исследования. Почитаю документацию на досуге. Выглядит интересно, хотя реализация, конечно, ой, ошибки и недоделки на каждом шагу, ну это дело поправимое.
                                            0
                                            Цель игры — контроль над территорией. Средства как в любой стратегии — военные, экономические, дипломатические.

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

                                            Лучше я всё-таки в ралли своё погоняю, или с сыном поиграюсь) Яваскрипта мне и на работе как-то хватает))
                                              +2
                                              Просто есть люди которые любят своё ремесло.
                                                +5
                                                Если ты хочешь отдохнуть от работы — не значит, что ты не любишь свое ремесло.
                                                +1
                                                Кстати, у меня есть некий programmer-hack. Если устаю от самого программирования, а не от предметной области, значит я чересчур увлекся абстракциями, фабриками фабрик и преждевременными оптимизациями.
                                                В целом, в Screeps намного важнее стратегия, чем программирование, это все же игра, просто с более удобным интерфейсом для программистов.
                                                0
                                                Лучше бы всё-таки сделали возможность играть вручную, чтобы проще было разобраться в самой игре.
                                                  0
                                                  В симуляции есть режим Custom Mode, там можно ставить любые объекты и экспериментировать с ними.
                                                  +1
                                                  Интересная мысль, но моё избалованное IDE сознание отказывается понимать как разбираться с API если даже в консоле нет никакого дополнения кода.
                                                  Если бы была удобная среда разработки скриптов, мне кажется игра нашла бы значительно больше отклика у людей. Сейчас же что бы написать простой скрипт, нужно смотреть документацию. По моему это многих оттолкнёт, на первых парах как минимум. Что собственно и произошло со мной.
                                                  Хотя в целом идея мне понравилась.
                                                    0
                                                    Насколько я понял, есть возможность использовать сторонние IDE.
                                                      +2
                                                      Посмотрите в сторону ScreepsAutocomplete, с ним довольно просто можно настроить свою любимую IDE.
                                                        0
                                                        Это то что нужно, спасибо!
                                                      0
                                                      А вот интересно услышать про внутренности игры. Часть сайта это PHP (проскакивает в URL), а вот симуляция на сервере как сделана?
                                                        +1
                                                        PHP нет вообще. Все работает на io.js, на клиенте AngularJS.
                                                        0
                                                        А есть/планируется интеграция с git? Было бы неплохо привязывать репозиторий к аккаунту, чтобы все скрипты брались от туда.
                                                          +1
                                                          Есть возможность настроить автоматический pull скриптов из репозитория на GitHub.
                                                          +1
                                                          В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
                                                          Скажите, а когда это планируется?
                                                          Просто хочется писать на «родном» языке, и без ограничений на CPU (есть большое желание поиграться с нейронными сетями).
                                                            0
                                                            Через пару месяцев, думаю.
                                                              +1
                                                              Дайте 150 CPU в месяц = 5мс ЦПУ за такт в день.
                                                              Стимулируйте таланты!!!
                                                              Не каждый школьник готов выложить 300р в месяц * 12 = 3600руб в год за «игру».

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

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

                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                          Самое читаемое