Pull to refresh

Разработка производительного игрового сервера на Netty + Java

Game development *
Piccy.info - Free Image Hosting

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

Читать дальше →
Total votes 63: ↑57 and ↓6 +51
Views 51K
Comments 206

Как не нужно писать большие сервера

Programming *Game development *
Те, кто мог видеть мою прошлую статью (а она довольно related к данной теме), знают, что вот уже больше полутора лет я разрабатываю собственную реализацию сервера Minecraft, рассчитанную, в первую очередь, на высокие нагрузки. Тем не менее, в своей работе мы используем так же и стандартный сервер (Bukkit) для нескольких мини-серверов, просто чтобы было разнообразие. И вот, столкнувшись с очередной версией сервера, которая стала раз в 5 хуже предыдущих, я уже не выдержала, и решила написать эту статью.

Статья больше похожа на рассказ, чем на обучающий материал, так что вряд ли вы почерпнете из неё полезных навыков кодинга, но, надеюсь, кому-то она покажется интересной или даже полезной. Но если вы ходите увидеть кучу кода и примеров, то не открывайте статью, она не об этом. Об этом, надеюсь, будет следующая статья.

Вам не нужно знать ничего о майнкрафте и особенно о его сервере, в данной статье я хочу просто рассказать, как работает оригинальный сервер Minecraft, а так же его «обвязка» — Bukkit, рассказать, почему такая система не работает и не должна. Я не претендую на идеальные знания о разработке серверов и не утверждаю, что мой сервер написан правильно и лучше всех. Я просто делюсь своим опытом, основанным на двух годах работы с сервером от всем известной Mojang и на полутора годах разработки своего сервера. Вся представленная здесь информация является моим личным мнением, а статья предназначена для расширения кругозора или даже обучения и может быть интересна как новичкам, так и продвинутым профессионалам.
Читать дальше →
Total votes 175: ↑135 and ↓40 +95
Views 101K
Comments 271

NodeJS красивый, модульный, объектный или делаем его таким с помощью redis и nohm

JavaScript *Node.JS *
Recovery mode
В последнее время в IT-сообществе довольно много шумихи вокруг серверного JavaScript, в частности — NodeJS, однако, как это ни странно, оказалось довольно сложно найти информацию о том, как писать модульный, объектный код. Что я имею ввиду? Дело в том, что с js я знаком совсем недавно, до этого писал небольшие приложения на Java, а в свободное время пишу серверную часть онлайн-игры на PHP и, как и следовало ожидать, как и многим начинающим программистам на JS мне было очень непривычно вместо объектно-ориентированного использовать так называемое прототипно-ориентированное программирование. Тем более, JavaScript вносит достаточно много путаницы даже в это дело со своими Object.prototype и __proto__. Первое, что пришло мне в голову, как и многим другим разработчикам — сделать свою реализацию «привычного ООП», сделал. Немного подумав я решил, что это просто незачем, если мы работаем с nodeJS. За мою, хоть и недолгую практику, мне не довелось встретить задачу, которая бы требовала настоящего ОО подхода, я имею ввиду реальную необходимость наследования, полиморфизма и тем более инкапсуляции (конечно, все это нужно, но в той степени, которую js предоставляет).
Читать дальше →
Total votes 14: ↑6 and ↓8 -2
Views 11K
Comments 12

Создание и настройка сервера Minecraft

Selectel corporate blog
Tutorial
Minecraft Selectel

Minecraft сегодня принадлежит к числу самых популярных сетевых игр. За неполных три года (первый официальный релиз состоялся осенью 2011 года) у него появились миллионы поклонников по всему миру.

Разработчики игры сознательно ориентируются на лучшие образцы двадцатилетней давности, когда многие игры были по сегодняшним меркам примитивными с точки зрения графики и несовершенными с точки зрения юзабилити, но при этом — по-настоящему захватывали.
Читать дальше →
Total votes 58: ↑36 and ↓22 +14
Views 250K
Comments 15

Повесть о создании классической RTS в домашних условиях с нуля (часть 2: «Воскрешение»)

Programming *C++ *System Programming *Game development *

Примерно год назад вышла моя статья, которую можно назвать "первой частью" данной статьи. В первой части я насколько смог подробно разобрал тернистый путь разработчика-энтузиаста, который мне удалось когда-то самостоятельно пройти от начала и до конца. Результатом этих усилий стала игра жанра RTS "Земля онимодов" созданная мною в домашних условиях без движков, конструкторов и прочих современных средств разработки. Для проекта использовались C++ и Ассемблер, ну, и в качестве основного инструмента моя собственная голова.
В этой статье я постараюсь рассказать о том, как я решил взять на себя роль «реаниматора» и попытаться «воскресить» этот проект. Много внимания будет уделено написанию собственного игрового сервера.
Total votes 85: ↑85 and ↓0 +85
Views 25K
Comments 39

Повесть о создании классической RTS в домашних условиях с нуля (часть 2: «Воскрешение») Продолжение статьи: GUI

Programming *C++ *System Programming *Game development *

Примерно год назад вышла моя статья, которую можно назвать "первой частью" данной статьи. В первой части я насколько смог подробно разобрал тернистый путь разработчика-энтузиаста, который мне удалось когда-то самостоятельно пройти от начала и до конца. Результатом этих усилий стала игра жанра RTS "Земля онимодов" созданная мною в домашних условиях без движков, конструкторов и прочих современных средств разработки. Для проекта использовались C++ и Ассемблер, ну, и в качестве основного инструмента моя собственная голова.

В этой статье я постараюсь рассказать о том, как я решил взять на себя роль «реаниматора» и попытаться «воскресить» этот проект. Много внимания будет уделено написанию собственного игрового сервера.

Это продолжение статьи, а начало тут.
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Views 7.7K
Comments 6

Повесть о создании классической RTS в домашних условиях с нуля (часть 2: «Воскрешение») Окончание статьи: Сеть

Programming *C++ *System Programming *Game development *

Примерно год назад вышла моя статья, которую можно назвать "первой частью" данной статьи. В первой части я насколько смог подробно разобрал тернистый путь разработчика-энтузиаста, который мне удалось когда-то самостоятельно пройти от начала и до конца. Результатом этих усилий стала игра жанра RTS "Земля онимодов" созданная мною в домашних условиях без движков, конструкторов и прочих современных средств разработки. Для проекта использовались C++ и Ассемблер, ну, и в качестве основного инструмента моя собственная голова.

В этой статье я постараюсь рассказать о том, как я решил взять на себя роль «реаниматора» и попытаться «воскресить» этот проект. Много внимания будет уделено написанию собственного игрового сервера.

Это окончание статьи, начало тут.
Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Views 17K
Comments 35

Бэкенд игрового сервера World in Conflict выложен в открытый доступ

Open source *Game development *
image

Исключительно хорошая новость: совместными усилиями компаний Ubisoft и шведской Massive Entertainment, в открытый доступ выложен рабочий сервер для игры World in Conflict. Данная стратегия в реальном времени (RTS) вышла в 2007 году; её официальный сервер Massgate был закрыт в 2016, после чего коммьюнити massgate.org решило вернуть игру к жизни, чем и вдохновило Ubisoft на данный шаг — теперь любой сможет поднять свой собственный сервер для мультиплеера и другого онлайн-функционала.

Исходный код бэкенда доступен по ссылке на Github по лицензии GPL-2.0. Сам игровой сервер написан на С++, поэтому для компиляции вам потребуются CMake и Visual Studio. Для запуска вам также понадобятся MySQL (в оригинале использовался MySQL 4.2.1, но всё должно работать и на более свежих версиях) и любой простейший веб-сервер (авторы рекомендуют SimpleHTTPServer).

Кстати, саму игру можно сейчас получить абсолютно бесплатно до 23 декабря по ссылке — правда, для этого вам может потребоваться завести аккаунт в Uplay.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 8.4K
Comments 1

Завариваем геймдев. Часть 1

JavaScript *TDD *Game development *Node.JS *Game design *

Введение


История началась с хакатона по разработке игр на блокчейне. На старте мероприятия я встретил человека, который в качестве хобби создает настольные деловые игры (я был на плейтесте одной такой игры), мы объединились, вместе нашли команду, с которой за выходные “слепили” простую стратегическую игру. Хакатон прошел, а задор остался. И у нас родилась идея многопользовательской карточной игры о счастье, мировом сообществе и выборах.

В цикле статей будем отражать наш путь по созданию игры, с описанием граблей, на которые уже наступили и будем наступать по мере продвижения вперед.
Под катом будет:

  • Краткая информация об игре
  • Как принималось решение на чем делать backend. Где это будет “жить” так, чтобы за это не платить на этапе разработки
  • Первые шаги в разработке — аутентификация игроков и организация поиска игры (matchmaking)
  • Дальнейшие планы
Поехали
Total votes 8: ↑7 and ↓1 +6
Views 8K
Comments 8

Сервер Игры на MS Orleans — часть 1: Что такое Акторы

Programming *.NET *Game development *C# *


Привет Хабр! И так, на четырнадцатый день копья решил я значит начать делать простенький игровой сервер для простой онлайн стрелялки. За одно тему распределенных вычислений затронуть. В этой вводной статье цикла хочу рассказать что такое акторы (в Орлеанс их зернами называют) и принцип их работы. Для этого я пока пример простенького приложения с самодельными акторами без Orleans. Как говориться прежде чем строить корабль посмотрим как плавает и почему плавает обычный бумажный кораблик. За подробностями добро пожаловать под кат.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 5.4K
Comments 6

Сервер Игры на MS Orleans — часть 2: Делаем управляемую точку

Programming *.NET *Game development *C# *


Привет, Хабр! Я продолжаю изучать MS Orleans и делать простенькую онлайн игру с консольным клиентом и сервером работающим с Orleans грейнами. На этот раз я добавил в игру возможность управлять точкой. Ее можно двигать вверх, вниз, влево, вправо. За подробностями добро пожаловать под кат.
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 2.5K
Comments 2

Сервер Игры на MS Orleans — часть 3: Итоги

Programming *.NET *Game development *C# *


Привет, Хабр! Я продолжаю изучать MS Orleans и делать простенькую онлайн игру с консольным клиентом и сервером работающим с Orleans грейнами. На этот раз я расскажу чем все закончилось и какие я для себя выводы сделал. За подробностями добро пожаловать под кат.
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Views 2.2K
Comments 0

Изучаю Akka.NET: Сервер простой онлайн игры

Programming *.NET *Game development *C# *
Привет, Хабр! Решил я значит попробовать переписать тот сервер что делал с MS Orleans на Akka.NET просто чтобы попробовать и эту технологию тоже. Если вам интересно что получилось до добро пожаловать под кат.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views 5K
Comments 0

Трудно ли создать свой Minecraft сервер?

Game development *Games promotion *
Sandbox

Идея свое собственного сервера мне пришла после того, как на новогодних праздниках я решил вспомнить былые времена и зашёл поиграть в майнкрафт. Я поиграл в классическое выживание, поиграл на серверах и вспомнил идею, которая мне пришла ещё в пятом классе, когда я действительно много играл в эту игру. К сожалению тогда моих навыков не хватало для того, чтобы создать хотя бы что-то работающее, потому что единственное, что у меня вышло, это сломать конфиг dns сервера на своём компьютере и из-за этого поломать интернет.

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

Итак, "разработка" началась 29 января, мы придумали название, купили домен и начали смотреть, как вообще создавать сервер. Первая версия нашего сайта была готова уже через неделю, оставалось только наполнить донатами, платёжкой и некоторой другой информацией сайт. Донаты можно было легко добавить через админ панель, которую наш товарищ реализовал для дальнейшего развития.

Читать далее
Total votes 20: ↑10 and ↓10 0
Views 4.4K
Comments 25