An open API service indexing awesome lists of open source software.

https://github.com/radovanmoncek/nettgame

A game server framework written in Java utilizing Docker for its architecture.
https://github.com/radovanmoncek/nettgame

containerization docker flatbuffers framework game-development hibernate netty server

Last synced: 4 months ago
JSON representation

A game server framework written in Java utilizing Docker for its architecture.

Awesome Lists containing this project

README

          

### Nettgame

is an extension of the excellent **Netty** framework that aims to provide tools as a framework for
game server development.

#### Key points

- The developed server is meant for containerized runtime (Docker), but it does not have to be.
- Nettgame is written in the Java programming language, and utilizes FlatBuffers as its
serialization library of choice.
- Persistence is handled through the well-known Java ORM framework Hibernate, enabling easy
extension, and scaling. The default DBMS (Data Base Management System) option is meant to be MySQL,
but, thanks to Hibernate, and JDBC, not the only possible one.
- Do be aware, that the only possible transport layer protocol option, currently, is **TCP**.

#### What nettgame can do?

- Support multiple game instances
- Transport data using FlatBuffers enabled codecs
- Hold stateful player data using Netty AttributeMap
- Persist data through the Hibernate framework
- Handle many incoming connections
- Run inside of a Docker container
- Be extended through the Porto software architecture

#### How to use?

- Get hold of a current version of the .jar artifact (releases)
- Import Nettgame .jar into your project
- Initialize a new NettgameServerBootstrap
- Add handlers to serve business logic of your networked game

#### Dependencies
```xml


io.netty
netty-all
4.2.0.RC4



com.google.flatbuffers
flatbuffers-java
25.2.10



org.hibernate.orm
hibernate-core
7.0.0.Beta4



org.junit.jupiter
junit-jupiter-engine
5.12.0

```
#### Sources, research and further reading

- https://mahmoudz.github.io/Porto/
- https://flatbuffers.dev/white_paper/
- https://hibernate.org/orm/
- https://dev.mysql.com/doc/refman/8.0/en/introduction.html
- https://app.docker.com/
- https://junit.org/junit5/
- https://netty.io/

#### UML Class diagram

![UML Class diagram](https://github.com/radovanmoncek/nettgame/blob/development/design/Nettgame_class_diagram.png)