Wettbewerb: Egoshooter in nur 10000 Zeilen Code



  • knivil schrieb:

    Jeder kann selbst waehlen. Aber Mal was anderes: Welcher Anreiz ist denn gegeben, beim Wettbewerb mitzumachen?

    langweilig... ich dachte, es geht nur darum "mal eben" einen 10ksloc ego shooter raus zu kloppen 🤡



  • Programmierwettbewerb schrieb:

    Da dies ein Programmierforum ist, darf auch die Schönheit und Eleganz des Codes in die Wertung miteinfließen, denn Spagetthicode und GOTOs sollten IMO nicht belohnt werden.

    Solang das Spiel sauber läuft, ist es doch egal, wie viele gotos drin stecken.

    Die Begrenzung der Codezeilen halte ich auch für keine allzu gute Idee, sonst wird gegen Ende die Anzahl der Codezeilen künstlich verringert in dem man mehr code pro Zeile reinpresst. Das begrenzt den Code keineswegs, verschlimmert eher die Liesbarkeit des Codes. Aber okay, 10k ist schon eine Menge.



  • Ich würde bei sowas mitmachen, allerdings nur unter der Voraussetzung einer soliden Userbasis, damit man am Ende nicht möglicherweise alleine dasteht. Und der Veranstalter sollte auch einen Zacken seröser sein... die Tatsache, dass du für diesen noch nicht einmal einen Account erstellt hast, schreckt mich auch ab.

    Die Abstimmung nur mit einer Forenumfrage durchzuführen, halte ich auch für unzureichend. Könnte ja jeder neue Accounts registrieren, um das Ergebnis zu verfälschen. Deshalb: Entweder Jury (z.B. die Moderatoren des Forums) oder die Umfrage so präparieren, dass nur Abstimmen kann, wer z.B. mehr als 50 Posts verfasst hat und dessen Anmeldedatum X Tage zurückliegt.

    Auf jeden Fall bedarf es professioneller Unterstützung von einen Veranstalter, der so einen Wettbewerb nicht nur aus einer Laune heraus startet und ihn bis zum Schluss durchführt. Und als Ansporn wäre ein kleiner Preis tatsächlich auch sehr wünschenswert. Immerhin sprechen wir hier von 3 Monaten Laufzeit.

    Nicht zuletzt: Die Dateigröße des ganzen Codes sollte als Maßstab herangezogen werden, erlaubt schönere Formattierung und ansonsten könnte man auch sehr viel Dreck in eine einzige Zeile packen.



  • C P U schrieb:

    Die Dateigröße des ganzen Codes sollte als Maßstab herangezogen werden, erlaubt schönere Formattierung und ansonsten könnte man auch sehr viel Dreck in eine einzige Zeile packen.

    Naja, Kommentare sollten nicht mitgezählt werden. Wozu überhaupt die Begrenzung.
    Eher unwahrscheinlich, dass jemand 250k Codezeilen am Ende abliefert.

    Es geht doch um den Spaß am Programmieren.


  • Mod

    Schneewittchen schrieb:

    Es geht doch um den Spaß am Programmieren.

    Aber Egoshooter ist langweilig. Alleine schon dieses Themas wegen würde ich nicht mitmachen. Da sind doch alle Algorithmen hinreichend bekannt, es geht nur noch darum Codeäffchen zu spielen und diese umzusetzen. Das ist für mich der langweilige Teil des Programmierens.



  • SeppJ schrieb:

    Schneewittchen schrieb:

    Es geht doch um den Spaß am Programmieren.

    Aber Egoshooter ist langweilig. Alleine schon dieses Themas wegen würde ich nicht mitmachen. Da sind doch alle Algorithmen hinreichend bekannt, es geht nur noch darum Codeäffchen zu spielen und diese umzusetzen. Das ist für mich der langweilige Teil des Programmierens.

    Interessantet, dass du das sagst. Manche Entwickler betrachten die Programmierung nur als Hilfswerkzeug, um Kunst/"Kunst" zu erschaffen, andere nehmen es dagegen als Kunst wahr, das Werkzeug selbst oder Probleme damit zu meistern. Oder, vielleicht ist das Wort 'Kunst' in beiden beiden Verwendungen unpassend. Aber den Gedanken find ich toll. Wir sollten klarstellen, was das Ziel des Wettbewerbes ist.



  • endline schrieb:

    Interessantet, dass du das sagst. Manche Entwickler betrachten die Programmierung nur als Hilfswerkzeug, um Kunst/"Kunst" zu erschaffen, andere nehmen es dagegen als Kunst wahr, das Werkzeug selbst oder Probleme damit zu meistern. Oder, vielleicht ist das Wort 'Kunst' in beiden beiden Verwendungen unpassend. Aber den Gedanken find ich toll. Wir sollten klarstellen, was das Ziel des Wettbewerbes ist.

    😕 ... Er hat doch nur gemeint das er keinen Ego-Shooter programmieren will, wieso kommst du mit Kunst.

    SCHLAAAAAAAAAAAND :schland:



  • endline schrieb:

    Interessantet, dass du das sagst. Manche Entwickler betrachten die Programmierung nur als Hilfswerkzeug, um Kunst/"Kunst" zu erschaffen, andere nehmen es dagegen als Kunst wahr, das Werkzeug selbst oder Probleme damit zu meistern. Oder, vielleicht ist das Wort 'Kunst' in beiden beiden Verwendungen unpassend. Aber den Gedanken find ich toll. Wir sollten klarstellen, was das Ziel des Wettbewerbes ist.

    Das Problem ist, dass Egoshooter selbst Abseits der Programmierung nicht viel bieten. Am Ende gib es nicht viele Möglichkeiten, einen Egoshooter zu gestalten, so dass er Spaß macht. Ist halt ein beschissenes Genre um neue Spielprinzipien auszuprobieren.

    Aber ich denke, dass es Seppj gar nicht um den Kunstteil geht, sondern um die Herausforderung. Viele herausragende Kunstwerke waren auch technisch eine Herausforderung für den Künstler. Nur, in diesem Fall ist halt alles gelöst. Die einzige Herausforderung ist, sich alle Algorithmen rauszusuchen und die dann einfach runter zu kloppen. Total langweilig. Und bei 10k loc sollte das Ganze ja auch Spaß machen.

    Die Einzigen, für die sowas eine Herausfordeurng wäre, wären Leute, die ein fertiges Spiel (vom Code her) mit Leben füllen müssten. Also Leveldesigner und 2D/3D-Künstler. Und in dem Bereich versagen die meisten Programmierer halt (verständlicherweise, man kann nicht alles gut können).

    Andererseits wirds durch den Genrewechsel nicht zwingend besser. Sobald man von Egoshootern weg geht, kommt man mit 10k loc nicht sonderlich weit. Ist halt ein Vorteil an denen, dass die so Simpel sind.



  • knivil schrieb:

    Jeder kann selbst waehlen. Aber Mal was anderes: Welcher Anreiz ist denn gegeben, beim Wettbewerb mitzumachen?

    Man bekommt hier von allen möglichen Nörglern und Haarspaltern dumme Kommentare zum Code, wenn man irgendwo ein i++ oder ähnliches hat. Das sollte doch Anreiz genug sein. 🤡



  • SeppJ schrieb:

    Schneewittchen schrieb:

    Es geht doch um den Spaß am Programmieren.

    Aber Egoshooter ist langweilig. Alleine schon dieses Themas wegen würde ich nicht mitmachen. Da sind doch alle Algorithmen hinreichend bekannt, es geht nur noch darum Codeäffchen zu spielen und diese umzusetzen. Das ist für mich der langweilige Teil des Programmierens.

    das ist doch bullshit. so könnte man fast jedes projekt schlecht machen. afaik denken sich nur < 1% neue algorithmen aus der rest baut daraus schöne software

    btw. ne gute ki ist nichts leichtes sobald es über schach raus geht... 🕶

    :schland:


  • Mod

    no_code schrieb:

    das ist doch bullshit. so könnte man fast jedes projekt schlecht machen. afaik denken sich nur < 1% neue algorithmen aus der rest baut daraus schöne software

    Genau deswegen will man das ja nicht in einem Wettbewerb sehen. Es gibt ja auch keine Wettbewerbe im Formulare ausfüllen obwohl (bzw. gerade weil) viele Leute das den ganzen Tag machen.

    btw. ne gute ki ist nichts leichtes sobald es über schach raus geht... 🕶

    DAS wäre doch ein guter Wettbewerb. Das Thema ist nur mäßig erforscht, es gibt viele verschiedene Ansätze und kaum jemand kennt sich wirklich gut damit aus. Und es wäre ganz eindeutig feststellbar, wer der Sieger ist.
    Konkret würde ich mir das so vorstellen: Der Veranstalter wählt ein hinreichend komplexes (d.h. taktisch interessant) Spiel welches noch nicht gut erforscht ist (also nicht Schach, Go, Dame & Co.!), aber trotzdem relativ bekannt (z.B. "Die Siedler von Catan") oder mit sehr leicht verständlichen Regeln (z.B. "Tron", aber da gibt's schon einen laufenden Wettbewerb). Dann stellt er einen (portablen) Spielserver mit einem genau definierten Interface (Textinterface oder Bindings für die gängigen Sprachen) zur Verfügung. Wahlweise auch noch einen grafischen Client für menschliche Mitspieler und Zuschauer.
    Die Aufgabe wäre es dann einen Spielerclient für dieses Spiel zu schreiben. Diese werden dann in einem Turnier oder einer Liga aufeinander losgelassen und so der Sieger ermittelt. Die einzigen Beschränkungen die man machen sollte ist, dass die Clients auf einem aktuellen Desktoprechner vernünftig laufen müssen und portabel sind. Also um willkürlich ein paar Zahlen zu nennen: 1 GB maximale Größe und je nach Spiel eine gewisse, dem Spiel angemessene, Gedenkzeit (Schachuhr).

    Das wäre interessant.



  • Das Problem ist, dass Egoshooter selbst Abseits der Programmierung nicht viel bieten. Am Ende gib es nicht viele Möglichkeiten, einen Egoshooter zu gestalten, so dass er Spaß macht. Ist halt ein beschissenes Genre um neue Spielprinzipien auszuprobieren.

    Das glaube ich nicht 😉 Falls sich zB noch jemand an Descent erinnert, da konnte man sein Raumschiff wirklich in allen Dimensionen steuern und drehen. Ich nenns mal Egoshooter weil es sich trotz Raumschiffen wie einer spielte. Oder Portal.
    Auch beim Leveldesign ginge noch einiges, zB Level auf/in einer Kugel und sowas.

    Die Aufgabe wäre es dann einen Spielerclient für dieses Spiel zu schreiben.

    Auf soetwas hätte ich auch mal wieder Lust. Früher fand Ich rars (http://rars.sourceforge.net/) ganz spassig, da hat man einen Rennwagen progammiert.
    Interessant ist auch die springRTS engine für die es einige Spiele gibt. Man kann AIs mit jeder Sprache (die .dlls erzeugen kann programmieren) basteln oder auch mit Lua skripten: www.springrts.com
    Nachteil ist das man sich erstmal in das Spiel und AI Interface einarbeiten muss, da beides etwas komplexer ist als "3 Gewinnt."



  • statt nur voting, waere es doch objektiver und herausfordenerererer mit moeglichst wenig zeichen einen zu schreiben.
    dazu:
    - in einer datei (damit keine include magic dazu kommt)
    - mit z.b. pixeltoaster (damit jeder stumpf mit pixel setzen ohne ogl erfahrung usw. auskommt)
    - ohne jegliches dateiladen.

    dann verrechnet man source-dateigroesse mit dem voting fuer das endresultat



  • war das nicht so das die directx initialisierung schon 1000 zeilen benötigt?


  • Mod

    O G L schrieb:

    war das nicht so das die directx initialisierung schon 1000 zeilen benötigt?

    Mit DirectX schließt du ohnehin schonmal 40% der potentiellen Teilnehmer aus.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-268233.html



  • SeppJ schrieb:

    O G L schrieb:

    war das nicht so das die directx initialisierung schon 1000 zeilen benötigt?

    Mit DirectX schließt du ohnehin schonmal 40% der potentiellen Teilnehmer aus.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-268233.html

    Du kanst, musst aber nicht DirectX verwenden ...



  • OpenGL vs DirectX

    Istn das fair?
    Interessanter wäre eh ein fertiges kleines strategie-game, und jeder macht eine KI, und die KIs lässt man dann gegen einander zocken.



  • Sonderzeichen-Button schrieb:

    Das glaube ich nicht 😉 Falls sich zB noch jemand an Descent erinnert, da konnte man sein Raumschiff wirklich in allen Dimensionen steuern und drehen. Ich nenns mal Egoshooter weil es sich trotz Raumschiffen wie einer spielte.

    Hat sich aber trotzdem nicht von den anderen Shootern signifikant unterschieden. Die Constrainints eines Ego-Shooters sind einfach zu dramatisch. Du hast ne Waffe. Und du hast gegner. 1+1 zusammengezählt weiß man, wie eggo-shooter funktionieren. Die einzigen nennenswerten Abweichungen liferten die Schleich-shooter, aber dafür reichen 10000 Zeilen wohl nicht aus um die Logik zu implementieren.

    Oder Portal.

    Ist kein Ego-Shooter. Es mangelt, nur als Beispiel, an Gegnern. Und Gegner sind für diesen Wettbewerb notwendige Bedingung.

    Auch beim Leveldesign ginge noch einiges, zB Level auf/in einer Kugel und sowas.

    Hyperwürfel und Ringe hatten wir bereits. Noch absurder kanns kaum werden.

    //edit @Squan ne, is es net 🙂


Anmelden zum Antworten