Ergebnis 1 bis 20 von 104

Thema: Contest: Spielprogrammierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    In PHP:

    PHP-Code:
    <?php
    echo ((rand(1,100)==1)?"You win!":"You lose,dude.");
    ?>


    Edit: Falls ich es nicht mehr schaffe (Mein Zeitplan zerrüttet sich wegen zahlreicher Kleinigkeiten.. -.-) nehmt das da oben als Einsendung..^^"

  2. #2
    Würde es euch vielleicht was ausmachen, den Schwachsinn zu lassen? Das hier ist ein Contestthread, keine Spamparty.[/spaßbremse]

  3. #3
    Ich werd es nicht schaffen. Vielleicht hätte ich es, wenn ich Morgen noch zeit gehabt hätte, am Sonntag geschafft, aber nunja... Viele Kleinigkeiten ergeben leider auch irgendwann etwas großes. ^^

    Morgen ist Musikmesse in Frankfurt, der Grund warum ich nicht am Projekt weiterarbeiten kann.

    Tut mir leid, ich hab getan was ich konnte. Beim nächsten Contest, ich wäre auf jedenfall für einen, werd ich mir den Zeitplan etwas optimierter gestalten und bei Bedarf einfach die Ziele kürzen.

  4. #4
    Hoppla, gibts ja nen Contest! Naja, werde dann auch noch schnell was machen (nur zum Spaß, mit sowas kann ich höchstens einen Kleinkind-Contest gewinnen...!)

    Kommt dann im Edit.

    mfG Cherry

  5. #5
    So, fertig. Nein, eigentlich nicht. Ich habe innerhalb der letzten 4 Stunden 10 Bugs gefixt, 7 davon überhaupt erst gefunden, und davon 3 erst durch andere Bugfixes produziert. Außerdem noch 3 ausstehende "Features" implementiert... und jetzt einfach keinen Bock mehr. Daher kommt hier nun: 4 Gewinnt! Mit Netzwerksupport und einer (eher mäßigen) KI.

    Source mit Binaries für Linux und Windows: tar.gz zip

    Lizenz ist, wie in `COPYRIGHT' nachlesbar, die MIT-Lizenz.

    Wer sich unter Linux wohlfühlt, wird sicherlich schnell drauf kommen, die Dateien mit --help aufzurufen, um zu sehen, was alles geht. Wer eingefleischter Windowser ist, weiß das vielleicht nicht sofort, aber weiß hoffentlich wenigstens, wie es geht

    Wer es gerne selber kompilieren möchte oder muss: Die Makefiles für Windows und Linux liegen bei. Ich hoffe, dass es unter OS X genau so gut geht, wie unter Linux

    Edit: OK, einen Bug hab ich noch schnell gefixt. Das wars hoffentlich dann auch so etwa

    Geändert von dead_orc (15.03.2008 um 17:41 Uhr)

  6. #6
    Ok, ich glaub nicht, dass ich mein Projekt bis morgen heute fertigstellen kann, deshalb hier mein Alternativ-Projekt (Urspruenglich hervorgegangen aus einem "iTunes Beschreibungs-Feld fuer Filme und TV-Serien [longDescription Field] Editor Tool", weiterentwickelt zu einem Minispiel, weiterentwickelt fuer den Wettbewerb).
    Interessieren duerfte es allerdings die Wenigsten hier sein.
    Voraussetzungen: Windows, .NET, iTunes
    Wobei zu sagen ist, dass iTunes schoen aufgeraeumt (mit perfekten ID3-Tags sein sollte, sonst bringt es nichts (mehr als zehn Songs sollte man allerdings auch drin haben)). Beispielsweise so:


    Das Programm ist so aehnlich wie ein OS X Spiel (Name vergessen) oder das iPod Spiel "Music Quiz": Man erraet das gespielte Lied (zufaellig ausgewaehlt, gespielt werden nur die ersten 10 Sekunden, damit es schwere wird) und bekommt am Ende ein tolles, wenig aussagendes Ergebnis wie gut man seine Song-Bibliothek kennt.

    Hier noch ein paar Screenshots:


    Download (Download Source)

    Der Source ist an sich unkommentiert, da er imho nicht zu schwer zu verstehen ist. Erkenntlich wird (hoffentlich) wie man in C# iTunes steuern kann und Menues auf CUI Ebene machen kann. Ansonsten ist er wenig beeindruckend.

  7. #7
    ES IST VOLLBRACHT ... zumindest annaehrend ...

    Ich hatte ja leider beruflich bedingt nur seit Montag Zeit, und diese hab ich auch genutzt. (Ich hab sogar dafuer Do und Fr Urlaub genommen und ausnahmsweise den Sa dran gehaengt, obwohl der eigentlich fuer die Familie reserviert ist.)

    Leider habe ich es nicht mehr geschafft, einen GUI Client mit SDL zu programmieren (oder ueberhaupt anzufangen), aber dafuer ist mit Haengen und Wuergen der Server fertig geworden.

    Um was geht es eigentlich ?

    Ich habe einen Jumping Cubes Tactics Server programmiert, von einigen liebevoll auch Jumping Jihad genannt.

    Jumping Cubes ist ein Spiel, das normalerweise auf einem quadratischem (2D) regelmaessigen Spielfeld mit n Feldern mit 2 Spielern gespielt wird. Am Anfang ist jedes Feld mit 1 belegt und gehoert keinem Spieler. Wenn ein Spieler in ein Feld setzt, das nicht seinem(/n) Gegner(/n) gehoehrt, so bekommt der Spieler das Feld und dessen Zaehler erhoeht sich um 1. Wenn der Zaehler eines Feldes einen Wert groesser als die Anzahl der benachbarten Felder annimmt, so wird der Zaehler des Feldes um die Anzahl benachbarter Felder verkleinert und "expandiert" auf alle benachbarten Felder, indem der Spieler Eigentuemer dieser Felder wird und ihr Zaehler um 1 erhoeht wird. Das ganze wird so lange rekursiv ausgefuehrt, bis kein Feld mehr expandiert. Wer sich das ganze mal ansehen will, sei auf KJumpingCubes aus dem KDEGames verwiesen.

    Ich habe das ganze nun komplett neu auf einem beliebigen gerichteten Graphen als Spielfeld und mit n Spielern, n>1 aufgezogen. Diese variante nenne ich Jumping Cubes Tactics.

    Eine Variante davon koennte z.B. auf einer Risiko-Weltkarte gespielt werden, wobei jedes Land ein Feld (Knoten im Graphen) ist und jede Grenze eine Verbindung (bidirektionale Kante im Graphen). Die Spieler sind in dieser Interpretation Goetter, die in den Laendern Wunder wirken. Wurden genug Wunder gewirkt (Expansion), so ziehen Missionare in die benachbarten Laender und ueberzeugen die "Glaeubigen" davon, das alle bisherigen Wunder von der eigenen Gottheit (also dem Spieler) vollbracht wurden. Gewonnen hat, wer alle Laender auf der Welt zu seinem eigenen Glauben ueberzeugt hat.

    Zumindest war das der Ansatz, mit dem ich das Spiel begonnen habe. Um jedoch alles so flexibel wie moeglich zu halten, ging ich noch einen Schritt weiter, und erlaube beliebige Graphen, welche in einem Mapformat definiert werden. Diese werden vom Server bei bedarf gelesen, das Spiel erstellt, und die entsprechenden Daten zum Client weiter geleitet. Dazu wird ein selbst entwickeltes Netzwerkprotokoll auf Socket-Basis verwendet.

    Leider wurde, wie gesagt, der GUI Client nicht fertig, aber der Server ist trotzdem schon mit einem Commandline Client benutzbar, indem man die Befehle per Hand eingibt und das, was einem der Server sendet, auf der Console ausgegeben wird. Das Protokoll ohnehin ist ohnehin menschenlesbar, auch wenn es etwas unhandlich ist.

    Der Server verwendet low level Sockets, Multithreading mit pthreads sowie, C++ STL Container, Algorithmen und Streams (kein fopen und aehnliches C) und ist grossteils Object Orientiert angelegt, koennte also fuer den einen oder anderen interessant sein.

    Das ganze wurde unter Dev-C++ entwickelt (Achtung, pthreads libs und header ueber den Packetmannager installieren) und ist mehr oder weniger Work In Progress und nicht mehr als ein paar Stunden lang getestet. Unter Linux sollte das Ganze theoretisch problemlos laufen (da ich mich versuche an POSIX zu orientieren) ist aber aus Zeitgruenden ungetestet.

    Ich verwende gcc-3.4.2 (mingw-special) und anscheinend eine etwas aeltere glibc. Als Libaries brauch ich unter windows nur -lwsock32 und -lpthread. Unter Linux muss das ganze ggf entsprechend angepasst werden. Sonst wird eigentlich nichts exotisches gebraucht.

    Eine Beschreibung des Netzwerkprotokolls ist in "Network Protocol.txt" enthalten, das Mapformat ist in "maps/default.map" beschrieben, ebenfalls eine Textdatei.
    Da ich jetzt auch keine weitere Zeit habe, setze ich es einfach unter die MIT License. Eine LICENSE Datei befindet sich im Ordner.

    Ich weiss, das ich mit einem Commandline Server ohne GUI keinen Hofstaat machen kann, aber seid gnaedig. Immerhin hatte ich nur 1/3 der Zeit, die andere fuer einen 3-Zeiler hatten ^^

    Download: als ZIP oder als tar.gz
    Gepackt mit WinZip 7.0 SR-1 bzw WinAce v2.2, Textdateien und SourceCodes im DOS-Format (Zeilenende = \r\n statt \n) !!

    EDIT: Da bereits mehrfach danach gefragt wurde: Der Client gehoerte urspruenglich nicht dazu, wurde jedoch wegen der fehlenden GUI schnell noch hinzu kopiert. Daher ist die eigene IP Addresse (bzw die IP des Servers) im Quelltext einzutragen und der Client zu compilieren, ansonsten wird der Server nicht gefunden. Sorry fuer die Unannehmlichkeiten.

    Geändert von Ineluki (28.03.2008 um 00:22 Uhr)

  8. #8
    Zitat Zitat von Ineluki Beitrag anzeigen
    Ich weiss, das ich mit einem Commandline Server ohne GUI keinen Hofstaat machen kann, aber seid gnaedig. Immerhin hatte ich nur 1/3 der Zeit, die andere fuer einen 3-Zeiler hatten ^^
    Ich fühle mich durch diese Bemerkung etwas beleidigt. Mein Müll da oben hat doch eher das 500-fache an Zeilen

    Zitat Zitat von Ineluki Beitrag anzeigen
    Das ganze wurde unter Dev-C++ entwickelt (Achtung, pthreads libs und header ueber den Packetmannager installieren) und ist mehr oder weniger Work In Progress und nicht mehr als ein paar Stunden lang getestet. Unter Linux sollte das Ganze theoretisch problemlos laufen (da ich mich versuche an POSIX zu orientieren) ist aber aus Zeitgruenden ungetestet.

    Ich verwende gcc-3.4.2 (mingw-special) und anscheinend eine etwas aeltere glibc. Als Libaries brauch ich unter windows nur -lwsock32 und -lpthread. Unter Linux muss das ganze ggf entsprechend angepasst werden. Sonst wird eigentlich nichts exotisches gebraucht.

    Eine Beschreibung des Netzwerkprotokolls ist in "Network Protocol.txt" enthalten, das Mapformat ist in "maps/default.map" beschrieben, ebenfalls eine Textdatei.
    Da ich jetzt auch keine weitere Zeit habe, setze ich es einfach unter die MIT License. Eine LICENSE Datei befindet sich im Ordner.

    Gepackt mit WinZip 7.0 SR-1 bzw WinAce v2.2, Textdateien und SourceCodes im DOS-Format (Zeilenende = \r\n statt \n) !!
    Zumindest den Server konnte ich inzwischen problemlos kompilieren. Dir fehlte in zwei Dateien wohl ein #include <errno.h>, zumindest wurde sonst nirgendwo errno deklariert. Das Makefile, das ich mir aus der Windows-Version zusammengeschustert habe, hab ich einfach mal hochgeladen. Damit wird allerdings nur der Server gebaut (wie auch mit dem Windows-Makefile, wenn ich das richtig sehe) - den Client bekomm ich selber nicht kompiliert

    Sehr nette Idee allgemein. Ich habe mir den Source noch nicht angeguckt, aber Jumping Cubes auf einen Graphen zu übertragen finde ich super

    Zitat Zitat von Crash-Override Beitrag anzeigen
    Ok, ich glaub nicht, dass ich mein Projekt bis morgen heute fertigstellen kann, deshalb hier mein Alternativ-Projekt (Urspruenglich hervorgegangen aus einem "iTunes Beschreibungs-Feld fuer Filme und TV-Serien [longDescription Field] Editor Tool", weiterentwickelt zu einem Minispiel, weiterentwickelt fuer den Wettbewerb).
    Interessieren duerfte es allerdings die Wenigsten hier sein.
    Voraussetzungen: Windows, .NET, iTunes
    Wobei zu sagen ist, dass iTunes schoen aufgeraeumt (mit perfekten ID3-Tags sein sollte, sonst bringt es nichts (mehr als zehn Songs sollte man allerdings auch drin haben)). Beispielsweise so:


    Das Programm ist so aehnlich wie ein OS X Spiel (Name vergessen) oder das iPod Spiel "Music Quiz": Man erraet das gespielte Lied (zufaellig ausgewaehlt, gespielt werden nur die ersten 10 Sekunden, damit es schwere wird) und bekommt am Ende ein tolles, wenig aussagendes Ergebnis wie gut man seine Song-Bibliothek kennt.

    Hier noch ein paar Screenshots:


    Download (Download Source)

    Der Source ist an sich unkommentiert, da er imho nicht zu schwer zu verstehen ist. Erkenntlich wird (hoffentlich) wie man in C# iTunes steuern kann und Menues auf CUI Ebene machen kann. Ansonsten ist er wenig beeindruckend.
    Lustig, so ein Spiel hab ich hier auch noch rumfliegen, allerdings !Windows-only (basiert auf mplayer ) und mit PHP.

  9. #9
    Du hast meinen respekt, Luki.

    Ich habes mir noch nicht angeguckt, aber was du da erzählst ist vielversprechend.


    Mit dem dreizeiler meinte er wohl meine "Alternativeinsendung". (Die btw. nicht ernst gemeint war. Ich hatte eigentlich eine recht schöne idee, aber ich hatte, wie gesagt, immer wieder an Kleinigkeiten zu knabbern. Im Endeffekt wurden aus den vielen Kleinigkeiten leider ein zerwürfelter Zeitplan und ein daraus resultierender Defizit was meine Leistung angeht.

  10. #10
    Ohne Musik: Link (1.53 MB)
    Mit Musik: Link (25.1 MB)

    Geändert von Drakes (16.03.2008 um 19:34 Uhr)

  11. #11
    Weil ich diesen Contest vorher nicht bemerkt habe, hatte ich jetzt nur zwei Tage Zeit, um ein Spiel auf die Beine zu stellen (der Sourcecode ist dementsprechend... unleserlich ). Aber es wurde was:

    Terror in Washington

    Ein... hm, wie soll ich es nennen? Denkspiel trifft es nicht ganz... Ist auf jeden Fall gar nicht so einfach, wie es erscheint.

    Ist für Windows kompiliert, sollte sich aber ohne große Probleme auch unter Linux kompilieren lassen (dazu wird FMOD für Linux benötigt, sowie der FreeBasic Compiler für Linux).

    Achja, ich hab leider vergessen, im Download die Useful Includes beizupacken, die braucht man zum kompilieren, deswegen gibt es sie hier.

    Ich wünsche viel Spaß und so!

    Download (4,5 MB)

    Hier noch ein Screen:


    mfG Cherry

    EDIT: Ganz vergessen: Im Titelscreen kommt man mit "H" zur Highscoreliste
    EDIT²: Ich weiß, die Story ist krankhaft
    EDIT³: Es ist ein bisschen schwer zu verstehen, aber strengt dann, wenn man es kann, richtig das Hirn an!

    Geändert von Cherry (16.03.2008 um 20:27 Uhr)

  12. #12
    So bin zwar etwas spät dran, aber hier ist mein kleines Spiel.

    Das folgende Paket enthält eine Windows Binary sowie den Quellcode und eine Code:locks Projektdatei, diese wird benötigt um das Spiel auf Unix Systemen zu kompilieren. (ein Makefile werde ich im notfall nachreichen)

    Download: http://silver-boards.com/Shooter.zip
    Lizenz: GPLv3

  13. #13
    Bäh, nicht so schnell. Armer Mann ist kein D-Zug.

    Spiel
    Sources

    Ich hab leider keine Zeit mehr, einen längeren Text zu verfassen. Deshalb verweise ich einfach mal auf den Wikipediaartikel Nonogramm.

    Was die Lizenz angeht: macht damit, was ihr wollt, solang ihr dazu schreibt, dass es von mir stammt, es nicht kommerziell verwendet und die Lizenzen der benutzten Bibliotheken (SDL, SDL_ttf und SDL_image) nicht verletzt.

    Edit: Ach ja, im Menü kann man die Levels per Doppelklick auswählen.

    Geändert von DFYX (16.03.2008 um 20:51 Uhr)

  14. #14
    Zitat Zitat von Drakes Beitrag anzeigen
    Ohne Musik: Link (1.53 MB)
    Mit Musik: Link (25.1 MB)
    Wow. Vorallem die Musik gefällt mir. <3
    Blos irgendwann stauen sich die Gegner rapide auf. Da würde ich mir einen Spawn-stop wünschen. ^^

    Gucksu: http://www.npshare.de/files/36/6286/lol.jpg

    €dit: Yeah, das rockt:http://www.npshare.de/files/36/9890/yeah222.jpg

    Geändert von kris (17.03.2008 um 15:13 Uhr)

  15. #15
    @Dead_Orc
    Da hast du aber wirklich was in den falschen Hals bekommen ...
    Ich habe naemlich nicht dich gemeint mit dem Einzeilercode sondern bezog moch auf diesen Post und folgende.
    Ich hatte in keiner Weise die Absicht deinen Code, den ich noch nicht mal angesehen habe, zu schmaelern. Ausserdem wusste ich, das der Einzeiler Code nicht ganz ernst gemeint war, weswegen ich darauf scherzhaft angespielt habe.

    Zitat Zitat von makkurona Beitrag anzeigen
    In PHP:

    PHP-Code:
    <?php echo ((rand(1,100)==1)?"You win!":"You lose,dude."); ?>
    Edit: Falls ich es nicht mehr schaffe (Mein Zeitplan zerrüttet sich wegen zahlreicher Kleinigkeiten.. -.-) nehmt das da oben als Einsendung..^^"

    BTW was ist denn das Problem beim Commandline Client ? Der benutzt doch nichts anderes als der Hauptserver ... sprich PThreads und Sockets.

    Geändert von Ineluki (17.03.2008 um 14:19 Uhr)

  16. #16
    Zitat Zitat von Ineluki Beitrag anzeigen
    @Dead_Orc
    Da hast du aber wirklich was in den falschen Hals bekommen ...
    Ich habe naemlich nicht dich gemeint mit dem Einzeilercode sondern bezog moch auf diesen Post und folgende.
    Ich hatte in keiner Weise die Absicht deinen Code, den ich noch nicht mal angesehen habe, zu schmaelern. Ausserdem wusste ich, das der Einzeiler Code nicht ganz ernst gemeint war, weswegen ich darauf scherzhaft angespielt habe.
    OK, alles klar

    Zitat Zitat
    BTW was ist denn das Problem beim Commandline Client ? Der benutzt doch nichts anderes als der Hauptserver ... sprich PThreads und Sockets.
    D'oh, mein Fehler. gcc != g++, mit
    Code:
    g++ -lpthread -g3 Console_Client.cpp -o client
    gehts wunderbar.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •