diff --git a/README.md b/README.md index efbecf2..931483f 100755 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Example: $ echo "SIZE" | netcat pixelflut.example.com 1337 SIZE 800 600 $ echo "PX 23 42 ff8000" | netcat pixelflut.example.com 1337 - $ echo "PX 23 42" | netcat pixelflut.example.com 1337 + $ echo "PX 32 42" | netcat pixelflut.example.com 1337 PX 23 42 ff8000 Implementations MAY support additional commands or have less strict parsing rules (e.g. allow `\r\n` or any whitespace between parameters) but they MUST support the commands above. @@ -46,21 +46,16 @@ Server written in Python, based on gevent and pygame. Easy to hack with, but a b #### `/pixelwar` (java server) -Server written in Java8, based on netty and awt. Optimized for speed and large player groups, fast networks or high-resolution projectors. This is probably the most portable version and runs on windows, too. +Server written in Java8, based on netty and awt. Optimized for speed and large player groups, fast networks or high resolution projectors. This is probably the most portable version and runs on windows, too. cd pixelwar sudo apt-get install maven openjdk-8-jdk mvn package java -jar target/pixelwar*-jar-with-dependencies.jar - -or, if you have docker installed but don't want to install maven: - - docker run -it --rm --user "`id -u`:`id -g`" --volume "`pwd`:/build" --workdir /build maven:3-jdk-8-alpine mvn -Duser.home=/build clean package - java -jar target/pixelwar*-jar-with-dependencies.jar #### `/pixelnuke` (C server) -Server written in C, based on libevent2, OpenGL, GLFW and pthreads. It won't get any faster than this. Perfect for fast networks and large groups. +Server written in C, based on libevent2, OpenGL, GLFW and pthreads. It won't get any faster than this. Prfect for fast networks and large groups. cd pixelnuke sudo apt-get install build-essential libevent-dev libglew-dev libglfw3-dev @@ -81,12 +76,12 @@ Additional Commands: * `conn:` Number of currently connected clients. Planned Features: -- [x] Toggle between windowed/fullscreen mode and switch monitors in fullscreen mode. +- [x] Toggle between windowed/fullscreen mode and switch monitors in fullscreen-mode. - [ ] Persist pixel buffer between restarts. Use an mmap-ed file for pixel data? - [ ] Save to PPM (via key, timer or admin command) and add docs/tools to convert these into a video. - [ ] Support to draw directly to a framebuffer (no OpenGL or X Server dependency -> Raspberry-PI compatible) - [ ] Showcase-Mode: Players won't draw at the same time, but take turns. Each player gets N seconds of exclusive draw time) -- [ ] Limit concurrent connections on a per IP basis. +- [ ] Limit concurrent connections per IP. - [ ] Admin commands: Unlock additional commands with a password (e.g. `PX2 ` to draw to the overlay layer) @@ -108,7 +103,3 @@ https://www.youtube.com/watch?v=1Jt-X437MKM Pixelflut GPN17 Badge https://www.youtube.com/watch?v=JGg4zqqumvs - -Rüspeler Tüfteltage (Kliemannsland, 2018) -https://youtu.be/TijSQYZoRUU?t=6m - diff --git a/pixelflut/pixelflut.py b/pixelflut/pixelflut.py index caefe08..1f24751 100755 --- a/pixelflut/pixelflut.py +++ b/pixelflut/pixelflut.py @@ -5,7 +5,7 @@ __version__ = '0.6' import time from gevent import spawn, sleep as gsleep, GreenletExit from gevent.socket import socket, SOL_SOCKET, SO_REUSEADDR -from gevent.lock import Semaphore, RLock +from gevent.coros import Semaphore, RLock from gevent.queue import Queue from collections import deque import pygame diff --git a/pixelwar/src/main/java/de/paws/pixelwar/PixelServer.java b/pixelwar/src/main/java/de/paws/pixelwar/PixelServer.java index 06f5346..bce0d00 100644 --- a/pixelwar/src/main/java/de/paws/pixelwar/PixelServer.java +++ b/pixelwar/src/main/java/de/paws/pixelwar/PixelServer.java @@ -82,11 +82,7 @@ public class PixelServer extends ChannelHandlerAdapter { public static void main(final String[] args) throws InterruptedException, IOException { - int port = 8080; - if(args.length == 1) { - port = Integer.parseInt(args[0]); - } - System.out.println("Starting server on port " + port); - new PixelServer(port).run(); + new PixelServer(8080).run(); } + }