|
0 / 0 / 0
Регистрация: 02.07.2016
Сообщений: 2
|
|
Игровой сервер Node.js02.07.2016, 23:29. Показов 6881. Ответов 18
Метки нет (Все метки)
0
|
|
| 02.07.2016, 23:29 | |
|
Ответы с готовыми решениями:
18
Связь TCP сервер - сервер-клиент на node.js - браузер. нужна коррекция Мои сервер и dev-сервер для node.js Сервер на node.js |
| 27.08.2016, 20:44 | |
|
Насколько я знаю, сервер для игры agar.io на Node.js
Я хочу научиться делать маленькие серверы для маленьких браузерных игр на WebGL. Пока нашёл и изучаю две этих книги:
0
|
|
| 28.08.2016, 02:18 | |
|
0
|
|
|
Coding is art
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,
0
|
||
| 29.08.2016, 09:09 | |
|
Я нашёл, по-моему, очень хороший курс по Unity+Node.js+socket.io: Unity Multiplayer Game Development with Node
Как досмотрю, то соберу конечный проект курса в HTML5/WebGL и залью на heroku.
0
|
|
| 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
|
|
|
Ренегат
|
|||
| 03.09.2016, 00:45 | |||
|
И вопрос: а с каких пор общая библиотека для передачи данных быстрее/эффективнее чем нативное использование протоколов?
0
|
|||
| 03.09.2016, 07:30 | ||
|
Не по теме:
Скажу ещё о моём переходе с 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
|
|
| 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 | |
|
0
|
|
| 11.10.2016, 17:00 | ||
|
Не по теме:
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
|
|
| 02.06.2017, 20:21 | |||
|
0
|
|||
|
Coding is art
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
|
|
| 03.06.2017, 06:26 | |
|
На node.js хорошо тренироваться начинать делать сетевые игры, потому что он очень простой в освоении по сравнению с сервером C++. Пройдёт намного меньше до того момента как начинающий запустит реальный простейший сервер, который будет просто отвечать на запрос клиента, так как есть бесплатные хостинги heroku, openshift и т.д. где есть инструкции, как можно развернуть приложение. На C++ есть некоторые сложности с серыми и белыми IP и в целом с пониманием запуска на VPS и вообще сам по себе C++ сложнее и требует большей квалификации.
Конечно же начинать нужно с карточных игр, крестиков-ноликов, шашек и т.д. Как только вы научились отправлять строку на сервер, а он отправлять обратно и рассылать другим клиентам, то уже можно приступать к самим играм, это самое интересное. Я считаю, писать лучше на TypeScript, так как этот язык очень похож на такие языки как C#, Java, C++, Python и если вы будете потом переписывать сервер на C++, C# и т.д. то будет легче, чем с JS.
0
|
|
| 03.06.2017, 06:26 | |
|
Помогаю со студенческими работами здесь
19
Свой сервер на Node.JS Сервер Node.JS, отвечающий страницей Google
Клиент на Node.js с socket.io, а сервер на C# или Java Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|