Wettbewerb: Egoshooter in nur 10000 Zeilen Code



  • Ich denke es ist mal wieder Zeit für einen Programmierwettbewerb im Stile der alten PC Zeitschriften, daher dieser Thread.

    Ziel ist es, in nur 10000 Zeilen Code* einen Egoshooter zu progammieren.
    Man kann nichts gewinnen, außer natürlich Respekt und Ehre in diesem Forum.
    Und jeder darf mitmachen.

    Hier die Bedingungen:

    Es sind folgende APIs erlaubt:
    OpenGL
    DirectX
    OpenAL
    SDL
    OpenCL
    OpenML

    sowie natürlich die
    STL
    Standard C Library
    C++ Standardbibliothek (STD)
    Boost Library
    und damit die C Programmierer nicht gegenüber den C++ Programmierern mit ihrer STL nicht benachteiligt sind, noch die Glib (also die des GTK+ Projekts).

    Nicht erlaubt ist die Verwendung von fertigen 3d Engines oder Scene Graphen.
    Als Programmiersprachen zählen, da dies ein C++ Forum ist, C oder C++.

    Der Shooter sollte ein Single Player Shooter sein, d.h. mindestens ein KI Gegner ist erforderlich. Mensch gegen Mensch Shooter reicht nicht.

    Bewertet wird per Abstimmung welcher Egoshooter am besten ist.
    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.

    Zeit habt ihr bis zum 1. September 2010 12:00 Uhr Mittags MESZ, bis dahin sollte der fertige Quellcode eingereicht sein. Das ist der Abgabetermin.

    Natürlich dürft ihr auch deutlich vor diesem Datum schon Links zu euren Binarys eures Egoshooters posten, notwendig ist dies aber nicht. Auch Vorabscreenshots sind erlaubt.
    Spätestens am Abgabetermin aber wollen wir alle den Quellcode sehen inkl. eines Screenshots der nen groben Überblick gibt.

    So, das wären die Bedingungen.

    PS: Ja ich weiß, die alten Zeitschriften hatten alle nur 1000 Zeilen Code Wettbewerbe, aber ich fürchte, daß man in nur 1000 Zeilen Programmcode keinen Egoshooter unterbringt, daher sind es hier 10000 Zeilen.
    Wer aber will, der darf gerne beweisen daß auch 1000 Zeilen ausreichen.



  • Edit:

    Mir ist bei obiger Wettbewerbsbedingungen ein Fehler unterlaufen.
    Die Mods des Forums und der Admin dürfen leider nicht mitmachen, da sie ja bei der Abstimmung die Stimmen ändern und die Abstimmung manipulieren könnten und dann wäre es nicht mehr fair.
    Also Sorry an die Betroffenen, aber das sollte einfach der Fairheit dienen.
    Stattdessen können die Mods und Admins aber als neutrale Wettbewerbsbeobachter zu Rate gezogen werden bzw. sich dafür zur Verfügung stellen, Pflicht ist es natürlich keine.
    Das kann inbesondere dann hilfreich sein, wenn irgendwas unklar ist.



  • da macht keiner mit :schland:



  • wenn boost nicht erlaubt wäre... evtl. schon.

    :schland:



  • Programmierwettbewerb schrieb:

    PS: Ja ich weiß, die alten Zeitschriften hatten alle nur 1000 Zeilen Code Wettbewerbe, aber ich fürchte, daß man in nur 1000 Zeilen Programmcode keinen Egoshooter unterbringt, daher sind es hier 10000 Zeilen.
    Wer aber will, der darf gerne beweisen daß auch 1000 Zeilen ausreichen.

    1000 zeilen sind gerade die herausforderung bei der sache, zudem ist es natuerlich schlecht wenn man gegen projekte mit 10mal soviel zeilen/zeit ankaempfen muss.

    ich denke das ist ein wenig zu spezialisiert als das wirklich jemand an dem contest mitmacht. wenn du schon sowas willst, solltest du den leuten zumindestens ein framework zur verfuegung stellen bei dem schon die basis vorhanden ist, sodass nicht jeder aufs neue hier rausfindet wie man in 1000zeilen fenster initialisiert und die tastatur abfragt usw.



  • limit eher über die datei größe



  • Die Mods des Forums und der Admin dürfen leider nicht mitmachen, da sie ja bei der Abstimmung die Stimmen ändern und die Abstimmung manipulieren könnten und dann wäre es nicht mehr fair.
    Also Sorry an die Betroffenen, aber das sollte einfach der Fairheit dienen.
    Stattdessen können die Mods und Admins aber als neutrale Wettbewerbsbeobachter zu Rate gezogen werden bzw. sich dafür zur Verfügung stellen, Pflicht ist es natürlich keine.

    cool dass man hier einfach was reinschreiben kann was die mods dann machen 👍

    also.

    korrektur zu den wettbewerbsbedingungen: die mods können sowieso gar nicht mitmachen, weil sie ab jetzt bei mir zu hause zum putzen eingeteilt sind, und daher keine zeit haben.



  • vorschlag0r schrieb:

    limit eher über die datei größe

    was keinen Sinn macht wenn man nicht auch die Zahl der Dateien limitiert. Womit man dann indirekt wieder bei LOC wäre. Sonst kann man nämlich alles mit Zweizeilern bewerkstelligen:

    //main.cpp:
    #include <iostream>
    #include "main_cpp.line1"
    
    //# main_cpp.line1 ######################
    using namespace std;
    #include "main_cpp.line2"
    
    //# main_cpp.line2 ######################
    int main()
    #include "main_cpp.line3"
    
    //# main_cpp.line3 ######################
    {
    #include "main_cpp.line4"
    
    //# main_cpp.line4 ######################
      cout << "Hallo Zweizeiler!" << endl;
    #include "main_cpp.line5"
    
    //# main_cpp.line5 ######################
    }
    


  • pumuckl schrieb:

    vorschlag0r schrieb:

    limit eher über die datei größe

    was keinen Sinn macht wenn man nicht auch die Zahl der Dateien limitiert. Womit man dann indirekt wieder bei LOC wäre.

    ich dachte natürlich an die datei größe des compilats, bin ja nicht ganz blöd auch wenns mir gelegentlich anders vorkommt 😋



  • dann müßte natürlich ein compiler mit einstellungen vorgeschrieben werden...



  • naja, man könnte doch für eine Bewertung einen bestimmten Stil vorschreiben. Zum Beispiel den Linux Stil. Dann kann man für die Bewertung einen Source-formatter drüber laufen lassen (oder verlangen, dass der Code in dem gewählten Format vorliegt), und dann vielleicht sagen, dass Leerzeilen und Kommentarzeilen nicht gezählt werden.

    danach sind für alle die Bedingungen gleich und es kommt nurnoch auf das persönliche können an - beim einen sind halt 100 Zeilen genauso effektiv wie 1000 beim anderen.

    Für mich ist der Wettbewerb aber nichts, da ich zwar gerne programmiere, aber mit dem Grafikzeugs, also 3D-Modelle oder Texturen so gar nichts am Hut habe. Ohne eine gemeinsame Basis für Modelle und Grafiken wird es wahscheinlich so enden, dass die Spieler gewinnen, die einfach die schöneren Grafiken haben und nicht die, die mit Spielprinzip oder Features punkten - Ego-Shooter sind halt hauptsächlich Grafikabhängig.

    //ecit und wie sollen Linuxbenutzer mit der Librarywahl den Input programmieren? DirectX können sie ja nicht verwenden. Und soweit ich weiß, ist sowas in den anderen Bibliotheken nicht enthalten (würde mich aber nicht wundern, wenn ich mich irren würde, bin bei keiner der Bibliotheken wirklich profi ;)). Der Fairniss halber sollte dann eine plattformunabhängige Bibliothek dafür noch erlaubt werden.



  • otze schrieb:

    und wie sollen Linuxbenutzer mit der Librarywahl den Input programmieren

    die SDL bringt das doch sicher mit und ist afaik plattformunabhängig...

    :schland:



  • DirectX gegen OpenGL antreten zu lassen ist aber auch nicht sonderlich fair.



  • uiuiui schrieb:

    DirectX gegen OpenGL antreten zu lassen ist aber auch nicht sonderlich fair.

    wieso?
    hat doch jeder die wahl der waffen...



  • Macht eh keine Sau mit



  • rapso schrieb:

    wenn du schon sowas willst, solltest du den leuten zumindestens ein framework zur verfuegung stellen bei dem schon die basis vorhanden ist, sodass nicht jeder aufs neue hier rausfindet wie man in 1000zeilen fenster initialisiert und die tastatur abfragt usw.

    Nun, die oben genannten APIs sind ja erlaubt.
    Die SDL Lib bietet bpsw. Möglichkeiten für die Tastaturabfrage und Fensterinitalisierung.
    Wir könnten natürlich noch die GLUT dazunehmen, wenn das jemand möchte.



  • no_code schrieb:

    die SDL bringt das doch sicher mit und ist afaik plattformunabhängig...

    Stimmt, du hast recht. Die kann das. Naja, SFML wäre mir zwar lieber, aber da ich eh net mitmache, ist das nur von nebensächlichem Interesse (ausserdem wärs dann wohl unfair gegenüber C, die nur das olle SDL haben 😉 ) - auch wenn ich das vielleicht mal als anlass nehme, mal wieder so ein projekt zu beginnen.



  • otze schrieb:

    ...ausserdem wärs dann wohl unfair gegenüber C, die nur das olle SDL haben 😉

    erstmal alles schlecht machen was man nicht kennt, so gefällt mir das 😋



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



  • Ruhm und Ehre... :p


Log in to reply