Если нет сопротивления движению(т.е. плотность в вакууме считать нулевым), нет препятствий, которые поменяют траекторию и солнце не высохнет, то можно никогда не упасть.
Вы пишите так будто сетевой стек в анриле это что-то невероятно сложное, и только Вам удалось его понять.
Проблема тут не в сети а в данных которые передаются. Если клиенту передавать данные о всей карте, то так или иначе можно написать мапхак.
Единственный выход — это не передавать всю карту, а только то, что видит пользователь. Причем для каждого клиента нужно отсылать то, что видит именно этот клиент, а это может создать дополнительные сложности в разработке, поэтому многие забивают на это.
А почему нет варианта: лучше в 3д с 60 фпс, чем в 2д с 60 фпс?
Такой вариант тоже есть :) Это зависит от игры.
К примеру мне вот нравится 2д игра «Limbo», и при прохождении я не думал о том, что было бы круто, если игру сделали в 3д. Игру изначально задумывали в 2д и она очень хороша.
Или же просто не помнят, что есть ещё и 3д (шлемы, очки...). А зря.
Как говорится «за двумя зайцами погонишься, можешь ни одного не поймать».
Не всем играм суждено быть в 3д и для VR.
Универсальность не всегда хорошо.
Например игру для смартфонов лучше сделать в 2д с 60 фпс, чем в 3д с 20 фпс(грубо говоря).
Но стоит помнить, что платят то за клики по баннеру, а не просмотры.
Я говорю про видео рекламу, и тап по нему после просмотра, а не про баннер, который висит все время в меню.
Можете дать ссылку на подтверждение Ваших слов?
К сожалению официального подтверждения у меня нет. Я обычный программист, и это утверждение слышал внутри нашей компании. Игнорировать думаю не стоит.
Даже если я прав, возможно не стоит переписывать код. Здесь говорится, что дешевая реклама в некоторых случаях выгоднее. Стоит изучить аналитику в admob.
Да и вообще, почему нужно слать «слепки» состояния всего мира 60 раз в секунду? Почему не слать пачки изменений конкретных объектов с привязкой к меткам времени?
На сколько я понял, автор так и сделал. Для этого он и хранит предыдущие состояния всего мира, потом сравнивает с состоянием мира клиента и отправляет ему разницу.
По поводу «Игра поддерживает до 2048 объектов.» автор сам объясняет почему он так сделал.
Если 2048 объектов это теоретический максимум для его игры, то почему бы и нет. Такой способ реализовать быстрее. Однако я бы все-таки не советовал так хардкодить, если есть возможность и время сделать лучше.
Про разницу игровых состояний, сжатие данных и многое другое очень хорошо написал Гленн Фидлер. И автор любезно предоставил ссылку на его статьи: gafferongames.com
На словах выглядит интересно, однако у меня есть одно подозрение.
Если пользователь посмотрит рекламу 5 раз подряд, и он не кликнет по ссылке, то его ценность сильно уменьшится и этому пользователю будут показываться дешевая реклама. Т.е. Вы получите меньше денег за рекламу, чем если бы вы растянули эти 5 показов на больший временной отрезок.
Спасибо за перевод!
Как раз начал изучать эту тему.
Попытался сделать что-то типа:https://www.youtube.com/watch?v=cyN-CRNrb3E, но только с одной палкой.
Обучил нейросеть держать палку почти вертикально, коэффициент вознаграждения за «вертикальность» подобрать было не супер-просто. Но когда я попытался обучить держать палку идеально ровно и чтобы энергии на движение тратилось минимум, оказалось что нужно подбирать коэффициент наказания за «не вертикальность», что оказалось очень не просто, я так и не подобрал. Нейросеть думает, что ему и так не плохо и не хочет обучаться дальше.
В общем для меня это пока боль, хотя казалось бы все должно быть просто и само по себе заработать.
Буду копать дальше по приведенным в статье ссылкам. Возможно такие вещи стоило бы сделать через ГА.
Я всегда считал, что lvalue — это «left value», а rvalue — «right value».
lvalue — то, куда присваивается, rvalue — то, что присваивается, т.е. lvalue = rvalue.
По-моему очень удобное определение.
Вот она, графика настоящего программиста — примитивы)
Было бы не плохо сделать так, чтобы враги стреляли когда видят тебя на небольшом расстоянии.
Чтобы сильно не усложнять можно уменьшить скорость пули врагов.
Особенно улыбнула фраза — «Депрессия — не до неё, все заняты выживанием» :)
Спасибо за интересную статью! Молодцы! Желаю успешного релиза!
И ещё найти того чувака в гавайях :)
Проблема тут не в сети а в данных которые передаются. Если клиенту передавать данные о всей карте, то так или иначе можно написать мапхак.
Единственный выход — это не передавать всю карту, а только то, что видит пользователь. Причем для каждого клиента нужно отсылать то, что видит именно этот клиент, а это может создать дополнительные сложности в разработке, поэтому многие забивают на это.
К примеру мне вот нравится 2д игра «Limbo», и при прохождении я не думал о том, что было бы круто, если игру сделали в 3д. Игру изначально задумывали в 2д и она очень хороша.
Читабельность ломается, непонятно какой тип. Хотя в некоторых случаях наверное удобно так писать.
Как говорится «за двумя зайцами погонишься, можешь ни одного не поймать».
Не всем играм суждено быть в 3д и для VR.
Универсальность не всегда хорошо.
Например игру для смартфонов лучше сделать в 2д с 60 фпс, чем в 3д с 20 фпс(грубо говоря).
Юнити все лучше и лучше.
Спасибо за видосик!)
Кому как, ведь все люди разные. Кто-то предпочтет посмотреть рекламу и потратить свое время, чем потратит свои деньги.
Я говорю про видео рекламу, и тап по нему после просмотра, а не про баннер, который висит все время в меню.
К сожалению официального подтверждения у меня нет. Я обычный программист, и это утверждение слышал внутри нашей компании. Игнорировать думаю не стоит.
Даже если я прав, возможно не стоит переписывать код. Здесь говорится, что дешевая реклама в некоторых случаях выгоднее. Стоит изучить аналитику в admob.
На сколько я понял, автор так и сделал. Для этого он и хранит предыдущие состояния всего мира, потом сравнивает с состоянием мира клиента и отправляет ему разницу.
По поводу «Игра поддерживает до 2048 объектов.» автор сам объясняет почему он так сделал.
Если 2048 объектов это теоретический максимум для его игры, то почему бы и нет. Такой способ реализовать быстрее. Однако я бы все-таки не советовал так хардкодить, если есть возможность и время сделать лучше.
Про разницу игровых состояний, сжатие данных и многое другое очень хорошо написал Гленн Фидлер. И автор любезно предоставил ссылку на его статьи: gafferongames.com
Если пользователь посмотрит рекламу 5 раз подряд, и он не кликнет по ссылке, то его ценность сильно уменьшится и этому пользователю будут показываться дешевая реклама. Т.е. Вы получите меньше денег за рекламу, чем если бы вы растянули эти 5 показов на больший временной отрезок.
Как раз начал изучать эту тему.
Попытался сделать что-то типа:https://www.youtube.com/watch?v=cyN-CRNrb3E, но только с одной палкой.
Обучил нейросеть держать палку почти вертикально, коэффициент вознаграждения за «вертикальность» подобрать было не супер-просто. Но когда я попытался обучить держать палку идеально ровно и чтобы энергии на движение тратилось минимум, оказалось что нужно подбирать коэффициент наказания за «не вертикальность», что оказалось очень не просто, я так и не подобрал. Нейросеть думает, что ему и так не плохо и не хочет обучаться дальше.
В общем для меня это пока боль, хотя казалось бы все должно быть просто и само по себе заработать.
Буду копать дальше по приведенным в статье ссылкам. Возможно такие вещи стоило бы сделать через ГА.
В той же главе пишется:
Например в случае:
const int val = 0;
val = 4; // Тут val все еще lvalue, хоть и нельзя так писать
Я всегда считал, что lvalue — это «left value», а rvalue — «right value».
lvalue — то, куда присваивается, rvalue — то, что присваивается, т.е. lvalue = rvalue.
По-моему очень удобное определение.
color.r = gray;
color.g = gray;
color.b = gray;
Было бы не плохо сделать так, чтобы враги стреляли когда видят тебя на небольшом расстоянии.
Чтобы сильно не усложнять можно уменьшить скорость пули врагов.
Спасибо за интересную статью! Молодцы! Желаю успешного релиза!
И ещё найти того чувака в гавайях :)