Четверг, 12.12.2024, 03:49 Приветствую Вас Гость | RSS

Главная страница

Состав

Устав

История

О приеме в клан

Гостевая книга

Программы

Военные хитрости

 
 

| Форум | Регистрация| Выход | [Новые сообщения· Участники· Правила форума· Поиск· RSS]

  • Страница 1 из 2
  • 1
  • 2
  • »
История создания игры казаки
[DMoR]CePbIuДата: Пятница, 01.02.2008, 08:23 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: -2
Статус: Offline
История Казаков

Начало
История проекта "Казаки" началась в 1997 году, когда компания Microsoft представила на суд общественности свой стратегический тайтл Age of Empires. В нем было множество оригинальных ходов, которые просто завораживали игроков, это была настоящая революция в жанре, новое слово в стратегиях, которое, надо признаться, оставило след в наших сердцах.
В то время мы занимались созданием мультимедийных энциклопедий, продажи которых стала потихоньку идти на спад, и разработка игр стала вопросом дальнейшего выживания компании. Так или иначе, мы решили попробовать себя в новой сфере. Исходив Age of Empires вдоль и поперек, мы изучили все ее особенности и фичи, старались понять, чем она взяла аудиторию. За полтора год активной игры у нас появились нужные идеи и понимание того, что мы способны сделать продукт даже лучше, чем Ensemble Studios. Мы были уверены в своих силах, и запустили проект "Казаки".
Первый вопрос, который встал на самых первых порах разработки - это в каком временном периоде разместить игру? В Age of Empires затронуты эпохи от каменного века до античности. Мы решили "бить" в ХV - XVIII века, потому что Microsoft наверняка избрала бы средневековье для Age of Empires II, и Казаки получились бы ее логическим продолжением. Фактически, мы тем самым сделали "третью" AOE, не пересекающуюся с первой и второй частями. Это был наш маркетинговый расчет.
Время показало, что мы не ошиблись. Сеттинг и время действия игры были выбраны правильно, что привело к коммерческому успеху проекта. Microsoft вложила в раскрутку тематики Age of Empires большие средства, тем самым поспособствовав продажам Казаков. В результате нам удалось не только сделать хорошую игру и получить удовольствие от процесса, но и неплохо заработать.
В первом приближении "Казаки" выглядели так: противостояние задумывалось между Россией и Украиной, а всего наций было четыре - русские, украинцы, европейцы и турки. Продаваться игра должна была на отечественном рынке.
В 1998 году, когда проект был запущен, в команде насчитывалось всего четыре человека. По нынешним меркам, это мизер - программист, дизайнер, исторический консультант и руководитель проекта. Через два года, когда "Казаки" уже вышли на финишную прямую, количество разработчиков выросло втрое - до 12 человек. Хотя, опять же, это немного. Впрочем, следует отметить, что к проекту на разных стадиях подключались создатели карт и тестеры, так что размер команды варьировался.
Первые шаги
Первым важным шагом к коммерческому проекту стала демо-версия, которую мы в 1999 году привезли на выставку MILIA в Каннах. Это был настоящий "выход в свет" - мы не только показали свой проект заинтересованной аудитории, но и обзавелись полезными знакомствами с издателями и прочими представителями игровой индустрии. Там же мы впервые услышали совет делать "Казаков" с прицелом на весь европейский рынок. Собственно, для нас это был шок, так как о потенциале нашей "игрушки" с уверенностью говорили авторитете, в профессионализме которых не было сомнений. Так было принято решение увеличить количество наций до 16 и издавать игру по всему миру.
Собственно, удача следовала за нами с самого начала проекта. Как оказалось, мы попали в яблочко и с названием проекта, так как казаков - в силу исторических причин - знают и в Англии, и во Франции. В Европе это слово однозначно считается синонимом русского колорита, как "Калашников" или "водка". Успех был полный - узнаваемый, но незаезженный бренд принес нам на Западе огромные продажи.
Продолжая список удачных моментов, нельзя не сказать и о дате релиза. Нам помог тот факт, что за год до выхода Казаков рынок стратегий был переполнен проектами, причем не самого высокого качества. Жанр перестал привлекать разработчиков, и они сбавили обороты. Мы вышли как раз тогда, когда игроки "изголодались" по качественным RTS. Кроме того, в игре был задействован оригинальный временной промежуток: от средневековья до 18 века. Важную роль сыграли очень красочные скриншоты, на которых мы "били" в одну из наших главных фич - огромные толпы юнитов. В то время это было ново, и наши орды пришлись по душе и публике, и прессе, которая не скупилась на высокие оценки на сайтах и в журналах.

Добавлено (16.06.2007, 00:42)
---------------------------------------------
Но брать пользователя мы собирались не только толпящимися на экране юнитами. Отличий от других RTS хватало: в частности, в "Казаках" применялась система формаций с возможностью удержания позиции (stand ground). В результате отряды получали бонус к параметрам защиты и атаки. Кроме того, мы реализовали возможность захватывать крестьян противника и незащищенные здания и параллельно развивать нацию бывшего врага. В основу экономической части игры была положена добыча ресурсов, как и в большинстве стратегий того времени. В "Казаках" их число равнялось 6. Основным ресурсом была еда, которая использовалась для постройки всех юнитов и тратилась на их содержание и усовершенствование. Дерево, камень и еда добывались крестьянами непосредственно на карте, а Оставшиеся 3 ресурса (золото, железо, и уголь) - в шахтах. Уголь, например, тратился на каждый выстрел.
При балансировке игры мы сделали все ресурсы на карте бесконечными. Плюс этой схемы - можно было играть одной базой, как угодно развивая свою империю. Естественно, были и неизбежные минусы - теряется часть игры, когда у тебя есть войска и отсутствует возможность постройки юнитов, так что итог зависит от того, как ты проведешь последний бой. Это сильно укорачивало время игровой сессии. 2D или 3D?
Споры о видении проекта начались в самом начале разработок. Мы потратили неделю на выяснение того, выбрать ли нам 2D или 3D (изометрия-перспектива), и лишь волевым решением Сергея Григоровича решили остановиться на двумерном движке. Сейчас это решение может показаться странным, но не стоит забывать, что для того времени прорыв в 3D мог обойтись слишком дорого. Кроме того, в пользу двумерности говорило и то, что при тогдашнем развитии технологий с ее помощью можно было сделать более качественных и детализированных юнитов. Наконец, наши "толпы юнитов", важная и оригинальная черта игры, могли быть реализованы только в 2D.
Был и еще один немаловажный момент, благодаря которому мы не стали рваться в третье измерение. В то время мы не хотели конкурировать с крупными разработчиками, которые вкладывали огромные суммы в разработку нового поколения 3D-стратегий. Рынок 2D RTS быстро сокращался, и мы оказались чуть ли не единственными представителями на нем. Разобравшись с измерениями, мы начали экспериментировать с углом наклона камеры. Вариантов был несколько - от 90 до 45 градусов, но остановились мы на 30. Оказалось, что в этом случае наши спрайтовые войска выглядели максимально привлекательно и не закрывали стоящих за ними юнитов, что упрощало управление крупными армиями. Как мы уже говорили выше, первоначально игра планировалась к выходу только на территории СНГ. Поскольку основная фишка игры - одновременное отображение 8000 юнитов, нам пришлось разрабатывать свои технологии отображения графики и просчета логики игры с учетом того, что будущие игроки будут иметь компьютеры чуть ниже среднего уровня. Вообще, выбор главной "фичи" стоил большой крови нашему главному программисту - темпы написания кода были около 300-400 строк в день! Объем чистого кода "Казаков" на момент релиза (1.5 Мб) мог сравниться по объему с "Анной Карениной". Главный программист – человек с отличной памятью, который всегда помнил, "что где лежит", не прибегая к комментариям кода.
Одними из основных проблем в разработке движка были вывод большого количества юнитов и трехмерного ландшафта, быстрый поиск пути и искусственный интеллект. Немало пришлось повозиться с многопользовательской игрой и игрой через Интернет. Во время работы над Казаками мы постоянно держали в уме главное правило - наш код не должен тормозить. Считаем, что нам это удалось. Основная схема, по которой делался "быстрый" код - функции не были громоздкими, а все алгоритмы линейно зависели от количества юнитов.

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

Добавлено (16.06.2007, 00:45)
---------------------------------------------
Выйти из ситуации помог двухуровневый поиск пути, состоящий из двух частей. Первая из них - "глобальная", путь в ней ищется по топологическим зонам, которые имели соединения между собою и некий условный вес. Вторая часть системы - "точный" поиск, который использовался для перемещения в рамках 1 топологической зоны (обычный поиск пути по карте, разбитой на квадраты в 16x16 пикселей).
Система работала следующим образом: чтобы найти путь, юниты искали кратчайший путь, а затем, когда входили в конечный район, проверяя прямые, которые связывали центры топологических зон, выбирали путь в указанную игроком точку, используя точный поиск. Наличие топологических зон здорово помогло при создании ИИ. Как уже говорилось, каждая зона имела свой вес (на этот показатель влияло наличие и число войск противника). ИИ строил путь по топологическим зонам, обходя опасные места стороной. Как правило, на карте было около 700 топологических зон, что значительно облегчало поиск пути, по сравнению с 16384х16384 возможных точек.
Впрочем, этот удачный во всех отношениях поиск пути буксовал при наличии стен, которыми перегораживали топологическую зону. Чтобы обойти эту проблему, мы реализовали алгоритм динамического изменения топологических зон в реальном времени, что оказалось очень непростой задачей.

Прочие проблемы
Были некоторые проблемы и в графическом департаменте. Огромные объемы двумерной графики, которыми приходилось оперировать, привели нас к созданию собственного формата: каждый кадр паковался отдельно, используя алгоритм LZ с общим словарем. За счет этого достигалась хорошая степень сжатия, а доступ к каждому кадру не требовал распаковки предыдущих.
Возникла проблема с просчетом тумана войны. Так как динамически рассчитать радиус обзора для каждого из 8000 юнитов, не напрягая при этом процессор довольно сложно, мы придумали следующее решение. Вокруг юнита расставлялось от 1 до 8 точек - карта тумана войны. И далее методом решения уравнения Лапласа достигалось сглаживание между этими точками. В результате туман войны выглядел достоверно, плавно и не тормозил. Еще одно приятное решение было связано с отображением воды, с которой мы расправились с помощью быстрого и перспективного алгоритма, который, кстати мы используем до сих пор. Маленькие волны на воде целочисленно и быстро решались физическим реальным уравнением волновых процессов. И рендеринг одной "водной" текстуры размером 256х256 точек на компьютере 200 МГц занимал доли миллисекунды.

Игра через Интернет
Технология сетевой игры была реализована следующим образом: Предположим, что 1, 2 и 3 - игровые такты. Предположим, что в некоторый момент Игрок-2 нажимает на иконку строить юнит, и пакет с информацией об этом приказе отсылается на компьютер Игрока-1. При этом компьютер Игрока-2 выполняет этот приказ на 3 такте, когда пакет теоретически будет у Игрока-1. Таким образом, происходит синхронизация компьютеров Игрока-1 и Игрока-2. В случае, если пакет не доходит (теряется) и Игрок-1 не получил информацию о приказе, то он останавливается на 3 стадии, а Игрок-2 идет дальше, на следующий такт, так как он пакет отправил.
Игрок-2 не получает никаких пакетов от Игрока-1 и думает, что пакет, наверное, потерян и посылает пакет снова. Игрок-1 получает пакет, отсылает свои пакеты, а сам идет на 4 такт. После того как Игрок-2 получил пакет приказов от Игрока-1, игра синхронизировалась, и они дальше продолжают обмениваться пакетами. И хотя ситуация с потерей пакета возникает крайне редко, эту проблему все равно пришлось решать. Данный метод хорош тем, что после отправки пакета Игрок-2 не должен ждать пакета с подтверждением того, что приказ получен. Также на этапе разработки возникла проблема, с реальным временем, которое на разных машинах идет по-разному. При игре больше часа возникала разница где-то в 1-2 секунды. Эта проблема особо проявлялась при пинге больше 1000. Для устранения проблемы машины пинговались и вычислялось среднее время. Для этого посылались пакеты данных, фиксировалось время отправления и пинг. Далее время уравнивалось.

Добавлено (16.06.2007, 01:58)
---------------------------------------------
Многопользовательская игра и Интернет
Проблема рассинхронизации игры на двух компьютерах возникала в самих разных ситуациях, и отследить ее можно было только чудом. Поиски решения занимали недели. Иногда при расчете таблицы синусов и косинусов, которая использовалась повсеместно (например, для поиска путей или траектории полета снарядов), на разных компьютерах получались разные значения.
Эта проблема возникла из-за так называемой floating point inconsistency (несоответствие значения при использовании плавающей точки). Для успешного поиска точного места в коде, которое стало причиной рассинхронизации, мы сделали генератор случайного числа (на которое влияло почти все: расположение юнитов, отыгрываемые кадры анимации, отданные приказы... в общем, все, что должно было быть синхронизировано), который вставлялся в сомнительные участки кода.
После окончания игрового цикла значения между машинами сравнивались и если цифры были разными, значит, произошла рассинхронизация. При этом программист получал название файла и номер строки, где произошел "сбой случайного числа". Далее методом предположения и околонаучного "тыка" находилось конкретное место в коде, которое могло стать причинной рассинхронизации. Найденный баг нещадно уничтожался. Несмотря на титанические усилия по доводке Интернет-игры, следует отметить, что интерес к сетевым баталиям в "Казаках" не был очень высоким. Причиной тому - поэтапное издание игры в разных странах, из-за которого коммьюнити Интернет-игроков никак не могло набрать критическую массу. Сначала "Казаки" вышли в Германии, потом Англии и Франции, затем в Испании, Японии, Италии и так далее. Всего наша игра вышла в 17 странах мира, но интерес к Интернет-игре рос слишком медленно. Самое большое количество игроков в онлайне было около 500, а в среднем - 150-200 днем и 10-50 ночью.
Количество игроков, необходимое для появления полноценного коммьюнити, способного затягивать новых пользователей, мы в то время оценивали в 2000. Крупные компании (Blizzard, Microsoft, EA) издают свои игры одновременно по всему миру, добиваясь огромного количества игроков на серверах и создавая ажиотаж вокруг Интернет-возможностей своей продукции.

Финишная прямая
В начале работы над проектом все гордились своей работой и проектом. Но под конец сотрудники начали "выгорать". Появились сомнения в успехе, развился синдром "бесконечного ремонта".
Кто-то стал говорить, что графика недостаточно детализирована, кто-то - что игра не будет популярной и уже сейчас неинтересна. Проект заканчивали, буквально стиснув зубы. Когда мы вышли на стадию бета-тестирования "Казаков" и трезво оценили объемы работ, стало понятно, что проекту потребуется еще минимум 6 месяцев. Чтобы не допустить срывов, мы пошли на крайние меры и внедрили систему "военного времени": трудовой день начинался в 6 утра и длился до 11 вечера с обеденным перерывом в один час. Цели были ясны как никогда, и от нас требовалось не выдохнуться на финишной прямой, на этом самом сложном участке любого забега.
Жесточайший распорядок дня несколько сглаживался начислением двойных зарплат и бесплатными обедами. Все приходили без опозданий и работали не покладая рук. Военное время длилось для команды долгих 3 месяца, в течение которых из беты выковывался к "золотой мастер" проекта. После того, как финальная версия "Казаков" была отправлена издателю, полуживая команда в полном составе была отправлена в отпуск.

Добавлено (16.06.2007, 01:59)
---------------------------------------------
P.S.
Поле завершения работы над "Казаками" и выдачи всех патчей (следует признать, что после релиза последовала очень "жирная" заплатка) мы сели за многопользовательскую игру и просидели на нашем сервере полгода. Прибегали рано утром, до работы, и оставались после работы на всю ночь... играли. Кроме того, после выхода Казаков, мы обнаружили, что в 50% игр в Интернете люди договаривались не нападать в начале сессии - от 15 до 60 минут. И мы сделали это опцией в аддоне (называется она Peace Time - "время ненападения"), что оказалось довольно полезной находкой. Потом, собравшись с силами и идеями, забросили "Казаков" на полку и засели за "Завоевание Америки". Игра, начатая как небольшой проект для внутреннего рынка от маленькой, никому не известной команды, вырос в итоге в крупный игровой продукт, вышедший в двух десятках стран мира и снискавший заслуженную славу. Реализовать его нам помогла вера в свои силы и неувядаемое чувство энтузиазма. Каждая поездка на выставку, когда люди вроде программистов Age of Empires или Джона Ромеро подходят к стенду и говорят "Вау!", каждое похвальное превью и отзыв на форуме давало положительные эмоции, дарило нам реальную понимание в то, что мы можем сделать мега-хит. Это заставляло нас выкладываться на полную. "Казаки" того стоили. Разработка проекта - это как игра в футбол: вратарь может пропускать голы, но проигрывает вся команда, а если он ловит мяч, то и выигрывает вся команда. Вся работа в команде опирается на всех членов команды без исключения. Соответственно, успех и популярность нас во всем мире - заслуга каждого члена команды.

 
[DMoR]SheyXДата: Пятница, 01.02.2008, 08:48 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
лооооооол


 
[DMoR]CePbIuДата: Пятница, 01.02.2008, 08:59 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: -2
Статус: Offline
Че лол?
 
[DMoR]SheyXДата: Пятница, 01.02.2008, 09:15 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
ты взял это с сайта НБ1 ))))) а они до этого спизьдили у нас )))))) вот отсюдово http://dmor.clan.su/index/0-13


 
[-NB1-]AkA_MoRoZДата: Пятница, 01.02.2008, 11:53 | Сообщение # 5
Группа: Удаленные





лол
это написанно почти на всех клан сайтах!
 
[DMoR]SheyXДата: Пятница, 01.02.2008, 12:18 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
а ну покажы на каких всех клан сайтах??? дай ссылку


 
[DMoR]CePbIuДата: Пятница, 01.02.2008, 13:32 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: -2
Статус: Offline
Кстати шейх и не только это biggrin ваши военные хитрости у них в приватном форуме biggrin biggrin
 
[DMoR]SheyXДата: Пятница, 01.02.2008, 17:01 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
Quote (|DMoR|CePbIu)
Кстати шейх и не только это ваши военные хитрости у них в приватном форуме

хехе)) пусть учатся ребятки)))



 
MyCra1CeДата: Суббота, 02.02.2008, 11:56 | Сообщение # 9
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус: Offline
мда)) ну пускай учатся у экспертов) cool

 
[DMoR]CePbIuДата: Воскресенье, 03.02.2008, 10:05 | Сообщение # 10
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: -2
Статус: Offline
cool
 
[DMoR]SheyXДата: Воскресенье, 03.02.2008, 10:13 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
biggrin


 
Stro[N]G_tmnДата: Понедельник, 04.02.2008, 17:01 | Сообщение # 12
Группа: Удаленные





Quote (|DMoR|CePbIu)
Кстати шейх и не только этоваши военные хитрости у них в приватном форуме

Quote (|DMoR|SheyX)
хехе)) пусть учатся ребятки)))

Quote (MyCra1Ce)
мда)) ну пускай учатся у экспертов)

и кто это написал?
 
MyCra1CeДата: Понедельник, 04.02.2008, 17:04 | Сообщение # 13
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус: Offline
что именно писал?) biggrin

 
Stro[N]G_tmnДата: Понедельник, 04.02.2008, 17:10 | Сообщение # 14
Группа: Удаленные





Quote (MyCra1Ce)
что именно писал?)

Всю эту чушь про создание казаков happy
 
[DMoR]SheyXДата: Понедельник, 04.02.2008, 17:16 | Сообщение # 15
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
Quote (Stro|N|G_tmn)
Всю эту чушь про создание казаков

У тя другое мнение о создание Казаков?



 
MyCra1CeДата: Понедельник, 04.02.2008, 17:16 | Сообщение # 16
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус: Offline
Автор статьи - Евгений Григорович КТО НЕ ЗНАЛ! ) biggrin cool

 
Stro[N]G_tmnДата: Понедельник, 04.02.2008, 18:53 | Сообщение # 17
Группа: Удаленные





Quote (MyCra1Ce)
Евгений Григорович

biggrin biggrin

Добавлено (04.02.2008, 18:53)
---------------------------------------------

Quote (|DMoR|SheyX)
У тя другое мнение о создание Казаков?

я это не читаю happy мне игра главное а кто создал когда неважно biggrin
 
MyCra1CeДата: Понедельник, 04.02.2008, 20:33 | Сообщение # 18
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус: Offline
Quote (Stro|N|G_tmn)
я это не читаю мне игра главное а кто создал когда неважно

Зафар - это угроза))) tongue biggrin


 
Stro[N]G_tmnДата: Понедельник, 04.02.2008, 20:53 | Сообщение # 19
Группа: Удаленные





Quote (MyCra1Ce)
Зафар - это угроза)))

Да у меня с Зафаром никаких угроз и разборок нет!
 
MyCra1CeДата: Вторник, 05.02.2008, 21:43 | Сообщение # 20
Admin
Группа: Администраторы
Сообщений: 137
Репутация: 0
Статус: Offline
А Хочешь со мной будут?)))

 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Сайт создан в системе uCoz