https://github.com/VictoremWinbringer/Victorem
Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.
https://github.com/VictoremWinbringer/Victorem
game-framework game-server game-servers multiplayer realtime rust rust-library server udp udp-client udp-server
Last synced: 25 days ago
JSON representation
Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.
- Host: GitHub
- URL: https://github.com/VictoremWinbringer/Victorem
- Owner: VictoremWinbringer
- License: mit
- Created: 2018-12-05T17:32:12.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-01-14T18:03:48.000Z (about 6 years ago)
- Last Synced: 2024-10-07T08:10:10.973Z (6 months ago)
- Topics: game-framework, game-server, game-servers, multiplayer, realtime, rust, rust-library, server, udp, udp-client, udp-server
- Language: Rust
- Homepage: https://crates.io/crates/victorem
- Size: 157 KB
- Stars: 32
- Watchers: 2
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-cn - VictoremWinbringer/Victorem - ci.org/VictoremWinbringer/Victorem.svg?branch=master">](https://travis-ci.org/VictoremWinbringer/Victorem) (Libraries / Game development)
- awesome-rust - VictoremWinbringer/Victorem - ci.org/VictoremWinbringer/Victorem.svg?branch=master">](https://travis-ci.org/VictoremWinbringer/Victorem) (Libraries / Game development)
- awesome-rust - VictoremWinbringer/Victorem
- awesome-rust-cn - VictoremWinbringer/Victorem
- awesome-rust-zh - VictoremWinbringer/Victorem - 简易 UDP 游戏服务器和 UDP 客户端框架,用于创建简单的 2D 和 3D 在线游戏原型[<img src="https://api.travis-ci.org/VictoremWinbringer/Victorem.svg?branch=master">](https://travis-ci.org/VictoremWinbringer/Victorem) (库 / 游戏开发)
- awesome-rust - VictoremWinbringer/Victorem - ci.org/VictoremWinbringer/Victorem.svg?branch=master">](https://travis-ci.org/VictoremWinbringer/Victorem) (库 Libraries / 游戏开发 Game development)
README
# Victorem
[](https://travis-ci.org/VictoremWinbringer/Victorem)
Easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.
## Example
### Cargo.toml
```toml
[dependencies]
victorem = "0.8.2"
```
### Client
```rust
use victorem;
use std::time::{Duration, Instant};fn main() {
let mut client = victorem::ClientSocket::new(11111, "127.0.0.1:22222").unwrap();
let mut id: u32 = 0;
let mut timer = Instant::now();
let period = Duration::from_millis(100);
loop {
if timer.elapsed() > period {
timer = Instant::now();
id += 1;
let _ = client.send(format!("Ping {}", id).into_bytes());
}
let _ = client
.recv()
.map(|v| String::from_utf8(v).unwrap_or(String::new()))
.map(|s| println!("From Server: {}", s));
}
}
```
### Server
```rust
use victorem;
use std::net::SocketAddr;
use std::time::Duration;struct PingPongGame {
id: u32,
}impl victorem::Game for PingPongGame {
fn handle_command(
&mut self,
delta_time: Duration,
commands: Vec>,
from: SocketAddr,
) -> victorem::ContinueRunning {
for v in commands {
println!(
"From Client: {:?} {} {}",
delta_time,
from,
String::from_utf8(v).unwrap_or(String::new()),
);
}
true
}fn draw(&mut self, delta_time: Duration) -> Vec {
self.id += 1;
format!("Pong {} {:?}", self.id, delta_time).into_bytes()
}
}fn main() {
let mut server = victorem::GameServer::new(PingPongGame { id: 0 }, 22222).unwrap();
server.run();
}
```