Есть ресуры для создания сервера для мультиплеерной веб игры на Go?

Ссылка скопирована
1 ответ

Кто нибудь знает хорошие ресурсы(книги, статьи т.п.) по созданию сервера для мультиплеерной игры? Язык в принципе не принципиален. Написал на js с html5 canvas игру. Соединился через веб сокет с сервером. Туда сюда попробовал поотправлять пакеты. Интересно было бы посмотреть на правильную архитектуру, структуру пакетов и прочее. Игра на подобие agario и прочих.

Дополнительно:

мб тут что то интересное найдёшь https://roadmap.sh/server-side-game-developer

Дружище! Нет «правильных» архитектур когда дело касается игр) Я думаю, идеально - разрабатывать под свои задачи сервер) Развивать, выстраивать свою архитектуру)

Это уже с позиции опыта в разработке. Мы с командой в какой-то момент нашли свой подход к решению тех или иных задач и уже какое-то количество времени его придерживаемся.

Из того чем я вдохновлялся в последнее время - даю ссылочку. Там целая серия статей. Не на Go но думаю стащить оттуда полезной инфы получится не мало
ТЫК

  • О спасибо) почитаю на досуге. Просто у меня опыта в написании игровых серверов почти нулевой), но тема стала интересной. Просто для себя, законектиться с друзьями попробовать и прочие штучки. И интересно почитать и узнать более менее хорошее решение.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Игорь Волков Ответ

Да, существует несколько ресурсов, которые могут помочь вам создать сервер для мультиплеерной веб игры на языке программирования Go. Один из таких ресурсов - это библиотека под названием "Gorilla WebSocket", которая предоставляет возможность создавать веб-сокет сервера на Go.

Для начала вам нужно установить эту библиотеку с помощью команды go get:

go get github.com/gorilla/websocket

go get github.com/gorilla/websocket

Затем вы можете создать простой сервер с использованием Gorilla WebSocket:

package main
 
import (
	"fmt"
	"net/http"
 
	"github.com/gorilla/websocket"
)
 
var upgrader = websocket.Upgrader{
	CheckOrigin: func(r *http.Request) bool {
		return true
	},
}
 
func handler(w http.ResponseWriter, r *http.Request) {
	conn, err := upgrader.Upgrade(w, r, nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer conn.Close()
 
	for {
		messageType, p, err := conn.ReadMessage()
		if err != nil {
			fmt.Println(err)
			return
		}
		err = conn.WriteMessage(messageType, p)
		if err != nil {
			fmt.Println(err)
			return
		}
	}
}
 
func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

package main import ( "fmt" "net/http" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { return true }, } func handler(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { fmt.Println(err) return } defer conn.Close() for { messageType, p, err := conn.ReadMessage() if err != nil { fmt.Println(err) return } err = conn.WriteMessage(messageType, p) if err != nil { fmt.Println(err) return } } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

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

Кроме того, существуют другие ресурсы, такие как Go net/http пакет для создания HTTP серверов, которые также могут быть использованы для создания сервера для вашей игры. Надеюсь, это поможет вам начать разработку мультиплеерной веб игры на Go!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно