io.github.congcoi123:tenio

TenIO is a java NIO (Non-blocking I/O) based server specifically designed for multiplayer games. It supports UDP and TCP transports which are handled by Netty for high-speed network transmission. It uses MsgPack for compressing data so that can be transferred quickly through the network. This framework can help you quickly create a game server or integrate it into your system.

License

License

GroupId

GroupId

io.github.congcoi123
ArtifactId

ArtifactId

tenio
Last Version

Last Version

3.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

io.github.congcoi123:tenio
TenIO is a java NIO (Non-blocking I/O) based server specifically designed for multiplayer games. It supports UDP and TCP transports which are handled by Netty for high-speed network transmission. It uses MsgPack for compressing data so that can be transferred quickly through the network. This framework can help you quickly create a game server or integrate it into your system.
Project URL

Project URL

https://github.com/congcoi123/tenio
Source Code Management

Source Code Management

https://github.com/congcoi123/tenio/tree/master

Download tenio

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.congcoi123/tenio/ -->
<dependency>
    <groupId>io.github.congcoi123</groupId>
    <artifactId>tenio</artifactId>
    <version>3.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.congcoi123/tenio/
implementation 'io.github.congcoi123:tenio:3.1.1'
// https://jarcasting.com/artifacts/io.github.congcoi123/tenio/
implementation ("io.github.congcoi123:tenio:3.1.1")
'io.github.congcoi123:tenio:jar:3.1.1'
<dependency org="io.github.congcoi123" name="tenio" rev="3.1.1">
  <artifact name="tenio" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.congcoi123', module='tenio', version='3.1.1')
)
libraryDependencies += "io.github.congcoi123" % "tenio" % "3.1.1"
[io.github.congcoi123/tenio "3.1.1"]

Dependencies

compile (7)

Group / Artifact Type Version
io.netty : netty-all jar 4.1.50.Final
org.eclipse.jetty : jetty-server jar 9.4.29.v20200521
org.eclipse.jetty : jetty-servlet jar 9.4.29.v20200521
javax.servlet : servlet-api jar 2.5
org.msgpack : msgpack jar 0.6.12
com.google.guava : guava jar 29.0-jre
org.apache.logging.log4j : log4j-core jar 2.13.3

test (4)

Group / Artifact Type Version
org.junit.jupiter : junit-jupiter-api jar 5.6.2
org.junit.jupiter : junit-jupiter-engine jar 5.6.2
org.junit.platform : junit-platform-runner jar 1.6.2
org.junit.platform : junit-platform-launcher jar 1.6.2

Project Modules

There are no modules declared in this project.

TenIO Tweet

TenIO is a java NIO (Non-blocking I/O) based server specifically designed for multiplayer games. It supports UDP and TCP transports which are handled by Netty for high-speed network transmission. It uses MsgPack for compressing data so that can be transferred quickly through the network. This framework can help you quickly create a game server or integrate it into your system. It can be used to create scalable, distributed systems (such as MMORPG systems).

Features

  • Scalable, distributed design.
  • Easy-to-use, OOP design.
  • Based on standard Java development, ensuring cross-platform support.
  • Simple event handlers implementation.
  • Simple physic simulator and debugger.
  • Have simple existing game clients for rapid development.

Showcases


Gold Miner Online


Retro Brick Game Online

MMOG System Architecture

Game Server

Game System

First Glimpse

  • Simple Movement Simulation
    Simple Movement Simulation
  • Communication Simulation
    Communication

Wiki

The wiki provides implementation level details and answers to general questions that a developer starting to use TenIO might have about it.

Clients


TenIO Cocos2dx


TenIO Libgdx


TenIO Unity


TenIO Phaserjs

Dependencies

  • guava 29.0-jre
  • netty-all 4.1.50.Final
  • servlet-api 2.5
  • log4j-core 2.13.3
  • jetty-server 9.4.31.v20200723
  • jetty-servlet 9.4.31.v20200723
  • msgpack 0.6.12
  • spring-boot
  • spring-cloud

Requirements

  • Java 11
  • Java 8
  • Docker

License

The TenIO project is currently available under the MIT License.

Changelog

Please check out the changelog for more details.

Contributing

Please check out the contributing guideline for more details.

Documentations

Please check out the documentations directory for more details.

Installation

For the 3.x version, you can get by Maven

<dependency>
    <groupId>io.github.congcoi123</groupId>
    <artifactId>tenio</artifactId>
    <version>3.1.1</version>
</dependency>

Or you can get the sources

$ git clone https://github.com/congcoi123/tenio.git

Examples

Please start the server before its corresponding client in each example package.

|-- example
    |-- example1
    |   |-- TestClientLogin.java
    |   |-- TestServerLogin.java
    |-- example2
    |   |-- TestClientFSM.java
    |   |-- TestFSM.java
    |   |-- TestServerFSM.java
    |-- example3
    |   |-- TestClientAttach.java
    |   |-- TestServerAttach.java
    |-- example4
    |   |-- TestClientMovement.java
    |   |-- TestMovement.java
    |   |-- TestServerMovement.java
    |-- example5
    |   |-- TestECS.java
    |-- example6
    |   |-- TestClientStress.java
    |   |-- TestServerStress.java
    |-- example7
    |   |-- TestServerPhaserjs.java

Happy coding !

Versions

Version
3.1.1
3.1.0
3.0.0
2.0.0
1.0.1
1.0.0