TGA [B0S], если хотите помочь, то можете скачать последнюю версию игры и посмотреть вложенные в архив исходники - может быть, чего-нибудь оптимизируете/исправите.
Ох, лол. Там по-хорошему придется для оптимизации всю сетевую часть переписать, там же костыль на костыле. Но оно ведь и сейчас более-менее приемлемо, даже с высокой задержкой. По крайней мере лучше, чем 0.5.
игра ещё сырая оч.. сетевой код не оптемизирован, всё прыгает и скачет. задержка между нажатием кнопки и выполнении команды примерно 1-2 секунды, что на самом деле существенно. И ещё несколько багов: мегасфера даёт зелёный броник(по крайне мере иконка зелёного броника), ракета взрывается со звуком бфг, не предусмотрен спуск вниз со ступенек(т.е. запрыгнуть на полочку можно, а чтобы с неё слезть, обязательно надо в сторону отходить)
Посмотрел. Действительно "ох лол". TCP+UDP на гамакере - это страшный сон. Да еще и нельзя указывать порт при создании сервера/присоединении к нему. На мой взгляд что-то сделать с текущей версией - нириально. Поэтому, с вашего позволения, не поленюсь и сделаю для вас свою заготовку под сетевой дум2д где будет онли UDP.
игра ещё сырая оч.. сетевой код не оптемизирован, всё прыгает и скачет. задержка между нажатием кнопки и выполнении команды примерно 1-2 секунды, что на самом деле существенно. И ещё несколько багов: мегасфера даёт зелёный броник(по крайне мере иконка зелёного броника), ракета взрывается со звуком бфг, не предусмотрен спуск вниз со ступенек(т.е. запрыгнуть на полочку можно, а чтобы с неё слезть, обязательно надо в сторону отходить)
О, ну ты не видел версий до 0.6. Там был тот еще выигрыш с сетевым кодом.
Поэтому, с вашего позволения, не поленюсь и сделаю для вас свою заготовку под сетевой дум2д где будет онли UDP.
Ну ладно же. Только тогда я, считай, немного там написал. Я не пробовал делать онли-UDP, например. А порт - это я могу просто в список cvar на сервере воткнуть, это не страшно.
Скрытый текст:
Вы бы лучше играли хоть немного, а то скучно же. :3
И ещё несколько багов: мегасфера даёт зелёный броник(по крайне мере иконка зелёного броника), ракета взрывается со звуком бфг, не предусмотрен спуск вниз со ступенек(т.е. запрыгнуть на полочку можно, а чтобы с неё слезть, обязательно надо в сторону отходить)
Там просто изображение брони, чтобы было понятно сколько её, и то, что она изображена зелёного цвета в данном случае ни о чём не говорит. Спуск со ступеней не был предусмотрен в Doom 2d, а Doom 2D Multiplayer опирается на эту игру.
Поэтому, с вашего позволения, не поленюсь и сделаю для вас свою заготовку под сетевой дум2д где будет онли UDP.
Попробовал слать все частые пакеты через UDP. Задержки не особо видно, зато пакеты часто не доходят, из-за чего появляется дерганность. В основном, наверное, потому, что я не делал предсказывания движения, почти нихера не понимаю в сетевых протоколах, да и вообще не особо кодер. Как ты собрался делать онли-UDP с гарантированной доставкой пакетов, да еще и на 39dll, да еще и без client prediction?
Товарищ JustAnother начал переписывание серверной части игры на Visual C#. Хочу пожелать ему удачи, так как если этот проект действительно будет реализован, то это игра будет работать в разы быстрее.
Да, стало немного лучше, но еще есть над чем работать - ладно у меня фпс выше 40 не поднимался(ибо я держал у себя и клиент и сервер, а об этом вы пишете в "багах"), но вот у других людей, запускавших только клиент - фпс был таким же. Как вариант, можно попробовать снизить фпс игры до 30 - всё будет менее плавно, но зато будет работать быстрее.
Добавлено спустя 3 часа 3 минуты 21 секунду:
И еще пару вещей: 1) По прежнему никак нельзя указать порт, который будет слушать сервер, или к которому будет подключатся клиент. 2) Крайне не хватает или "ауто-свитч веапонс", или возможности назначить конкретные оружия на отдельные клавиши - листать двумя кнопками оружия в момент напряжённого боя просто мега-удобно.
FPS игры во многом зависит от мощности видеокарты. Игра отлично идёт на слабых компах, но с сильной видюхой.
TGA:
1) По прежнему никак нельзя указать порт, который будет слушать сервер, или к которому будет подключатся клиент.
Вроде бы это нельзя сделать на 39DLL. Надо будет спросить у Простовиталика.
TGA:
2) Крайне не хватает или "ауто-свитч веапонс", или возможности назначить конкретные оружия на отдельные клавиши - листать двумя кнопками оружия в момент напряжённого боя просто мега-удобно.
Это специально, как в оригинальном Doom2D. Если сделать автопереключение/назначение на отдельные клавиши, то геймплей кардинально изменится. И не в лучшую сторону, ИМХО.
Это специально, как в оригинальном Doom2D. Если сделать автопереключение/назначение на отдельные клавиши, то геймплей кардинально изменится. И не в лучшую сторону, ИМХО.
Вот это вообще не объеснение, а очередная отговорка. Я уже тоже давно прошу, чтоб сделали назначения оружия на отдельные кнопки. К тому же я это говорю как активный игрок. Можете оставить эти перелистывания и пользоваться ими, но для сетевой игры, где каждая секунда решает жить тебе или нет, такое управление никуда не годится. Doom 2d была более спокойная игра и там это не раздрожало. А тут надо брать пример не только с оригинала, но и с NFK например.
Вот это вообще не объеснение, а очередная отговорка.
Норкоман, лол. И не отговорка это, а попытка следовать букве оригинала. Я подумаю. По-моему, это можно реализовать ещё одним параметром на сервере с тремя значениями. Например: параметр ?_wpnchange со значениями 0, 1 и 2. 0 - смена оружия способом "перелистывания" 1 - смена оружия путём нажатия на соответствующую клавишу 2 - смена оружия любым из перечисленных выше способов
Например: параметр ?_wpnchange со значениями 0, 1 и 2.
Ну и зачем эти трудности? После появления функции назначения на каждое оружие кнопки все заядлые гемеры по-любому перейдут на такое управление, потому что перелистывание это не по-спортивному. А тут заходят на сервер, а их управление не работает. Это только злость будет вызывать. Если по дефолту будет стоять 2 (что, конечно, будет правильно), то этот параметр практически бессмысленен (примерно то же самое, что и oldaim, которым вообще никто не пользуется). Поэтому тут просто надо ввести такую возможность смены оружия, чтоб она работала везде.
Ну и зачем эти трудности? После появления функции назначения на каждое оружие кнопки все заядлые гемеры по-любому перейдут на такое управление, потому что перелистывание это не по-спортивному.
Либо так, либо никак. В любом случае, можно будет попросить админа сервера поменять значение. _oldaim'ом я пользуюсь при тестировании карт.
Вышла новая сборка версии 0.6 - 124. Основные нововведения: - реализована система передачи отсутствующих у игроков карт; - проведена серьёзная оптимизация, позволившая сильно ускорить игру; - написан новый алгоритм синхронизации, позволивший существенно уменьшить количество лагов. Также у нас открылся первый 24/7 сервер.)
Идея с Doom 2d multiplayer очень клёвая, хотя я ожидал что это будет как дополнение к обычному Doom 2d forever. Я был очень удивлён когда узнал что игра сделана в Game Maker'e 8.0! Игра хорошо копирует геймплей Doom 2d, но вот физика здесь меня немного вымораживает , а отсутствие прочих вещей можно как-нибудь пережить!
Спустя почти год после релиза сборки 126 выходит сборка 128! Список изменений:
обновлен мастерсервер;
переписан протокол передачи карт;
изменен порядок отрисовки объектов в редакторе и клиенте;
добавлена возможность свободного обзора при просмотре записей геймплея;
добавлен новый предмет "Костюм" - защищает игрока от урона в кислоте на 30 секунд;
добавлена возможность отражать объекты карты в редакторе;
добавлена возможность привязки предметов в редакторе за нижнюю сторону спрайта;
добавлена возможность сохранять схему карты в редакторе;
добавлена возможность отключения автосохранения файла конфигурации сервера после его остановки;
исправлена физика игрока в жидкостях небольшой высоты;
исправлено исчезновение снарядов ракетницы, плазмагана и BFG;
исправлено нанесение урона игроку, выстрелившему из BFG в кислоте;
исправлено изменение некоторых параметров в настройках во время игры;
множество прочих исправлений и добавлений различной степени важности.
Тем не менее, стоит упомянуть, что 128 является по большей сути всего лишь вариантом сборки 127, о которой я не писал здесь, которую довели "до кондиции". Список изменений сборки 127 куда внушительнее. Вот он:
сетевая система перенесена с 39dll на 39dylib;
добавлены триггеры для карт;
добавлена возможность записи и последующего воспроизведения игрового процесса ("демки");
добавлена интерполяция движения игрока в клиенте;
добавлена возможность отключения обработки физики на стороне клиента;
добавлено два новых типа нанесения урона от попадающих в воду снарядов плазмагана и BFG;
добавлена возможность голосования за выполнение определенной команды на сервере;
добавлена возможность создания отдельных файлов конфигурации для отдельных карт;
добавлен новый предмет - невидимость;
изменены некоторые звуки в клиенте;
добавлена возможность отключения HUD'а в клиенте;
полностью переписана система меню в клиенте;
добавлен эффект респауна предметов в клиенте;
теперь лимиты очков на сервере для каждого из режимов игры задаются отдельными параметрами;
добавлено отображение аббревиатуры режима игры в HUD'е;
теперь сервер выводит краткую информацию о своем состоянии в панель задач в режиме -nogui;
добавлены "горячие клавиши" для управления сервером (доступны только в режиме -nogui);
добавлена возможность удаления текстур из списка в редакторе;
в редактор добавлены оптимизаторы неиспользуемых текстур и лишних тайлов;
многие стандартные карты подверглись переработке и оптимизации;
в стандартный комплект текстур добавлены анимированные текстуры;
исправлен недочет сетевого протокола, из-за которого можно было получить контроль над другим игроком;
исправлено проваливание игроков сквозь ступени;
прочие добавления и исправления, которые невозможно было упомнить ввиду их необозримого количества.
Дамы и господа! Ladies and Gentlemen! Meine Damen und Herren!
У нас тут внезапно случилась радикальная оптимизация сети в Doom 2D Multiplayer. Много лет мы страдали от жестоких лагов, плакали, кололись, но продолжали жрать кактус. Все эти жертвы были принесены не зря! Теперь сеть работает БЫСТРО и ЭФФЕКТИВНО. Даже из Владивостока. Даже через 3G.
Приглашаем всех на открытый нагрузочный тест прямо сейчас!
Рады сообщить вам о том, что вышла сборка 130! Список изменений:
введена система плагинов для сервера;
исправлено исчезновение снарядов;
система передачи карт серьёзно оптимизирована и ускорена;
в систему передачи карт и обработку записей игрового процесса введена буферизация;
введена простая система фильтрации пакетов клиентом;
исправлена утечка памяти в консолях клиента и сервера;
с нуля сделана новая физика у кусков и трупов;
трупы теперь можно разрывать взрывами от ракет на куски;
куски теперь можно пинать;
в стандартные ресурсы добавлены дополнительные текстуры;
теперь в архив с картой при наличии упаковывается и её конфигурация (включается новым параметром sv_dl_mapcfg);
добавлена возможность указания углов стрельбы как в Doom 2D 1.30 (в связи с этим параметр mp_oldaim переименован в mp_aimtype);
реализована возможность задавать режим игры в sv_map отдельным параметром;
реализована возможность указывать в sv_map символ «*» вместо имени карты для перезапуска текущей карты;
добавлен вариант параметра mp_automode: 3 - выбор только TDM на CTF-картах;
столкновение ударных волн от снарядов BFG со ступенями теперь регулируется параметром mp_shootjthr;
исправлено внезапное исчезновение невидимости, выданной через cl_setval;
реализована возможность изменения mp_gamemode во время игры (применяется к следующему раунду);
в консоль сервера добавлена команда ip_update;
добавлены кнопки для сброса флага и смены команды;
теперь во время бессмертия после респауна игрок не может стрелять;
исправлен цвет сообщений чата после завершения раунда при наличии у игрока неуязвимости;
исправлена тень у сообщений чата;
слегка изменён эффект неуязвимости на клиенте игрока с ней;
эффекты невидимости при наличии у игрока неуязвимости или невидимости больше не применяются к его клиенту;
теперь при нажатии кнопки смены оружия во время его перезарядки оно сменится после её завершения;
исправлена синхронизация при cl_sync_type = 1;
исправлена работа телефрага;
звук выстрела из BFG разделён на звук зарядки и звук непосредственно выстрела;
исправлены ошибки в работе списка текстур в редакторе;
анимация стены после включения той теперь начинает проигрываться сначала;
игроки теперь задыхаются и в кислотах;
исправлены некорректные размеры зон воздействия триггеров;
исправлена активация триггеров нажатия, накладывающихся друг на друга;
немного изменена система ближнего боя;
реализована возможность изменения размеров окна редактора карт;
в связи с изменениями в протоколе поднят номер версии файлов записей игрового процесса;
исправлено самопроизвольное летание игрока после взятия им джетпака при включённом на сервере mp_flymode;
исправлена работа чата у ботов;
множество прочих изменений, оптимизаций и добавлений, от полного списка которых этот форум попросту бы лопнул.
Английская версия этой сборки появится чуть позже. Вместе с этим уведомляем всех о том, что на этой сборке завершается вот уже почти трёхлетняя история версии 0.6. Больше она разрабатываться не будет. Ну а заменить её призвана разрабатываемая версия 0.65, за ходом создания которой можно следить вот здесь.