Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Yuriy Al. Shirokov ([info]yushi) в [info]asymmetric
@ 2006-09-21 01:42:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Беспорядочные мысли россыпью
Итак, пошаговые тактические игры похожие есть, а вот настоящих стратегий пока ни одной не нашли. Ну что, давайте думать, как оно могло бы выглядеть.

Какие, вообще, могут быть методы выдавливания оккупационной администрации?

  • Теракты. Ну, это, как раз, наименее интересное. Особенно тактика (из серии "куда класть какую гранату"). Мы всё-таки говорим о стратегии реального времени. Кроме того, стремящаяся к независимости колония устраивать теракты должна в метрополии, а я пока не очень понимаю, как это можно просто и одновременно интересно представить в классической "стратегии", пусть и со специфическим уклоном. Если у кого есть мысли — welcome.

    Чего мне здесь пока видится — это то направление, на котором есть место прокачке "науки" как таковой — лаборатории, постепенное развитие технологий и т.д.

  • Политические убийства. Сознательно вынес в отдельный пункт, террор — это способ запугать, а здесь речь идёт об устранении конкретных, особенно вредных персонажей оккупационной администрации.

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

  • Дезинформация. Распространение ложной информации и информации, скрываемой властями. Как это можно представить интерфейсно? Идея-то, вроде, любопытная.

  • Мобилизующие идеологии. Создание и распространение привлекательных тоталитарных идеологий, несовместимых с идеологией, насаждаемой оккупантами. Тайные секты, популярная музыка… что ещё в этой сфере бывает?

  • Взаимодействие со спецслужбами. Напрямую к "техникам выдавливания" не относится, но, несомненно, это необходимая для поддержания работоспособного подполья деятельность, которую надо отразить. Выявление стукачей и провокаторов, перевербовка, вбросы ложной информации etc. etc.

  • Легальное крыло. Тут можно что-нибудь интересное замутить или ну его нафиг?



Что я забыл?

Из миссий мне навскидку приходит в голову что-нибудь по мотивам борхесовского "Человека на пороге". В этом рассказе все жители некоего индийского города участвуют в похищении и казни колониального чиновника, при этом ни один не проговаривается властям.

Ещё одна (та же?) миссия — что-нибудь на тему модного нынче "сетевого сопротивления", когда "члены подполья" ничем не связаны, кроме общей идеологии, и действуют самостоятельно.

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

Какие мысли по интерфейсу? Многое ли можно показать пользователю с помощью стандартного для таких игр вида местности в изометрической проекции и какие ещё возможны варианты?

Да, предложения по миру (антуражу, в смысле) тоже приветствуются, само собой.

UPD Во, высказал эту идею в коментариях к записи в своём журнале и забыл. Миссия: воспрепятствовать строительству военной базы оккупантов. Тут, понятно, можно действовать террором (дождаться, когда выстроят побольше, и взорвать), можно, тксть, PR-ом (сделать так, чтобы местным строителям базы не подавали руки, а морду, наоборот, били), можно через прямой саботаж, а можно комбинацией этих методов. По-моему, может выйти очень даже ничего.


(Читать комментарии) - (Добавить комментарий)


[info]haron.livejournal.com
2006-09-21 12:02 (ссылка)
Ты зря в юзеринфе написал "Будем надеяться, что кто-нибудь достаточно скоро сделает подобную игру. Иначе придётся писать её самим". Наоборот, надо говорить "надеемся, что мы её достаточно скоро сделаем, иначе её сделает кто-то другой!".

А серьёзно — веб, имхо, лучший формат для этой игры. Может быть, с легким GUI на флэше. Главный бонус в том, что сразу становится гораздо ниже порог вхождения, как для разработчика (на порядок меньше затрат на разработку), так и для пользователя (не надо скачивать дистрибутив, можно играть на работе, кроссплатформенность).

(лж.россия.орг какое-то страшное глючище, оставить коммент как пользователь lj, теперь не могу зарегистрироваться с тем же ником)

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-09-21 14:54 (ссылка)
Всё-то тебе не терпится пнуть LJR. =) Дело не в глюках, а в том, что аккаунт [info]haron уже есть, заведённый другим человеком. При подъёме сервиса было правило, что пользователь ЖЖ, у которого уже есть аккаунт с таким именем, может потребовать его себе. Не помню, чтобы это правило кто-то отменял (тем более что [info]haron заброшен, именно по этой причине). Если хочешь, я напишу в [info]ljr_zhaloby, или ты это сделай с какого-нибудь другого аккаунта.

Достоинства Веба я представляю (хотя что касается кроссплатформенности, то я бы и десктопную игру писал бы переносимую, например потому, что виндовса у меня нет). В принципе, если найдутся желающие делать веб-версию (и не найдётся желающих делать что-либо ещё), можно попробовать. Другое дело, что я не очень понимаю, как можно сделать к этому достаточно зрелищный интерфейс, которого хочется (флэш я не перевариваю; вот SVG был бы вариантом, но я никогда не имел с ним дела).

Опять же, если бы не трудности с хостингом и разработкой (а также если положить, что слова "реальное время" я сказал в запале, не подумав) можно было бы обмозговать вариант "сервер на C++, клиенты под web и десктоп". Но это при наличии сильной команды, готовой в такое впрячься, и соответствующего хостинга. Вообще, кстати, в архитектуре подобных приложений я не силён. Как оно вообще обычно устроено?

Я бы (если бы писал именно для веба) сделал бы, наверное, движок на Perl, общающийся с клиентами через что-нибудь типа SOAP и хранящий данные в SQL-базе, и клиент на PHP+JavaScript(+SVG? если то, что я читал об этом формате — правда =)). Но я ни разу не заглядывал в исходники аналогичных проектов, и не знаю, как там всё сделано.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 15:12 (ссылка)
ой :) сорри, я действительно не проверил юзера. Ладно, чтобы не быть голословным, предъявлю другой баг, он небольшой, но раздражает: когда пишешь комментарий как пользователь ЖЖ, то, чтобы на почту приходили ответы, нужно заполнить поле для почтового адреса. Так вот, если его заполнить, написать коммент, а потом нажать кнопку "More Options", то на следующей странице это поле снова будет пустым.

Про графику на вебе: кроме флэша и SVG (это просто графический формат, в вебе он применим, но пока ограниченно), есть очень внятная поддержка графики собственно в жаваскрипте: в FF встроенная, а в IE через ExplorerCanvas (http://excanvas.sourceforge.net/).

Время, реальное оно будет или не очень, определяет концепция игры. Можно даже на вебе сделать около-реальное время (в той же DS, насколько мне рассказывали, время очень даже реальное — сутки игрового за сутки реального).

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 15:35 (ссылка)
предъявлю другой баг

Угу. Спасибо.

SVG (это просто графический формат

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

есть очень внятная поддержка графики собственно в жаваскрипте

Жабаскрип понимающие люди™ очень хвалят, мол, совсем не похож на позорную Жабу, удобен и строг, но я, стыдно признаться, его не знаю вовсе (впрочем, освою при необходимости быстро, я думаю). А как со стандартностью этой поддержки графики?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 15:42 (ссылка)
В SVG нельзя зашить логику, её всё равно надо реализовывать на каком-то отдельном языке.

FF, Safari и Opera 9 поддерживают графику через объект Canvas от рождения, а ExplorerCanvas эмулирует этот объект в IE.

JS, конечно не идеален, особенно рядом с Питоном и Руби, но неплох. Кстати, по работе я сейчас пишу главным образом на жаве и JS.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 16:10 (ссылка)
В SVG нельзя зашить логику

В каком смысле? Я так понимаю, переменные, ветвление, циклы и прочая лабуда там есть, равно как и всякие GUI-события…

А вот интерфейс ты как себе представляешь?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 16:22 (ссылка)
В каком смысле? Я так понимаю, переменные, ветвление, циклы и прочая лабуда там есть, равно как и всякие GUI-события…

Не знал. А как это делается?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 16:45 (ссылка)
http://www.w3.org/TR/SVG11/index.html

Познавательное чтение. =) Правда, не знаю, многое ли из этого поддерживают современные браузеры.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 17:05 (ссылка)
там есть про bindings к разным языкам, а про собственный язык ничего нету (или я не нашел?), впрочем, не суть.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 17:43 (ссылка)
Да, похоже, я наврал. Биндинги к жабе и жабаскрипу, действительно. Впрочем, это ещё удобнее, нет — интеграция у них вполне прозрачная, вряд ли "родной" рукосуйный недоязык справился бы с этой задачей лучше?

С XSLT они у меня перемешались, видимо (это из серии "с прямым углом перепутал", я понимаю).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 17:49 (ссылка)
в сторону (вспомнил при словах XSLT и SVG):
http://www.artlebedev.ru/tools/technogrette/etc/svg2png/ — забавный пример винегрета технологий, который на выходе дает хороший и универсальный продукт.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-22 02:41 (ссылка)
Да, грамотно.

(Ответить) (Уровень выше)


[info]yushi
2006-09-26 19:13 (ссылка)
К вопросу об SVG, попалось тут.

http://www.croczilla.com/svg/samples/svgtetris/svgtetris.svg

Тетрис на SVG (и Жабаскрипе, насколько я понял).

Выглядит (код, я имею в виду, а не тетрис) довольно приятно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-26 22:43 (ссылка)
ебицка сила! буду ковырять.

(Ответить) (Уровень выше)


[info]haron.livejournal.com
2006-09-21 15:31 (ссылка)
Далее, как всё это пишется. Сам я никогда игр не писал, но многопользовательскую realtime web-based стратегию (блин, как бы это пороще называть?) писал бы так: во-первых, есть сервер, в который зашита вся игровая логика: мир, карты, объекты, правила взаимодействия и т.д., он запущен постоянно и общается с клиентом по сети (или через unix-сокет, неважно). SOAP и прочие XML-RPC-шные навороты здесь применимы, но не обязательны. Для пошаговой игры можно обойтись даже не демоном, а периодически запускаемой программой, которая обсчитывает всю обстановку на какой-то квант времени.

Клиент (на самом деле для игроков он будет сервером, так что назовем его middleware, связующее звено) — обычное веб-приложение, реализующее серверную часть интерфейса. Когда игрок нажимает кнопочку "сделать что-то", middleware должен принять его запрос, обработать на предмет возможности сделать это самое "что-то" и послать серверу сообщение, что же именно надо сделать. В принципе, middleware'ов должно быть по числу интерфейсов к игре: свой для веба, свой для GUI-приложения.

Игровой клиент это "просто" клиент. Для игры через веб это приложение на HTML/JS или Flash, для GUI — некое переносимое приложение, которое умеет общаться по сети с middleware.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 15:43 (ссылка)
есть сервер, в который зашита вся игровая логика: мир, карты, объекты, правила взаимодействия и т.д.,

Угу. А мир при этом на всех игроков общий? Т.е., если один игрок выносит всех NPC в каком-то районе, то другим там делать уже нечего?

(В многопользовательские игры я никогда не играл, честно говоря).

SOAP и прочие XML-RPC-шные навороты здесь применимы, но не обязательны.

SOAP я упомянул исключительно по той причине, что в своё время сталкивался с его реализацией на Perl и порадовался тому, как мало он позволяет думать о деталях протокола, сосредотачиваясь на логике. Если есть где пускать (и кому писать) сервер на C/C++ — надо смотреть, как люди обычно делают.

Форки, треды, IPC, разделяемые данные и пр. кошмар, без которого здесь, кажется, не обойтись, всегда были для меня тёмным лесом. Исходники Апача, что ли, почитать? =)))

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]haron.livejournal.com
2006-09-21 16:26 (ссылка)
Нафига сразу писать сервер на плюсах? Не вижу преимуществ перед скриптовым языком, кроме высокой производительности, да и то только в случае, если писать будут опытные сишники. А вот то, что программистов понадобится больше и гораздо больше времени уйдет на разработку и тестирование, я тебе могу обещать стопудово.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 16:37 (ссылка)
Я просто не слышал о сложных многопользовательских приложениях на скриптовых языках, написанных как standalone сервер, а не как именно скрипт, торчащий в мир cgi-мордой и хранящий данные в базе. Если такие есть и они легко пишутся — это круто, не люблю C (а к C++ скорее равнодушен).

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

(Ответить) (Уровень выше) (Ветвь дискуссии)

навскдидку:
[info]haron.livejournal.com
2006-09-21 16:59 (ссылка)
mailman, bittorrent, zope... :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: навскдидку:
[info]yushi
2006-09-21 17:06 (ссылка)
Zope поверх Апача всё же крутится, или я чего-то путаю? А bittorent это ж p2p, там совсем другие требования (вероятно; не писал ни того, ни другого). Вот про mailman не знал, интересно.

Хотя, опять же — менеджер рассылок, НЯМС — не то приложение, котрое одновременно должно поддерживать десятки (в лучшем случае) пользовательских сессий. Как оно вообще делается-то? Эх, с кем бы поговорить из писавших такие вещи… или хоть TFM какой почитать…

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: навскдидку:
[info]haron.livejournal.com
2006-09-21 17:12 (ссылка)
в Zope есть свой веб-сервер и свой сервер баз данных.

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

Вообще, стоит как-нибудь встретиться и всё это вживую обсудить :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: навскдидку:
[info]yushi
2006-09-22 02:44 (ссылка)
Да, пожалуй. =)

(Ответить) (Уровень выше)


[info]haron.livejournal.com
2006-09-21 16:34 (ссылка)
А мир при этом на всех игроков общий? Т.е., если один игрок выносит всех NPC в каком-то районе, то другим там делать уже нечего?

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

(Ответить) (Уровень выше)


[info]haron.livejournal.com
2006-09-21 15:44 (ссылка)
Наконец, на чем писать. Я не люблю перл (write-only language) и использую его только в случае крайней необходимости, обычно для админских задач. Сейчас я довольно много пишу на Питоне и делал бы так: писал сервер и миддл на python, в случае проблем с производительностью выявлял узкие места — их обычно не очень много и уж точно это не вся программа — и переписывал их на C (питон предоставляет очень удобные возможности для этого).

Для веба есть совершенно фееричный питоновский фреймворк Django. Сейчас не буду о нем ничего говорить, потому что иначе мои восторги придётся расписать в длиннейшую простыню :)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-09-21 16:31 (ссылка)
Perl, действительно, ужасен (хотя для разработке "на коленке" идеален, тем не менее — можно писать спинным мозгом, почти не думая, в отличие от любых других языков; это, впрочем, к делу не относится), но хорош тем, что в нём "всё уже украдено до нас" — ни к одному другому языку нет архива модулей, сопоставимого с CPAN. AFAIK.

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

(Ответить) (Уровень выше)


[info]yushi
2006-09-21 14:59 (ссылка)
Впрочем, гоню. Если клиент и сервер живут на одной машине, SOAP и иже с ним бессмысленны и даже вредны, надо писать напрямую в базу.

(Ответить) (Уровень выше)


(Читать комментарии) -