Gopher: Open-source Real-time Messaging Game Server Written in Go

Gopher: Open-source Real-time Messaging Game Server Written in Go
Photo by Alexander Shatov / Unsplash

Gopher Game Server is a powerful platform that offers a wide range of tools to help developers build online multiplayer games and real-time applications with ease. With its flexible and diverse set of tools, developers can customize their games and applications to meet the specific needs of their projects.

Features

One of the key features of Gopher is its ability to handle the heavy lifting for developers. Gopher takes care of tasks such as synchronizing and data type conversions, so developers can focus on building their games and applications without worrying about the technical details.

In addition, Gopher comes with a built-in SQL client authentication mechanism that makes it easy to create and manage users' accounts. The authentication mechanism is fully customizable, allowing developers to tailor it to meet the specific needs of their projects. Gopher also includes a friending tool that allows users to befriend one another, invite each other to groups, check each other's status, and more.

Gopher's components are designed to be easily configurable and customizable for any specific project's needs. The platform offers super easy APIs for server, database, and client coding, as well as chat, private messaging, and voice chat features.

Furthermore, Gopher offers additional features that are currently in development, including a distributed load balancer and server coordinator, distributed server broadcasts, a GUI for administrating and monitoring servers, and integration with GopherDB when it becomes stable.

Here is its full features list:

  • Super easy APIs for server, database, and client coding
  • Chat, private messaging, and voice chat
  • Customizable client authentication (*1)
  • Built-in friending mechanism (*1)
  • Supports multiple connections on the same User
  • Server saves state on shut-down and restores on reboot (*2)
  • Client API in JavaScript

Note that the authentication/friending feature requires a MySQL (or similar SQL) database, but it is an optional feature that can be enabled or disabled to use your own implementations. Additionally, when updating and restarting your server, you can recover any rooms that were in the middle of a game with minimal effort thanks to Gopher's ability to save state on shut-down and restore on reboot.

Tech

Gopher is written in Go language and supports MySQL v5.7 and later.

Install

Gopher Game Server requires at least Go v1.8+ (and MySQL v5.7+ for the authentication and friending features).

First, install the dependencies:

go get github.com/gorilla/websocket
go get github.com/go-sql-driver/mysql
go get golang.org/x/crypto/bcrypt

Then install the server:

go get github.com/hewiefreeman/GopherGameServer


License

  • Apache-2.0 License

Resources

GitHub - hewiefreeman/GopherGameServer: :trophy: Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
:trophy: Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included! - GitHub - hewiefreeman/GopherGameServer: :trophy: Feature packed, eas…

Read more