-2
Karma
0
Rating
Alibek Beldinov @Neuyazvimy1

Game developer

Через тернии к игре мечты

Рефакторинга много не бывает

0
Я понимаю множество разных принципов как советы, а не как требования. Потому что принципы должны делать разработку быстрой и удобной для разработчика. Следовательно не обязательно везде следовать KISS, SOLID и т д. Каждый программист должен на уровне интуиции и опыта понимать что и чему должно придерживаться. По поводу рефакторинга он несомненно нужен, но он должен относится к текущей задаче исходя от требовании бизнеса.

Патентные тролли начинают и выигрывают: как я остался без игры

+1
Я сам тоже из геймдева. И у нашей партнерской компании была похожая проблема, только не с целым названием, а со словом «saga», с одной очень популярной игрой в жанре головоломки. И это нормальная ситуация эти компании платят миллионы долларов в продвижение ключевых слов и названии игры в ASO. Бодаться с ними нереально у них больше денег и лучшие юристы. Капитализм во всей его красе.

Пример использования Java-библиотеки для создания Telegram-бота

0
Есть опыт разработки 2 телеграм ботов. Но ни в первый, ни во второй не использовал специальную библиотеку для телеграма. Куда удобнее использовать какие нибудь крутые http клиенты + javaRx. Для java — unirest.io/java.html
Сразу аргументирую свой выбор в пользу http api, потому что он лучше задокументирован.

Go против Excel на сотни тысяч строк

NewSQL = NoSQL+ACID

DevConf: переход Uber с PostgreSQL на MySQL

Почему игровые серверы и чат должны существовать раздельно

0
Микросервисы очень удобно использовать когда напрмер ваша команда не успевает уложится в сроки. Вы просто отдаете на аутсорс микросервис который вам нужен, и не паритесь какая там архитектура, говно код или нет и так далее. Он просто работает, и вы его можете масштабировать как хотите.
Если команда не сильна в архитектуре крупных проектов, это то что нужно. Потому как поддерживать крупный бэкенд с хрупкой архитектурой сложно.
Например в MMO играх типа WoW, Lineage, Eve Online там даже авторизация, игровая логика, магазин поделены на микросервисы. Не потому что они слабы в архитектуре, а просто потому что так удобнее. За счет этого они более гибче могут настроить свою инфраструктуру и аренда серверов будет дешевле и билды собираются быстрее.
Ну и конечно можно писать микросервисы на разных языках и фреймворках, а это дает крутую производительность.
Я например готовые микросервисы с гитхаба использую и это круто экономит время и деньги.
А вообще мы последний год не пишем свои сервера, пишем только игры и бэкенд логику. За бэкенд отвечают платформы типа GameSparks, Photon и т д. (Ну это конечно зависит от наших целей).

Роскомнадзор всё-таки заблокировал Zello: для этого пришлось внести в реестр тысячи адресов Amazon и Google

-6
А зря. Не надо было из этого всего раздувать такую шумиху Zello. Просто по тихому открыли бы доступ Гос Органу Цензуры. Из-за этого «скандала» страдает сам Zello и основная их аудитория, так как забастовщиков и террористов ничтожное малое количество. И это нормальная практика, те кто орут что не дают доступа уже давно открыли его и сотрудничают. А Zello повелись на них).

Простой менеджер ассинхронных задач для Unity3D

0
На самом деле вариантов решения вашей проблемы куда больше.
Можно одновременно иметь 10к (Micro)Update.
blogs.unity3d.com/2015/12/23/1k-update-calls
More Effective Coroutines
assetstore.unity.com/packages/tools/animation/more-effective-coroutines-free-54975
JobQueue
wiki.unity3d.com/index.php/JobQueue
Thread Ninja
assetstore.unity.com/packages/tools/thread-ninja-multithread-coroutine-15717
И куча других разных ассетов со стора.
Но за статью спасибо, сам примерно тем же занимался до UniRx. И все же лучше будет вам перейти на UniRx. Удачи!

Почему в 2018 году я использую метод разработки, которому уже 30 лет

+1
Каждой команде свое. Это выбор каждого какую методологию использовать.
Я только в статье прочитал какие проблемы есть в разработке игр. А конкретно про эту методологию так и ничего не увидел. Даже гугл не помог.
А вообще переводить статьи новичков лучше не стоит. В современное время эти «проблемы» уже решили давно и не надо ничего придумывать или уходить далеко в прошлое.
Есть прототипы, tech demo, demo, alpha, beta полно разных стадий и развлетвлении в разработке что все гипотезы можно проверить. А насчет препродакшена это истина написанная кровью и потом тысячи разработчиков. «Самое сложно в геймдеве — это не делать игры.»

UE4 и мобильная разработка: мифы и реальность

-1
Никогда не нравились эти холивары Unreal vs Unity. По моему каждый разработчик выбирает движок изходя из его опыта и знании в языках программировании и технологиях. Я сам предпочел Unity и этот выбор был сделан как раз из-за того что там язык c#, а до этого я был Android(Java) разработчиком. Можно конечно быстро изучить нужный язык программирования, но это в том случае если изучаемый ЯП вам по душе так сказать.

Изучаем этику секс-роботов по голливудским фильмам

История о том, как П и Х игру «поделили»

Как представлять себе дополнительные измерения: одномерные миры

Дневник техлида: полгода разработки мобильного PvP

0
Странно я думал работа с лобби, отправка ивентов об inAppPurchases и т д. Вы отправляете по TCP.

Шаблон проектирования Entity-Component-System — реализация и пример игры

Дневник техлида: полгода разработки мобильного PvP

0
С мобильным пингом вы бы не заметили разницы TCP+UDP vs UDP. По мне с кейс с ракетой этого не стоит. Но в других случаях это приемлимое решение.

Дневник техлида: полгода разработки мобильного PvP

0
Спасибо за статью. Но делать субмодули из-за прото файлов, как то очень сомнительно.
Было бы лучше использовать UPD+TCP. UDP для стрельбы, передвижения и т. д. TCP для этих ракет и вообще для того что точно должно дойти. Вроде бы для этого и TCP и создан.

Как расправиться с читерами и не переписать весь код

0
У вас в данный моммент есть проверка на телепорты?
Поидее можно было бы еще с каждым выстрелом отправлять Vector3 прицела и время выстрела и убрать damage. На сервере Raycast-ить и все(немного математики). Лучше никогда не доверять игроку.

Как ты реализуешь аутентификацию, приятель?

Моя компания не взлетела, 6 уроков ценою в 4 года жизни и $150 000

0
Доброго времени суток. Первое что я бы вам хотел сказать относитесь к вашим урокам как к вашему опыту от этого проекта, как и к «урокам» других людей и их проектов. То есть не всегда эти уроки подойдут к другим стартапам. Очень много уникальных проектов, и все они по разному развиваются и монетизируются и так далее.
Насчет того что делать дальше — вам этого никто не скажет точно. Ответ в вас. Вы обладаете аналитикой проекта, у вас навярняка есть всои желания, амбиции, знания что да как у вас в команде. Будьте data driven team — берите потоки данных со всего. Примите эти данные и принимайте осознанное решение, за которое не будете жалеть, даже если что-то пойдет не так, вы будете понимать что это решение было принято из тех данных что вы имели на тот моммент.
Ну а вы не Ванга к сожалению. Конечно инвестиции побольше надо брать для большей маневренности.

Как я получил 365K загрузок в App Store за две недели (и почему после этого ушёл из геймдева)

+4
Rovio сделали 51 игру прежде чем добились успеха. Они уже собирались закрывать компанию и решили сделать последнюю игру. Эта игра была — Angry Birds. Тут не везение — они опытные разработчики игр + в 2009 году годных игр было очень мало.
www.towave.ru/pub/angry-birds-kak-zlye-ptitsy-pokorili-mir.html

Как я получил 365K загрузок в App Store за две недели (и почему после этого ушёл из геймдева)

+2
Правильно вы меня процитировали. Как и сказано в цитате — «делая маленькие игры больше риска(из-за переизбытка игр)». Делая крупные игры рисков меньше из-за того что в крупных играх меньше конкурентов.
Насчет Wow у Blizzard столько бабла что четверть ярда им не особо по карману ударило. + надо учитывать что Wow они доили больше 10 лет.
Я еще говорил что -«С какой то стороны и крупные игры тоже рисковано делать, то есть студия весь бюджет вложила в эту игру, а она не стрельнула.»
Насчет ваших последних 2 вопросов. Это уже стратегия компании — она может зарабатывать на множества маленьких играх, а может и на 1-2 крупных играх.
+ все очень вариативно: рынок, бюджет компании и т д.

Как я получил 365K загрузок в App Store за две недели (и почему после этого ушёл из геймдева)

+1
Геймдев можно посчитать, и успешные игровые студии этим пользуются.
Не важно какая стратегия у компании. Они могут делать маленькие, средние, большие игры. Главное подход, AAA подход. Это и препродакш аналитика рынка, и беты, софтлаунчи, постпродакшн аналитика. У казуальных игр закачек очень много(по рынку) если сравнивать с ролевыми(мморпг), но и возврат игроков у ролевых повыше гораздо. Делая маленькие игры больше риска(из-за переизбытка игр), но игра может заработать намного больше чем бюджет игры. С какой то стороны и крупные игры тоже рисковано делать, то есть студия весь бюджет вложила в эту игру, а она не стрельнула. Повторюсь главное подход. И делать все осознанно.

UniRx — Rx для Unity3d

0
Выносить Unity API в другие thread-ы не советую. Есть большой шанс того что в игре будет кучу рандомных багов. Решение в main-thread-е, просто нужно это все по другому как-то использовать.

UniRx — Rx для Unity3d

0
Мне лично Rx дает удобство, linq — везде. Ну и скорость разработки соответственно.
Есть куча игр которые были разработанны без Rx. Я бы посоветовал вам пока просто присмотреться к UniRx. А потом если почувствуете надобность вы всегда можете использовать его. Придерживаетесь KISS принципа.
en.wikipedia.org/wiki/KISS_principle

UniRx — Rx для Unity3d

0
1) Выгоды относительно простой подписки нет. Кому как удобнее это реализовывать.
2) Суть показать mvp и reactive properties. someView.AnimateButton вызывается в обработчике событий кнопки потому что анимируется кнопка от нажатия этой кнопки. А не потому что увеличивается каунт.

UniRx — Rx для Unity3d

0
Насколько я помню в марте-апреле этого года Yoshifumi Kawai хотел остановить поддержку UniRx. Даже был пост на Medium-е. Но после Unite Tokyo он поменял свое мнение и взялся обратно за поддержку проекта. Тот пост на Medium-е был удален. UniRx живее живых)
forum.unity.com/threads/unirx-reactive-extensions-for-unity.248535/page-6#post-3064218

Что такое протон, и что у него внутри?

UE4 для Unity разработчиков: создание 2D-игр

Необразованная молодёжь. Ответ преподавателя-совместителя

Необразованная молодёжь. Ответ преподавателя-совместителя

-3
Спасибо за статью, но есть одно но слово культура очень обширное и возможно не все читатели поняли это слово в правильном понятии. Да и нет в этом ничего плохого это просто сленг. Вы еще не знаете как дота сообщество общается)) пример: steamcommunity.com/sharedfiles/filedetails/?id=455566993

Optimization Unity3d UI by GPU (for example minimap) или создаем миникарту без дополнительных камер и спрайтов

0
Перечитал статью 2 раза и не понял что вы оптимизируете и каким образом вам помог шейдер?

MMO с нуля. С помощью Netty и Unreal Engine. Часть 1

0
В идеале хорошо использовать tcp и udp в связке. Например чат tcp а передвижение и стрельба udp.
MessagePack не пробовали?

Что такое Display Rate и как он влияет на доход вашего приложения?

0
Зависит от СДК медиатора. Но в любом случае вам потребуется дополнительное разрешение на доступ к памяти, что возможно не всех устраивает.

Клиент-сервер шаг — за — шагом, от однопоточного до многопоточного (Client-Server step by step)

+1
Видно что это ваш первый сервер. Думаю каждый начинающий серверный разработчик написал бы что то типа наподобие вашего творения. Лучше было бы еще пару серверов написать и уже тогда браться за статью.
Советую реализовывать сервер с rpc принципом. А еще лучше как советовали выше использовать netty.
А вообще классно было бы использовать связку netty+protobuf.
https://en.wikipedia.org/wiki/Remote_procedure_call
https://en.wikipedia.org/wiki/Reactor_pattern
Удачи в серверной разработке.

Зачем нужен Refresh Token, если есть Access Token?

0
У нас при разработке одной игры издатель отказался нам выдать права админа в гугл плэй сервисах. Тем самым мы не могли правами админа проверять действительно ли игрок получил ачивку. Мы это решили просто, мы отправляли access token игрока нам на сервер, где сервер этим токеном проверялось валидность ачивки. Резюмируя скажу что 2 токена нужны для того чтобы: пользователь мог авторизовываться не светя свой пароль лишний раз, также для удобства обратно же пользователя, ну и для сторонних сервисов как в примере. З.Ы в этой игре у нас тоже были свои токены, access — жил 30 минут, refresh — был перманентен.

Построение кэша с эффективным многопоточным доступом

0
Сегментирование пользователей это не есть шардирование. Хорошее шардирование должно распределять все нагрузки поровну. В вашем случае я так понимаю если все старые пользователи решили одновременно поиграть в игру будет нагружаться сервер который отвечает за старых пользователей так? Могу посоветовать вам что-то типа postgres-xl. Которая имеет в себе принципы acid. И уже сверху такого шардинга можете поставить любой кэш.
Я шардировал с помошью citusdb.
https://en.wikipedia.org/wiki/ACID

Почему обучение — это новая прокрастинация

+1
В таких ситуациях хорошо помогает цель. Например сделать какой нибудь маленький проект игру или приложение. И книги тогда быстро читаются и проект разрабатывается. А без конкретной цели обширную и динамичную сферу ИТ можно и всю жизнь учить.
1 There