Re[11]: Rsdn.Game let`s go?
От: ManGo  
Дата: 07.06.06 12:07
Оценка:
Здравствуйте, WoldemaR, Вы писали:

WR>Здравствуйте, Real 3L0, Вы писали:


R3>>А у вас есть что везти?


WR>Есть руда:

WR>http://www.rsdn.ru/Forum/Message.aspx?mid=1924341
Автор: WoldemaR
Дата: 29.05.06


WR>и кататься умеем...


И не только руда, но и одно колесо
http://www.rsdn.ru/Forum/Message.aspx?mid=1693383&only=1
Автор: ManGo
Дата: 21.02.06
Re[12]: Rsdn.Game let`s go?
От: WoldemaR Россия  
Дата: 07.06.06 12:36
Оценка:
Здравствуйте, ManGo, Вы писали:

MG>И не только руда, но и одно колесо

MG>http://www.rsdn.ru/Forum/Message.aspx?mid=1693383&only=1
Автор: ManGo
Дата: 21.02.06


Да, генератор вселенной — это уже наверное мотор, а не колесо!

Уже необязательно возиться с картинками.
а фракталы там используются?

----------------------------------------------------------------

И сразу есть соображение. У нас должен быть материал по генерации вселенной.
Мне кажется, что у нас по этому вопросу должно быть два документа:
1) Общая информация, принцип работы и ссылки на матчасть, другие реализации.
2) Конкретная информация по имеющемуся генератору. Описание, генерируемые характеристики, особенности, возможности модификации, персективы развития.

Если что пропустил, то дополняйте.

----------------------------------------------------------------
Тут же вылезает другой вопрос: Как оформлять?

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

2) Другой вариант, в случае использования WIKI, — это стиль WIKI. На мой взгляд он более перспективен, чем бумажный (в плане интерактивности) и продуктивен(не надо подстраивать свой уровень под ниже среднего — чем заставляют заниматься редакторы в погоне за тиражами).

Как будем решать?
Re: Всякие мысли...
От: loknalori Россия  
Дата: 07.06.06 13:18
Оценка:
Скопировал показавшиеся мне разумными мысли с форума (по сути собрал вместе).

//Оглавление
1)Цель проекта
2)Общее видение проекта
3)Соображения по поваду реализации
4)Всякие замечания
5) Аналоги и замечания по повадау аналогов
6) Технические детали



/// loknalori


1) Играбильная графическая Оффлайн-стратегия. (о степени графичности – см. окончание пункта 3)

2) Общее видение проекта
Наиболее интересны те игры, в которых человек играет против человека. А с учетом не очень большого количества времени у играющего (мы же ориентируемся на взрослого, работающего геймера ) подходят только Action и offline-стратегии. С Action – все понятно, куда тягатьсяс Quake. Остаются offline – стратегии. Вот о них-то я и говорю. Представьте себе игровой мир, состоящий из партий. Запустили партию – мир ожил, обьекты начали развиваться (воевать, торговать, расти и т.п.) по законам игры и в соответствии с команами плеера. Плеер отдал команды и уехал работать, а обьекты живут дальше. Приехал затраханный домой, отдал новые команды и пошел ужинать. Т.е. Войска воюют, селения строятся, корабли двигаются согласно твоим указаниям, но без твоего вмешательства и не требуют постоянного контроля. Ты можешь просиживать круглыми сутками за монитором, а можешь отдавать команды два раза в сутки, при этом качество управления игрой и у первого и у второго будет примерно одинаковым. Во многих стратегиях (например warcraft III) побеждает не тот кто лучше понимает что будет происходить, а тот кто лучше контролирует войска. Это, может и правильно, но не справедливо. Ну не имею я возможности просиживать сутками за играми, значит и играть я «круто» не смогу. Т.е. Игра должна быть подобием «войны вирусов» с возможностью контролирования развития (в рамках изначально выбранных параметров). Т.е. выбрал рассу тупых, но быстро размножающихся индивидов – получил огромный бонус, когда требуется пушечное мясо, но проиграл в сфере научных разработок. и т.п. Текстовые игрушки – не наш путь, ибо аскетизм вещь хорошая, но не всегда распространенная и абсолютно не обязательная.

Минус – очень долгие партии (месяц-два), плюс – игра требует работы мозгами, не требует скилл-навыков (а-ля проф. Quaker), не съедает большого количества реального времени, обладает «эффектом тамагочи».

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

По поводу графики – игра должна строиться на граф. интерфейсе с вводом некоторых текстовых данных. В принципе, реч о 3D не идет, так как в подобного рода играх наглядность (а ей, кстати, тестовые игрушки не обладают) превыше «красоты».

3) Сервер, в котором живет игровой мир. Скорее всего сервер работающий по принципу базы данных, т.е. каждый «тик» идет пересчет сотояний системы с сохранием некоторого предидущего устойчивого состояния.

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

Минимизация трафика, отсылка разностной схемы состояний.

Надо помнить о том что баланс расс (игроков, классов) штука редко-редко угадываемая с первого раза, поэтому 100% будт апдейты (а-ля Blizzard)

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

5) http://ds.rambler.ru
-)Могу ошибиться, но это игровые миры. Я говорю о игровых мирах-партиях. Т.е. тут цель – процесс игры (быть сильнее всех в какой-то момент), там нужно достичь некоторого результата в момент финиша партии (что считать финишем – отдельный разговор).
-)Параметры рассы фиксированы. Да их несколько, но я не могу подобрать для себя баланс возможностей. МОЯ расса должна быть УНИКАЛЬНА (если я, конечно, не выберу стандарт)
-)Игровое поле тут разбито на малое колличество квадратов и перехватить войска в движении не возможно. Хочется – чтобы поле состояло из очень большого количества квадратов (с тем чтобы была для возможность маневра войсками) и лишь некоторые из них были пригодны для размещения баз (планет, зданий). Т.е. ты с планеты 1 на планету 2 отправил корабль по хитрой траекторри чтоб его было сложно перехватить, к кому отправил увидел на радаре (матрос на мачте разглядел), отправил перехватчик, и они летят-летят друг к другу.... Вернее колличество квадратов – фиксировано, но для сервера, пользователь должен иметь илюзию бесконечно точного поля.

Резюме: эта игра одного жанра с тем что я хочу, но совсем не то что хочу.

4) На счет ваших предложений — принципиально согласен, а детали в моей бумаге. Единственно 3 очень важных но (прошу откоментировать):
-) Игра — стратегия. Ни каких RPG. Иначе утонем. Если очень-очень хочется RPG — вводим понятие героев, которые могут хапать левел, но лучше не надо, иначе значительная часть игры будет уходить на контроль гроя (вспомним варкрафт)

-) Игра — реалтайм стратегия. Просто очень долгий риалтайм. В партии растянутой на несколько недель НЕОЖИДАННЫХ битв быть не может (сам проверял, факт), это раз, два — умеешь писать программы -пиши AI и наблюдай, не умеешь, контроль руками. Игра слишком медленая? Запусти сервер чтоб состояние там считалось не раз в минуту а раз в 2 секунды, вот и будет полный реалтайм.

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


2)

Выношу на обсуждение Игровой Мир
ЗЫ Это не описание игры, это в двух словах о мире, чтоб упорядочить фантазии.
Стратегию можно делать и про Ген с Чебурашками, но надо нарисовать границы фантазии. Вначале хотел придложить про космос, но слишком избито, надо что-то оригинальнее.

Островные государства. Есть поверхность моря, которая занимает БОЛЬШУЮ часть пространства. Не менее 95 %. Суша делится на 2 части — острова-для-жизни, где есть заводы, бараки, фермы, верфи и т.п. И острова-для-ресурсов, на которых можно только добывать ресурсы или, например, строить форты. Ресурсы, также, добываются из моря (рыба, удобрения и тп). Люди размножаются, заселяют новые острова, занимаются наукой и тп. Цунами, состояние моря на момент битвы, видимость (тумааная часть окена), ну и море факторов влияющих на игру. В результате мы получаем мир, который

-) Оригинальный (таких стратегий на слуху что-то не помню)
-) требует серьезного экономического AI (или будте любезны, руками в цикле), туда сюда рыбу, воду и тп. возить
-) С достаточно локализоваными битвами Битва — точка в море, ни каких расползаний по квадрату
-) С возможностью варировать наземные битвы (будет у нас время — сделаем чтоб можно контролировать часть острова, нет — остров имеет единое состояние, либо твой, либо нет)
-) С огромным пространством для маневра. Эх, какое море. Да и острова можно размещать по разному — сферами альянсами — случайно и тп.
/// почитайте, там было за и против. Начиная с этого сообщения http://www.rsdn.ru/Forum/Message.aspx?mid=1522740&only=1
Автор: loknalori
Дата: 05.12.05




/// Бушин Илья



4) Самым первым пунктом необходимо продумать как это ни странно не техническую часть, а финансовую...
Дело в следующем. На своем веку насмотрелся на подобные игровые стартапы — просто море! Большинство из них по тем или иным причинам приказали долго жить... А все почему? Потому, что для того чтобы подобный мир жил и был интересен игрокам его нужно постоянно развивать, совершенствовать, придумывать новые квесты и т.д. В конце концов, такую игруху в том или ином виде необходимо модерировать/координировать. Иначе, если всеми этими вещами не заниматься, то получится очередной "дворовый футбол". Почему подобные вещи нельзя отдавать на откуп энтузиастам игры? Энтузиазм рано или поздно пропадает, появляются новые интересы и увлечения. Расчитывать на постоянный приток новых энтузиастов тоже нельзя... Найти профессионала в какой-либо области, ктороый будет "гореть" делом и идеей крайне сложно. Знаю по своему опыту... Непрофессионалов много. А это значит отдать какой-либо фронт работы на месяц-другой (пока не наберется необходимого опыта) в руки непрофессионала. Что в результате грозит разбеганием аудитории и вырождением проекта в тот же самый "дворовый".
Выход я вижу один. Сделать проект в том или ином виде самоокупаемым и самофинансируемым... Соответственно вставляем в план еще один пункт: "Статьи и объемы доходов и расходов".

// мой ответ — http://www.rsdn.ru/Forum/Message.aspx?mid=1507857&only=1
Автор: loknalori
Дата: 27.11.05
. Думаю не очень актуально чтобы верстать сюда...

/// orangy rsdn

(думаю — оффтоп, но ознакомится можно тут — http://www.rsdn.ru/Forum/Message.aspx?mid=1510474&only=1
Автор: orangy
Дата: 29.11.05



/// Macedonian +++!!!

Очень разумно

3) Есть предложение по поводу управления отдельными юнитами и их группами ("микро" в терминах Warcraft III). Была такая игра Colobot. Суть в том, что в игре используется свой скриптовый язык, которым описывается "микро".
Таким образом, можно получить довольно сложное поведение юнитов без хитрых манипуляций мышью. Причем алгоритм поведения вражеских юнитов можно сделать открытым, либо доступным после какого-либо события (уничтожение, взятие в плен, денежное вознаграждение и т.д.). "Макро", т.е. постройку зданий, юнитов, баз можно описать на том же самом языке. Например, по достижению Х золота построить N новых юнитов, или при популяции более N юнитов, небольших потерях и наличии X золота Y дерева построить новое здание и т.д. В результате значение быстроты принятия решений отодвигается еще дальше и мы приближаемся к заветной цели
Если сохранять предыдущие состояния, то игрок может "отмотать назад" историю игры до какого-либо интересного ему события (например, сражения) и оценить работу своих и вражеских алгоритмов на практике. Опять же попытка уменьшить значение сиюминутного присутствия игрока.

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

Начало игры, Х ед. ресурса.
Решил создавать юнитов с высокой дальнобойностью и низкими HP. Назначенные характеристики обойдутся в 100 ед. за штуку, попросил главный завод изготовить 5 штук таких (итого 500 ед.). Затем понадобилось несколько юнитов с высокими HP, оказалось, что данные характеристики не вкладываются в бюджет (250 ед. за штуку), решил пожертвовать скоростью перемещения и дальностью стрельбы. В итоге получилось 150 ед. за юнит. И т.д.

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

Еще есть идея внести элемент пошаговости, т.е. всю партию (думаю, что игра в виде отдельных партий (1х1, 2х2, NxN) — оптимальный вариант) разбить на отдельные элементы (ходы). После того, как каждый сделал по ходу (если ходы делаются одновременно — снова убиваем дисбаланс), либо после каждого хода (ходы делаются по очереди — тот, кто ходит первым, получает преимущество ) происходят различные события, являющиеся результатом ходов соперников, на которые (на события) уже не повлиять (ход сделан), т.е. кто-то кого-то убил, переместился, выиграл партию и т.д. Следующий ход начинается с анализа произошедших событий и новой сложившейся ситуации. Изначально можно обойтись минимумом графики (важна лишь конечная ситуация после хода), затем уже добавить ролики событий (в том числе ScreenSaver'ы ). Определять продолжительность между ходами можно используя время, плюс можно поставить лимит на использование ресурсов за один ход.

Используя одновременные ходы + юниты-конструкторы добиваемся приблизительного (полного? ) стратегического баланса.



//// tripolox


А что если взяьт за основу техническую реализацию из .NET Terrarium, т.е. написание кода для игры, но расшитрить ее до уровня "Колоний", т.е. пользователю выделяется некая колония например в космосе, с некоторым количеством некоторых ресурсов (у всех разные) и в зависимости от ресурсов он потихонечьку равивает технологии своей колонии (программирует например новые типы вооружения или новых андроиов) , колония может добывать ресурсы, может их продавать другим колониям или например тратить на постройку космических кораблей для торговли или войны, торговать опять же можно произведенными на своей планете своими технологиями... т.е. запрограммировать "мегалазер", запрораммировать завод для производства "мегалазеров", запрограммировть торговый корабль для доставки "мегалазеров" в другие колонии дать команды куда продавать, куда нет и по какой цене... собственно колония развивается и зарабатывает или не зарабатывает деньги... соответственно на деньги можно купить флот истребителей, установить на них свои мегалазеры и завоевать всю вселенную =)

////Другой пост
L>В принципе, тоже, вариант. Но только надо отдавать себе отчет, что это путь к игрушке для программистов.
Не согласен, т.к. если всё правильно сделать....

Сразу говорю речь о многопользовательской он-лайн игре, значит идея том, чтобы дать возможность игрокам создавать свои игровые объекты, но при этом люди, далекие от программирования смогут играть в игру пользуясь достижениями (программками) других игроков...
Фактически должен получиться саморазвивающийся мир, в котором администраторам нужно будет только одно — управлять средой (устанавливать ограничения), которые будут влиять на все объекты, созданные игроками.

И потом что мешает обычному игроку попросить своего товарища программиста за N игровых денег, заработанных например на квестах, создать какой-ни-буть "мегазавод по производству мегалазеров", спокойненько получать с него игровую прибыль и пагрейдить свою колонию за чсет покупки технологий у соседей?

Есть ли смысл ограничиваться жанром стратегии? Я бы предложил многопользовтельскую он-лайн role play game, с элементами стратегии, тогда игрок сможет ассоциировать себя с персонажем игры, от лица которого он играет, это повысит интерес от игры, как мне кажеться. К тому же в RPG можно встроить элементы стратегии. Просто игрок сможет выбрать линию игры... либо он качает одного "мегагероя" либо создает армию андроидов и управляет ими от лица своего героя...

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

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

/// ответ конкретно на это сообщение — http://www.rsdn.ru/Forum/Message.aspx?mid=1521349&only=1
Автор: loknalori
Дата: 05.12.05

/// рекомендую прочесть.
///вобще — ветка начинается тут http://www.rsdn.ru/Forum/Message.aspx?mid=1519235&only=1
Автор: Macedonian
Дата: 02.12.05


///Еще один пост
Еще из идей:
Предлагаю разделить проект на несколько частей: UI, Core, Environment, где
UI — ну тут ясно, графика, ввод ну и т.п.
Core — это ядро системы, которое отвечает обработку программируемых игроком объектов, т.е. содержит иерархию классов, необходимую для создания юнитов к игре... (возможно на первой итерации можно просто ограничиться алгоритмами поведения готовых юнитов)
Environment — эта часть в которая "содержит" все объекты игровой реальности, т.е. фактически набор параметров которые ограничивают возможности каждого объекта, эта часть и будет отвечать за баланс в игре, т.е. несбалансированный объект просто не сможет существовать в этой среде, или же его возможности будут ограничены средой, как это сделать это задача..., которую предстоит решить...


/// WoldemaR



Простите что вмешиваюсь. Позвольте сформулировать цель следующим образом: Главное, чтобы игроки, имеющие разную игровую активность, в том числе и по причине занятости, получали достаточное удовольствие от участия в игре. Если вас такая формулировка устраивает, по позвольте предложить вам один рецепт.
В стратегической игре участник может использовать ресурс на добычу и накопление ресурса. Таким образом он из категории военных переходит в категорию промышленников и банкиров. Что это даёт?
Во первых, приумноженный ресурс можно перенести в другую партию. Это нарушит баланс сил, но в этом и цель игрока — получить преимущество. Зато это можно скомпенсировать возможностью ограбления мамона. А теперь внимание!:
По окончании партии у грабителя и пострадавшего появляется общий заблокированный счёт. Для снятия денег(ресурса) со счёта (равного сумме на момент грабежа) надо каждому ответить на вопрос: "кому отдать средства?" — другому или себе. И тут вступает в игру известная психологическая дилема, потому что:
-) если оба ответят — "отдать другому", то каждый получит половину.
-) если оба укажут на одного, то он получит всё.
-) если оба захотят взять себе, то никто ничего не получит.



/// JazzzMaster

(текст на категории не разбиваю...)

-) Надо создать что-то концептуально новое, непохожее на обычные Strategy и RPG, только так можно вызвать интерес и привлечь достаточное число энтузиастов в разработку. Еще один клон Starcraft с оооочень медленным реалтаймом никому не нужен.
-) Игрок перед началом игры программирует поведение всех юнитов. Игра происходит в realtime без участия игрока. Запрограммировавший наиболее оптимальный алгоритм развития игрок побеждает. Т.е. своего рода война алгоритмов развития. Это избавляет игрока от участия в процессе самом игры (битвы) и сообветственно отпадает проблема разницы часовых поясов и свободного времени у играющего.
-) Исходные данные у игроков равны. Игрок дожен сконцентрироваться на алгоритме развития. 1 раса, 1 абстрактный вид ресурсов (можно обозначить как $), 1 база с которой начинать развитие. В игровом мире имеется некоторый набор свойств(скиллов, возможностей, видов оружия и т.п.) из которых можно создавать свой собственный юнит. Скиллы, к примеру — Healph Pack, Speed, Ammo Pack. Возможности — возможность сбора ресурсов, постройка зданий, возможность ремонта других юнитов. Оружия — пушки, пулеметы, гранатометы и все остальное. Все это можно нацепить в некоторых количествах на один юнит либо на здание. Каждое свойство юнита будет стоить некоторое число money и может влиять на другие свойства (например, число ammo pack и количество навешенного оружия влияет на speed).
-) Согласен с Macedonian по поводу

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

-) Сделать одну точку сбора ресурсов, чтобы юниты не разбредались по всему игровому полю. Т.е. сделать своеобразное место встречи, которое будет стремиться захватить каждый игрок. Захватил точку с ресурсами — считай победа у тебя (хотя не факт). Другим игрокам надо либо отбивать его у тебя либо сдаваться. Собственно, основная цель этого введения — не затягивать игру.
-) Игрок проиграл, если уничтожены все его здания.

Привожу пример игрового мира. Космос. Ресурс — космическая пыль (как в Homeworld). 4 игрока. У каждого в начале игры база, 500 $ на начало развития, 1 юнит с 100 hp и 5 speed. Начинаем строить юниты со скиллом сборщика ресурсов. Параллельно можно к ним пожцеплять навыки — speed, attack, extendeв ammo, extended health, но на каждый навык уходит определнное количество ресурсов $. К примеру, можно построить 1 сборщик с высоким навыком атаки и защиты и низкой скоростью, либо 3 сборщика и низкими навыками атаки и защиты и низкой скоростью, либо 10 сборщиков без навыков атаки и защиты, но с оч. высокой скоростью. Все начинают собирать ресурсы, параллельно пытаясь выбить игроков с точки сбора ресурсов. Естественно, алгоритмы сбора и поведения юнитов в битве программируются заранее (перед началом игры) игроком.
В общем суть моих мыслей ясна, я думаю. Теперь ваши мысли вслух.

/// WoldemaR



так, надеюсь, что в принципах игры мы определились.
Поправьте если я что-то неверно излагаю.

Это 2D стратегия со скриптовым интерфейсом.

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

Для начала, предлагаю максимально упростить: цели, средства и правила игры.

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

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

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

Модель поведения юнитов:
Надо обеспечить командный интерфейс для юнитов, чтобы они могли размножаясь и бегая по карте её трансформировать исходную картинку в целевую за наименьшее время.
Необходимо стимулировать борьбу алгоритмов по нахождению оптимального поведения.
В качестве искуственного конфликта предлагаю взаимо-исключающие цели преобразования и размножения. Тогда первой целью игрока будет нахождение баланса между ними. (1) Основной вопрос — когда юнит прекращает размножаться и начинает строить?
Это однофакторная задача. Игра в такой форме быстро надоест.
Поэтому предлагаю ввести ограничение на модификацию клеток игрового поля (за 1 такт цвет клетки меняется не более чем на 20%) с тем, чтобы заставить игрока принимать решение между модификацией клетки и перемещением её содержимого в другую клетку.
Re: Rsdn.Game let`s go?
От: Macedonian Россия  
Дата: 07.06.06 16:40
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Цель поста — вычленить идеи, мысли и пр из ветки http://www.rsdn.ru/Forum/?mid=1907936
Автор: ManGo
Дата: 19.05.06
. + некоторая попытка резюмировать.


L>Текущие задачи:

L>1) Окончательно ( а-ля китайское предупреждение) определиться с потенциальным составом участников. (кто, скилл, потенциальные возможности по времени, контакты — опционально)

Скилзы: C++, STL, C#, .NET, PHP, MySQL, MSSQL. Опыт профессиональной разработки около 2-х лет (разработка веб / Windows приложений, есть опыт проектирования). В настоящее время заканчиваю 4-ый курс "Прикладной Математики", приглядывыюсь к технологиям ИИ, откуда и интерес к созданию максимально гибкой и сбалансированной игры, на которой можно проверить различные интересные алгоритмы. С моими мыслями, высказанными в первоначальной теме, можно познакомиться, прочитав соответствующую часть поста loknalori Всякие мысли...
Автор: loknalori
Дата: 07.06.06
.

Наиболее интересна будет работа над правилами, целью и балансом игры.

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

Контакты:
ICQ: 301-730-100
email: alexander.makhaev@gmail.com

L>2) Выработать общий подход к организации процесса разработки (IRC, сайты и тп)


Скорей всего, разрабатывать будем в Visual Studio (8), язык я бы предпочел C++, но и против C# сильно возражать не буду. Как я понял, вопрос с хостингом практически решен, поэтому можно поставить SVN и wiki (куда заносится текущее состояние проекта), а обсуждение вести любым удобным способом (форум RSDN, ICQ, IRC, email-переписка, личная встреча и т.д.). Результаты неформальных обсуждений старательно заносятся в wiki.

L>3) Сдвинуться с мертвой точки (а то и умереть проект не может ибо еще и не родился ).

L>---------------------------------------------------------------------------------

Похоже, что критическая масса набралась, можно двигать.

L>По поводу "паровоза" (http://www.rsdn.ru/Forum/Message.aspx?mid=1906734&only=1
Автор:
Дата: 19.05.06
), в принципе я готов взвалить на себя некоторую часть этой ноши. В полной мере (или исключительно на себя) — ну наверное не получится... Так что, помогайте, граждане, помогайте...


L>Нус — приступим помолившись?


Поехали
Re[2]: Всякие мысли...
От: ManGo  
Дата: 07.06.06 20:10
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Скопировал показавшиеся мне разумными мысли с форума (по сути собрал вместе).


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

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

На мой взгляд наиболее эффективна модель примененная в oGame, где игра теоретически бесконечна, но возможность взаимодействовать с соседями ограничена полосой, например, плюс минус 1000 очков рейтинга (сколько восторга вызывает переход из одной весовой категории в другую). При таком подходе игрок, даже сделав перерыв, возвращается в свое привычное окружение и может наверстывать упущенное. Он может выбрать любую стратегию развития: медленную и стабильную (совершенствование добычи и переработки ресурсов, торговля) или быструю и рискованную (развитие военного направления, нападение, грабеж и т.п.). Немаловажное значение имеет и возможность онлайнового общения, объединения в союзы, альянсы, в том числе и дипломатия – еще одно направление реализации своих талантов. Организация игры партиями не обладает такими возможностями или обладает в объеме не позволяющим «насладиться» процессом игры и почувствовать масштабность задумки.

Теперь об оффлайне. Такой модели катастрофически не хватает динамики процесса. Игра для истинных фанатов. Раздал команды, а результат, извините, через час (вариант — два, четыре, сутки). Пример Real4X или, если кто помнит, VGA Planet. (Вообще VGA Planet это классика. Потрясающая простота с безграничными вариантами реализации стратегии и вариантами юнитов). Я хочу видеть, что что-то начало (или уже) шевелиться, работать, производить ресурсы, строиться. Хочу вмешаться в процесс в случае изменения планов или приоритетов. То есть при необходимости полный контроль ситуации и получение состояния в любой момент времени.
Ранее упоминались Warcraft и Starcraft. Игры очень быстрые и агрессивные. При игре в онлайн проходит 5-10 минут до встречи с противником. И тогда действительно важно насколько игрок быстро двигает мышкой и нажимает на кнопки, чтобы успеть развиться до нужного уровня перед встречей. Представьте в Warcraft или Starcraft – с игровым полем 10000х10000 клеток и 10 игроков. До встречи можно выстроить себе некий «Home world». Выстроить оборону, создать промышленную и ресурсную базу. Помните Total Annihilation! До сих пор считаю ее хитом по «game play».

Если проводить аналогию с космическими стратегиями, то, на мой взгляд, идеальным вариантом была бы игра Real4X+Stars!+VGA Planet приведенная к реал-тайму oGame.
Теперь некоторые мысли (не в структурированном порядке):

База – стационарное место в игровом пространстве, позволяющая размещать на ней ресурсную (например, шахты, фабрики, доки, торговые центры) и оборонную инфраструктуру, а так же место отстоя мобильных объектов. Пример – острова, планеты, города.

Тип игры: «бесконечная» реал-тайм стратегия, в которой частота встреч с конкурентами определяется расстоянием между базами и скоростью движения объектов. Например, чтобы напасть на соседа требуется 1.5-2 (3-4) часа движения мобильных объектов. Это позволит исключить в какой-то мере постоянное присутствие в игре.

Функциональная схема: клиент-сервер на основании разностной схемы состояний. Клиент – отдельное приложение. Теоретически можно затем перенести и на web интерфейс. Обработка игровой ситуации на сервере и клиенте синхронизируется и идет параллельно, что позволит избежать читерства.

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

Игровое поле и объекты: поле бесконечно, координаты типа float, каждый объект имеет массу, размер (радиус). Масса влияет на скорость объектов и характеризует возможность нести (размещать) на себе ограниченное количество других стационарных объектов (фабрик, радаров, шахт) или оборудования (двигатель, броня, вооружение). Радиус*2 – место, где считается, что объекты находятся в одной точке. В случае использования оружия контакт наступает исходя из дальности действия оружия.

Стационарные объекты: несколько стандартных типов, например, шахта (по каждому ресурсу), фабрика, верфь, объекты генерации электроэнергии – различаются по уровням (характеризуется факторами продукции, множителям); объекты обороны (характеризуются количеством).

Мобильные объекты: полностью конструируются игроком. Изначально предлагается набор стандартных контрукций-модификаций. Набор модулей определяется исходя из достигнутого уровня развития науки. Например, на корпус массой 100, с несущей способностью 50 устанавливается радар массой 10, броня, массой 10, набор разного оружия общей массой 15, двигатель массой 5 дающий скорость 100/«суммарная масса мобильного объекта» единиц пространства (км, миль, парсеков) в единицу игрового времени и потребляющий 0.1 единицу топлива за единицу игрового времени. Оставшееся пространство используется для топлива и для полезного груза. Такой метод позволит игроку проектировать мобильные объекты имеющих различное назначение – транспорт (большой корпус, экономичный, но медленный двигатель), исследователь (маленький корпус, но быстрый двигатель, радар большой дальности), применительно к космическим стратегиям – орбитальная станция (большой корпус, много брони и вооружений, отсутствие двигателя), звезда смерти. Чужие объекты можно захватить и исследовать.

Типы объектов: на примере космической стратегии – планета, астероид (и их поле), обломки (например, после битвы), мобильные объекты ну еще что-то, но не много.

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

Ресурсы: несколько типов ресурсов, например три вида, и еще, например – энергия и люди (колонисты, работника, экипаж объектов).

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

AI: присутствие в игре неагрессивного игрока-бота (или нескольких ботов), что позволит новичку потренироваться и не заденет его самолюбия.

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

Если нужно — финансовая сторона проекта: размещение рекламы.

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

Ну думаю для обсуждения пока хватит!
Есть еще мысли по поводу организации архитектуры программной реализации. Есть работающий прототип.
Re: Rsdn.Game let`s go?
От: Didro Россия home~pages
Дата: 07.06.06 20:55
Оценка:
Возможно Вам(Вашей команде) будет интересно следующее обсуждение:

ещё один взгляд на стратегии:
Юрий Николаев. "Как выйти из тупика, в который зашло создание стратегий?"
Возможно Вы найдёте в лице автора этого обсуждения ещё одного союзника. Человек, по всей видимости, крайне зайнтересован в конструктивном обсуждении стратегий (правда, видимо, только в обсуждении).
Re[2]: Rsdn.Game let`s go?
От: loknalori Россия  
Дата: 08.06.06 13:47
Оценка:
Здравствуйте, Didro, Вы писали:

D>Возможно Вам(Вашей команде) будет интересно следующее обсуждение:


D>ещё один взгляд на стратегии:

D> Юрий Николаев. "Как выйти из тупика, в который зашло создание стратегий?"
D>Возможно Вы найдёте в лице автора этого обсуждения ещё одного союзника. Человек, по всей видимости, крайне зайнтересован в конструктивном обсуждении стратегий (правда, видимо, только в обсуждении).

Прочитал. Сложилось противоречивое впечатление.

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

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

P.S. за линк — спасибо. действительно интересный человек.
Re[2]: Всякие мысли...
От: gran  
Дата: 09.06.06 12:19
Оценка:
Выскажу, кое-каике свои идейки:

Есть такая игра "Мафия". Играют в нее через IRC. Люди там играют роли. Кто-то получает роль мафиози, кто-то шерифа, кто-то доктора и т.д. Предлагаю сделать тоже ролевую игру. Но не в понимании обычных РПГ, а в понятиях "Мафии". В начале партии всем игрокам раздаются "Роли". У каждой игрока свои задачи. Кому-то надо будет добыть артефакт, находящийся на территории другого игрока. Кому-то захватить 60% территории, кому-то построить корабль до альфа-центавры ))). и т.д. Партия длится пока кто-то не достигнет своей цели.

Программирование развития предлагаю сделать следующим образом:
Пользователь может раздавать команды зданиям, юнитам и т.д. Затем он может попросить клиента смоделировать свое развитие на N ходов вперед. При этом моделируется только его состояние, остальные игроки игнорируются. Таким образом можно будет отдать приказы еще не существующим объектам. Например, дать команду построить транспорт, а потом дать ему команду вести колонистов на планетку рядом.
Re[2]: Всякие мысли...
От: WoldemaR Россия  
Дата: 15.06.06 13:22
Оценка: -1
Здравствуйте, loknalori, Вы писали:
...

Всем Доброго времени.

У меня сложилось ощущение растерянности.
После такой продуктивной дискуссии немного неясно куда именно надо двигаться.

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

Итак, пока готовиться площадка для ведения документации. Предлагаю определиться в некоторых вопросах:





1) На чём писать?
Судя по опыту участников проекта наиболее перспективные кандидаты: с++ и с#.
Давайте взвесим критически важные особенности этих средств.

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

Исходя из этих факторов, с# становится естественным выбором. (если я не ошибаюсь есть и с++ интерпретаторы, но это редкая и малоисследованная технология).




2) Тип модели вселенной.
Итак. мы определились, что игровой мир будет 2D или 2.5D. (.5 означает возможность перемещения объектов над поверхностью). Поправьте если что не так.

Другой важный вопрос — это тип модели: векторный или растровый.
Какой из них лучше подходит для нашей цели?

растровая модель: Обычно используется для карты.

Векторная модель: Используется для хранения и взаимодействия юнитов.

Может быть кто хочет исследовать эти вопросы глубже.

Но у меня есть простое предложение:
Использовать векторную модель для генерации и развития вселенной.

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

Получается, что первый тип игры: это задача генерации вселенной.

Это можно реализовать как взрыв или как размножение колонии клеток.

Дальше можно будет развить поведение отдельных клеток-колоний-юнитов.





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

Теперь нам надо определиться:
1) функции плеера.
2) интерфейсы плеера, модели и юнитов.





Что-то я сегодня много наговорил. Критикуйте пожалуйста!
Re[3]: Всякие мысли...
От: gran  
Дата: 16.06.06 04:57
Оценка:
WR>1) На чём писать?
WR>Судя по опыту участников проекта наиболее перспективные кандидаты: с++ и с#.
WR>Давайте взвесим критически важные особенности этих средств.

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


WR>Исходя из этих факторов, с# становится естественным выбором. (если я не ошибаюсь есть и с++ интерпретаторы, но это редкая и малоисследованная технология).


Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений. Я бы делал выбор между Java, C++, Pascal. А по поводу интерпретаторов скриптовых языков, то есть множество свободных. Например, Lua. Можно прикрутить его. Наверняка можно прикрутить интерпретаторы таких языков как Perl, Python, но тут я до конца не уверен. А вообще интерпретатор можно написать самим. Это не трудно и не долго.


Процесс создания игры слишком затягивается. У нас до сих пор даже нет четкого видения того, что хотим сделать. Нужно побыстрее что-нибудь зачать и начать писать, а то энтузиазм перегорит окончательно.
Re[4]: Всякие мысли...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.06.06 08:28
Оценка:
Здравствуйте, gran, Вы писали:

G>Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений.


Можно пояснить поподробнее, кому и что надо отчислять?
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[4]: Всякие мысли...
От: WoldemaR Россия  
Дата: 16.06.06 09:24
Оценка:
Здравствуйте, gran, Вы писали:

G>Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений. Я бы делал выбор между Java, C++, Pascal. А по поводу интерпретаторов скриптовых языков, то есть множество свободных. Например, Lua. Можно прикрутить его. Наверняка можно прикрутить интерпретаторы таких языков как Perl, Python, но тут я до конца не уверен. А вообще интерпретатор можно написать самим. Это не трудно и не долго.



G>Процесс создания игры слишком затягивается. У нас до сих пор даже нет четкого видения того, что хотим сделать. Нужно побыстрее что-нибудь зачать и начать писать, а то энтузиазм перегорит окончательно.



Спокойно, без паники.
Вы, простите, сами себе противоречите. Не надо предлагать левые, малоизученные технологии если хотите быстрый результат. Не надо гнаться сразу за двумя зайцами.
Re[5]: Всякие мысли...
От: gran  
Дата: 16.06.06 10:38
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, gran, Вы писали:


G>>Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений.


AVK>Можно пояснить поподробнее, кому и что надо отчислять?


Ну не знаю. Просто C# — детище мелкомягких, и исходя из этого я и предположил, что надо будет платить. Хотя бы за ту же студию.

Еще одна вещь из-за которой я не хочу C# это переносимость. Я сомневаюсь, что программа на C# помимо винды сможет еще где-то заработать. В этом плане Java смотрится значительно привлекательнее. Даже C++ здесь выигрывает.
Re[6]: Всякие мысли...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.06.06 10:53
Оценка:
Здравствуйте, gran, Вы писали:

G>>>Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений.


AVK>>Можно пояснить поподробнее, кому и что надо отчислять?


G>Ну не знаю.




G> Просто C# — детище мелкомягких


Ага, и этим все сказано

G>, и исходя из этого я и предположил, что надо будет платить. Хотя бы за ту же студию.


Express ничего не стоит.

G>Еще одна вещь из-за которой я не хочу C# это переносимость. Я сомневаюсь, что программа на C# помимо винды сможет еще где-то заработать.


Если речь о сервере, то есть Моно.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[5]: Всякие мысли...
От: ManGo  
Дата: 17.06.06 13:56
Оценка: +1
Здравствуйте, WoldemaR, Вы писали:

WR>Здравствуйте, gran, Вы писали:


G>>Мне кажется C# не самая подходящая кандидатура. В смысле лицензионных отчислений. Я бы делал выбор между Java, C++, Pascal. А по поводу интерпретаторов скриптовых языков, то есть множество свободных. Например, Lua. Можно прикрутить его. Наверняка можно прикрутить интерпретаторы таких языков как Perl, Python, но тут я до конца не уверен. А вообще интерпретатор можно написать самим. Это не трудно и не долго.



G>>Процесс создания игры слишком затягивается. У нас до сих пор даже нет четкого видения того, что хотим сделать. Нужно побыстрее что-нибудь зачать и начать писать, а то энтузиазм перегорит окончательно.



WR>Спокойно, без паники.

WR>Вы, простите, сами себе противоречите. Не надо предлагать левые, малоизученные технологии если хотите быстрый результат. Не надо гнаться сразу за двумя зайцами.

Народ! Обсуждаем с помощью каких инструментов будем делать, а ЧТО делать еще не определились...

Пора завязывать... или начинать... кому как нравиться...
Re[3]: Всякие мысли...
От: loknalori Россия  
Дата: 19.06.06 07:12
Оценка:
Здравствуйте, WoldemaR, Вы писали:

WR>Всем Доброго времени.


WR>У меня сложилось ощущение растерянности.

Бейте меня. Бейте меня ногами. У меня сложилось ощущение локальной нехватки времени (бейте меня, бейте, дача, девушки пиво ) Я должён бул вики поставить.... Вот там все и обсудить...

Бейте меня. Бейте. Если на работе в усмерть не замучают — сегодня поставлю (но зуб не дам)

ЗЫ. Минус человеку зря поставили. Все правильно он написал.
Re[6]: Всякие мысли...
От: WoldemaR Россия  
Дата: 19.06.06 12:15
Оценка:
Здравствуйте, ManGo, Вы писали:

MG>Народ! Обсуждаем с помощью каких инструментов будем делать, а ЧТО делать еще не определились...


У вас, как я понимаю, уже руки чешутся. Это хорошо.

Вот давайте, пока сервер готовиться и обсудим ЧТО делать.
Предлагаю Вам высказаться по этому поводу. Попробуйте составить план.

Только надо себя подготовить к тому, что будут подваливать левые люди, читать, плевать (ставить минусы без объяснений) и гордо удаляться. Ну если им от этого лучше, то и ладушки. Хоть такая польза.
Re[4]: Всякие мысли...
От: ManGo  
Дата: 21.06.06 21:39
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Здравствуйте, WoldemaR, Вы писали:


WR>>Всем Доброго времени.


WR>>У меня сложилось ощущение растерянности.

L>Бейте меня. Бейте меня ногами. У меня сложилось ощущение локальной нехватки времени (бейте меня, бейте, дача, девушки пиво ) Я должён бул вики поставить.... Вот там все и обсудить...

L>Бейте меня. Бейте. Если на работе в усмерть не замучают — сегодня поставлю (но зуб не дам)


L>ЗЫ. Минус человеку зря поставили. Все правильно он написал.


Смотрим Wiki на http://mango.wetpaint.com
если понравиться для регистрации стучим в ICQ:1459465 или laex[]bk.ru
Re[5]: Всякие мысли...
От: WoldemaR Россия  
Дата: 22.06.06 11:04
Оценка:
Здравствуйте, ManGo, Вы писали:

MG>Смотрим Wiki на http://mango.wetpaint.com

MG>если понравиться для регистрации стучим в ICQ:1459465 или laex[]bk.ru

А можно как-то настроить чтоб в братские узлы в один клик заходить?

И ещё осталось заменить вопросительный знак на восклицательный.
Re[6]: Всякие мысли...
От: ManGo  
Дата: 22.06.06 11:26
Оценка:
Здравствуйте, WoldemaR, Вы писали:

WR>Здравствуйте, ManGo, Вы писали:


MG>>Смотрим Wiki на http://mango.wetpaint.com

MG>>если понравиться для регистрации стучим в ICQ:1459465 или laex[]bk.ru

WR>А можно как-то настроить чтоб в братские узлы в один клик заходить?


WR>И ещё осталось заменить вопросительный знак на восклицательный.


Там есть волшебная галочка "Remember me"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.