![](https://habrastorage.org/files/832/426/1e3/8324261e38e34029968f2d7f87c10283.png)
В ноябре прошлого года мы запустили краудфандинговую кампанию на Indiegogo, собранные средства с которой позволили доработать прототип до полноценного продукта. Весь июнь и июль получившие приглашение игроки тестировали версию Early Preview. И вот, теперь мы объявляем о публичном запуске этого необычного проекта. Встречайте Screeps!
Под катом небольшое описание, отзывы и технические подробности проекта.
Screeps (от слов scripts и creeps) — это онлайновая стратегическая игра в реальном времени. С точки зрения игровой механики это довольно классическая игра: есть карта, ресурсы, база, юниты, развитие и взаимодействие с другими игроками. Только вот контроль над юнитами не просто «непрямой», а целиком и полностью заключается в написании скриптов AI. Вы пишете код на полноценном JavaScript (но возможно и использование компиляторов из других языков в JavaScript, коих великое множество), который исполняется на сервере в игровом цикле, отдавая команды юнитам и строениям, и наблюдаете за происходящим в реальном времени. Единственная возможность влиять прямым образом на то, что происходит на экране — ставить флаги и назначать места строительства.
![](https://habrastorage.org/files/e99/bec/85f/e99bec85f957435fbed6b1defeb3a96e.png)
- Ваш игровой код выполняется на сервере непрерывно, даже когда вы оффлайн.
- Мир Screeps постоянный, единый для всех игроков и развивается в реальном времени, в отличие от других программистских игр, основанных на разовых матчах между игроками.
- Мир генерируется процедурно и, хотя игрокам предоставляется ограниченное пространство для заселения, оно способно бесконечно увеличиваться по мере необходимости. На данный момент сгенерировано 1600 игровых комнат.
- В игре есть режим симуляции, в котором скрипты выполняются в браузере, а не на сервере. Этот режим доступен без регистрации на сайте.
Игровые скрипты можно писать как с помощью внутриигрового редактора, так и с помощью внешних IDE, используя инструменты для коммита скриптов в игру.
- Скрипты выполняются на сервере через полноценную виртуальную машину iojs, доступны некоторые возможности ES6.
- Выполнение скрипта каждого игрока в виртуальной машине ограничено по времени, поэтому нужно думать об оптимизации.
- Каждому игроку предоставляется 2 Мб памяти для постоянного хранения произвольной JSON-структуры данных.
- В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
Еще из того, что планируется в будущем: выпуск всего игрового движка в виде отдельного npm-пакета, чтобы было возможно свободно запускать игровую симуляцию на локальной машине для любых целей.
Немного отзывов:
@ScreepsGame is the best MMO for programmers out there! Ever dreamt to drive your personal army and minions... in JavaScript?!
— Niccolo Maggioni (@nmaggioni1) 1 июня 2015
I predict http://t.co/h8LW33FFKK to be the next big thing in the world of games.
— Adriaan (@AdriaandeJongh) 21 ноября 2014
@ScreepsGame is the most engrossing thing ever. Even once I'm too tired to code, I don't want to stop watching my creeps and go to bed.
— topologist (@crash_restraint) 2 июня 2015
Apparently I'm the kind of person to not only play a programming game, but to write unit tests for my code #Screeps
— josh (@KingJoffman) 10 декабря 2014
Just found http://t.co/wD5q30R7Fw. Yes, that's exactly what I want. For a persistent army to be reliant on my coding skills. Hahaha.
— Matt Chelen (@adag_dot_me) 11 августа 2015
I've always wanted a game to play in which I didn't need to do any work, I now found it @ScreepsGame
— Chris Kleban (@kleban) 10 Март 2015
If you're a programmer, and you like games, you NEED to check out @ScreepsGame at http://t.co/De7t7u564G
— Timendainum (@Timendainum) 12 декабря 2014
Модель оплаты игры подписочная, игрок оплачивает время CPU для выполнения своих скриптов. В скором времени станет доступно специальное Twitter Promo, с помощью которого раз в месяц можно будет бесплатно получить кредиты CPU для минимально необходимого лимита серверных ресурсов.
Ссылки по теме:
- Заглавная страница
- Пошаговый туториал по игре (не требует регистрации), здесь же режим симуляции
- Документация, описание игры и API, комьюнити-форум
- Подробнее об оплате
Хорошей всем пятницы!
Комментарии (62)
egor_masalitin
14.08.2015 16:17+7Правда, мне нравится идея, мне нравится дизайн, все красиво и мило. Но слишком жесткая система с оплатой. Плюс слишком сильные ограничения на скрипты. Я был бы счастлив, будь эта игра open-source, что бы любой мог модифицировать, и что бы были полностью бесплатные сервера. Это лично мое мнение. Да, я понимаю, что любая работа должна быть оплаченной, но я думаю система добровольного доната (без плюшек за это в реальной игре), была бы лучше. Это лично мое мнение. Вы в начале говорите что все зависит не от времени, потраченного на игру, а от интелекта, но в то же время, тот, кто больше платит, имеет большее преимущество.
И все вроде бы и нравится, и документация, и идея, но лично я никогда не любил игры, в которых мне нужно каждый месяц платить за возможность играть.4dmonster
14.08.2015 16:42У них написано что собираются выпустить код сервера, что бы можно было их использовать «для любого применения».
egor_masalitin
14.08.2015 16:47Да, но я говорю про подход в целом, сейчас фактически нет способа бесплатно играть с другими людьми, даже триала.
Vinchi
15.08.2015 09:07Система добровольного триала была бы лучше — чем лучше то? Вы триалите, пишете код, вам надоедает, и все, и где деньги?
Написано же берут деньги за мощности. И никаких преимуществ я не вижу если все платят и так. Преимущества у того, кто написал код лучше.
artch
14.08.2015 16:53Вы в начале говорите что все зависит не от времени, потраченного на игру, а от интелекта, но в то же время, тот, кто больше платит, имеет большее преимущество.
Не совсем так, об этом тут написано support.screeps.com/hc/en-us/articles/203914932-How-CPU-Credits-and-limits-workegor_masalitin
14.08.2015 16:56Я сейчас в частности имею ввиду допустим ситуацию, что человек, который вложил достаточное количество средств — сможет играть без ограничений для себя и сколько угодно дней, а мне, допустим, хватит даже при всех оптимизациях, на месяц, но я не хочу платить каждый месяц 10$ за игру. За эти же деньги можно арендовать вполне приличный VPS. Но опять же, это сугубо мое субъективное мнение. Вполне допускаю, что другие так не считают.
allebedev
14.08.2015 18:03-1Ну вот опять, стоит кому-то сделать что-то стоящее, так обязательно кто-то вылезет с брюзжанием «хочу все на халяву». Вы не отдаете себе отчет, что из-за таких любителей побрюзжать в конечном итоге в нашей стране все так туго с инновациями? Не нравится концепция проекта — проходите мимо. Если вам нравится система добровольного доната — заплатите автору молча, а не разглагольствуйте об этом. Сначала попробуйте сами прожить на заработок по такой схеме, потом поделитесь опытом.
Ну то есть в теории я в чем-то с вами согласен, концепция «добровольного доната» выглядит приятнее. Но только начинать надо с другого конца. Сначала должно появиться достаточное количество людей, готовых добровольно донатить, чтобы можно было окупить хотя бы затраты на разработку, а потом уже можно было бы внедрять такую схему. Идите и агитируйте их.dobriykot
14.08.2015 18:57Мне нравится концепция, давно следил за проектом, но теперь играть не буду. Потому что 10 долларов слишком высокая цена за браузерную игру. На эти деньги можно выбрать любую «большую» mmo.
artch
14.08.2015 19:08Вполне комфортно играть можно и за $5 в месяц.
zharikovpro
14.08.2015 20:13За 5$ в месяц можно «играть» в огромное количество «игр» на своем VPS от Digital Ocean, без таких жестких ограничений и с бОльшей пользой. Вывод — даже 5$ это дороговато при подобной альтернативе.
artch
14.08.2015 20:37+3Обратите внимание на эту фразу в статье:
В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
Таким образом, вы сможете иметь свой VPS, интегрировать его со Screeps, и выполнять на нем игровой просчет, не покупая серверное время в игре.egor_masalitin
14.08.2015 22:20+1Это по настоящему хорошая идея, значит также можно будет строить на своих VPS возможность регистрации и выполнения всех команд на ней, буду ждать. Спасибо вам.
allebedev
14.08.2015 22:04Сожалею, если у вас все так туго с финансами. Однако ваше утверждение по сути похоже на «10 долларов — слишком высокая цена за книгу. На эти деньги можно купить 3 бутылки водки!». Сравнивать этот проект с обычными играми глупо.
dobriykot
15.08.2015 22:17С чего вы взяли что у меня туго с финансами? Я говорю лишь о том, что то что я сейчас вижу никак не стоит десяти долларов в месяц. Ну и система доната (максимум 10 долларов в день, как я понял) убивает интерес, потому что вливающих деньги в игру будет трудно догнать.
artch
15.08.2015 23:14Максимум $25 в месяц, а не $10 в день.
От «влитых» денег не зависит скорость игрового прогресса, а просто несколько уменьшается необходимость оптимизации скриптов для экономии CPU.
egor_masalitin
14.08.2015 20:25Вы меня неправильно поняли, я немного о другом, почему нельзя допустим ввести систему 5$ — одна комната? Без такой жесткой привязки.
artch
14.08.2015 20:35Как раз именно это и будет прямая оплата игровых преимуществ, чистый pay-to-win. Больше платите, больше комнат, лучше игровое развитие. Сейчас же оплачивается более честный первичный ресурс — игровое время.
egor_masalitin
14.08.2015 22:22Простите, я видимо не так понял, под комнатой я имел ввиду аккаунт, имелось ввиду что вроде как покупаешь игру, или допустим 10 в год, хотя может так туго с финансами только у меня:)
selenite
15.08.2015 03:36-1просто js-разработчики признали кошмарную тормознутость своей платформы в вычислительно тяжелых задачах — не один сервер это «съест»…
mrpsycho
14.08.2015 17:27сервера бесплатные… наверное можно придумать архитектуру, где оплата будет выделение своих мощностей.
те, хочешь играть — выдели процессор, рам и хдд.
для такой штуки это самое оно.zharikovpro
14.08.2015 20:15+1Можно еще дальше пойти при другой модели. Например, игрок вносит на счет 10$, за которые покупает начальный ресурсы (какой-то минимум). И далее ресурсы можно отвоевывать у других игроков)))
artch
14.08.2015 20:36Да, у нас есть определенные мысли на этот счет. Возможно, реализуем в ближайшем будущем.
sba
14.08.2015 16:18Account credentials are invalid
Пилили пилили да видимо не допилили. Получаю это сообщение при попытке логина. Естественно перед этим подтвердил адрес электронной почты. Почта подтвердилась без ошибок.
Reposlav
14.08.2015 16:28+8Круто, игра для ботоводов. Буду надеяться, что все ботоводы перейдут в нее из других игр
Goodkat
14.08.2015 17:02Why 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» и оплачивать их по текущей схеме?Azilot
14.08.2015 18:27+1Возможно то, что нет смысла объединять 2 стратегии по 100 мс, если можно просто купить одну на 200.
Хотя это конечно не мешает заплатить по максимуму за 2 стратегии и объединить их.
vsb
14.08.2015 19:04В туториал сыграл, ничего не понял. Какая цель игры, какие средства. Есть ли улучшения, исследования. Почитаю документацию на досуге. Выглядит интересно, хотя реализация, конечно, ой, ошибки и недоделки на каждом шагу, ну это дело поправимое.
artch
14.08.2015 19:10Цель игры — контроль над территорией. Средства как в любой стратегии — военные, экономические, дипломатические.
ошибки и недоделки на каждом шагу
Пожалуйста, помните о том, что проект только запустился. Об ошибках и недоделках нам будет очень интересно услышать на contact@screeps.com.
saggid
14.08.2015 19:11+4Сидеть и снова заниматься написанием кучи кода тогда, когда ты наконец можешь отдохнуть от своей основной деятельности — неужели это действительно то, чем хочется заниматься программисту?) Особенно когда ты всю неделю надрывал свой мозг в стремлении написать все наилучшим образом в своём основном рабочем проекте.
Лучше я всё-таки в ралли своё погоняю, или с сыном поиграюсь) Яваскрипта мне и на работе как-то хватает))AMDmi3
14.08.2015 20:28+2Просто есть люди которые любят своё ремесло.
egor_masalitin
14.08.2015 20:29+5Если ты хочешь отдохнуть от работы — не значит, что ты не любишь свое ремесло.
arvitaly
14.08.2015 23:44+1Кстати, у меня есть некий programmer-hack. Если устаю от самого программирования, а не от предметной области, значит я чересчур увлекся абстракциями, фабриками фабрик и преждевременными оптимизациями.
В целом, в Screeps намного важнее стратегия, чем программирование, это все же игра, просто с более удобным интерфейсом для программистов.
Fedot
15.08.2015 11:50+1Интересная мысль, но моё избалованное IDE сознание отказывается понимать как разбираться с API если даже в консоле нет никакого дополнения кода.
Если бы была удобная среда разработки скриптов, мне кажется игра нашла бы значительно больше отклика у людей. Сейчас же что бы написать простой скрипт, нужно смотреть документацию. По моему это многих оттолкнёт, на первых парах как минимум. Что собственно и произошло со мной.
Хотя в целом идея мне понравилась.artch
15.08.2015 20:39+2Посмотрите в сторону ScreepsAutocomplete, с ним довольно просто можно настроить свою любимую IDE.
KyberPrizrak
17.08.2015 15:13+1В будущем планируется клиент-серверное API для подключения в просчет игровой ситуации своих собственных серверов на любом языке.
Скажите, а когда это планируется?
Просто хочется писать на «родном» языке, и без ограничений на CPU (есть большое желание поиграться с нейронными сетями).artch
19.08.2015 22:23Через пару месяцев, думаю.
edeldm
20.08.2015 13:54+1Дайте 150 CPU в месяц = 5мс ЦПУ за такт в день.
Стимулируйте таланты!!!
Не каждый школьник готов выложить 300р в месяц * 12 = 3600руб в год за «игру».
Вы получите популярность и заработаете больше $ за счет количества игроков!
Как только игрок войдет в «раш», ему просто нужны будут CPU для контроля своей орды, тогда и получите свои $,
но сначала «прочувствовать» игру просто необходимо за Free CPU Per Month.
marenkov
Платить за возможность писать скрипты? Кажется я что-то пропустил.
Coffin
Вы пропустили современную модель мира выкачивания бабла за каждый пук :)
halyavin
Вы наверняка пропустили игру Colobot. Жаль, что её идея не нашла продолжения. Хотя вот сейчас прочитал, что ее выложили под GPL.
en.wikipedia.org/wiki/Colobot
Rondo
Отличная игра, жаль, что нельзя было в реал-тайм отслеживать показатели — данные обновлялись пару раз в секунду, что было недостаточно для каких-то точных движений, приходилось угадывать, сколько займет то или иное действие, и какая будет задержка получения состояний, иначе запаздывание превращало запланированные движения в какую-то ерунду — пока измерял расстояние и угол, пока изменял мощность двигателя, уже всё пять раз изменилось. Можно было на основе эмпирических данных о задержках довольно неплохо игнорировать такие изменения, которые просто не успеваешь обработать, но это всё равно не то.
v673
К слову, писал статью как-то о ней:
v673.com/programmers-games/colobot-and-ceebot
И еще ряд моих статей по играм для программистов:
v673.com/category/programmers-games
DanielVartanov
Я так её обажал, что сел и начал писать свою. Тоже с добычей ресурсами, ботами, батареями и прочим. Только опен-сорсную и бесплатную, в отличие от авторов игры в топике :)
Dr_XaoS
А я два раза садился писать. На второй даже что-то вменяемое вышло — github.com/drxaos/robocoder
halyavin
Много раз думал об этом, но меня всегда отпугивала идея программировать 3d физику. Однако, теперь куча профессиональных движков бесплатны для некоммерческого использования, так что сейчас реализовать идею должно быть на много легче. Инди-игра Kerbal Space Program уже делает почти всё, что нужно для колобота.
DanielVartanov
Я тоже много думал над физикой и 3d-графикой. В итоге оказалось, что плоского мира и rogue-like графики хватает для любого фана. На деле трёхмерность Colobot'а усложняет пользовательские алгоритмы, делает чрезвычайно сложным боевое взаимодействие нескольких роботов.
KyberPrizrak
Скорее это логическое продолжение Ants AI Challenge. На хабре есть десяток статей про данное мероприятие.
artch
zharikovpro
Вопрос в том, с кого проще собрать оплату. Да еще так, чтобы это пошло проекту развиваться. Например, платить могут компании за хантинг талантливых специалистов с помощью этой площадки.
egor_masalitin
Простите, но моя малинка за 15$(не в месяц) может выполнять их гораздо быстрее
AndersonDunai
Дадите мне и еще нескольким тысячам дюдей позапускать на ней что-то бесплатно?