Четверг, 25 Апреля 2024, 20:30

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 20
  • 1
  • 2
  • 3
  • 19
  • 20
  • »
Форум игроделов » Записи участника » XDominator [389]
Результаты поиска
XDominatorДата: Среда, 06 Февраля 2019, 16:54 | Сообщение # 1 | Тема: Максимальное значение хп
постоянный участник
Сейчас нет на сайте
Цитата Core ()
можно так:

Можно, вот только оптимизация спасибо тебе не скажет. В варианте выше - код выполнится один раз при наступлении события, а у тебя будет долбить каждый шаг. А если у тебя таких параметров 10? А если 100?


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Среда, 06 Февраля 2019, 16:51 | Сообщение # 2 | Тема: Как реализовать поиск онлайн врагов в Game Maker Studio
постоянный участник
Сейчас нет на сайте
Если ты не знаешь даже как подобрать противника через онлайн, то можно узнать, что ты уже сделал онлайнового в стратегии?))
Просто звучит как - я не знаю, что такое числа, подскажите, как взять интеграл?


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 11 Декабря 2015, 07:09 | Сообщение # 3 | Тема: Застревание в углу платформы GMS
постоянный участник
Сейчас нет на сайте
Никогда не используй галочку Solid в объектах.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Вторник, 01 Декабря 2015, 11:50 | Сообщение # 4 | Тема: Несколько вопросов
постоянный участник
Сейчас нет на сайте
Либо как вариант для второго вопроса, создается объект, который хранит в себе хп твоей группы объектов, и ссылки на них же. И в самих объектах хранится обратная ссылка на этот главный в группе объект и чтение/запись hp происходит в нем по команде из других объектов группы. Вариант с глобальной переменной не подходит, если таких одинаковых групп может быть несколько одновременно.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 27 Ноября 2015, 08:35 | Сообщение # 5 | Тема: Две темы.
постоянный участник
Сейчас нет на сайте
GM8 морально и физически устарел, поэтому он в любом случае будет проигрывать GMS. Соответственно на ней у тебя нет выбора, чем пользоваться. Для ПК полная версия сейчас бесплатна. Это ответ на твои первые 3 вопроса.

Если ты пишешь на андроид НЕ игру, то GML тебе врядли подойдет - во первых, он блокирует поток неактивного окна, а значит что приложения типа viber тебе уже не написать. Живые обои на нем тоже не сделать чисто физически(хотя хотелось бы, конечно). насчет клавиатуры кстати не знаю, но уверен что все таки вызвать ее возможно, иначе это полный абзац. В общем спектр функционала НЕ игр на GMS крайне ограниченный, и расширить ты его не сможешь.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Понедельник, 23 Ноября 2015, 13:57 | Сообщение # 6 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Не знаю, не тестировал. Думаю что 32 либо 64, но это пальцем в небо.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Понедельник, 23 Ноября 2015, 13:55 | Сообщение # 7 | Тема: Выпонение определенного кода в зависимости от платформы
постоянный участник
Сейчас нет на сайте
Ты же по любому будешь компилить отдельно под каждую платформу, при каждой компиляции меняй константу, отвечающую за тип платформы, а в коде проверяй эту константу на значение и выполняй код, соответствующий этому значению. Это самое простое решение, имхо.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 20 Ноября 2015, 11:29 | Сообщение # 8 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Да, но это опять же допустимо далеко не во всех системах. В случаях с координатами, достаточно лишь обеспечить очередность. Когда я это делал, я просто добавлял порядковый номер каждому отсылаемому пакету. Если номер пришедшего пакета был меньше чем последний использованный, тогда пакет просто игнорился. Такая система не влияет на пинг. А вот стрельба была на tcp, поскольку время ее отображения у клиентов не столь существенно, но существененн сам факт отображения, который обязан быть при выстреле у всех клиентов в зоне видимости.

Знаю что выражаюсь не вполне понятно, но как объяснить свою точку зрения лучше не знаю))


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 20 Ноября 2015, 07:33 | Сообщение # 9 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Ну как я уже писал выше, UDP необходимо использовать для координат в онлайн шутерах, типа CS, PB, и всего такого. там как раз решают миллисекунды, и перемещение основывается на передаче конечных координат, а не нажатий клавиш игроков. UDP также желатльно использовать при подгрузке больших данных с сервера - передача карт например, но этот UDP уже будет с обратной связью от клиента для контроля целостности загрузки карты. При нормальном соедиинении это значительно увеличит скорость загрузки, при плохом - будет тоже самое что и TCP.

Привязать стрельбу, инвентарь, и даже перемещение в некоторых играх к UDP нельзя. Этот протокол подходит для постоянно, непрерывно обновляющихся данных - та же голосовая связь например. Но если игрок стреляет - то нельзя позволить системе проглотить этот выстрел из-за плохого интернета. Если игрок использует скилл - то нельзя позволить пропасть тому пакету, который сообщает об этом серверу.

По поводу регистрации не совсем понял что нужно пояснить. В идеале логин\пароль хранятся в БД. В момент когда игрок регистрируется - данные проверяются на корректность(неправильные символы, пробелы т.д.) и заносятся в бд. Потом, когда игрок логинится, делаешь запрос к БД по полям, заданным пользователем как логин и пароль, и если запрос возвращает тебе запись, соответствующую этим полям - значит игрок залогинен корректно и с помощью ИД его аккаунта можно подгружать из бд всю дополнительную связанную информацию. Теоретически, к этой же бд можно подключить сервер для твоего сайта, мобильного приложения или еще чего угодно, и тогда все это объединится в единую систему. Как конкретно это все реализовать не подскажу, т.к. сам такие системы, честно говоря, не разворачивал. Но по такому принципу, например, работают пиратские сервера lineage 2, ну и собственно не пиратские тоже.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Четверг, 19 Ноября 2015, 08:01 | Сообщение # 10 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
В статье написана какая то чушь.
Использовать только UDP в игре? гениально, браво. Особенно классно его будет использовать для систем типа инвентаря, менеджмента или какого-нибудь строительства, а особенно хорошо подойдет для чата, чтобы половина фраз пропадала у игроков.

Как я уже писал выше, далеко не для всех игр это подойдет даже для передачи координат, даже привел конкретный пример - lineage 2, потому что это skill-based игра с strategy-like управлением перемещением. И использовать UDP для чего либо там станет только полный отморозок.

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


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Среда, 18 Ноября 2015, 14:41 | Сообщение # 11 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Да ничего проблемного на самом деле нет. Долго - да, муторно - да. Но не особо сложно.

2 AI_Developer

Представим себе типичную ММОРПГ. Например l2. Ты предлагаешь делать координаты по UDP.
Игрок тыкает мышью, но его UDP пакет не доходит до сервера и персонаж стоит где стоял. Он тыкает еще раз - тоже самое. И еще раз - опят. Он закрывает клиент и идет вайнить на форум - какого хера я тыкаю мышью, а персонаж стоит? Если бы ты тоже самое делал по TCP - тогда такой проблемы бы не было, и даже если бы клиент посылал запросы во время лага, то с большой вероятностью в конце этого лага он либо побежал, либо уже оказался в точке где хотел быть(если лаг был не с исходящими пакетами, а с входящими). Не говоря уж о том с какой частотой у тебя с UDP будет происходить рассинхрон координат на сервере\клиенте, что будет порождать телепорты, баги с геодатой и застревание в ней же. 10 мс пинга того стоят? Не думаю.

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

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


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)


Сообщение отредактировал XDominator - Среда, 18 Ноября 2015, 14:41
XDominatorДата: Среда, 18 Ноября 2015, 08:24 | Сообщение # 12 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Что можно в игре посадить на UDP, кроме передачи координат?
Даже чат на UDP нет смысла ставить, не говоря уж про инвентарь или экшн.
В разрезе ММОРПГ даже передача координат нерентабельна, т.к. там не нужна скорость, но нужна точность.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Среда, 18 Ноября 2015, 07:25 | Сообщение # 13 | Тема: [GMS] Передача пакетов при открытии инвентаря
постоянный участник
Сейчас нет на сайте
Цитата AI_Developer ()
Так же для игрового процесса рекомендовал бы использовать UDP. Так как целостность пакетов TCP могут вызвать ужасные лаги.


Вот только далеко не для всего он подходит, мягко говоря.
Но для некоторых вещей он необходим.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Вторник, 17 Ноября 2015, 07:19 | Сообщение # 14 | Тема: Оптимизация
постоянный участник
Сейчас нет на сайте
Цитата maksim1221232 ()
collision_line...
Я даже не знаю как это можно оптимизировать...


Если выполнять твой код не каждый step, а например 1 раз в 10 step-ов, то нагрузка этого блока уменьшится соответственно в 10 раз.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Понедельник, 16 Ноября 2015, 07:22 | Сообщение # 15 | Тема: Оптимизация
постоянный участник
Сейчас нет на сайте
Ковыряй дальше свои алгоритмы, особое внимание на step-ы и особенно большое на циклы внутри них. Если какой нибудь цикл выполняет внутри step-а 100 итераций в 40 объектах, то он обязательно уронит тебе фпс.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 13 Ноября 2015, 14:25 | Сообщение # 16 | Тема: Анимация на 2 клавиши
постоянный участник
Сейчас нет на сайте
Когда то давно делал это очень просто - создавал переменную с типом true\false под каждую клавишу(Типа left, right,...) и в событиях нажатия\отпускания клавиши присваивал им соответсвенно true\false.

ну а потом в нужном месте соответственно пишешь условие

if up and left
{...}

Как то так.

Добавлено (13 ноября 2015, 14:25)
---------------------------------------------

Цитата DIDA ()
image_xskale = ...
// 1 - дефолт, -1 - в обратную сторону


Во первых - image_xscale
Во вторых - чем ему поможет множитель горизонтального растягивания, если не секрет?


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Пятница, 13 Ноября 2015, 07:49 | Сообщение # 17 | Тема: Game Maker Studio Master Collection
постоянный участник
Сейчас нет на сайте
Направление объекта - direction.
Направление спрайта - image_angle.
Ни хрена не понял че ты хочешь, но эта инфа должна тебе помочь.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Четверг, 12 Ноября 2015, 15:51 | Сообщение # 18 | Тема: Общение через микрофон
постоянный участник
Сейчас нет на сайте
Т.е. правильно ли я понимаю алгоритм - пишем звук как набор битов, из этого буфера битов кусками вырезаем начиная с начала биты ровными кусочками, запихиваем в другой буфер и отправляем его, в конечном принимающем клиенте это преобразуем из байткода обратно в звук, который можно воспроизвести?
Ну и конечно для этого придется использовать TCP и например воспроизводить только куски длиной например 1 секунду(Либо меньше, если вся запись целиком меньше 1 секунды), а не каждый пакет по отдельности.


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Четверг, 05 Ноября 2015, 15:46 | Сообщение # 19 | Тема: Вопрос про движение врага в RPG.
постоянный участник
Сейчас нет на сайте
speed *= -1

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
XDominatorДата: Вторник, 03 Ноября 2015, 13:49 | Сообщение # 20 | Тема: 39dll Передача координат
постоянный участник
Сейчас нет на сайте
Вот никак не возьму в толк - что заставляет людей до сих пор юзать game maker вместе с дырявой dll, когда уже больше года есть GMS с БЕСПЛАТНОЙ полной версией под винду с нормальным Networking?

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
Форум игроделов » Записи участника » XDominator [389]
  • Страница 1 из 20
  • 1
  • 2
  • 3
  • 19
  • 20
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг