С Новым годом! Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 02.07.2016
Сообщений: 2

Игровой сервер Node.js

02.07.2016, 23:29. Показов 6837. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли писать игровой сервер на Node.js и целесообразно ли это. Что ви можете посоветовать еще?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2016, 23:29
Ответы с готовыми решениями:

Связь TCP сервер - сервер-клиент на node.js - браузер. нужна коррекция
Суть проблемы: написал по примерам программу, с помощью которой можно с браузера отправить команду на TCP сервер и получить ответ. Все...

Мои сервер и dev-сервер для node.js
Изначально был необходим dev-server для apache/nginx с кешированием файлов, который бы автоматически обновлял некоторые независимые js...

Сервер на node.js
Всем привет! У меня такой вопрос: Что такое сервер на node.js?И зачем он нужен? Заранее спасибо)

18
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.07.2016, 23:31
можно
игры на них пишутся
недавно тут был человек, который писал игру "чашка петри"
посмотрите в поиске, там он и исходники скидывал и игру, с которой он сдирал свою
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
27.08.2016, 20:44
Насколько я знаю, сервер для игры agar.io на Node.js

Я хочу научиться делать маленькие серверы для маленьких браузерных игр на WebGL.

Пока нашёл и изучаю две этих книги:
0
28.08.2016, 02:18

Не по теме:

Цитата Сообщение от 8Observer8 Посмотреть сообщение
игры agar.io
Вот, это именно та игра, с которой Чеффул, вроде так его ник, содрал свою игру.

0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
28.08.2016, 23:14
я месяца 4 назад делал клона агар..
Не знаю правда, на сколько у них там продвинуто и горизонтально расширяемо..
Но у меня получилось сделать только 40 человек онлайн на 1-м трейте ( т.е. на 1-м запуске приложения ноды ).
В принципе, горизонтально расширение бы помогло держать и 500 человек, но там было слишком геморно его реализовывать и мы решили писать на C/C++.
Проблема ноды, для ММО игр, в том, что она однопоточна и комуникация между игроками становиться ( в горизонтальном расширении ) очень запутанной..
Если писать, то лучше на C/C++/Java, а уже по сокету можно и к ним подключиться.
1-я проблема с которой я столкнулся это общение с сервером и ( всеми любимый socketio ) не справлялся и прищлось использовать нативный WS и битовую ( буфферы ) передачу данных ( т.к. socketio передаёт слишком много разных данных + JSON.parse слишком ресурсоёмкая операция ). [ для сравнения на чистом ВС получилось 40 чел-к онайн с отправкой данных на сервер каждые 0.1 секунду, объёмом примерно 20 байт, а на сокете всего 5 человек с таким же интервалом, но там было около 200 байт + ответ от сервера ещё был ( т.е. я реализовывал всё передвежение и просчёты на сервере, т.к. юзеры могут поменить скрипт и например летать быстрее.. ) а отправлял только координаты мышки и нажатые клавиш ].
Вот.. моё ( имхо ) не стоит использовать ноду для сложных игр ( ММО ). Для шашек, монополии и т.п. в полне сойдёт..
0
1 / 1 / 0
Регистрация: 26.01.2016
Сообщений: 15
29.08.2016, 00:40
muxahuk1214,
Цитата Сообщение от muxahuk1214 Посмотреть сообщение
1-я проблема с которой я столкнулся это общение с сервером и ( всеми любимый socketio ) не справлялся и прищлось использовать нативный WS и битовую ( буфферы ) передачу данных ( т.к. socketio передаёт слишком много разных данных + JSON.parse слишком ресурсоёмкая операция ).
Тоже за 2 дня мучений наверно на все возможные грабли наступил из за неявного преобразования типов, в итоге вспомнил как в c++ передача данных работает ТОЛЬКО через буфер, применил на js и все завелось без проблем.
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
29.08.2016, 09:09
Я нашёл, по-моему, очень хороший курс по Unity+Node.js+socket.io: Unity Multiplayer Game Development with Node

Как досмотрю, то соберу конечный проект курса в HTML5/WebGL и залью на heroku.
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
02.09.2016, 10:41
Несмотря на то, что выше категорически не рекомендуют использовать Node.js и его модуль socket.io, но я всё таки решил пойти на большой риск и продолжить изучать дальше Node.js для программирования браузерных онлайн игр.

Это вызвано тем, что я полтора года как перешёл на C# с C++ и пытался соединить свой запущенный сервер для чата на C# на своей машине и с другим компьютером через интернет, но у меня ничего не вышло, так как была какая-то загвоздка с серыми и белыми IP.

Потом я пытался сделать сервер на сервисе WCF TCP на бесплатном хостинге ASP.NET, но то же какая-то получилась проблема. Вроде с SignalR получилось, но я стал изучать Node.js и почти сразу стало получаться.

Я загрузил демку на бесплатный хостинг heroku. Если хотите, попробуйте открыть в разных вкладках браузера (чтобы увидеть мультипеер) и побегать по клику по правой или левой кнопками мыши: https://green-apps.herokuapp.com/
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.09.2016, 00:45
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Это вызвано тем, что я полтора года как перешёл на C# с C++ и пытался соединить свой запущенный сервер для чата на C# на своей машине и с другим компьютером через интернет, но у меня ничего не вышло, так как была какая-то загвоздка с серыми и белыми IP.
Мне кажется, что неудачи в других языках не могут подтолкнуть на изучение js.

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
всеми любимый socketio ) не справлялся и пришлось
Ну... Сравнивать библиотеку для работы с протоколом и сам протокол как минимум глупо.
И вопрос: а с каких пор общая библиотека для передачи данных быстрее/эффективнее чем нативное использование протоколов?
0
03.09.2016, 07:30

Не по теме:

Цитата Сообщение от BANO Посмотреть сообщение
Мне кажется, что неудачи в других языках не могут подтолкнуть на изучение js.
Мне нужно было быстро написать сервер, чтобы сразу начать с ним работать удалённо. Ну так у меня получилось, что денег на VPS не было, хотелось найти бесплатный VPS и как можно быстрее начать с ним работать. Оказалось, что начать работать с хостингом heroku и socket.io оказалось для меня намного быстрее и проще, как для начинающего.

Скажу ещё о моём переходе с C++ на C#. Тут не только сервер, но и программирование игр тоже. Я долгое время изучал С++ и OpenGL. Как-то результаты очень медленно появлялись, потому что писать свой движок с нуля долго. Потом стало значительно быстрее, когда с открыл для себя Blender Game Engine и его скриптовый язык Python. Но потом я понял, что в BGE мне многого начинает не хватать, а к этому времени стал бесплатным Unreal Engine 4. Тут мне всего хватало, но скриптование на C++ мне давалось тяжело, а сам движок мой ноут ели тянул. И вдруг вышел Unity 5, который стал полностью бесплатным. И тут я открыл для себя всю простоту и элегантность Unity и C#. На ноуте я могу запустить хоть 10 штук Unity. Здесь всего достаточно. И я перешёл с С++ на C# и платформу .NET. В .NET я стал открывать для себя разные технологии.

0
03.09.2016, 11:50

Не по теме:

8Observer8, да уж, запутанная история.

0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
11.10.2016, 16:46
Посоветую видео уроки: Multiplayer Nodejs Game Tutorial

Автор уроков делает игру: Raining Chain MMORPG

Ещё посоветую книгу: Multiplayer Game Development with Node.js

В ней всего 180 страниц, но в ней описана база без лишней воды. Я занимаюсь ещё переводом.

Содержание книги:
Кликните здесь для просмотра всего текста

Глава 1. Знакомство с программированием многопользовательских игр
-Понимание основ организации сети
-Программирование с применением сокетов на JavaScript
-Клиенты игры
-Игровые серверы
-Объединяем полученные знания - Крестики-нолики
-- Node.js - центр мироздания
---/Player.js класс
---/BoardServer.js класс
---/server.js класс
---/public/js/Board.js класс
---/public/js/app.js класс
-Сводка

Глава 2. Установка окружения
-JavaScript вне браузера с помощью Node.js
--Node.js
--Установка Node.js
-Написание модулей на JavaScript
--CommonJS
--RequireJS
-Управление пакетами Node.js с помощью Npm
-Управление пакетами на стороне клиента с помощью Bower
--Browserify
-Автоматизация рабочего процесса
--Grunt
--Gult
-Сводка

Глава 3. Змейка
-"Hello world" разработки игр
--Подготовка
---package.json
---Index.jade
--Основые модули игры
---game.js
---snake.js
--Вспомогательные модули
---app.client.js
--Цикл игры
---Независимость от частоты кадров
---Цикл игры, который базируется на времени
---Множество циклов игры
--Реализация полномочного сервера
---Интерфейс игрового сервера
---Изменение клиента в соответсвии с новыми данными
--Осмысление цикла игры
---Игровой цикл клиента
---Игровой цикл сервера
--Лобби и система игровых комнат
---Реализация лобби
---Реализация комнат
--Создание игровый матчей между игроками в комнате
---Приглашение друзей в игру
---Автоматизированное создание матчей
---Матчи основанные за практическом опыте
-Socket.io
-Сводка

Глава 4. Снижение сетевых задержек
-Что можно сделать с сетевыми задержками
--Синхронизация клиентов с зафиксированным шагом
-Фиксированный временной шаг
-Синхронизация клиентов
-Предсказание будущего с локальным сервером
--Отчёт о пользовательском вводе
-Корректировка ошибок
--Учитываем намерения, но не результат
--Если позиция объекта отличается на сервере и клиенте
--Интерполяция для сглаживания ошибок
-Сводка

Глава 5. Передовые технические новинки
-HTML5 - последний рубеж
-Раскрытие вашей игры на весь экран
-Улучшаем управление с помощью геймпада
-Соединение peer-to-peer с помощью WebRTC
-Видео и аудио в реальном времени с помощью Media Capture
-Сводка

Глава 6. Добавление защиты и честная игра
-Общие уязвимости
--Шифрование
--Защита от инжектирования скриптов
--Проверка на стороне сервера
--Искусственный интеллект
-Создание безопасных игр и приложений
--Полномочный сервер
--Геймплей основанный на игровых сессиях
--Защита от тёмных лошадок
-Не изобретайте заново колесо
--Установка модуля validator с помощью Npm
--Установка модуля js-sha512 с помощью Npm
--Установка closure-compiler с помощью Npm
-Честная игра и опыт пользователя
-Сводка

Алфавитный указатель
0
11.10.2016, 16:50

Не по теме:

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Blender Game Engine и его скриптовый язык Python
Извини, но не могу не придраться, python не его скриптовый язык, он его только юзает.

0
11.10.2016, 17:00

Не по теме:

Цитата Сообщение от BANO Посмотреть сообщение
Извини, но не могу не придраться, python не его скриптовый язык, он его только юзает.
Обычно говорят: скриптовые языки движка Unity - это C# и UnityScript или скриптовые языки движка Unreal Engine 4 - С++ и Blueprint. Я имел ввиду, что для BGE пишутся скрипты на Python. Так же я мог написать, что C#, Lua и C++ - это скриптовые языки для ещё одного бесплатного движка Cry Engine 5. Всегда так пишут и всем понятно, что я НЕ имел ввиду, что движок написан на этом языке, а имел ввиду, что сктипты для этого движка пишутся на таком-то языке.

0
11.10.2016, 17:03

Не по теме:

8Observer8, окей. Прости что не правильно тебя понял. Мои извинения.

0
0 / 0 / 0
Регистрация: 02.06.2017
Сообщений: 1
02.06.2017, 17:48
muxahuk1214, на с++ не подскажешь в какую сторону смотреть? Так же пробую на Node что-то делать.. но ещё не тестировал - изучаю материал. Если есть старые наработки на Node.JS и не жалко ими поделиться - был бы очень благодарен
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
02.06.2017, 20:21
Цитата Сообщение от YuliyF Посмотреть сообщение
на с++ не подскажешь в какую сторону смотреть?
Multiplayer Game Programming: Architecting Networked Games

Цитата Сообщение от YuliyF Посмотреть сообщение
Если есть старые наработки на Node.JS и не жалко ими поделиться
Этот пример с github'а вы можете протестить, запустив в разных вкладках браузера: http://battle-world.herokuapp.com/?debug
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
03.06.2017, 03:20
вот например:
https://github.com/huytd/agar.io-clone

Могу лишь добавить, что node.js не подходит для серьёзных вычислительных операций, которые требуют ММО игры, хотя можно запустить 100 или даже 1000 серверов, и они будут справляться со всем, но это затраты куда больше, чем сделать 10 на C/C++ серверов.
Писать на ноде можно, но я бы не удивлялся бы потом, что проц не выдерживает..
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
03.06.2017, 06:26
На node.js хорошо тренироваться начинать делать сетевые игры, потому что он очень простой в освоении по сравнению с сервером C++. Пройдёт намного меньше до того момента как начинающий запустит реальный простейший сервер, который будет просто отвечать на запрос клиента, так как есть бесплатные хостинги heroku, openshift и т.д. где есть инструкции, как можно развернуть приложение. На C++ есть некоторые сложности с серыми и белыми IP и в целом с пониманием запуска на VPS и вообще сам по себе C++ сложнее и требует большей квалификации.

Конечно же начинать нужно с карточных игр, крестиков-ноликов, шашек и т.д. Как только вы научились отправлять строку на сервер, а он отправлять обратно и рассылать другим клиентам, то уже можно приступать к самим играм, это самое интересное. Я считаю, писать лучше на TypeScript, так как этот язык очень похож на такие языки как C#, Java, C++, Python и если вы будете потом переписывать сервер на C++, C# и т.д. то будет легче, чем с JS.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2017, 06:26
Помогаю со студенческими работами здесь

Свой сервер на Node.JS
Извиняюсь за каламбур, но для чего делаю свой сервак на Node ? apache, nginx не подходит или это вообще из другой оперы ?

Сервер Node.JS, отвечающий страницей Google
Добрый день. Читаю Professional Node.js: Building Javascript Based Scalable Software. Сделал сервер, отвечающий на любой запрос страницей...

Как запустить Node сервер в фоне
Подскажите пожалуй сто, как(то есть какими консольными командами) запустить приложение node в фоновом режиме ? Linux Добавлено через 1...

Отправка информации на сервер JavaScript: Node.js
Не выполняется работа скрипта, на сервер ничего не приходит <form name="admin" action="/admin_del"...

Клиент на Node.js с socket.io, а сервер на C# или Java
Я хочу сделать чат своему сайта например. А сервер хочу написать на с#. Можно ли так делать? Например вот так слущаю на сервере: const...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru