Форум программистов, компьютерный форум, киберфорум
Наши страницы
8Observer8
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 2.

Процесс написания игры Крестики-нолики с мультиплеером

Запись от 8Observer8 размещена 29.06.2019 в 14:32
Обновил(-а) 8Observer8 29.06.2019 в 22:44

Процесс написания игры будет отображён в комментариях (в коммитах) на GitHub. Постараюсь подробно коммиты подробно. Буду комментировать здесь в записи блога каждый значительный шаг.

На данный момент я установил, что нужно. Что нужно установить, я пошагово описал на GitHub по ссылке выше. Сервер отдаёт выбранный вид клиента по запросу. Пока клиентов два вида. Они сделаны на движках: Pixi.js и Babylon.js. Клиенты отображают тот файт, что они работают: Babylon.js отображает кубик, а Pixi.js - картинку с ноликом. Позже я добавлю виды клиентов: для Unity (для Desktop), на чистом WebGL, на CanvasAPI, на ThreeJS и на Phaser.

Я использую:
  • Редактор кода VSCode
  • Язык TypeScript - для всех видов клиентов (кроме Unity) и для сервера
  • Для сервера использую: Node.js, Socket.IO, Express
  • AMD и RequireJS - для запуска в Debug режиме
  • CommonJS, Browserify, UglifyJS - для запуска в Release режиме
  • C# используется для написания Desktop клиентов для Unity для Windows, Mac, Linux

Date: Sat Jun 29 23:35:23 2019 +0400
Сервер посылает JSON сообщение с текстом: 'Hello from server'. Клиент отображает полученное сообщение на странице.
Размещено в Без категории
Просмотров 287 Комментарии 7
Всего комментариев 7
Комментарии
  1. Старый комментарий
    Аватар для MrOnlineCoder
    "Я не боюсь того, кто изучает 10 000 различных ударов. Я боюсь того, кто изучает один удар 10 000 раз." (Брюс Ли)

    Будем наблюдать Основываясь на ваших предыдущих записях - почему бы еще сюда не добавить клиент на чистом C++/OpenGL?
    Запись от MrOnlineCoder размещена 29.06.2019 в 15:41 MrOnlineCoder вне форума
    Обновил(-а) MrOnlineCoder 29.06.2019 в 16:03
  2. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от MrOnlineCoder Просмотреть комментарий
    почему бы еще сюда не добавить клиент на чистом C++/OpenGL?
    Сейчас у меня только один сервер на TypeScript для клиентов, которые используют один и тот же клиентский код для сетевого взаимодействия и для игровой логики, буквально одни и теже файлы. Для визуализации используются разные библиотеки, но это минимальный код. Единстванное, это клиент на Unity на C#, но C# и TypeScript очень похожи. Мне не хочется распыляться С++. Тем более, нужно будет потерять время, чтобы научиться соединять мой сервер на Node.js и Socket.io c С++. К тоже же я отошёл от C++ в сторону C# и TypeScript. У этих языков один и тот же автор и они оба поддерживают контракты (interface), оба компонентно ориентированы. Поэтому я программирую одновременно на C# и TypeScript и не ощущаю разницы, это как один язык. Я позже перепишу север на C#/TcpSocket, а клиента сделаю на C#/OpenTK/OpenGL3.
    Запись от 8Observer8 размещена 29.06.2019 в 16:15 8Observer8 вне форума
  3. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от MrOnlineCoder Просмотреть комментарий
    "Я не боюсь того, кто изучает 10 000 различных ударов. Я боюсь того, кто изучает один удар 10 000 раз." (Брюс Ли)
    Это только с виду кажется, что идёт распыление. Но это одна игра с единственным сервером, где просто отображалки разные. Все виды клиентов используют библиотеку Socket.io и TypeScript. Вот если бы я взял С++, то это бы сильно затормозило меня и это было бы реальное распыление. Сейчас у меня движение в одном направлении. При написании сервера на C# распыление будет не сильное, потому что я смогу соединиться с Unity (где тоже C#) и с клиентом на C# OpenGL.
    Запись от 8Observer8 размещена 29.06.2019 в 16:42 8Observer8 вне форума
  4. Старый комментарий
    Аватар для MrOnlineCoder
    У с++ также есть клиент для socket io. https://socket.io/blog/socket-io-cpp/

    Но я делал акцент не именно на с++, а на OpenGL, чтобы показать как в современном OpenGL рисовать крестики нолики и как связать с ними сетевой код.
    Запись от MrOnlineCoder размещена 29.06.2019 в 17:25 MrOnlineCoder вне форума
  5. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от MrOnlineCoder Просмотреть комментарий
    У с++ также есть клиент для socket io. https://socket.io/blog/socket-io-cpp/
    Это Qt, а я сторонник .NET. Для C# тоже есть socket.io. Я думаю, чтобы на C#/socket.io сделать клиента. Это был бы хороший опыт для меня. Но мне пока хватит одного TypeScript и на сервере и на клиенте. Тем более, что сейчас очень много людей используют Mac и Linux, и многие используют планшеты и смартфоны, поэтому у TypeScript и WebGL есть преимущество, что пишешь один раз, один раз отгружаешь на GitHub, а оно автоматически разворачивается на хостинге Heroku. Это значительно экономит время, чем если я буду собирать под разные платформы. Это ещё Mac нужно купить, и линукс поставить. А ещё Xamarin поставить, научиться собирать по Android и iOS. Мне гораздо проще тренироваться делать сетевые игры на TypeScript. Для Desktop можно на Unity прямо из Windows собрать клиентов для Mac и Linux. Но для такой простой игры достаточно будет браузера. Я для Unity собираю для портфолио только, чтобы показать, что я умею соединять Unity через Socket.io.

    Цитата:
    Сообщение от MrOnlineCoder Просмотреть комментарий
    Но я делал акцент не именно на с++, а на OpenGL, чтобы показать как в современном OpenGL рисовать крестики нолики и как связать с ними сетевой код.
    У меня акцент на OpenGL есть - это WebGL 1.0. Это аналог OpenGL ES 2.0. Да, я покажу как сделать крестики-нолики на современном шейдерном WebGL. И акцент будет именно на OpenGL, а не на TypeScript. А потом позже будет сервер на C# и TcpSocket из .NET, где тоже акцент будет на сокетах и параллельных процессах. А так же C# и современный OpenGL 3, где тоже акцент будет на OpenGL, а не на C#.
    Запись от 8Observer8 размещена 29.06.2019 в 18:01 8Observer8 вне форума
  6. Старый комментарий
    Аватар для 8Observer8
    Сервер посылает JSON сообщение с текстом: 'Hello from server'. Клиент отображает полученное сообщение на странице.
    Date: Sat Jun 29 23:35:23 2019 +0400
    Запись от 8Observer8 размещена 29.06.2019 в 22:44 8Observer8 вне форума
    Обновил(-а) 8Observer8 29.06.2019 в 22:49
  7. Старый комментарий
    Запись от 8Observer8 размещена 10.07.2019 в 15:51 8Observer8 вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru