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.
- Host: GitHub
- URL: https://github.com/radovanmoncek/nettgame
- Owner: radovanmoncek
- Created: 2024-06-24T23:05:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T23:47:20.000Z (about 1 year ago)
- Last Synced: 2025-04-03T00:26:45.449Z (about 1 year ago)
- Topics: containerization, docker, flatbuffers, framework, game-development, hibernate, netty, server
- Language: Java
- Homepage:
- Size: 595 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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
