![]() |
Dynamic Link Fighters
Liste der Anhänge anzeigen (Anzahl: 2)
So, ich möchte hier jetzt auch mal das Ergebnisse meines geistigen Schaffens präsentieren:
Dynamic Link Fighters (DLF) Version: 1.0.2 Zur Idee: Die Idee hatte ich eigentlich einmal als mir überlegt habe wie man - relativ einfach - ein Spiel realisieren könnte bei dem 2 KI's gegeneinander kämpften. Damals dachte ich mir dass man dies eigentlich mithilfe von DLL's lösen könnte Zur Geschichte: Naja, die Idee lag dann ziemlich lange am unteren Ende meiner Programmier-Ideen-Liste. Als ich dann vor kurzem meine OpenGL-Kenntnisse mal wieder ein bisschen auffrischen wollte und ich das obligatorische "Würfel-der-sich-dreht"-Programm immer weiter ausbaute wurde irgendwann DLF daraus :-D. Also falls wirklich ein Masochist anwesend ist der es sich antun möchte meinen Quelltext zu lesen ... der sei gewarnt, ich müsste eigentlich noch einmal alles von neu schreiben damit, wenigstens annähernd - leserlicher Quelltext dahinter steckt. Das Spiel: Also jetzt kurz und knapp: Was ist DLF ? In DLF programmieren 2 Menschen jeweils eine KI-DLL in Delphi die dann gegeneinander antreten. Das Spiel ist so aufgebaut dass jeder Spieler/KI eine Anzahl an Käfern hat. Es werden immer abwechselnd alle Käfer von Player1 und Player2 gezogen. Ziel ist es entweder alle Käfer des Gegners zu eliminieren oder (alá ![]() Wenn 2 Käfer aufeinander treffen stirbt der Käfer der weniger Teammitglieder um sich herum stehen hat - wenn beide gleich viele haben sterben beide. Wenn ihr genaueres über das Spielprinzip wissen wollt oder wie man eine KI schreibt kann in der "Help.exe" nachschauen. Bemerkungen: Wie immer ist Kritik nicht nur erlaubt sondern ausdrücklich erwünscht :mrgreen: Wer eine KI geschrieben hat kann sie ja hier in diesen Thread stellen (mich würds freuen) Geschrieben ist das ganze in OpenGL (ThX an DelphiGL ) Crosspost im DelphiGL-Forum: ![]() Download: Leider ist der Download sowohl mit Sourcecode als auch ohne zu groß für die DP (Texturen und Sounds...) Es steht auf meiner ToDo Liste das alles mal kleiner/komprimierter zu machen, bis dahin könnt ihrs (ohne Sourcecode) auf meiner Seite laden: ![]() Oder (fals ihr das wirklich wollt) hier mit Sourcecode: ![]() Also: MfG Mikescher |
AW: Dynamic Link Fighters
Woow, hut ab. Ich finde die Idee hervorragend. Ich hab mir zwar die Umsetzung noch nicht angesehen, aber bin grad so bewältigt von der Idee..
Ich könnte mir sogar ne eigene Game-Genre vorstelen ala Programmer-games/Programmer-duelling-games. MfG |
AW: Dynamic Link Fighters
Hehe, ich hab mir so etwas ähnliches auch schon mal überlegt.
Es gibt ja auch AntMe und vor kurzem wurde ja auch die Season 2 der ![]() |
AW: Dynamic Link Fighters
Zitat:
![]() Das Büchlein gibt's auch grade bei Microsoft im Adventskalender. (nur blöd, daß dieses die VisualBasic-Version des Buchs für AntMe ist ... C# wäre bestimmt schöner) |
AW: Dynamic Link Fighters
Zitat:
MfG Mikescher |
AW: Dynamic Link Fighters
Zitat:
|
AW: Dynamic Link Fighters
Wollts gerade mal antesten: :-D
- Wenn keine Soundkarte installiert ist, schmiert alles beim Programmstart ab. - TglBitmap2D.GenTexture - Rendercontex dosn't support non power of two texture. - DynamicLinkFighters.exe hängt einfach, wenn ich auf start drücke. Evtl wäre eine VM-Canvas-Version ohne sound ganz praktisch. |
AW: Dynamic Link Fighters
@ mleyen: Ahh endlich was zu tun :mrgreen:
Zitat:
Zitat:
Zitat:
Zitat:
Auf jeden Fall danke das du probiert hast es zu testen :-D , ich werd probieren so schnell wie möglich ein Update zu machen. MfG Mikescher [Edit] *Gähn* Zu Müde - ich mach morgen mittag weiter *Gähn* [/Edit] |
AW: Dynamic Link Fighters
Zitat:
2 Vorschläge: - Automatisierte Kämpfe und Wettbewerbe. - Ich kenn zwar deinen Server nicht, aber eie Art Online-Highscoreliste der Nicks bzw ein Ranking von hochgeladenen KI-Dll´s wäre motivierend. :wink: |
AW: Dynamic Link Fighters
Ok, ich habe Version 1.0.1 hochgeladen,
Alle Texturen sind jetzt auch mit älteren Grafikkarten kompatibel und wenn man keine Soundkarte hat wird das Spiel gemuted (war eigentlich schon implementiert nur hab ich vergessen die Exception auch rauszunehmen) @mleyen: Ein "Tournament"-Modus hab ich mir auch schon gedacht (vllt so Fußball-WM mäßig), also dass man ein Wettbewerb mit zB 10 KI's machen kann um die beste zu finden, ich werd auf jeden Fall mal sehen wie ich das basteln könnte. Zum Thema Online-Highscore: Da sehe ich pers ein paar Probleme, erstens werden die KI's ja meist nicht mir zugeschickt (man fügt KIs ja einfach hinzu indem man die DLL in den Ordner KIs schiebt), außerdem bräuchte ja jede KI eine Art eindeutige ID. Mein Server ist übrigens eigentlich nur für Websiten - das ganze Update-überprüf-system etc läuft über php Dateien :duck: MfG Mikescher |
AW: Dynamic Link Fighters
Eindeutige ID -> Generiere doch eine GUID für jede KI.
Sherlock |
AW: Dynamic Link Fighters
Zitat:
Imho müsste für so eine GUID jeder der eine KI entwickelt sie bei mir einschicken so dass ich ihm dann eine ID geben kann. Dass würde ich aber nur ungern so machen, weil dann der ganze KI-Entwicklungsprozess von mir abhängt (was wenn ich mal im Urlaub bin :-D). Ich weiss nicht, irgendwie würde so etwas ja das System von "einfach eine DLL mit Delphi programmieren" kaputtmachen. Oder wie hast du das gemeint ? MfG Mikescher |
AW: Dynamic Link Fighters
Im automatischen Turnier könnten z.B. nur KI´s berücksichtigt werden, die eine eindeutige ID haben.
- Menüaufruf "Automatisches Turnier" - Anzeige aller gefunden KI´s mit ID (String, egal ob als GUID oder anders) - (KI´s ohne ID oder mit gleicher ID sind inaktiv) - alle aktiven gegeneinder spielen lassen (jeder gegen jeden) und laufend Ergebnisse veröffentlichen |
AW: Dynamic Link Fighters
So, ich hab mal die neue Version 1.0.2 hochgeladen.
Im Großen und Ganzen sind es eigentlich nur Bugfixes. Online-Highscores etc hab ich mal versucht jedoch hält mein Server das nicht aus (müsste ich alles via php machen :? ) Auf jedenfall sollte DLF jetzt stabiler und auch ein wenig flüssiger laufen (hab auch nochmal alles so verbessert dass man DLF auch auf älteren GraKas ausführen kann) MfG Mikescher |
AW: Dynamic Link Fighters
Zitat:
Coole Idee jedenfalls. Wir könnten ja mal unsere DLLs gegeneinander antreten lassen. Mit allen schmutzigen Tricks :mrgreen: |
AW: Dynamic Link Fighters
So, also die Idee ist schonmal gut (habe ich ja gesagt), aber bei der Umsetzung scheint es Probleme zu geben. Da ich mich mit OpenGL nicht auskenne (und auch nicht so tue), kann ich nicht sagen was, aber auf Windows 7 x64 hängt das Ding. Ich lasse es nicht als Admin laufen (versteht sich ja von selbst).
Versuche es nachher nochmal in VMware (mit XP SP3). Mal sehen ob das besser geht ... Siehe da: in XP SP3 funzt es tadellos in der VM. Allerdings habe ich das Gefühl, daß bei gerader Feldanzahl (vertikal) die Programmierung theoretisch auf Sieg sein könnte, aber der ausschlaggebende Käfer auf einer Seite einen Vorteil hat (je nachdem). Oder irre ich? |
AW: Dynamic Link Fighters
Oder man schaut sich etwas aus vorhandenen
![]() Zitat:
|
AW: Dynamic Link Fighters
Zitat:
![]() |
AW: Dynamic Link Fighters
Zu dem ID Problem:
Der DLL Programmierer startet ein Hilfsprogram von dir. Das generiert aus dem SourceCode der DLL einen SHA-2 Wert(nen Hash), und bügelt noch das aktuelle Datum + Uhrzeit in den wert. Damit sollte es schwer werden, 2mal die gleiche ID zu bekommen(wen auch nicht unmöglich, aber fast). Dieser Wert wird dann z.B. als String in der DLL hinterlegt und kann dort abgerufen werden(über ne funktion) PS: Eventuell kommt die funktion für das auslesen der ID und der ID-String in eine seperate Unit, welche beim generieren der "ID" nicht berücksichtigt wird. So verändert der eingefügte Hash die Hash generierung nicht wen mans nochmal macht. Anstatt SAH-2 könnte man auch z.B. CRC32 nehmen, ist aber wohl unzuverlässiger was dubletten angeht. MFG Memnarch |
AW: Dynamic Link Fighters
CRC32 = 4 Milliarden IDs (2^32 ist auch schon recht eindeutig)
ansonsten kann man auch die SHA-1-API direkt von Microsoft nutzen (2^160 Möglichkeiten) |
AW: Dynamic Link Fighters
@Himitsu: Ach stimmt, CRC war ja da "relativ ungenau".
Hatte die zahlen nicht mehr so im Kopf^^. MFG Memnarch |
AW: Dynamic Link Fighters
Hi,
Zitat:
Was für ein Käfer bei gerader, vertikaler Feldanzahl einen Vorteil haben soll verstehe ich leider nicht ganz, wenn es um ein etwas "dämliches" verhalten der KI geht :wink: liegt das vermutlich daran dass ich die Beispiel KI's mehr zu Demo-Zwecken dabei liegen habe (d.h. die sind lange nicht perfekt und ziemlich einfach zu besiegen). Zum Thema Online-Highscore: Leider hab ich nur bei ![]() Mit freundlichen Grüßen Mikescher |
AW: Dynamic Link Fighters
Zitat:
Nein, ich dachte mehr an suizidale Käfer auf der Gegnerseite usw :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz