XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Карты и проекты
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
JesusHipster
Иисус Хипстос
offline
Опыт: 35,547
Активность:
Сообщение от Doc
Как я уже неоднократно писал в асечке - с синхронизацией двух абсолютно разных клиентов(в данном случае стандартный вар3 и ваш клиент) у вас ничего не получится. Обратной совместимости не будет. Т.к. вы не сможете с абсолютной точностью скопировать алгоритмы вк3, да вы и не хотите этого + разная скорость работы + как сказал тоадкоп, вам придется скопировать все баги вк3 в ваш опенваркрафт и еще куча проблем, так что совместимость вы не реализуете, я уверен.
я это еще раньше говорил, но не подтвердил свои слова аргументами.
я про это спрашивал с недоверием я тоже молодец
ну посмотрите на это с хорошей стороны: больше возможностей, меньше рамок варовских
хоть дота на 999 игроков хоть эпические битвы на развитие 20х20..
кстати говоря было бы опять же неплохо реализовать кооперативное прохождение кампаний..
Старый 10.08.2011, 16:57
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Цитата:
Сообщение от Cookie
ну посмотрите на это с хорошей стороны: больше возможностей, меньше рамок варовских
хоть дота на 999 игроков хоть эпические битвы на развитие 20х20..
кстати говоря было бы опять же неплохо реализовать кооперативное прохождение кампаний..

я ничего против не имел проекта с самого начала.
Старый 10.08.2011, 17:15
wester
Back in the game
offline
Опыт: 19,178
Активность:
кстати говоря было бы опять же неплохо реализовать кооперативное прохождение кампаний..
На хайве уже сделали такое. В виде карт.
Старый 10.08.2011, 17:31
Vellear
ху, ху, хуорн!
offline
Опыт: 16,688
Активность:
wester:
кстати говоря было бы опять же неплохо реализовать кооперативное прохождение кампаний..
На хайве уже сделали такое. В виде карт.

нужно делать именно компанию с командной игрой, где соло невозможно пройти во многом потому что нужно или несколько баз одновременно, или героев, или еще чего. Хайв хайвом... но что если одна глава компании была пройдена, то ведь по логике всех кто учавствует должно перебросить на следующую главу компани.... такого на варе насколько я знаю в данный момент нет.
Burn to shadow добавил:
а вообще хреново гадать "а хорошо бы, а круто бы, а если бы сделали..." пускай вначале основу создадут. А дальше уже будет резон что то предлагать.
Старый 10.08.2011, 17:47
agentex

offline
Опыт: 34,834
Активность:
вначале над ядро создать потом думать о всяких наворотах. язык кстати будет тотже жасс, но во 1) скорей всего с добавлением своих нативок (как новый ртк) и 2) в карте он будет храниться в виде байткода, т.е. хакнуть карту станет практически нереально.
Старый 10.08.2011, 18:11
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт: 6,885
Активность:
Прочитал всю тему, заинтересовало, но пока не совсем определился надо ли это?)) мнение спорное.. прокомментирую некоторые моменты:
  1. С открытым исходным кодом - надо ясно дело, да и т.к. движок самописный близы ниче против не будут иметь, разьве только по сеттингу вара? надо думать..
  2. С полной совместимостью со старым движком - не нужно как уже сказали
  3. С адекватной встроенной физикой - возможно дать возможность подключить плагин отдельно физический, который будет на события реагировать определенные (которые движок выдает), а если мапмейкер не сделал такой - будет использовать стандартный вшитый в движок механизм
  4. С возможностью создания плагинов для движка - Вообще механизм плагинов представляю себе как возможность замены поведения по-умолчанию: т.е. мапмейкер в свою карту вставляет уникальный GUID плагина, и разрабатывает карту с его учетом; при запуске карты двиг: для каждого указанного плагина проверяется - если еще не установлен плагин - качает с сайта где все плагины мейкеры будут размещать.. если плагин уже поставлен в папку с игрой - ок... если плагин для какого-то действия не назначен - используется поведение движка по-умолчанию..
Т.е. не конечные юзеры будут выбирать какие им плагины юзать а мапмейкер сам в своей карте напишет что он хочет поменять.. Возможно размещение специализированных плагинов в архиве самой карты, чтобы на сайте не качать т.к. не очень распространенный.. К примеры распространенные изменения интерфейса, физики на сайте, а конкретные для данной карты например жанра файтинга для кнопок клавы - в архиве карты..
Предлагаю здесь описать возможные плагины такого рода.. например физический, графический (изменяет интерфейс самой игры как в карте так и на этапе загрузки карты), слежение за кнопками мыши и ее позицией, а также за нажатием кнопок клавы (вместо поставки способностей-пустышек на хоткеи), дальше предлагайте еще другие плагины - это ведь основа должна быть, иначе зачем это все разрабатывать, думаю основная цель - упростить внедрение идей мапмейкеров в вар не изворотами в существующем движке а написанием плагина для данного действия..
Возможно с кнопками мыши и клавы даже не плагином сделать а вшить в движок)) Добавить реакции на события - кнопка мыши, кнопка клавы, добавить нативки получения нажатых кнопок.. Тот же самый DGUI сделать стандартным плагином - конечно надо, но скорее всего это будет простов возможность движка, а мапмейкер напишет для него плагин где будет просто описан весь GUI на экране, все кнопочки, картинки, другие элементы управление, даже в виде простого XML формата, это уже даже не плагин получается)) Ну а в файле "плагина" этом настроить вызов Jass-функций при срабатывании опредленных событий элементов управления
  1. С убранными багами и ограничениями старого движка вара - баги? какие? я чето не замечал багов в варике)) Ограничения - не слишком сильно убирать, всетаки не просто так они были придуманы.. в принципе на размер карты можно снять ограничение вообще т.к. инет быстрый.. а вот на кол-во игроков - 12 это много, так не часто даже в карты играют.. ради командной игры делать больше? не уследишь за всеми.. ради какой-нить MMORPG - ну не знаю, для нее вообще еще и сервак надо делать, да и надо профи чтобы смогли сделать не лагучую графику для многих юнитов + работу по сети для многих игроков
  2. С мультиформатной поддержкой моделей - не надо.. формат должен быть стандартным для данной игры, а в него сделать конвертер из всех других форматов (как отдельная прога а не вшито в в движок)
  3. С поддержкой старого формата карт .w3x а также стандартного (и JNGP) редактора - старые карты однозначно надо поддерживать, соответственно раз плагины назначаются разрабом карты - все будет ОК
  4. С поддержкой модифицированного .w3x, который позволяет добавлять более 16 тайлов и тп. - предлагаю изменить для него расширение, ну и структура файлов там будет дополненной, это и описание плагинов к скачиванию, и как уже говорил изменение интерфейса в игре, и сами плагины вшиты если не распространенные
  5. С улучшением графики, освещение, тени, все возможности движка Ogre - это одна из ключевых возможностей)) Графический двиг вара уже старый, нужен новый, но обязательно не лагучий, чтоб поддерживал качественные модели в больших кол-вах на экране
  6. С встроенной поддержкой Jass, cJass и увеличенной памятью для джазз машины - а как без Jass карты то писать? vJass, cJass - просто переводить его в обычный Jass на этапе сохранения карты как щас делает JNGP - тоесть тут ниче придумывать не надо, только свою Jass-машину)) Желательно не лагучую.. и говорили что в байт-код переводить - желательно реализовать - для прироста производительности.. возможно даже на этапе инициализации карты..
  7. C поддержкой Lua, который постепенно будет заменять Jass в новых картах - не вижу смысла, если все можно написать на Jass, в который будут вшиты новые нативки.. Может расскажете зачем?
  8. Модульный принцип, описанный в 1м посте... Список стандартных плагинов - и так будет вшито в движок, это уже не плагины.. Список возможных кастомных плагинов - какие-то я описал выше, что касается возможностей "новой рассы" - думаю двиг должен поддерживать такое по-умолчанию, тоесть опять же в архив карты кидаешь файл описания новой расы и все пашет)) даже кнопочка выбора новой расы есть при старте игры)) А вот то, что по "добовлять свои native функции в движок" - какие функции например вы хотите внедрять? Не представляю.. Движок должен быть написан оптимально, с поддержкой структур данных и алгоритмов, которыми могут пользоваться мапмейкеры, обращаясь к Jass-функциям и все.. что еще внедрять? Да даже если дать возможность внедрять любые DLL плагины - дыра в безопасности..
  9. Кстати все что касается защиты карты от открытия в редакторе.. эту штуку врятли реализовать)) даже с помощью перевода в байт-код на этапе сохранения карты - можно написать прогу реализующую обратный процесс, т.к. код двига открытый)) Возможно стоит подумать над этим моментом? Как считаете? Придумать свой механизм защиты карт?
  10. Да, кстати, сам я программист по профессии.. если что могу помочь... но только тогда, когда будет расписано все, что хотите сделать.. Кодить рано! Надо все взвесить, продумать.. Потому что можно такого накодить, что придется переписывать все)) да и не нужного тоже))

Отредактировано Alex_Hell, 10.08.2011 в 18:33.
Старый 10.08.2011, 18:20
prog

offline
Опыт: 32,865
Активность:
Alex_Hell:
Кстати все что касается защиты карты от открытия в редакторе.. эту штуку врятли реализовать)) даже с помощью перевода в байт-код на этапе сохранения карты - можно написать прогу реализующую обратный процесс, т.к. код двига открытый)) Возможно стоит подумать над этим моментом? Как считаете? Придумать свой механизм защиты карт?
Надежно защитить что-то, предназначенное для открытия программой с открытым кодом невозможно в принципе, а опыт показывает что и в любом другом случае это задача не из простых (если не ошибаюсь, то и на полиморфные программы, которые модифицируют свой код в памяти по ходу выполнения уже нашлась управа)
Преобразование кода в байткод на этапе сохранения в первую очередь позиционируется как средство ускорить работу и уменьшить размер карты за счет дополнительных затрат времени при сохранении, а защита от любопытных хомячков это скорее бонус
Кроме того если делать по уму, то нужно будет разработать внутренний ассемблероподобный язык для jass-машины, который, собственно, и будет использоваться для представления в виде байткода.
И транслировать в него код на jass или на чем-угодно другом - хоть на питоне хоть на брейнфаке, если найдется энтузиаст который напишет соответствующий транслятор
Пункты 11,12 и 14 поддерживаю в полном объеме.
П.С. думаю стоит разграничить модули которые подключаются в процессе создания мода (а по сути своей собственной игры на этом движке), те которые подключаются в процессе создания карты(дополнительная логика, многократно используемые модели и т.д и т.п.) и те, которые подключает пользователь (не влияющие на игровой процесс)
Старый 10.08.2011, 19:01
XOR

offline
Опыт: 38,159
Активность:
Кроме того если делать по уму, то нужно будет разработать внутренний ассемблероподобный язык для jass-> машины, который, собственно, и будет использоваться для представления в виде байткода.
Зачем писать огромный кривой велосипед, если есть тот же clr.

Отредактировано XimikS, 10.08.2011 в 19:20.
Старый 10.08.2011, 19:13
wester
Back in the game
offline
Опыт: 19,178
Активность:
XimikS, за шкафом. Ну угадай.
Старый 10.08.2011, 19:17
XOR

offline
Опыт: 38,159
Активность:
Насчет 11 - вжасс и сижасс как ни крути это тот же жасс2 со всеми его особенностями, и да, я писал что хочется чего то более оопнутого и уже известного (питон луа с#)
XimikS добавил:
апдейтнул пост для кранов
Старый 10.08.2011, 19:20
prog

offline
Опыт: 32,865
Активность:
XimikS, я не состою в команде разработчиков, так что все вышесказанное это исключительно мое личное мнение, а CLR тут никаким боком не упал (уж лучше Java тогда - благо поддержку огра в сети для нее где-то видел)
с каких пор луа стал считаться ООП? или с какой версии
П.С. холивар на тему C# vs Java предлагаю здесь не устраивать
Старый 10.08.2011, 19:31
NCrashed

offline
Опыт: 13,553
Активность:
Alex_Hell, в целом я с тобой согласен.
С полной совместимостью со старым движком - не нужно как уже сказали
Забыл почистить 1й пост. Отказались от полной уже.
3 ...
Будет плагином.
  1. С возможностью создания плагинов для движка - Вообще механизм плагинов представляю себе как возможность замены поведения по-умолчанию
Именно так и будет, движок подгружает свои части по кускам, у каждого кусочка есть свой интерфейс, плагин перегружает нужный класс и заменяет нужные функции.
  1. С убранными багами и ограничениями старого движка вара - баги? какие? я чето не замечал багов в варике)) Ограничения - не слишком сильно убирать, всетаки не просто так они были придуманы.. в принципе на размер карты можно снять ограничение вообще т.к. инет быстрый.. а вот на кол-во игроков - 12 это много, так не часто даже в карты играют.. ради командной игры делать больше? не уследишь за всеми.. ради какой-нить MMORPG - ну не знаю, для нее вообще еще и сервак надо делать, да и надо профи чтобы смогли сделать не лагучую графику для многих юнитов + работу по сети для многих игроков
Имелись именно в виду ограничения. Жестких ограничений на колво игроков ставить не будем, будет на совести мапмейкера (он определяет это число)
С мультиформатной поддержкой моделей - не надо.. формат должен быть стандартным для данной игры, а в него сделать конвертер из всех других форматов (как отдельная прога а не вшито в в движок)
Планируется поддерживать на уровне движка mdx и ,например, COLLADA. Mdx конвертить на практике не просто, 3dMax нужен 5 или 8, для многих редакторов нет конвертера, а вот в колладу умеют все.
С поддержкой модифицированного .w3x, который позволяет добавлять более 16 тайлов и тп. - предлагаю изменить для него расширение, ну и структура файлов там будет дополненной, это и описание плагинов к скачиванию, и как уже говорил изменение интерфейса в игре, и сами плагины вшиты если не распространенные
Вот про плагины внутри карты - хорошая идея. Ну а расширение ест-но сменим.
С улучшением графики, освещение, тени, все возможности движка Ogre - это одна из ключевых возможностей)) Графический двиг вара уже старый, нужен новый, но обязательно не лагучий, чтоб поддерживал качественные модели в больших кол-вах на экране
Огр держит много качественных моделей на экране, намного больше чем вар.
C поддержкой Lua, который постепенно будет заменять Jass в новых картах - не вижу смысла, если все можно написать на Jass, в который будут вшиты новые нативки.. Может расскажете зачем?
В целом это лишнее. В идеале луа более гибкий язык и написано под него машин много. Но в первую очередь нужна джазз машина.
Модульный принцип, описанный в 1м посте... Список стандартных плагинов - и так будет вшито в движок, это уже не плагины.. Список возможных кастомных плагинов - какие-то я описал выше, что касается возможностей "новой рассы" - думаю двиг должен поддерживать такое по-умолчанию, тоесть опять же в архив карты кидаешь файл описания новой расы и все пашет)) даже кнопочка выбора новой расы есть при старте игры)) А вот то, что по "добовлять свои native функции в движок" - какие функции например вы хотите внедрять? Не представляю.. Движок должен быть написан оптимально, с поддержкой структур данных и алгоритмов, которыми могут пользоваться мапмейкеры, обращаясь к Jass-функциям и все.. что еще внедрять? Да даже если дать возможность внедрять любые DLL плагины - дыра в безопасности..
Стандартные плагины - они не жестко встроены в движок, а просто реализуют механизмы "по умолчанию", если не перегружены другими плагинами. Тем более обновлять движок будет легче по кускам.
Думаю расы будут описаны в mpq архивах, для добавления нужно кинуть в папку еще один архив. Это как бы урезанный плагин без длл =).
Хм, добавление нативок думаю нужно, а что если маппер захотел себе структуру памяти например такую, все добавить не получится.
С безопасностью всегда так =(. Даешь больше свободы - обязательно появляется возможность написать вирус. Это довольно актуальная проблема, нужно например проверять все плагины, заливающиеся на сайт антивирем, но это не решит проблему. хз еще.
Да, кстати, сам я программист по профессии.. если что могу помочь... но только тогда, когда будет расписано все, что хотите сделать.. Кодить рано! Надо все взвесить, продумать.. Потому что можно такого накодить, что придется переписывать все)) да и не нужного тоже))
Нам очень нужна помощь. То что ты близок программированию видно =). Однако продумать все сразу нельзя, можно продумать многое, но на практике это окажется, например, труднореализуемым.
Мы кодим сейчас то что продумано, джазз машина и плагины для огра для работы с моделями. Параллельно я продумываю структуру движка.
NCrashed добавил:
prog, специально для тебя цитата из вики
Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования с поддержкой прототипов (включая множественное наследование) легко реализуются с использованием метатаблиц, которые также позволяют перегрузку операций и т. п. Реализуемая модель ООП (как и в JavaScript) — прототипная.
NCrashed добавил:
XimikS, насчет байт кодов нета и джавы. Мы же делаем не полноценные проги, а только скрипт, т.е. переводить байт код потом в машинный никто не будет, наш байт код будет выполняться без этой конвертации.
Старый 10.08.2011, 20:03
Escapist
I ♥ XGM
offline
Опыт: 24,367
Активность:
NCrashed, все-таки кол-во игроков стоит ограничить до 32 и размер карты до 50 мб

Nikanorius добавил:
50 мб в смысле для мультиплеера
Старый 10.08.2011, 20:13
prog

offline
Опыт: 32,865
Активность:
NCrashed, я достаточно долго работал с lua и ничего не имею против него, но у меня язык не поворачивается сказать что это ООП. Немного утрируя можно и vJass назвать объектно-ориентированным языком.
Может для кого-то это будет новостью, но на данный момент даже С++, казалось бы вполне ОО язык, на самом деле таковым не является (спасибо в первую очередь наследию чистого C, сохраненному для совместимости, не говоря уже о далеко не полном соответствии стандартам ООП)
Старый 10.08.2011, 20:15
NCrashed

offline
Опыт: 13,553
Активность:
Nikanorius, ограничение на колво игроков понятно, а вот на размер карты нет. Зачем оно для гибкого движка?
prog, чистейшее ООП трудно найти. Спор ни о чем, так что считай ты выиграл =), забудьте о луа, пока не сделаем джазз о нем не вспоминайте.
Старый 10.08.2011, 20:24
prog

offline
Опыт: 32,865
Активность:
"спор" не "ни о чем", а "не по теме", да и моей задачей не было убедить кого-то или не дай бог "выиграть"
по поводу ограничения на размер карты - лучше дать пользователю опцию в настройках "предупреждать если размер карты больше X Мб" (а лучше даже не размер карты, а общий объем контента который надо будет загрузить чтобы играть в эту карту)
да, кстати, вспомнил очередную безумную идею - скачивание карт по торрент протоколу (применимо и к плагинам/модулям/темам/аддонам)
составляющие:
  • возможность полностью отключить использование этой ф-ции (тогда используется стандартное прямое скачивание) или установить ограничения
  • два режима работы (обмен данными в пределах одного хоста и обмен данными между всеми пользователями)
  • автоматически поднимаемый временный "локальный" трекер для хоста и подключившихся к нему
  • постоянный глобальный трекер
  • ну и конечно "клиентская" часть, принимающая от хоста .торрент файл, выполняющая подключение к трекеру и сообщающая движку что файл закачан

Отредактировано prog, 10.08.2011 в 20:56.
Старый 10.08.2011, 20:49
Escapist
I ♥ XGM
offline
Опыт: 24,367
Активность:
для сингла карты пусть весят хоть 100500 мб, а для мульти не больше 50 мб, в 50 мб мона все на импорте сделать и тайлы и деревья и 30-40 юнитов. И оптимально для среднего инета.
Старый 10.08.2011, 20:54
JesusHipster
Иисус Хипстос
offline
Опыт: 35,547
Активность:
очевидно же что если скачивается карта с хоста-игрока то скорость меньше и 50мб и того много.
мне кажется что это опять не сильно насущный вопрос.
сперва надо решить с типом передачи а потом с весом
Старый 10.08.2011, 20:58
Escapist
I ♥ XGM
offline
Опыт: 24,367
Активность:
надо сделать зависимость на размер карты скачиваемой от хостов-игроков. Допустим у нас сидит 32 человека, чтобы максимум 1,5-2 метра на игрока-хоста.
Старый 10.08.2011, 21:02
NCrashed

offline
Опыт: 13,553
Активность:
prog, Выдавать предупреждение намного лучше чем жестко ограничивать размер карты, если проект удастся и он выживет хоть пару лет, то такое ограничение будет как варе мешать.
Можно сделать так: если у игрока нету карты, то он не заходит в комнату, а открывается окошко, предлагающее скачать карту (там и размер и список плагинов показывается) из этого окошка карта скачивается С САЙТА (никак не с хоста =) ), а потом происходит коннект к руме.
NCrashed добавил:
Насчет торрент трекеров - маловероятно. Нужно этот самый трекер реализовать на сервере, раз, запилить в движок клиент, два. Уж пусть загружайте эту фичу через плагин.
Старый 10.08.2011, 21:17
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:19.