Fantarg
Ну а че, зато теперь не скажешь "онлайн-шутер на 1000 человек, это технически невозможно". А тут - есть на 1000 человек, всего с двумя ксеонами, и даже можно триал версию на сайте скачать.
Так что по сути упирается только в рисование на клиенте.
Rikk
Убийство того принца...
Что-то тебя понесло куда-то. Не будет игры из миллиона убийц принцов и Кеннеди. 99% будет играть за мясо. Кто хочет играть за мясо? Это все равно что игра-симулятор продавца холодильников в эльдорадо ;)
Идея безумная.
Никакой сервер, никаких ресурсов не хватит вынести такое количество объектов и игроков. И карту хранить с точностью до кустика и домика тоже.
Да и зачем?
Чтобы миллион нубов собрались на нескольких квадратных километрах и толкались там, не слушаясь никого и никак не координируя свои действия? То-то хаос получится.
А скорее всего столько игроков никогда не наберется и ресурсы будут выделены впустую.
Однако, можно предложенную концепцию уменьшить до рациональных масштабов.
Возьмем планету 10 км в диаметре, тогда от полюса до полуса получится 15 км с мелочью. Планета будет иметь форму идеальтной сферы, не геоида, как Земля.
Вся ее поверхность и будет бесшовным миром игры.
Можно взять вымышленную планету, поделенную на несколько стран, каждая со своей столицей и еще несколькими городами.
Добавить все стратегические объекты: заводы для выпуска техники и оружия, электростанции для снабжения заводов и городов, нефтеяные скважины и нефтеперерабатывающие заводы, железные дороги и поезда, аэродромы, госпитали, порты, шахты. Цепочки производста оружия, техники и боеприпасов. Солдаты спаунятся в городах в мобилизационных центрах (или по-старинке в казармах, ala C&C). Каждый город имеет темпы производства солдат (отражающие его население) и больше произвести в день не может. Иерархию командования ввести.
Игроки, действительно, могут просто вселяться в тела солдат соответствующего ранга и вида войск.
Что-нибудь подобное можно реализовать с тысячами игроков, не миллионами.
Ciaphas
> Планета будет иметь форму идеальтной сферы, не геоида, как Земля
Нет, нужна развёртка поверхности тора
Fantarg
Я думал, смысл именно в замкнутой поверхности, по которой можно совершить кругосветное путешествие и вернуться в ту же точку.
И, действительно, если задумка вдруг будет популярна, можно будет открыть еще сервера в виде других планет с другой географией.
Можно будет межпланетные вторжения устраивать: с сервера на сервер.)
На одном сервере строят на орбите транспортные корабли, потом не жданно не гаданно появляются на орбите другой планеты и шаттлами десантируют на головы воюющим там игрокам своих солдат и машины.))
Может даже с самого начала сделать не планету, а солнечную систему с несколькими планетами и лунами. На лунах придется воевать в скафандрах: атмосферы не будет. И гравитацию сделать меньше. Планеты придется сделать меньше в качестве компенсации. Еще битвы космических кораблей добавятся и бои за орбитальные станции. Можно будет строить орбитальные платформы с орудиями для защиты планет, спутники для наблюдения за поверхностью и космосом и орбитальные доки для строительства и ремонта кораблей. Между кораблями и планетами, планетами и орбитальными платформами сообщение будет с помощью шаттлов. Нужно еще реализовать задержку сигнала при посылке сообщений с планеты на другую и между удаленными кораблями. Скажем, в несколько минут.
Что-то меня несет по стопам автора темы...)
Fantarg
> Но я сомневаюсь, что это не фейк (там и команда расхваливает себя любимых про
> свои сети), хотя что-то подобное (но чуть меньше) с упрощением запускали - это
> не серьезно.
Ну, это не серьезные разговоры. Куча же обсуждений в сети есть, несколько видео на ютубе. Стоит признать что тест был хотя бы по бритве Оккама. Ну и в planetside было то ли 400 то ли 600 человек было на одной карте, вряд ли это тоже фейк.
Fantarg
> Да и кто будет создавать именно ммо-шутер? В основном все попытки и были
> обманки или мощные ограничения, да комнатные
> Вылезти из ПвП реалий пока не судьба разработчикам, а ПвЕ на корню загоняет в
> рамки и в клетки железные.
Конечно все будут создавать казуалки или инди. Но суть в том что любому предлагающему "мморпгфпс по сталкеру на 1000 человек" уже нельзя сказать что это технически невозможно, потому что вот оно видео. Качай технологию и пробуй, тем более за прошедшие два года они переписали ее с эрланга на шарп, и это не какой-то мистический движок NWE, а просто технология бесшовного соединения зон.
Anton Riot
> Нет, нужна развёртка поверхности тора
Предлагаю сломать стереотипы и сделать поверхность бутылки клейна.
kipar
> редлагаю сломать стереотипы и сделать поверхность бутылки клейна.
поверхность тюбика с клеем
kipar
> любому предлагающему "мморпгфпс по сталкеру на 1000 человек" уже нельзя сказать
> что это технически невозможно
автор же хочет на 1000000)
Anton Riot
Нет, нужна развёртка поверхности тора
Поверхность тора, это прямоугольник, у которого противоположенные стороны склеены.
Такую, конечно, реализовывать проще. Но ведь и сферу можно попытаться. Вряд ли это так уж и сложно будет. Локально она, для каждого игрока, будет выводиться всегда как плоская поверхность.
Ладно, вот куда привела меня моя фантазия.
1.) Десятки солнечных систем.
В некоторых по несколько доступных планет, в некоторых по одной. Также есть луны.
Некоторые планеты с пригодной для дыхания атмосферой, некоторые -- нет.
Самые разные условия: ледянные миры, миры-пустыни, мертвые (выжженые) миры, джунглиевые миры.
Уникальные ресурсы, разная частота встречаемости обычных ресурсов на разных мирах.
2.) Каждая планета или луна -- сфера с нанесенными на нее точками локаций.
На стратегическом уровне по сферам перемещаются воинские соединения разного типа: бронетанковые войска, пехота и т. д.
Когда они подходят к точке локации юниты из них могут спаунится и сражаться в данной локации.
В локациях расположены города, заводы, космодромы, электростанции, шахты и прочие контролируемые объекты. Выигравший битву за локацию получает под свой контроль объекты нв нем.
Если армии встретятся вне локации, то их битва проходит на карте без объектов, "в поле".
3.) Битвы за локации происходят в сессионном режиме, когда их инициирует одна из сторон, имеющая рядом войска.
Так, что нет нужды держать в памяти сервера все локации, только активные.
4.) Кроме локаций на поверхности есть еще орбитальные сооружения и корабли.
На всех них тоже могут протекать бои между пехотой.
5.) Космические бои.
Сражаются корабли, орбитальные платформы с орудиями и истребители, стартующие с кораблей некоторых типой.
Эта часть сделана, как космический симулятор. Игроки, играющие в локация могут даже не скачивать данные для этих сессий.
Можно обстреливать локации на поверхности орудиями кораблей на орбите.
6.) Есть персистентные локации.
По одной на планету. Это планетарные столицы, огромные города с кучей зданий и помещений.
На этих локациях играют и игроки-солдаты и мирные игроки. Отсюда оправляют промышленностью планет.
Здесь же генеральные штабы планетарных армий (могут быть еще на кораблях -- для армий вторжения).
Здесь толкутся купцы, шпионы, администраторы, производители гражданских товаров и прочие игроки, которым нечего делать в боевых локациях.
Здесь размещается планетарный губернатор -- игрок-правитель всей планеты для своей фракции.
Здесь магазины и аукционы для продажи игрокам товаров.
7.) Торговый космический флот.
Купцы перевозят товары и пассажиров между планетами на своих торговых кораблях.
8.) Дипломатия
Послы путешествуют между столицами для заключения договоров между фракциями на военных и торговых кораблях.
9.) Некоторые планеты предназначенны для приключений.
Нет постоянных локаций, нельзя контролировать.
Торговые корабли могут доставить сюда группу игроков-авантюристов для исследования планеты и поиска сокровищ/добычи редкого сырья.
Это что-то вроде аналога PvE подземелий. Когда корабль выходит на орбиту планеты, он сканнирует поверхность и генерируется 1-2 локации с монстрами, сокровищами и ловушками.
Пока игроки их обследуют, длится сессия. Если придет еще корабль, его пассажиры смогут высадиться в ту же локацию и помочь/отобрать добычу у первой партии.
Ciaphas
> Поверхность тора, это прямоугольник, у которого противоположенные стороны
> склеены.
А бутылка клейна - это когда стороны склеены как у ленты мебиуса, т.е. с инверсией. Зато с тором будут вопросы - что такое, как так, почему не сфера, а с бутылкой будет сразу видно - хардкор.
Anton Riot
> автор же хочет на 1000000)
А вдруг он заявится и скажет - "фиг с вами, согласен на 3000".
Fantarg
> Я не говорю об обязательной крутой псевдо-физике и псевдо-баллистике, но всякие
> хитрые финты...
> ...это не шутеры, чтобы говорить "технически возможно". ИМХО
Ну, это просто доказывает что технически 1к игроков не что-то запредельное.
А так - этот то 1000fps нормальный шутер, хотя конечно без баллистики и наверняка без физики, но если их система распараллеливания принципиально работает, то остальное - дело уже самих игровых серверов.
Автор, у тебя талант! Жду релиза с нетерпением.
еще есть модная тенденция - "облака". В зависомоти от нагрузки чило вычислительных узлов увеличивается или уменьшается.
А в основе - технология бесшовного соединения зон. Каждый узел обрабатывает свою зону (читай локацию), если же на локации число игроков превышает какое-то пороговое значение,
то запускаются еще ноды, текущая локация делиться, скажем на 8 зон (как в Octree) и каждый узел узел обрабатывает локацию, которая в 8 раз меньше (и где, число игроков меньше и сервер справляется с нагрузкой), и т.д. И объединение зон, когда игроков мало, чтобы в холостую не работало облако.
Еще есть мысль физически или логичеки ноды в таком облаке располагать в виде ячеистой структуры
node1 - node2 - node3
| | |
node4 - node5 - node6
| | |
node7 - node8 - node9
здесь, например, node5 соединем с 4-мя соседними нодами.
Node5 просчитывает игроков (физика ли там, баллистика), которые находяться в его локации, если они сместились в соседнюю, то по локальной сети необходимо передать информацию соседнему ноду.
Можно соединить нод с 8-соседами.
Ну а для клиента нужно реализовать движок, который будет отображать только то, что видно.
Можно даже на WebGL с совсем уж тонким клиентом, и не надо качать всю землю сразу (сотни террабайт!!!)
Плюс прокачка в фоне соседних локаций.
GhostCoderPPetrov
> Node5 просчитывает игроков (физика ли там, баллистика), которые находяться в
> его локации, если они сместились в соседнюю, то по локальной сети необходимо
> передать информацию соседнему ноду.
А если игрок из node4 целиться и стреляет в игрока в node6?
Но в этом PikkoServer как-то так они и сделали, судя по описанию.
А если игрок из node4 целиться и стреляет в игрока в node6?
расчитывается балистика в node4 сначала, как обычно.
Определяется, что конечная точка находится вне пределов node4.
Тут могут быть два варианта. 1) посылается сообщение напрямую в node6 для оптимизации
2) посылается сообщение в node5. При этом в node5 передается скорость и направление движение пули на границе зон node4 и node5.
Тема в архиве.