PConsole

Aus Hacksaar Wiki
Version vom 29. April 2014, 15:49 Uhr von Constantin (Diskussion | Beiträge) (Projekt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Projekt, das darauf abzielt, ein konsolentypisches Multiplayererlebnis (ein Rechner, viele Controller, Splitscreen/mehrere Bildschirme z.B. 2 Bildschirme für 4 Spieler oder so) auf den PC zu bringen.

Momentaner Stand (dev blog)

AutoHotKey scheint nützlich zu sein: Man kann Events abfangen und sie nach ihrer Art sortiert an andere Fenster weiterleiten [1]. Man könnte also mit einem entsprechenden Skript z.B. UT2004 mehrmals im Fenstermodus starten und Events von verschiedenen Tastaturen und verschiedenen Mäusen an die verschiedenen Spiel-Fenster schicken. Dann ein Netzwerkspiel über Localhost (Anm. meines Mitbewohners: Da hat man bestimmt nen guten Ping xD) TODO: Input von verschiedenen Tastaturen verschiedenen Fenstern zukommen lassen (vielleicht [2]?)

Update (1.5.2013): Ich habe 3 USB Tastaturen bestellt. Eine Tastatur und 2 bis 3 USB Mäuse hab ich noch. Des Weiteren hab ich beschlossen, die Eingabeentgegennahme mit SDL zu machen. Ja, SDL kann keine Eingaben von verschiedenen Tastaturen unterscheiden. Deshalb wird das erste Teilprojekt sein, das zu ändern, indem das Unterprojekt SDL_multikbd geschrieben wird (zumindest für Windows und Linux).

Update (6.5.2013): Die Tastaturen sind da und am Wochenende hab ich schonmal was programmiert: Ein Spiel, bei dem ein Wort auf dem Bildschirm angezeigt wird und jeder Spieler muss es an einer eigenen Tastatur eintippen. Der schnellste gewinnt. Link: https://cberhard.wordpress.com/2013/05/05/multi-x-keyboard-warrior/ Das ganze ist in X11 XI2 implementiert, läuft also nur auf modernen unixoiden Systemen.

Des Weiteren habe ich begonnen, einen Entwurf für die SDL-Erweiterung für Multiuser zu schreiben: http://pad.hacksaar.de/p/SDL_Multiput Der Entwurf orientiert sich stark an SDL 1 Eventhandling. Da SDL 2 in den Startlöchern steht, sollte man aber vor Implementierung noch überprüfen, in wie fern sich das von SDL 1 geändert hat und welche Anpassungen man vornehmen muss. Wer ne Idee hat, kann gern einfach ins Pad schreiben. Auch müssen wohl nicht alle der Funktionen implementiert werden, um sinnvoll mit der Lib arbeiten zu können. Funktionen wie SDL_SetModState oder SDL_EnableKeyRepeat braucht man meist nicht für Spieleentwicklung und haben daher geringe Priorität.

Update (8.6.2013): Eine SDL-Erweiterung wäre ein einziger großer Hack. Wenn, dann müsste man das Feature in SDL selbst einbauen. Leider ist SDL2 schon gefeaturefreezed und man kann dieses Feature in SDL auch nicht einführen, ohne ABI-inkompatibel zu werden (SDL ist diesbzgl nicht gut designt). Ich werd mir mal AutoHotKey genauer ansehen. Falls das nicht funktioniert -> rohe winapi Programmierung

Foto von Multypo im Einsatz

Update (6.8.2013): Das vorher genannte multixkeyboardwarrior wurde mit Hilfe von Ralf auf Qt portiert, heißt jetzt Multypo und sieht echt schön aus. Git: http://www.ralfj.de/git/multypo.git .Da kam bei der Nacht der schönen Künste schon etwas Konsolenfeeling auf. Es scheint, als ob man bei Linux für die ursprüngliche Projektidee besser beim Fenstermanager ansetzt, denn dieser kann multiple Foki unterstützen und damit ein separates Programm obsolet machen. Daher werde ich mich in Zukunft ganz auf Windows konzentrieren, da Windows dieses Feature nicht hat und wahrscheinlich auch nie haben wird.

Ideen: Anschläge pro Minute, Reaktionszeit, globale Highscore, Fehlerquote (wie genau noch zu klären), Ansagen wie bei You Don't know Jack