All Projects → Vrekt → LunarGdx

Vrekt / LunarGdx

Licence: other
A networking library for LibGDX utilizing Netty allowing easy creation of multiplayer games.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to LunarGdx

Ogar3
A better version of Ogar
Stars: ✭ 22 (-4.35%)
Mutual labels:  multiplayer, multiplayer-game, multiplayer-game-server
karting
A multiplayer racing example project in Unity using the SocketWeaver SDK
Stars: ✭ 39 (+69.57%)
Mutual labels:  multiplayer, multiplayer-game
Mrboom Libretro
Mr.Boom is an 8 player Bomberman clone for RetroArch/Libretro
Stars: ✭ 162 (+604.35%)
Mutual labels:  multiplayer, multiplayer-game
colyseus-kotlin
⚔ Implementation of Colyseus client using Kotlin
Stars: ✭ 26 (+13.04%)
Mutual labels:  multiplayer, multiplayer-game
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (+465.22%)
Mutual labels:  multiplayer, multiplayer-game
Ore Infinium
Ore Infinium, Open Source multiplayer Terraria-inspired Sci-fi game, focused on technology, devices and researching. Written in Kotlin (JVM), LibGDX. Cross platform
Stars: ✭ 139 (+504.35%)
Mutual labels:  multiplayer, libgdx
Koru
A 2D multiplayer sandbox game.
Stars: ✭ 78 (+239.13%)
Mutual labels:  libgdx, multiplayer-game
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+3243.48%)
Mutual labels:  multiplayer, multiplayer-game
liblast
A libre multiplayer FPS game created in Godot Engine
Stars: ✭ 92 (+300%)
Mutual labels:  multiplayer, multiplayer-game
asciiarena
Terminal multiplayer deathmatch game
Stars: ✭ 34 (+47.83%)
Mutual labels:  multiplayer, multiplayer-game
Unity-Firebase-Multiplayer-Example
Multiplayer and Matchmaking system using Firebase Realtime Database in Unity
Stars: ✭ 32 (+39.13%)
Mutual labels:  multiplayer, multiplayer-game
Forgenetworkingremastered
In short, Forge Networking is a free and open source multiplayer game (multi-user) networking system that has a very good integration with the Unity game engine. You wanna make a multiplayer game or real time multi-user application? This is the library for you.
Stars: ✭ 1,338 (+5717.39%)
Mutual labels:  multiplayer, multiplayer-game
Frag.exe
Multiplayer First-Person Shooter written in C++ using my own engine, Qor
Stars: ✭ 8 (-65.22%)
Mutual labels:  multiplayer, multiplayer-game
Magicallife
A 2d game that aspires to be similar to Rimworld, with more depth, magic, and RPG concepts.
Stars: ✭ 145 (+530.43%)
Mutual labels:  multiplayer, multiplayer-game
Ancientbeast
Turn Based Strategy Game. Master your beasts! 🐺
Stars: ✭ 907 (+3843.48%)
Mutual labels:  multiplayer, multiplayer-game
Team-Capture
Team-Capture - A multiplayer FPS game, inspired by games like Quake and TF2. Done in Unity
Stars: ✭ 81 (+252.17%)
Mutual labels:  multiplayer, multiplayer-game
OpenTrivia
Multiplayer quiz game demo using React and Opentdb API
Stars: ✭ 47 (+104.35%)
Mutual labels:  multiplayer, multiplayer-game
MyRTS
Multiplayer RTS game prototype written in Java using LibGDX
Stars: ✭ 17 (-26.09%)
Mutual labels:  multiplayer, multiplayer-game
Colyseus
⚔ Multiplayer Framework for Node.js
Stars: ✭ 3,817 (+16495.65%)
Mutual labels:  multiplayer, multiplayer-game-server
tripeaks-gdx
A simple tri peaks solitaire game using libGDX.
Stars: ✭ 45 (+95.65%)
Mutual labels:  libgdx, libgdx-game

Lunar

What is Lunar?

Lunar is a networking library for LibGDX. With lunar you can easily create multiplayer games quickly and efficiently. Lunar provides many common utilities such as entities, worlds, protocol, and box2d support!

Lunar is still in very early development, expect many, many changes.

What's Coming

Lunar has been majorly overhauled since last release in October. The wiki is being re-written for these changes.

You can check out a demo game with the new API here

I will soon be updating this repo with all current information and more examples once a few more issues are ironed out.

Until then you can;

  • a) Use the old release from October, all current documentation will show you how to use Lunar.
  • b) Go in blind and use current repo and try to build something. The code does have comments and documentation spread around.
  • c) Wait.

Features

  • Networked box2d worlds.. (WIP)
  • Networked player moving and velocity.
  • Networked player creation/removing.
  • Ashley entity system
  • A expandable protocol with SSL support.
  • Very customizable and extendable.

Get A Taste

// apply force to another player and send it to others since they were attacked.
this.player.getWorldIn().applyForceToOtherPlayerNetwork(somePlayer, player.getConnection(), fx, fy, px, py, true);

// apply a knock-back force to ourselves.
this.player.getWorldIn().applyForceToPlayerNetwork(player.getConnection(), fx, fy, point.x, point.y, true);
// register a unique custom packet.
this.connection.registerPacket(99, MyCustomPacket::new, packet -> handleEntityPropertiesPacket(packet));
// Create a networked world for others to join us.
// We tell the world to handle physics updates and local player updates for us.
lunarWorld = new BasicLunarWorld(player, world, scaling, true, true, true);
// Spawn our player in the world.
player.spawnEntityInWorld(lunarWorld, 2.0f, 2.0f);
// connect to remote server.
final LunarClientServer server = new LunarClientServer(lunar, "localhost", 6969);
server.connect().join();

// get our connection
final PlayerConnection connection = (PlayerConnection) server.getConnection();

Want to jump in? Check out the Building A Simple Game

Documentation and Examples

Examples

Wiki

Planned Features

  • Networked collision
  • Better movement sync.
  • Better protocol security.
  • Networked entities and other map/world objects.
  • ...

Known Issues

  • Random ghost player blinks next to networked player
  • Initial position seems to be de-synced some way
  • Worlds will need to be disposed when switching between them
  • probably other stuff I don't know about.

Using Lunar

You can find releases in the releases section. Both client and server rely on the Protocol dependency.

You must also add a dependency for netty-all.

Gradle 6.7.2
implementation group: 'io.netty', name: 'netty-all', version: '4.1.48.Final'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].