Читайте также

30 комментариев

avatar
Интересная идея)
  • Kaizer
  • 0
  • v
avatar
Ага, особенно детей можно завлекать так изучать программирование)
avatar
Вряд ли… Чтобы завлекать детей, придется ГТА или КоД в таком формате делать =)))
avatar
отдам пред-заказ классика ))
avatar
Интересно, самостоятельно эволюционирующие скрипы быстро появятся? :)
Комментарий отредактирован 2014-11-12 15:51:36 пользователем Andre
  • Andre
  • 0
  • v
avatar
На сколько я понимаю, сложность скрипта ограничена сверху по объему занимаемой памяти и времени исполнения, так что скорее всего есть определенный лимит «разумности» стратегии, которую можно в этот скрипт запихнуть.
К сожалению, с яваскриптом я знаком весьма поверхностно, так что для начала мне нужно подучить язык :)
avatar
С учетом того, что окружение там игровое, то и учить мало что нужно. Си-подобный по синтаксису, но слабо-типизированный и с кучей злобных антиинтуитивных хаков. ;) Которые, правда, можно и не использовать. :)
avatar
Для «подучить язык»: Untrusted.
avatar
Если они хотят сделать из этого ММО, им надо придумать механизм, который не позволит одному игроку захватить все. Игра сразу же потеряет смысл. :)
avatar
А на это ограниченный размер и время скрипта не будут работать.
Скушавший слишком много скрипт просто не успеет по таймеру раздать команды всем.
avatar
Вопрос в реализации. Центральные районы можно и не просчитывать. Совершенно не факт, что ограничение на скрипт здесь поможет.
avatar
Чего-то не хватает для ММО. Способы взаимодействия между игроками и их «колониями умных роботов»? (кроме лобового уничтожения).
avatar
Я полагаю, что ММОшность, как это принято в последнее время, сильно притянута за уши просто потому, что это — модно и звучит круто.
С другой стороны, это однозначно не МОБА. И не «обычная» сетевая стратегия, т.к. тут количество игроков «как бы» не ограничено — мир расширяется при добавлении новых игроков. На сколько это будет «массивно» в реальности — посмотрим, но из опыта Травиана, который тут похоже применим, взаимодействие происходит минимум с десятком соседей, дальше начинаются проблемы «ожидания», хотя это и не исключает полностью возможность «прихода гостей» с другого края карты.
Исходя из одного только описания — вы правы, никакого иного взаимодействия между игроками и их колониями в рамках собственно игры (пока?) не предусмотрено.

И отвечая Рыжебороду: я полагаю, проблема захвата всего решена чисто логистически, как и в Травиане. Т.е. один игрок просто не сможет поддерживать темпы экспансии неограниченно, раньше или позже он столкнется с невозможностью «подвозить скрипов» из центра к границам достаточно быстро, чтобы компенсировать их убыль в постоянных терках. Кроме того, я пока слабо себе представляю скрипт конечного размера, в принципе способный к успешной неограниченной экспансии.
Комментарий отредактирован 2014-11-12 17:07:10 пользователем Avicorn
avatar
срипт может решать локальные задачи. А количество спавнов ограничено тремя на комнату, а не вообще. Соответственно, спавны могут быть и на передовой. В любом случае, будет интересно понаблюдать. Про режим наблюдателя ничего не слышно?
avatar
Информации очень мало, например только в комментариях из разработчиков вытянули что режим доступа — подписка.
avatar
+1 в карму разработчикам за p2p.
avatar
Да, но это значит, что «потрогать» не получится.
avatar
Потрогать можно будет соло версию, плату он собирается брать от использованного cpu
avatar
вышла демка.
з.ы. где ошибка? :)

<code>if(creep.memory.role == 'healer') {
	for(var heal_name in Game.creeps) {
	var heal_creep = Game.creeps[heal_name];
	if(heal_creep.hits < heal_creep.hitsMax){
	    creep.moveTo(heal_creep);
        creep.heal(heal_creep);	}
	else 
	    creep.moveTo(Game.spawns.Spawn1);
    }</code>
делал по типу гуарда из туториала. но видимо что-то сделал не так.
консоль говорит syntax error
Комментарий отредактирован 2014-11-21 13:13:06 пользователем kpu3uc
  • kpu3uc
  • 0
  • v
avatar
Насколько я вижу — три открывающих фигурных скобки и две закрывающих.
avatar
закрывающая тоже ничего не поменяла.
avatar
остальное только если в логике.
хотя, из разряда глупых предположений — надеюсь тэгов code нет в итоговом коде :)

я себе скопировал и добавил в самом конце одну закрывающую фигурную — никаких ошибок в консоли.
Комментарий отредактирован 2014-11-21 14:02:00 пользователем Shauni
avatar
нету коде…
даже не знаю…

var harvester = require('harvester');

for(var name in Game.creeps) {
var creep = Game.creeps[name];
if(creep.memory.role == 'guard') {
var targets = creep.room.find(Game.HOSTILE_CREEPS);
if(targets.length) {
creep.moveTo(targets[0]);
creep.attack(targets[0]);
}
else
creep.moveTo(Game.spawns.Spawn1);
}
if(creep.memory.role == 'harvester') {
harvester(creep);
}
if(creep.memory.role == 'healer') {
for(var heal_name in Game.creeps) {
var heal_creep = Game.creeps[heal_name];
if(heal_creep.hits < heal_creep.hitsMax){
creep.moveTo(heal_creep);
creep.heal(heal_creep); }
else
creep.moveTo(Game.spawns.Spawn1);
}
}
if(creep.memory.role == 'builder') {
if(creep.energy == 0) {
creep.moveTo(Game.spawns.Spawn1);
Game.spawns.Spawn1.transferEnergy(creep);
}
else {
var targets = creep.room.find(Game.CONSTRUCTION_SITES);
if(targets.length) {
creep.moveTo(targets[0]);
creep.build(targets[0]);
}
}
}
}
avatar
Вообще странно. Сделал тоже хилера. Синтаксических ошибок нет, но не могу сэмулировать ситуацию для хила — сбрасываю хиты в консоли для харвестера, там все ок, но в скрипте почему-то показывает, что хиты полные.
avatar
Ок, скопипастил к себе — редактор показывает две ошибки:
for(var name in Game.creeps) — переопределение name, лучше использовать другое название для переменной, например, creepName,
if(creep.energy == 0) — сравнение с нулем рекомендуют делать тройным равно ===

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

А еще такое подозрение, что в обучалке хиты у крипов восстанавливаются с каждым тиком — я пока не поставил в коде явно в самом начале задание хитов у крипа — хил даже не дергался.
avatar
м, значит неправильно задал, я хотел перебирать всех крипов и если у него не полное хп — похилить.
если нет скрипов с неполным хп — идти на базу.
avatar
ну там как — все операции асинхронные, т.е. если мы нашли крипа с неполным хп и выполнили moveTo — то крип двинется только на одну клетку, затем отработает попытка хила (если крип еще не рядом, то хил вернет код ошибки -9 — не в зоне действия), потом цикл пойдет проверять остальных. По идее, можно еще break поставить после heal, чтобы даже не перебирать дальше, если пациент найден.
avatar
в общем, перезагрузка странички помогла — скрипт откатился назад и когда я его подправил все заработало.
добавил брейк при лечении.
457 очков, первая карта.
Комментарий отредактирован 2014-11-21 21:55:25 пользователем kpu3uc
avatar
509

Оставить комментарий