Перейти к содержимому

  •      Вход   
  • Регистрация

Фото

Игрострой


  • Please log in to reply
12 ответов в этой теме

#1 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 06 Ноябрь 2014 - 20:30

Предыдущая статья.

http://forum.ggeek.r...рос-к-разрабам/

 

Продолжаем строить движок.

 

Остановился на том, что надо уметь видеть.

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

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

 

Самый простый метод увидеть врага - по линии прямой иследуя нужные крадраты убираем пустоты по оси z. Ограничение по высоте у нас - высота цели.

 

Одиночный выстел, например, с пистолета - расчет точки попадания (x,y,z); анализ преград; анализ попадания по цели.

Очереди - множественные одиночные выстрелы.

 

Бросок  гранаты - расчет оптимальной траектории дуги, анализ попадания по цели. Сила броска (нужная скорость для построения кривой) бойца от растояния к цели будет разной и имеет свой минимум и максимум. Если цель находится на близком растоянии но за высокой преградой, то парабола будет у нас сильно изогнутой но если силы не хватит (скорость влияет на длинну траектории), то не достаточно изогнутой для попадания в цель. Оптимум - кратчайшая возможная траектория к цели.

 

Выстрел с РПГ - тоже что и бросок гранатой только скорость будет высокой и постоянной. А значит дуга не будет так сильно изгибаться.

 

Станковый гранатомет - скоростьвысокая и постоянная. Парабола будет очень сильно изогнута и как следствие количество мертвых зон будет уменьшаться чем ближе будет мишень но есть ограничения по углу выстрела снаряда.

 

 

Еще раз поговорим о вечной проблеме - дискретизация. Тут я ее уже назвал "оцыфровкой".

Эта проблема присуща у нас при перенесении обьектов на доску (ширина/длинна обьектов не кратная длинне клетки, наклоны, круги в площине xy, и т.д.). С высотой у нас все впрорядке. Ее точность равна точности базовой системы координат движка.

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

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

 

Правильное построение кругов нам нужно для записи в свойство клетки - "под прицелом"

Правильное построение кривых для вычисления - "куда же попали?"

 

 

Бойцы (фигуры).

Это оцыфрованные обьекты со своими свойствами и методами. Свойства бойца не передаются  свойствам клетки. Боец может только говорить клетке "Я есть" спрашивать у нее не "под прицелом" ли она. Изменять свойство клетки "под прицелом"

 

Может ходить. А это:

1. Поиск кратчайшего пути.

2. Само перемещение с изучением свойства клетки.

 

Сопровождающие записи.

Это обыкновенные детальные логи всего, что происходит.
 

 

Подытожу.

Движок теперь может строить доску любой формы в площине xy; создать "оцыфрованные" обьекты в плоскости xyz; делать виртуальные (проработанного оружия пока нет) выстрелы, броски в нужное место (пока что без влияния рандома и других параметров) и записывает все события.

 

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

 

 

А как же визуализация?

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

Вы же не меняете кузов автомобиля если заменили двигатель на более мощный который подошел по размерам.

 

Пока на этом все. Продолжение следует.

 

P.S. О сложном. Пока никаких сложностей не наблюдается. Все принцыпы имитации боя в 3д мире давно отточены. Все что нужно для создания игры есть в интеренете. Новичку остается лишь поискать.


  • 3

#2 super.fio@list.ru

super.fio@list.ru

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 308 сообщений

Отправлено 06 Ноябрь 2014 - 21:33

Продолжаем строить движок.

 

Прекрасные статьи. Ты уже придумал название игры?


  • 0

fer1, AZT

 

 

 


#3 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 06 Ноябрь 2014 - 22:47

Спасибо за отзыв.

 

Название игры? Пускай это будет - Affected Zone Tactics of my dreams :)

 

У меня хобби - игростроение.

Повторюсь.

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

 

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

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

Не то, чтобы я не любил свое дело. Я люблю писать код. Но играю в чужие игры больше чем в свои.

 

Я конечно все детально не буду описывать и на то есть свои причины.

 

Добавлю еще, что когда говорю: "отрезок линии попал в площину квадрата", то имею ввиду не сам отрезок (игра теперь 3д, а значит линия выпущена с точки А в точку Б имеет 2 кута наклона), а проекцию отрезка на плоскость xy.


  • 0

#4 super.fio@list.ru

super.fio@list.ru

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 308 сообщений

Отправлено 07 Ноябрь 2014 - 00:17

Мне хочется посмотреть на твои игры, Андрей. Можно?

 

Мне кажется для создания такой игры мне не хватит целой жизни.


  • 0

fer1, AZT

 

 

 


#5 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 07 Ноябрь 2014 - 22:42

:) У меня нет особого желания хвастаться. Игра - продукт командной работы. Не хочется особо расказывать в какой команде работаю.

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

 

Ну а параллельно идет работа над сюжетом и мозги гейм-мастера кипят пытаясь обьять необьятное.

 

Так какую же игру будем делать? - сказал про себя ГМ и побежали пальцы по клавишам.

 

Временной период ближе к сегоднишнему. Природные ресурсы на Земле сильно истощились и привели к новым войнам. Державный строй нарушен. В процессе войн сформировались 5 разных мега корпораций. Все силы были брошены в научною среду. Так как межзвездных полетов еще наука не достигла, ученые долго бились над альтернативными методами путешествий. Однажды случился научный прорыв в одной из корпораций (названия надо еще придумать :) ). Удалось увеличить размеры пронстрансвенной червоточины и держать некоторое время ее открытой. 

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

1. Дрон пережил путешествие.

2. Связь с дроном пока червоточина открыта не теряется.

3. Червоточина ведет прямо к неизвестной планете.

4. Не удается открыть червоточину в том же месте, как предыдущую.

 

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

Пришлось быстро принимать решение. Решено рискнуть послать сквозь червоточину человека. За многии годы это было самое радостное и сразу печальное событие. В ту сторону удалось пройти без проблем. При попытке вернуться иследователь погиб. Послали назад дрона. Он прошел но еле остался цел. Как будто по дороге назад поток частиц на большой скорости врезался в него.

 

Следующим решением было отправление научно-разведовательной групы. Група разбила лагерь и запустила зонды.

Разведка пошла осмотреться.

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

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

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

 

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

Для новоприбывших наемников соорудили виртуальный тренировочный полигон со средой похожей на поверхность планеты. Где бойцы между собой смогут оттачивать мастерство владения оружием.

 

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

 

И да начнется игра.

 

----

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

 

Виртуальная тренировочная среда нужна для запуска проекта. Пока будут создаваться карты.

 

Тренировочные лагери каждой корпорации будут обьедены пока количество игроков в игре не вырастет до нужной отметки.

 

Заложен рессурс за реальные деньги (титан).

----

 

 

ГЛОБАЛЬНАЯ КАРТА

 

5 лагерей в разный точках карты.

5 равных зон которые сходятся к 1му центральному большому городу.

Вся карта будет разбита на регионы. В каждом регионе может быть построена только одна база.

Между соседними зонами (разные корпорации) возможны конфликты. И так каждая корпорация получает по 2 врага.

 

ВЫБОР БОЙЦОВ

 

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

Наемников можно одеть в любое снаряжение. Количество слотов для наемников неограничено.

 

РАЗВИТИЕ БОЙЦОВ

 

1. С каждым новым уровнем будут развиваться общие характеристики.

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

2а. Развитие умелок не влияет на вероятность удачного использования. А дает лишь доступ к более продвинутым.

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

4. Все умелки не родные наемнику будут развиваться дольше.

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

6. Бойцы будут получать в бою очки доблести.

7. Доблесть будет работать двумя способами. Общая сумма будет работать как обычные деньги. Отдельно для каждого наемника влияет на рост звания.

Чем выше полезность команды (общая доблесть) тем больше можно будет заказывать (покупать) снаряжения с Земли.

 

(дальше будет)


  • 2

#6 uZver

uZver

    Сержант

  • Бета-тестеры
  • PipPip
  • 41 сообщений
  • МестоположениеKмчтcкй крй

Отправлено 08 Ноябрь 2014 - 04:34

facepalm


  • 0

unwise


#7 super.fio@list.ru

super.fio@list.ru

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 308 сообщений

Отправлено 08 Ноябрь 2014 - 11:14

Игра - продукт командной работы. 

 

Так какую же игру будем делать?

 

Если ты решил серьезно этим заняться, то набирай команду.


  • 0

fer1, AZT

 

 

 


#8 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 09 Ноябрь 2014 - 13:19

 

Игра - продукт командной работы. 

 

Так какую же игру будем делать?

 

Если ты решил серьезно этим заняться, то набирай команду.

 

Все может быть. Пока будет как есть.

 

Немножко о визуализации.

 

Исходя из моих допущений, нет четкой визуализации выстрелов. Это поправимо но на етом не все. Хочется развить и улучшить.

По сему без разрушения объектов не обойтись. А это значит нужны рисунки отображающие здания в разрезе. Это сложная задача.

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

 

С отображением мира разобрались. Будет смесь фауны и флоры Юрського периода с Земными зданиями будущего и зданиями аборигенов (надземные и подземные).

 

Как будет работать сама визуализация (по каким правилам)?

 

А правило одно. Визуализация будет работать по сценариям.

Сценарии будет создавать логический движок.

 

Припустим уже решено бежать с точки А в Б.

Логичекая часть анализирует маршрут.

На отрезке АВ можно просто отобразить бег. Никто бойца не видит.

Начинач с точки Г боец стал виден и надо отобразить бег на других клиентах.

На следущем месте по маршруту (Д) боец попадает под обстрел и по нему попадают.

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

 

На конечной точке будут изменены все свойства объекта (бойца) после того как отобразится вся графическая часть:

1. Рализовать бег к В.

2. С Г начать реализовывать бег и на других клиентах.

3. На Д реализовать слоу моушен и выстрелы.

4. Продолжать бежать под засветом до Б и спрятаться за укрытие.

 

Почему нужны сценарии, а не делать пошагово отображения после анализа каждой клетки?

 

Могут начаться жуткие тормоза (проседания ФПС) когда логическая часть будет вмешиваться (забирать ресурсы времени, ЦП) в отображение.

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

Я бы лично руки поттрывал бы тем разрабам, которые визуализируют не по сценариям в пошаговых играх.

 

Как быть с перетаскиванием карты во время динамики?

Визуализация работает так же.

Перед попаданием на екран 1го кадра будет учитываться относительное смещение, а значит и окончательное место каждого пикселя.

 

Как  реализовать графику если под рукой нет художников?

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

 

Если я бы начинал с нуля без знаий о специфических ПЗ, то делал объекты в ПЗ для архитекторов. Для переведения каркаса в нужные данные для клеток на доске дописал бы простую прогу. Ну и так далее.


  • 1

#9 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 09 Ноябрь 2014 - 13:46

Тут я себя подловил на мысли, что насколько я не стараюсь быть объективным, допустил ошибку.

 

За спиной просто невероятно большой опыт в играх. Я всегда был намного ближе к компьютерным новинкам. Начал писать код в 89 году и прошел все стадии развития. А тогда каста програмистов в основном была только в научной и военной среде.

 

И с высоты моего полета все кажется таким простым и осязаемым.

 

Не буду вас больше напрягать.


  • 0

#10 super.fio@list.ru

super.fio@list.ru

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 308 сообщений

Отправлено 09 Ноябрь 2014 - 16:38

Андрюха, надеюсь поиграть с тобой в AZT. Встретимся в игре. Добавь меня к себе в друзья. В игре такая возможность есть.


  • 0

fer1, AZT

 

 

 


#11 Adanui

Adanui

    Сержант

  • Бета-тестеры
  • PipPip
  • 36 сообщений
  • МестоположениеИркутск

Отправлено 15 Ноябрь 2014 - 19:10

Когда, КОГДА вы успели столько написать!!!?? Я 5 мин назад смотрел не было темы!! Мне нравится!) Хотя я ещё не всё прочитал)


  • 0

#12 super.fio@list.ru

super.fio@list.ru

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 308 сообщений

Отправлено 15 Ноябрь 2014 - 19:34

Спасибо, Андрей. Я уже привык к АЗТ.


  • 0

fer1, AZT

 

 

 


#13 Андрій Коваль

Андрій Коваль

    Капитан

  • Бета-тестеры
  • PipPipPipPip
  • 158 сообщений

Отправлено 15 Ноябрь 2014 - 20:23

Ты меня не понимаешь. Это самые настоящие ШАХМАТЫ. Это возродившийся шеревр в плане тактики ведения боя.

 

Не для средних умов. Это не игрушка для убивания сотнями тупых ботов. 

Там у ботов такой интелект, там такие сценарии, что просто начнутся у неподготовленных головные боли от тяжкого умственного труда.

 

Основный вопрос будет висеть всегда : "Как выжать максимум из 5 сек реального времени боя?"

 

А бои в мультиплеере с реальными противниками просто взрывают мозг.

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

 

P.S. Поправлюсь. Говоря про свой планшет имел ввиду Виту. :)

В виду особенностей мультиплеера, одновременно можно играть множество боев.


  • 0




0 посетителей читают эту тему

0 пользователей, 0 гостей, 0 скрытых