 Ja, ich weiß nicht. Soll ich schon anfangen oder sollen wir noch warten, wie schnell es denn? Ah, fünf Nachmittag? Ja, dann, genau. Hätte ich an meinen Talk von letzten Jahren nur noch gesetzt, das gibt mir 5.000 Systeme auf der Demo-Engine. Das ist nicht einmal angepasst worden von mir seitdem. Deswegen steht das vielleicht noch in dem VPN. Also, ja, Weltraumprogrammiernacht. Ihr seid hier für den Talk Weltraumprogrammiernacht. Herzlichen Glückwunsch. Worum geht's? VPN ist das BIMA-Programmierspiel für die VPNLs. Die letzten paar Jahre gab's eigentlich immer ein BIMA-Programmierspiel. Irgendwas, was halt so offen BIMA vor sich hin blingste, wo man programmieren konnte. Und diesmal wollte wir was machen mit Raumschiffchen und Explosionen. Und da das Ganze irgendwie etwas überhastet, schnell noch hingehackt wurde, ist es etwas unfertig, wie ihr gleich bemerkt habt, aber das wird schon noch. Die letzten Jahre, ich weiß nicht, ob ihr euch erinnert, vor drei Jahren gab's das Info-Spiel von Willum. Das waren so kleine Entdecken, die ich gegenseitig gefressen haben. Dann gab's die L-Systeme von Nomeata. Das waren irgendwie so Pflanzen, die es ging über Buchern, wo man angeben musste, wie denn genau die Pflanze buchert und wie sie sich aufteilt und so weiter. Und letztes Jahr gab's kein BIMA-Programmierspiel. Das war irgendwie ein bisschen blöd, weil irgendwie ist das BIMA-Programmierspiel auf der GPN im also zentralen Punkt vor Ort rum sitzen, mit uns in den Handkorten oder was anderes machen. Und wir dachten uns, alles muss man selber machen, wir machen halt einfach eins. Und von der Rückfahrt von den letzten GPN kamen die Idee, wir können da ja mal was mit Raumschiffchen machen. Also was ist das Szenario? Der Weltraum. Unendliche, schwarze, Dinge mit Kleinständchen drin. Der Weltraum ist, wie wir alle wissen, ein höchst unangenehmer Ort. Der besteht irgendwie aus Vakuum, im Vakuum lebt sich schlecht. Da ist hochenergetische Strahlung. Da sind fiese Aliens keiner will dahin. Niemand würde sich freiwillig wirklich jemals im Weltraum bieten. Deswegen baut man was? Naja klar, Roboter. Sehen aus wie Raumschiffe sind aber in Wirklichkeit Roboter, werden programmiert, reisen durch den Weltraum, ergunden den für uns und bringen alle Schätze zu uns zurück. Genau das ist der Plan. Jetzt ist das Blöde, dass der Weltraum ja mit Plasma gefüllt ist. Plasma ist elektrisch leidfähig und irgendwie kann man nicht auf lange Strecken produzieren. Aus dem geht das mit Lichtgeschwindigkeit und es ist irgendwie nicht gut. Also muss man diese Roboter halt irgendwie so bauen, dass sie autark sind und für sich selbst umher navigieren. Sprich man hat irgendwie eine Basis, man baut da ein Raumschiff, das man andockt. Gibt dem irgendwie Triebwerke, Laser, was man halt so braucht im Raumschiff. Gibt dem eine Vision, indem man informiert, wo es hinfliegen soll, was es da machen soll, was es machen soll, falls es irgendwie den begegnet und dann schickt man es los. Und wenn man alles richtig gemacht hat und dem Raufstil auch gesagt hat, dass es irgendwie wieder zurückkommen soll, dann kommt es vielleicht auch irgendwie wieder zurück und bringt einem, zum Beispiel, Erzmit, dass sie sich in einem Asteroiden abgebaut hat. Oder dann schickt es mit zwei Triebwerken los und ich komme mit sechs Triebwerken zurück. Alles so passiert. Ja, auf jeden Fall, man selbst bleibt schön da in seiner Heimatbasis sitzen. Das heißt, man interagiert gar nicht direkt mit den Raumschiffen, sondern das Einzige, womit man direkt interagieren kann, ist seine Heimatbasis. Diese Heimatbasis sitzt auf einem Planeten und auf den Planeten kann man auch ein bisschen Ressourcen abbauen, aber das geht irgendwie nicht so toll wie aus einem Asteroiden, wo man es einfach rausziehen kann. Ja, also, wie funktioniert das Ganze? Das ist ein enttäglich geschriebener Server, der hier aktuell auf meinem Laptop läuft und wo auch gerade Leute erfolglos probieren, Code auszuführen, wie ich in New York Falls sehe. Und jede Raumschiff und jede Basis und ja, Rompfe von Basen haben nur virtuelle Maschinen. Rua ist unsere Formiersprache in Parallel Talk, der gerade gleichzeitig ist, könntet ihr die lernen, über Löwe Pech gehabt. Die ist auch nicht kompliziert. Die gesamte Sprachspezifikation passt auf eine Seite und man schreibt halt irgendwie Code und der funktioniert meistens und dann wundert man sich, das ist keine Advanced Sprachspezifik, aber braucht man hierfür auch nicht. Ja, also jedes Raumschiff hat so ein Nur-State, da ist irgendwie Code drin, man interagiert aber selbst direkt nur mit der Vm der Heimatbasis. Die Heimatbasis, da sind man tatsächlich vor dem Konflikt auf dem Planeten und tippelt irgendwie Sachen in seine Konsole. Und die Raumschiffe sind dann autark. Sprich, man sagt ja Basis, hey, Basis, da ist ein Raumschiff, die war ein bisschen von Block, ein Raumschiff raus. Und dann ist man mit dem Raumschiff noch gedockt in dem Moment und sagt, hey, Basis, transferiere den Raumschiff doch jetzt mal diese Funktion, dann wird das Funktion das Raumschiff hochgeladen und dann sagt man undockt und schickt das Raumschiff auf den Weg. Und dann schickt man das Raumschiff auf den Weg. Und wenn man alles richtig gemacht hat, bleibt es weder beim Azuriven, einfach stehen. Noch hat es einen Sündrax-Error und driftet. Noch wird es abgeschossen, weil es nicht zurück schießt und nicht ausweist. Ja, es gibt sehr viele schöne Dinge, die man machen kann. Man kann auch z.B. ein riesiger Raumschiff-Lotte bauen, die dann alle kurz vor dem Gegner des Planeten auf einen Punkt fliegen und sich komplett gegen sich zerkranchen. Denn es gibt Konditionserkennung. Schön, ne? So, Demonstration. Wie macht man das? Jetzt muss ich hier gleichzeitig tippen und mein Mikrofon halten. Wird schön. Klick. Ein Halter. Ura für Kotmann. Ja, so ist er. Und ich kann nicht direkt direkt truppen, was ich will. Und mein Vino-Manager ist weiß. Hm, ausgezeichnet. Also, man connectet sich per Netcat z.B. einfach, was man hier nicht ganz richtig sehen kann. Einfach mal auf den Server, dessen IP, wenn ich mich gleich sagen würde, das ist bei mir jetzt einfach, auf den Port 8090 und wird dann da begrüßt von einem Banner, wo man sich dann einen Account erstellen kann. Inter drückt, dann sagt man einfach, ich finde irgendwie Wort da, denn da. Und mein Passwort ist Schinken. Ein schönes Passwort. Und dann kommt schon eine Abfrage. Da kann man noch irgendwas schreiben. Da kann man eigentlich schreiben, Schinken ist lecker. Und dann macht man nochmal Inter für Stetigung. Und dann kommt jetzt hier noch eine Frage einer von Würzburgern von Nerd2Nerd, macht nämlich wir sehen Formatica und forscht ein paar Gärtsfindungen. Ich weiß nicht, ob ihr davon gehört habt. Das ist hier in letzter Zeit irgendwie interessant. Und der interessiert sich für eine Code-Basis von vielen Programmen, die ungefähr das Gleiche tun. Denn er will gucken, er will Gärtsfindungs-Algorithmen damit kalibrieren, dass halt viele Leute das Gleiche tun. Vielleicht wird auch mal hier und da ein bisschen Code abgeguckt oder geklaut. Deswegen möchte der das ihr eventuell zustimmt oder auch nicht zustimmt, dass der Code von ihm benutzt werden kann. Deswegen muss man da einfach nur schreiben. Ja, oder? Höh. So, und dann sind man sich im Hauptmenu. Und ich hatte 3, also primär, 3 Punkte zu außerhalten. Das erste ist die tatsächliche Lua-Konsole, mit der man mit seiner Basis, oh, eines Tages werden wir alle durch einen Shells gibt oder einen mechanischen Liegenstädte, oder durch einen Raumschiff. Ja, jetzt habe ich den Hauptmenu. Es gibt 3 Menupunkte. Es gibt einmal die Lua-Konsole, mit der man halt direkt Lua-Code in Kontext seiner Heimatwase ausführen kann. Da kriegt man so ein Prompt, Lua, und dann sagt man irgendwie sowas wie, weiß ich auch nicht, Return 1 plus 1. Ja, und das ist jetzt natürlich links am Raus gefallen, 2. Wie sind blöd? Oder Return... Schinken... Ja, auf jeden Fall, da kann man all das, was ich hier gleich zeige, dann interaktiv tun. Da kommt man auf der Raus, wenn man von fit sagt und ist wieder im Hauptmenu. Die zweite Möglichkeit ist, wenn man Code so am Blog hochladen will. Das ist der Menupunkt Nummer 2. Angenommen, man schreibt jetzt, dass umfangreicheres eine Basis, die automatisch gemanagt wird, die irgendwie Schiffe baut und das Pads schon sich verteidigt, dann will man das nicht Zeile für Zeile eintippeln, sondern man copy-pasted das rein. Das ist beim Menupunkt 2 einfacher. Und das ist das Lua Output. Und zwar gibt es eine Funktion print. Die kann man an bübiger Stelle benutzen. Die gibt es einfach aus, was man will. Man kann da die Wagen Output machen, man kann sagen, oh, ich bin jetzt irgendwie kaputt und habe kein Triebwerk mehr, was soll ich tun? Und will dann Position so und so. Das ist aber auch die einzige Form von Kommunikation. Diese Kommunikation kommt aber nicht bei anderen Raumschiffen an, sondern nur beim User. Es ist mehr die Wagen. Es ist mehr ein bisschen mogeln. Man kann jetzt dann sagen, ja, wenn das Raumschiff kein Triebwerk mehr hat, dann lad da wieder eins rein. Vielleicht merkt es aber auch ein Gegner und kommt vorbei und bläht eins rein und bläht doch gleich den Code hoch. Ja, da kann man sich dann eventuell gegenwehren, eventuell nicht. Ja, und das ist auch schon die grundlegende Interaktionsmöglichkeit. Da gibt es dann irgendwie noch so ein Settings-Memium mit teilweise sogar nutzlosen Optionen. Wie gesagt, das Ganze hat heute früh um vier zum ersten Mal gebaut, ohne zu Sack-Folten. Deswegen ist es noch ein bisschen wackelig. Aber das wird es schon noch. So. Jetzt habe ich gezeigt, wie man sich da einloggt. Was macht man dann da drinnen? So eine Basis, die man hat, hat Slots. Und zwar die Standardbasis, in der man startet hat sogar zwölf. Ich hatte jetzt die kleinere, die ja gezeichnet wird, nur sechs. Raumschiffe, die haben Slots und dann gibt es auch Raumschiffe, die haben weniger Slots, zum Beispiel nur drei. Und es gibt auch Raumschiffe, die haben bedeutend mehr Slots. Die größten haben 24, das ist ein riesige Monster. In so Slots kann man Sachen reintun. Und zwar gibt es vier mögliche Zustände von Slots. Lea, ist einfach. Erlots, das ist das, was man entweder in einer Basis minen kann. Man sagt einfach, min mal. Dann kommt eine Zeit später halt ein Klotz Erz raus. Oder man holt ihn aus Asteroiden. Man fliegt zu einem Asteroiden hin, dockt an. Der ist voll mit Erz. Das zieht man sich einfach aus und fliegt dann wieder zurück zu einer Basis. Geht viel schneller. Eventuell ist dann da aber auch schon wer anders und baut Erz ab. Und dann gibt es Drama. Das ist schön. Wenn man das Erz dann zurückgebracht hat zu seiner Basis, kann die Basis daraus die beiden anderen Typen bauen. Das eine ist ein Laser. Für der Gut sein mag, weiß ich auch nicht. Und das andere ist ein Triebwerk. Das ist schon nützlicher. Damit kann man nicht fliegen. Je mehr Triebwerke in einem Raumschiff sind, desto schneller fliegt es. Genau. Und wenn jetzt so ein Laser benutzt wird, was ja eventuell mehr vorkommen kann, man schießt auf ein Gegner und mit einer gewissen Wahrscheinlichkeit wird einer der hochqualitativen wertvollen Chancen, also Laser- oder Triebwerk, in Erz verwandelt. Oder Erz wird vaporisiert und in Leer verwandelt. Das heißt, man schießt, schießt, schießt. Alle Triebwerke werden zu Erz. Irgendwann wird er als Erz zu leer und wenn das Raumschiff komplett leer ist, wird der nächste Schluss dieses Raumschiff zur Expression bringen. Das will man gar nicht unbedingt immer. Denn man kann auch einfach einem Raumschiff alle Triebwerke erschießen. Dann ist es handlungsunfähig. Dann dockt man an, lädt seinen eigenen Code hoch, tut den Triebwerk rein und fliegt damit nach Hause. Man kann lustigerweise auch einem Raumschiff, dessen Lua-Code einen Sündachs-Auron gemacht hat, das würde ja niemals passieren und das einfach vor einem Raum driftet, hinfliegen, andocken, Code hochladen, dann ist es das eigene. Ich glaube, das wird am Anfang des Spiels durchaus sehr gewinnbringend sein. Genau. Ich kann das gleich noch zeigen. Es gibt nur bestimmte Interaktionsmöglichkeiten für Raumschiffe und eins davon heißt Send. Man sendet Daten an den Gegenüber und der kann dann entweder den annehmen oder ablehnen, bzw. wenn er nicht handlungsfähig ist, kann er ihn nicht ablehnen und dann wird er ausgeführt. Man kann aber nicht Code ziehen, insbesondere weil das sowieso Lua-Byte-Code wäre und dann müsste man erst entweder lesen. Das geht zwar, aber nie. Also wie fängt man jetzt an? Man fängt sich da ein, man kriegt das irgendwie hin und fängt erst mal an mit seiner Basis so ein bisschen zu spielen. Man sagt mein Mal, dann kriegt man irgendwie so ein Chunk und dann kann man da was bauen und ist glücklich und dann sagt man dann baumal ein Raumschiff und lädt das voll mit Zeug und muss sich dann überlegen, wie man das automatisiert und schickt es los und parkt es nicht in meinem Asteroid und dann reagiert es nicht mehr. Dann schickt man noch eins hinterher, dem gibt man außerdem gleich in Koordinaten, also koordiniert es in dem ersten Block an, lädt sich voll, macht nichts mehr. Dann schickt man noch eins, wo man wieder die Koordinaten macht und ungefähr beim fünften Mal hat man dann ein Raumschiff, das auch wieder zurückkommt und dann ist man super glücklich. Das ist die Stufe 1, aber das kann man dann natürlich auch mal automatisieren. Also auch die Basis hat ja einen Lua-State. Man baut sich da einfach eine Schleife, die nacheinander Raumschiffe baut und hier los schickt. Aber irgendwann ist dann die Grenze des Wachstums erreicht und irgendwann wird man halt einfach nicht mehr größer auf die Art und Weise und dann muss man an anderen Planeten zu kolonisieren. Denn so ein Raumschiff kann auch einfach zu den Planeten fliegen und sagen, so, ich werde jetzt eine Basis, es verliert dann die Möglichkeit zu fliegen, gewinnt aber die Möglichkeit zu meinen und Sachen zu bauen. Jetzt ist das aber natürlich weit weg nicht an der eigenen Homebasis, das heißt, da kann man nicht mehr mit interagieren. Man muss also anfangen, Code zu schreiben, der dann dort Raumschiffe baut und mit Code befüllt. Und er entscheidet, was baue ich denn jetzt für ein Raumschiff und so schieße ich das dann hin. Und irgendwann hat man vielleicht eine neue Version des Codes, dann muss man, kann man das ja nicht da einfach hochladen, sondern man baut sich lokal ein Raumschiff, lädt dem Code hoch, das rüberfliegt, dort Code hochlädt, um damit wieder neue Raumschiffe zu bauen, die Code hochlädt. Da kann unendlich viel falsch gehen, das ist so toll. Genau, das ist so ungefähr die Entwicklungsstufen, die wir uns gedacht haben, eigene Basis, automatisierte Basis und dann viele automatisierte Basen. Genau, wie programmiert man das Ganze? Das Ganze ist eventbasiert. So ein Raumschiff hat nicht die ganze Zeit Code am Laufen, untereinander, damit es auch gut skaliert, sondern es wird nur dann mal aufgerufen, wenn irgendwas Wichtiges anliegt. Zum Beispiel, hoch du wurdest erstellt, oder hoch du hast ein Asteroid ingerammt, nee, dein Exkredit ist einfach, aber hoch, da kommt ein Asteroid in deine Nähe, zum Beispiel. Oder dein eben angeworfener Raumschiff-Baujob ist jetzt fertig. Und daraufhin muss man entscheiden, was macht man überhaupt und wirft eine neue Aktion an. Jede Aktion, die man machen kann, ja, außerdem ist das Ganze halt irgendwie 15.000 Zeilen C oder so. Also, wir haben es ein bisschen übertrieben, aber wird schon genau noch mehr fragen. Wir haben kein Zettel verwendet. Wir hatten ausgiebige Diskussionen, welche Programmi-Sprache dafür richtig ist. Es begann damit, dass ich sagte, hm, lass uns CDU annehmen, das hat schon mal bei den Infospielen gut funktioniert. Dann waren 3 Informatiker, die auf mich einstürzten. Der eine sagt was von Heskel, der andere wollte einen Emulator für eine Z80-CPU bauen. Tatsächlich haben wir sehr lange über die Z80-ID nachgedacht, da ein Z80 sehr leicht zu emulieren ist und auch eigentlich gut steuern könnte. Doch dann wurden wir von der Vernunft übertrumpft und haben das doch wieder in Lua gemacht. Ich hoffe, ihr könnt uns nachfühlen. Wer von euch hätte gerne ein Z80-Emulator bedient? Oh ja, Nerds. I love you. Ähm, ja. Ja, noch fragen. Ja, nochmal in. Ja, es gibt den Code, geht mal auf WPN.NerdtoNerd.org Da ist relativ weit unten ein Link im Git Repository, da das Ganze noch relativ anfeinlich ist, wird sich das vielleicht in den nächsten paar Stunden auch noch öfters verändern. Da gibt es Code, da drin ist auch der Visualizer, um sich das dann zu rendern und so. Schiffe sind prinzipiell gleich Basen. Ja, nur halt, dass Basen sich halt nicht bewegen können und Schiffe nichts bauen können. Aber ansonsten ist es gleich. Die werden auch im Programmen genau gleich repräsentiert. Man kriegt da einfach so ein Entity-Objekt. Das ist irgendwie so ein oparkes Objekt oder einen gesinnvollen Kram mitmachen. Aber schießen ist schon mal eine gute Idee. Man kann auch auf sie selbst schießen. Man nimmt die Welt wahr. Da gibt es zwei Funktionen. Ich glaube, ich muss jetzt hier doch mal einen Browser aufmachen, ob das funktioniert. La, la, la. Fenster schieben. Funktioniert immer toll. Äh. Ohne gucken, Browser beginnen. Und gucken, welchen URL ich jetzt eingebe. Äh. Unergonomische Computer Benutzung für 100. Ich habe kein Netz. Warum habe ich kein Netz? Ist hier kein WLAN? Nein, ich habe kein WLAN. Warum? Ich habe kein WLAN. Was soll das? Ich habe das hier irgendwo noch offen. Ja, Mist, kann ich jetzt leider gerade nicht zeigen, aber geht. Äh. Man hat man hat eine begrenzte Scanner-Range. Man weiß zwar über alle Planetenbescheid immer, die sind halt schon immer da, die hat man astronomisch irgendwie aufgezeichnet, aber alles andere in der näheren Umgebung kann man erfragen. Es gibt zwei Funktionen. Eine liefere mir das nächste Objekt dieses Typs, also Planetschiffbasis oder ein zusammengeortes Filter davon. Und es gibt eine Option, gibt mir alle Schiffe im Umkreis von So und So. Und dann kriegt man halt alle als Liste und dann kann man sich überlegen, was man damit macht. Wenn man natürlich sagt, gibt mir alle Schiffe gerade noch eine Floating Point-Exception, die bald weg ist. Zum anderen wird es eventuell dazu führen, dass man dann eine sehr lange Liste bekommt, wenn viele Spieler da sind und das führt dazu, dass man irgendwann seinen Timelimit überschreitet, denn bei jeder Antwort auf seinen Callback kann man eine bestimmte Anzahl von Lua-Cycles arbeiten, das sind zurzeit irgendwie so eine Million Lua-Cycles was etwa einer Millisekunde entspricht und wenn man es überschreitet, dann wird das Schiff gekillt. Also nicht gekillt, der Computer, es driftet dann, dann kann man wieder Spaß darin haben. So, don't do that. Man kann keine Nachrichten verschicken, auch nicht mit Lichtgeschwindigkeit. Man kann also das Print kann man verschicken, aber das sieht man nur selbst, man selbst ist ja irgendwie nicht Teil des Spiels. So. Ja. Planeten sind beliebig, man hat unbegrenzte Ressourcen in Planeten, beliebig für Lua-Cycles. Wie im echten Leben. Nein, Planeten sind groß genug. Asteroiden jedoch haben nur eine begrenzte Anzahl von Slots, genauso wie Schiffe sind dann natürlich halt leer. Dann kann man da auch hinfliegen, aber dann ist das da halt schöne gute Aussicht, aber das war's dann auch. Ja. Es gibt verschiedene Sorten Größen, wie ich gezeigt habe von Schiffen und auch von Basen. Und zwar es gibt die Größen 3, das reicht genau für einen Triebwerk, ein Laser und irgendwas anderes. 6, 12 und 24, jeweils Verdoppelung und man kann einer 6er Basis, höchsten 6er Schiffe bauen, denn zu bauen eine 6er Schiff, braucht man 6 Ressourcen, für ein 12er Schiff, 12 Ressourcen und so weiter. Und man kann halt eine Basis, wenn man die komplett voller Erzhüt und sagt, Upgrade mal, auf die doppelte Größe Upgrade. Und dann fliegt man mit einem 3er Schiff zu einem Planeten, baut eine 3er Basis, die für fast nichts Gutes. Und dann upgrade man die auf eine 24er Basis und baut ein Riesenschiff, das dann irgendwo gegenfliegt. Ja. Ja. Nein, du kannst auf Asteroiden nichts bauen, weil Asteroiden haben keine Computer. Also du kannst Laser reinstopfen und wegfliegen. Und dann sind die da halt und dann sind die da nicht mehr lange. Wenn deine Basis kaputt schießt und explodiert, dann bist du tot und kriegst eine neue, irgendwo. Du merkst, ach so, das ist eine interessante Frage. Nein. Tatsächlich wird eine neue Basis generiert und mit deinem aktuell validen Lua-Code wieder initialisiert, so dass die einfach wieder neu anfängt, ein Programm abzuarbeiten. Der Hintergedanke war eigentlich, dass ja vielleicht mal unter Umständen der Server sterben könnte und dann einfach alle Basis neu initialisiert werden, keine was merkt. Aber vielleicht sollte man da irgendwie Kabume auf die Konsole schreiben, mindestens. Ja, ich überleg mir da was. Gute Idee. Ja. Ja. Wenn deine Basis kaputt macht sind sie nicht mehr, wo sie hin müssen. Besuch mal, die fliegen wahrscheinlich wieder zurück und sehen einen leeren Planeten und sind verwirrt und stürzen ab. Oder du schreibst sie so, dass sie dann vielleicht anfangen, in einem Such-Gitarrum zu fliegen, oder dass sie mal, ja, kann man nicht viel machen. Kann man sich da sammeln und dann überlegen, was man tut. Oder man fliegt zum nächsten Gegnerplaneten, da kann man ja immer was tun. Der Asteroiden bewegen sich zur Zeit noch nicht. Die sollen sich vielleicht mal bewegen, sondern nicht schnell. Denn man, wie man sich vorstellen kann, sind die irgendwann alle leer und dann wäre es ja blöd und deswegen haben wir gedacht, dass eventuell einfach von außen langsam Asteroiden nachfliegen. Was es dann interessant macht, die Ecken des Spielfeldes zu erobern. Du sagst, der Aliens, oh, gute Idee. Die Aliens kommen vorbei und fühlen die auf. Mit Tankraumschiffen. Mit einem riesen Hothawk draufgedruckt. Ja. Wenn sich zwei Raumschiffe RAM explodieren beide, dann ist ein kleines, ein großes RAM. Denken Sie mal drüber nach. Wenn jedoch ein großes 24-er Raumschiff voller Laser ist, kann es in jedem Simulations-Tick schießen während ein kleines nur jeden 24. Simulations-Tick schießen kann. Ich bin mir nicht ganz sicher, ob das vom Balancing schon ganz fair ist, aber ja. Vielleicht wird es auch noch abgeändert, wenn das zu krass wird, dass ein kleines Raumschiff einfach nur ein großes Raumschiff gibt. Man kann aktuell nicht mit Raumschiffen gegen Basen fallen, weil sie vorher am Planeten zerschellen. Ja, schade. Aber so gewollt. Ein Raumschiff kann sich nicht vergrößern, weil ein Raumschiff nichts bauen kann. Es kann auch nicht von der Basis vergrößert werden. Man muss einfach ein größeres bauen. Einfach. Auch kleine Raumschiffe sind zu was gut. Ja. Also, das Raumschiff, ja. Basen sind fest und für immer auf dem Planeten. Es gibt da eine Kids-Help-Funktion, falls du die unbedingt loswerden willst. Einmal Basis, immer Basis. Wenn du den dummen Autopilot direkt auf einen Planeten steuerst, okay. Der dumme Autopilot macht das Dumme, und der schlaue Autopilot stoppt vorher. Er fliegt sogar eventuell, wenn du nicht die Mitte eines Planeten ansehst, sondern halb außerhalb fliegt er erst noch an den nächsten Punkt dran, der noch ungefähr sicher ist mit so ein bisschen Sicherheitsabstand. Er ist tatsächlich der intelligente Autopilot. Ja, sobald ich sie mir selbst genau überlegt habe. Es gibt ein Gid-Check-Out, da drin ist eine Konfig-Datei, die noch irgendwie zufallst, also nicht zufallst, aber irgendwelche Zahlen, die beim Debuggen gut aussahen, enthalten. Ja, das wird dann auch im Wiki hingeschrieben, mit welchen Parametern gerade die Simulation läuft. Ja. Ganz hinten. Ja, ja, Basen sind nicht zerstörbar, die sind zu groß. Basen können aber genauso viel Schiffe erfalten sich genauso viel Schiffe und können auch genauso weggeschossen werden. Das Lustige war, dass jetzt gerade beim aktuellen Parametersatz jedoch eine basischnelle Ressourcen reinmienen kann, als ein kleines Schiff mit einem Laser wegschießen kann. Das heißt, man mauert dann einfach. Das wird sich aber ändern. Außerdem kann man ja immer noch große Schiffe bauen. Ja. Ja, also man kann bisher nicht den aktuellen Ticker fragen, gute Idee. Aber was man machen kann, ist, wenn man irgendwie gerade nichts zu tun hat, als Aktion Z Timer machen. Dann ist man auch beschäftigt und wird irgendwann wieder aufgerufen mit einem Callback, das Timer Expired Callback. Genaue Koordination ist damit noch nicht möglich, da man den Ticker noch nicht erfragen kann. Gute Idee. Man kann die Weltkoordinaten erfragen, noch nicht. Ja, es gibt die Funktion Get Slots, die gibt dir eine Liste zurück, was in deinem Slots ist und deren Länge ist halt eine Größe. Rautegate Slots ist das in NuA. Der Rautoperator in NuA gibt dir die Länge an. Da die Raumschiffe nicht kommunizieren können, ist als Flotte navigieren etwas kompliziert. Die können natürlich aller einem Führungsraumschiffe folgen, indem sie halt irgendwie einen festen Abstand dazu einhalten. Das geht. Da muss man dann eventuell den unintelligenten Autopiloten nehmen, damit nicht der andere dann plötzlich ausweicht und dann dagegen haut. Da ist er dann doch nicht so intelligent. Das ist aber eine interessante Frage und ich warte auch nur darauf, dass irgendwie der Game groß in Raumschiffe geschrieben ist. Ja? Nee, bisher nicht. Es gibt zwar in den Jason Stream irgendwie sowas wie Players, die auch einen Scorefeld haben, das ist aber zur Zeit immer null. Da haben wir auch lange angeregte Diskussion über gehalten, was denn jetzt eigentlich die richtige Methode ist, um Punkte zu zählen. Und das kommt die wahrscheinlich übermorgen. Die meisten tollen Features kommen übermorgen. Ganz, ganz hinten. Wenn was abstürzt? Wenn der Server abstürzt, ja wenn man ein Code hoch lädt, wird der sowieso in einem User-Verzeichen gespeichert. Der Server weiß, was der letzte Code war, den er für ein User ausgeführt hat. Wenn er jetzt wieder startet, wird der auch wieder reingeladen und gleich wieder angeworfen. Es gibt aber keinen Snapshot, wo die Raumschiffe waren. Das heißt man startet dann wieder mit einer leeren Basis. Das ist natürlich noch ein bisschen doof, aber da wir zur Zeit auch noch teilweise abstürzt durch korrupte Datenstrukturen haben, wäre es nicht unbedingt toll, die weg zu speichern, wieder starten zu wollen. Ja, wer eine gute Idee geht noch nicht. Okay, ich glaube dann für weitere Fragen könnt ihr auf jeden Fall bei mir vorbeikommen und dann jetzt mal probieren, ob das irgendwie was wird. Vielen Dank.