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

Автор: admin от 25-07-2017, 12:15, посмотрело: 953

Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.



В конечном итоге у нас будет клиент, который логиниться или регистрируется в игре, может создавать игровые комнаты, пользоваться чатом и начинать игры, соединение будет зашифровано, клиенты будут синхронизироваться через сервер, в игре будет присутствовать одно оружие — лазер, выстрел будет проверяться на проверочном сервере. Я не стремился сделать красивую графику, тут будет только необходимый минимум, дальнейший функционал добавляется по аналогии. Логику можно легко расширить на сервере, добавить например случайные игры и балансер. Для меня было важно создать ММО базу и разобраться с тем что понадобится для создания полноценной мобильной ММО игры.




  • Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями

  • Часть 2. Наращивание игрового функционала

  • Часть 3. Бонус материал. HLSL шейдеры в Unreal Engine, генерация ландшафтной сетки с помощью алгоритма Diamond Square, динамическая подгрузка моделей из сети



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

Категория: Программирование / Веб-разработка

 

Фотографируем объекты в C#: хроника и сопоставление снимков, реконструкция состояния по снимку

Автор: admin от 21-07-2017, 20:35, посмотрело: 256

При разработке приложений часто встречается следующий сценарий: имеется некоторый набор данных доступных для просмотра и редактирования, например, это могут быть бизнес-сущности или настройки приложения. В момент, когда пользователь решает что-либо отредактировать, ему обычно становится доступна специальная форма с нужными полями ввода-вывода и другими элементами управления. Если он вносит какие-либо корректировки в данные, то при обработке формы хорошим тоном является запрос-подтверждение перед окончательным применением внесённых правок. В случае согласия пользователя данные обновляются в источнике и на интерфейсе, а при отмене используются старые значения.



Данная задача включает две подзадачи:



1) когда пользователь уходит с формы редактирования, необходимо понимать, действительно ли он произвёл изменения, чтобы не задавать вопрос на подтверждение впустую и не перезаписывать идентичные данные;



2) если редактированию подвергается непосредственно исходная сущность, а не её копия, то в случае отмены необходимо сохранять возможность отката к исходным значениям.



В статье мы рассмотрим обобщённый и очень лаконичный [размером в несколько строк кода!] подход к решению подобного рода задач, основанный на использовании библиотеки Replication Framework.



Фотографируем объекты в C#: хроника и сопоставление снимков, реконструкция состояния по снимку
->

Категория: Программирование

 

Я являюсь причиной появления венгерской нотации в Android

Автор: admin от 18-07-2017, 16:40, посмотрело: 259

Все из нас видели это:



private String mName;


Это из-за меня.

Я так и сказал — это моя вина.

Эта тема всплывает снова и снова, обсуждение на reddit напомнило, что я никогда не объяснял откуда взялась эта нотация, а также, насколько она неправильно понимается людьми. Поэтому мне бы хотелось воспользоваться возможностью, дабы прояснить некоторые вещи, и я сделаю это в двух частях:


  • Как появилась m-нотация.

  • Почему вы, вероятно, не понимаете, что такое венгерская нотация.

  • ->

    Категория: Веб-разработка / Game Development / Android

     

    Я являюсь причиной появления венгерской нотации в Android

    Автор: admin от 18-07-2017, 16:40, посмотрело: 259

    Все из нас видели это:



    private String mName;


    Это из-за меня.

    Я так и сказал — это моя вина.

    Эта тема всплывает снова и снова, обсуждение на reddit напомнило, что я никогда не объяснял откуда взялась эта нотация, а также, насколько она неправильно понимается людьми. Поэтому мне бы хотелось воспользоваться возможностью, дабы прояснить некоторые вещи, и я сделаю это в двух частях:


  • Как появилась m-нотация.

  • Почему вы, вероятно, не понимаете, что такое венгерская нотация.

  • ->

    Категория: Веб-разработка / Game Development / Android

     

    Применение преобразования Фурье для создания гитарного тюнера на Android. Часть 1

    Автор: admin от 17-07-2017, 16:25, посмотрело: 572

    Применение преобразования Фурье для создания гитарного тюнера на Android. Часть 1

    В основе спектрального анализа звуковых данных лежит алгоритм, который носит название преобразование Фурье. При раскладывании исходного звукового сигнала на частотные составляющие, отдельные частоты называются гармониками. Основная гармоника определяет высоту звучания, а второстепенные гармоники определяют его тембр. Есть достаточно много мобильных приложений, которые используют преобразование Фурье для того, чтобы отобразить весь спектр частот (гармоник). Так же, есть мобильные приложения, которые служат для настройки гитар. Они работают по принципу: основная гармоника находится по самому высокому значению амплитуды в спектре. Такое утверждение не совсем верно, потому что основная гармоника определяется самой наименьшей из всех кратных этой гармонике, либо шагом между гармониками. Возникает необходимость найти способ, который позволит отобразить значение основной гармоники в спектре звукового сигнала.

    В первой части статьи мы рассмотрим принцип работы дискретного преобразование Фурье, а также возможность записывать звуковые данные с Android устройства с помощью класса AudioRecord.

    Категория: Программирование / Веб-разработка

     

    Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим

    Автор: admin от 15-07-2017, 18:20, посмотрело: 381

    Всем привет!

    У нас отличные новости — вышел Upsource 2017.2! В этом релизе мы добавили ряд наиболее часто запрашиваемых возможностей, и, как обычно, улучшили уже имеющуюся функциональность.

    Давайте посмотрим, что попало в этот релиз.



    Поддержка внешних инспекций кода

    Если Вы используете встроенные в TeamCity инспекции кода на базе ReSharper или IntelliJ IDEA, или пользуетесь инспекциями SonarQube, теперь Вы сможете извлечь из них дополнительную пользу. Upsource 2017.2 умеет показывать результаты такого анализа в своем UI, наряду с результатами встроенных инспекций. Рецензирование кода становится немного проще, если сразу видно, какие новые потенциальные проблемы привнесло именно это изменение.

    Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим


    ->

    Категория: Программирование

     

    Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим

    Автор: admin от 15-07-2017, 18:20, посмотрело: 381

    Всем привет!

    У нас отличные новости — вышел Upsource 2017.2! В этом релизе мы добавили ряд наиболее часто запрашиваемых возможностей, и, как обычно, улучшили уже имеющуюся функциональность.

    Давайте посмотрим, что попало в этот релиз.



    Поддержка внешних инспекций кода

    Если Вы используете встроенные в TeamCity инспекции кода на базе ReSharper или IntelliJ IDEA, или пользуетесь инспекциями SonarQube, теперь Вы сможете извлечь из них дополнительную пользу. Upsource 2017.2 умеет показывать результаты такого анализа в своем UI, наряду с результатами встроенных инспекций. Рецензирование кода становится немного проще, если сразу видно, какие новые потенциальные проблемы привнесло именно это изменение.

    Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим


    ->

    Категория: Программирование

     

    Рано закапывать Java

    Автор: admin от 14-07-2017, 07:00, посмотрело: 314

    Рано закапывать Java



    Много было сказано про «красоту» кода на Java, но на мой взгляд, главное — не инструмент, а умение им пользоваться. Под катом попытка написать декларативный DSL для вёрстки под Android даже не изобретая новый язык программирования! ->

    Категория: Веб-разработка / Android

     

    Рано закапывать Java

    Автор: admin от 14-07-2017, 07:00, посмотрело: 314

    Рано закапывать Java



    Много было сказано про «красоту» кода на Java, но на мой взгляд, главное — не инструмент, а умение им пользоваться. Под катом попытка написать декларативный DSL для вёрстки под Android даже не изобретая новый язык программирования! ->

    Категория: Веб-разработка / Android

     

    Что нового в CUBA Platform 6.5

    Автор: admin от 13-07-2017, 08:35, посмотрело: 406

    Вы могли заметить, что мы опубликовали новые минорные релизы платформы CUBA и CUBA Studio. В новой версии реализованы улучшения, в основном касающиеся текущего функционала, но мы добавили и несколько новых полезных фич.



    Под катом:




    • Uber JAR

    • UI-компонент для предиктивного поиска

    • Версионирование REST API

    • Балансировка нагрузки в кластере

    • Компонент приложения ZooKeeper

    • Улучшения в Polymer UI

    • Поддержка Bean Validation в CUBA Studio

    • Поддержка Groovy в слушателях сущностей

    ->

    Категория: Программирование