URL
Спешу сообщить, что 4ого числа проект был сдан. Это не значит, что этот дневник закрывается :) Сейчас выложу один скриншот. А будет время, расскажу о том, о чем ещё не рассказывал.


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

@темы: gamedev

Спешу сообщить о том, что на сегодня запланированна альфа версия проекта.
На момент написания поста добавлено:

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

Проект пока-что немой, до звуков ещё не дошло :) Но все будет. Есть одна интересная идея, может реализую. А пока все, за работу!

To do list:
♦ Сделать статистику игры
♦ Нарисовать GUI
  ◊ Прогресбары для здоровья
  ◊ Под прицелом показывать hp противника
  ◊ Может быть таблица статистики
♦ Сделать ragdoll для смерти персонажа
♦ Дорабоать класс, отвечающий за статистику персонажа
  ◊ Ввести поле name
  ◊ Ввести поля фрагов и смертей
♦ Озвучить события и действия
─────────────────────────────────────
♦ Начать продумывать уровень [для беты]
  ◊ Дизайн уровня
  ◊ Респауны
♦ Ввести систему повреждений [опционально]
  ◊ Вернуть удаленную мной при тестировании систему колайдеров на персонаже
  ◊ Прописать им теги и в зависимости от того, куда попадаешь, считать разное повреждение
♦ Подобрать саундтрек для меню и титров
♦ Сделать титры

@настроение: nice

@темы: gamedev

Сегодняшний пост своего рода маленький кусочек прогрессбара ;) Я расскажу про то, что уже готово.
Итак. На текущий момент у нас есть демо уровень, состоящий из бесконечной плоскости (уровень пустыни :), куда можно респауниться. У нас РАБОТАЕТ сеть ;) И теперь без лагов и подтормаживаний. Отдельно про сеть я ещё расскажу. Значит уже можно создать сервер, подключиться к нему и вдвоем побегать (больше двух персонажей я не тестил). Анимация синхронизируется по сети, так что все смотрится шикарно. Персонаж немного поменялся с технической стороны, но про это я тоже напишу потом. Показать в принципе уже есть что, но работы ещё *много* :) Так что работаем!

Хочу выразить отдельную благодарность Count'у за помощь в разработке фирменного стиля и логотипа игры. Ах да, ещё за небольшую PR-акцию в его ЖЖ. Сэнк мэн!

@темы: gamedev



Сегодня я расскажу об анимации персонажа.
Мы ходим и не задумываемся, как же все таки клёво мы ходим. Зато легко подмечаем, если аниматору игрового персонажа платили мало :)
Игровые персы очень на нас похожи :) У них есть скелет из костей, мышцы. Кости служат для того, чтобы было возможно менять геометрию. Мы двигаем кость и видим как за ней двигается та часть тела, к которой она привязана. Без костей анимация была бы очень долгой и просто невыносимо сложной. Приходилось бы тягать по-отдельности вершины меша (кожи).
В модельке моего персонажа уже были кости (напомню, я брал готовую). Я добавил лишь пушку.
Я анимировал персонажа в 3D Max. Выставляя ключевые кадры, макс сам их интерполирует (как же я люблю в последнее время это слово :). Я использовал вот этот мануал для анимации ходьбы:

Как видно на изображении, достаточно было расставить кости в 4 ключевых кадрах, между которыми я оставлял по 5 кадров для интерполяции. Ну и для того, чтобы вернутся в исходное положение, я просто копировал первый ключевой кадр в конец.
Теперь пару моментов, с которыми у меня были терки.
Первое. Это скорее для тех, кто моделит с нуля. Перед тем как начинать моделить - читаем документация к движку. В каждом движке есть свои особенности как и везде. И для того, чтобы не перемоделивать или ещё что-нибудь - RTFM!
Второе. Перед тем, как начинать анимировать, взглянем на нашу модель... Если нас все устраивает, это не значит что все хорошо :) Оптимизацию модели следует проводить до анимирования. Вполне логично, скажите. Так и есть, просто не всегда очевиден вред для анимации на ранних стадиях оптимизации. Мне пришлось переделывать анимацию только из-за того, что я заглянул в "Основные советы по оптимизации проекта для самых маленьких в картинках" :) Там было сказано, что для того, чтобы отрисовать модель в один drawcall (вызов отрисовки кадра), нужно её сделать одним мешем плюс на ней должен лежать один материал. Два материала - два дрокола, хотя меш один. Модель перса у меня на тот момент состояла из двух мешей: сам солдат и пушка. Я приаттачил пушку к солдату. Воспроизвожу анимацию, солдат идет, пушка висит в воздухе... Пришлось пушку заново анимировать :)
Третье. Если делаешь сразу несколько анимаций в одном файле (последовательно) для того, чтобы после указать с какого по какой кадр читать ту или иную анимацию, нужно в начале каждой анимации принудительно проставлять ключевой кадр. Иначе на выходе мы рискуем получить глюки. При кроссфэйде (crossfade) одной анимации в другую кости могут вести себя весьма странным образом. Однажды мой персонаж после выстрела скукожился :) Я долго ломал голову над этим. Но починил.
Четвертое. Для того, чтобы ваша анимация хорошо повторялась, рекомендую убрать пару кадров в конце. Иначе мы увидим дерганье и может быть даже небольшое замирание перса. А так все гладенько.

Про анимацию пока все. Может быть ещё затрону эту тему по надобности. Спасибо за внимание.


2010
Nick_Field
Nick'sCreatStudio


@темы: gamedev



List of Work.
Вообще разработка любого продукта требует отчетливой постановки задачи и декомпозиции её в ряд более мелких задач для упрощения. Так нас учили. И знаете что, оно работает =)
Вспоминаю самый мой первый день над проектом... Каша в голове, не знаю за что взяться... Потом разложил все по полочкам, стало проще. В общем вот краткий список тех этапов, которые должен пройти каждый геймдевелопер.
1) Conception. Придумать собственно что, где и когда. Тут надо потратить достаточно много времени. Продумать вселенную, действие, сюжет. В общем все, что касается мира игры. Я ещё не совсем до конца продумал все моменты, но все что нужно на этом этапе у меня уже есть. Отдельно об этом я напишу чуть позже.
2) Concept-art. Этот этап можно пропустить, но качество проекта резко может снизится. Все члены команды должны по-одинаковому представлять мир игры. Иначе будет бред. Но так как я работаю почти один, мне это не обязательно. Я сам себе голова :) У меня пока только один маленький скетчик, который я нарисовал на лекции. Приаттачен внизу поста ;)
С этого момента работа над игрой должна разделяться и разноситься по разным отделам. Программисты делают свое, художники, моделлеры, звуковики свое. Но повторюсь... Я делаю все почти один. И в моем плане следующий этап это:
3) Modeling. На этом этапе нужно сделать все игровые объекты включая персонажей игры. Но так как времени у меня мягко говоря немного, я поступил следующим образом. Почти все модели окружения я взял из ресурсов игр Fallout 3 и The Elder Scrolls IV: Oblivion. Мой проект некоммерческий. А с авторским правом я что-нить придумаю =) Следовательно я почти пропускаю такой важный шаг, как текстурирование всего этого добра. Все модели уже имеют развертку при экспорте и готовые текстуры. Вполне возможно я буду их править. Но я думаю насчет этого мы поговорим в посте, посвященному оптимизации... Ах да, стоит отметить то, что персонажа я взял из Half Life 2. Он тоже затекстурирован. У него есть скелет. Но об этом позже в посте, посвященному анимации.
4) Level design. Для начал я сделал очень грубый набросок уровня. Еще пока не знаю, сколько всего будет уровней, вполне возможно вообще один большой. Этот момент продумывается. Детализировать уровень я буду по мере необходимости. Например когда буду прикручивать сюжетные фишки и в самом конце, когда останется только доработка проекта.
5) Animation. Здесь нужно анимировать все то, что движется, крутится и вертится. На сегодняшний момент персонажа я почти заанимировал. Он уже много чего умеет делать. Но об этом позже.
6) Scripting. Тут я почти ещё не притрагивался. Код написал только для перемещения персонажа по карте и для анимации текстурки на пушке. А ещё нужно написать самое главное: СЕТЬ. Ну я думаю как доделаю персонажа, расправлюсь со всей анимацией, сяду писать эту часть. Также нужно написать геймплейные штучки, скрипты сюжета, оружия и прочее. Как вы догадались об этом позже ;)
7) GUI. Отрисовывается Graphical User Interface. Кнопочки, менюшки. Магия 2D графики. Ещё все не продумал, вполне возможно гуи будет в 3D. Буду смотреть по времени. Сюда можно вписать работу над заставками и роликами. Все же ещё надеюсь, что успею хотя бы заставочный сделать (:
8) Sound. В больших проектах это наверное один из самых длительных этапов. Озвучить каждого персонажа, каждый эффект. Я пока ещё не решил, что буду делать с озвучкой (может тырить, может и сам что озвучу :) , но саундтрек уже почти подобран ;)
9) Assembly. Сборка всего воедино. Долгая работа в среде Unity. Импорт объектов, скриптов, связывания их между собой и прочее.
10) Testing & optimization. Тут собирается бетка (альфа версия думаю будет на момент написанной сети). Зовем друзей и хэв фан :) Ловим баги, исправляем, оптимизируем некоторые моменты для повышения быстродействия. Запоминаем кто нам помогал ;) Всех припомню)
11) Release Candidate & Release. Ну тут выпускаем релиз кандидат. Оформляем Credits. День-два прогоняем тесты. И если все в порядке делаем финальный билд.

Это вкратце :) Тянет на статейку "Как сделать игру за десять шагов". По этой теме все. Спасибо за внимание.

Смотреть скетч...



2010
Nick_Field
Nick'sCreatStudio


@темы: gamedev



Вступление.
Это дневники разработчиков "The Black S.P.O.t.". Добро пожаловать в нашу реальность.
Этот проект является заданием по курсовому проектированию по предмету "Системное программирование". Задача: сделать сетевой шутер. Я решил реализовать поставленную задачу на 3D-движке Unity3D. Но об этом позже ;)

Концепция.
Наверное один из самых сложных моментов не только в разработке игр да и вообще в любой разработке — это проектирование, создание концепта. Всегда сложно придумать что-то свое, чего ещё не было, нежели взять готовую концепцию и переделать её. Время реализации текущего проекта ограничено. Дедлайн где-то в июне, может быть в конце мая. Плюс в универе существуют и другие достаточно важные предметы, на которые нельзя забивать.
И так, что же я решил сделать. Я решил создать свою игру. "Чёрт, сложно будет...", - думалось мне в первые минуты после утверждения проекта. Но после составления плана работ, стало легче. Да, работы много. Проекты создаются годами, оттачиваются и шлифуются, переделываются и только потом выходят в свет. У меня же есть 3 месяца... Пишу это, и сам улыбаюсь. Я справлюсь ;)
Так что же насчет моей концепции... Действие игры происходит в постапокалиптическом мире. [:||||||:] :) Но так как это сетевой шутер, я решил отдалится от классического deathmatch, и продумать, как можно разнообразить сетевой геймплей. Сейчас все карты раскрывать не буду (не все ещё продумано до мелочей :) Могу сказать только то, что это будет сетевой шутер с небольшим сюжетом. Будут небольшие квесты. Фраги на победу влиять не будут. их счет будет вестись только для статистики. Думаю для вступительной части хватит :) В следующей части я напишу об общих этапах создания игр и немного о технической реализации "The Black S.P.O.t.".

Спасибо за внимание.



2010
Nick_Field
Nick'sCreatStudio


@темы: gamedev