Map+NPC initialisierung in 2D
Sersn leutz
ich hätte da mal gern n Problem .. n paar Kumpels und ich wollen ein 2D-MMORPG (Massively Multi Online Role Playing Game) proggen... und nun is meine frage , wie man 1. Maps "laden" lassen kann und wie man NPCs in die MAP-Datein einbauen kann , die automatisch beim Laden der Map initialisiert werden , wie z.B. Gegner oder auch nur einfache Türen mit erweitertem Script (zB. dass die Tür nach oben "fährt"). wenn da jemand was weis ... einfach nur hierher posten :D THX biss denn CU |
wenn du solche fragen hast dann solltest du wohl eher mit einem etwas kleineren projekt anfangen ....
soll das ganze 2D oder 3D sein ?? isometrisch oder standard?? |
1.wenn man schreibt "ein 2d-mmorpg" isses dann 2 oder 3d ....
(nix gegen dich aber ich hatte heut nen schlechten tag) 2.isometrisch 3.am besten mit OpenGL zeichnen (hab da schon GLXtreem) 4.wie meinst du "mit etwas kleinerem Anfangen" ,wenn ich solche fragen hab" ??? sollte man damit nicht schon recht bald anfangen ?? ich dachte mir , dass die maps aus tilesets und User-gfx (vom grafischen her) bestehen ,da viele Leute ja auch selber maps baun/online haben wollen; die struktur der tilesets hab ich mir auch schon ausgedacht , nur weis ich net , wie man die maps 1.initialisieren kann und 2. die doch realtiv großen Tilesets in so kleine kästchen unterteilt.. wenn mir das jemand sagen/erklären kann .. einfach hierher posten Bis denn CU |
Hi,
erstmal würde es mich interessieren, wie lange du schon Delphi programmierst, denn wenn du damit gerade erst anfängst, dann würde ich das gleich wieder vergessen! Wenn du schon länger mit Delphi programmierst, dann solltest du auch schon ein wenig Erfahrung in Grafik- und Spieleprogrammierung haben. Denn wenn du so ein Spiel programmierst, dann solltest du dir einige wichtige Fragen stellen (als Stichworte):
Chris |
Moin Leutz
1.OpenGl im 2d-modus 2.Ja,am besten auf Linux-Basis (hab nen linux-Server daheim),was ja mit der Delphi zu Kylix umwandlung net schwer is 3.ich weis jetzt net ganz was/wie du das meinst ; als protokoll für das Spiel an sich hätt ich UDP verwendet und als "kompatiblitätsmodus" , da es auf einigen Systemen zu rucklern kommt (weis zwar net warum , hab ich aber in nem anderen MMORPG gesehen) , TCP/IP für die kleine Chatfunktion nur TCP/IP anstatt IRC , da es ja max 14 Zeichen im Nick mitmacht.. 4.Die am besten in der Registry (bzw das was Linux hat) 5.was verstehst du unter "grafische Darstellung" ?? wenn du 2 oder 3D meinst , dann isses 2D mit isometrischer Ansicht (Vogelperspektive) 6.Ja 7.wenn dann nur eine Blutlache , die aber nach einiger Zeit verschwindet (inkl Leichnahm) 8.haben wir uns schon sehr viele Gedanken gemacht Wenn noch Fragen sind , fragt einfach ... Bis denn CU |
Hi Hanswurst
wollte mich auch grad ransetzen und das Know-How für ein mmorpg besorgen :) Allerdings eher so nach der Art, wie ich die Reihenfolge von TImages organisieren kann... Also zu deinem: bezüglich der Map: eigentlich musst du dir nur sowas wie eine "Mapsprache" überlegen. Wenn Ihr Eure Welt z.B. in "Tiles" aufbaut, also Felder, dann reicht wenn du deine Map als Matrix repräsentierst. Darin kannst du dann z.B. ein "B" schreiben für Baum usw. Dein Programm muss diese Zeichen in der Matrix dann halt übersetzen. Wenn hinter den einzelnen Objekten dann noch ein Script stehen soll, müsst Ihr Euch überlegen, ob die Scripte direkt in die Map-Datei soll oder ob die seperat angelegt werden. Bei letzterem, müsst ihr dann halt einen entprechenden Verweis in der Matirx ablegen. Das was die anderen Meinen mit was kleinerem Anfangen ist, das sich ein Erfahrener Programmierer soetwas selber ausdenken kann. Aber hey, das sollte doch jeder für sich entscheiden, womit er sich beschäftigt. Und bei der Umsetzung eines größeren Projekts kann man auch eine Menge lernen. Jetzt wurde hier viel am Thema vorbeigeredet, ohne das Hanswurst damit wirklich geholfen war. Ich hoffe du kannst jetzt hiermit etwas anfangen. Denn es zeigt dir ja die grundlegende Idee, wie man Maps speichern kann. Dabei hängt es eben davon ab, wie du deine Welt repräsentieren willst, und mit den zusätzlichen Scripts, wo die hinsollen, also Aufbau- fragen, die dann gleich geklärt werden müssen. Also viel Spaß Minz |
Zitat:
Zitat:
Das mit Kylix ist an sich eine feine Sache, aber da kann es zu einigen Problem führen. Wenn möglich würde ich für den Server C++ nehmen, da Delphi teilweise Probleme mit großen Datenmengen hat (zumindest fällt mir das auf). Zitat:
Ich meinte eigentlich, was du machen willst, um die Veränderungen an der Map an alle Clients (egal, ob derzeit online oder erst in ein paar Wochen wieder) zu senden. Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Aber da ist noch was: wie willst du das machen, beim speichern? Wenn du einfach "Koordinaten" speicherst, dann bekommst du bei Mapänderungen Probleme! Das sind nur einige Hinweise. Zu deinen eigentlichen Fragen: das sind dann eigentlich nur Kleinigkeiten... Eigentlich! Denn wenn du das ganze online machst, dann wird das schon etwas schwieriger. Habt ihr denn schonmal eine Demoversion gemacht? Wo ihr die Grundlagen erprobt? Habt ihr schon ein Konzept? Darum solltet ihr als allererstes machen! Korrigiere mich, wenn ich mich täusche, aber mir scheint es so, als ob ihr einfach mal drauflos coden wollt... Dann wird da vermutlich nichts ordentliches draus! Chris |
Zitat:
Chris PS: Hab ich doch da glatt was übersehen... :wall: |
LOOL geiles Smiley :)
...und da magst du Recht haben, aber Tatendrang soll man nicht bremsen :mrgreen: |
Namd Leutz
@Chakotay1308 1. das man im 3d-modus programmiert kann mir ja eigentlich (hans-)wurst sein :D ,ich bevorzuge aber (für das Spiel) den 2d-Modus , da nach einigen Wochen/Monaten die grafik eh schon veraltet ist und es dann wahrscheinlich auch niemand mehr spieln will .. in 2d hat man halt den vorteil , dass man die Grafik sogesehen einfach durch neue Bilder aufwerten kann ; in 3d braucht man dann wieder ne bessere Engine mit mehr Effekten usw ... 2.der Server steht bei mir daheim .. für den Anfang dürfte eigentlich dsl-1500 mit 2x upload (also 384 K up)reichen und ich wollte mir eh mal ne T/E1 oder 2 zulegen ... (T1 in USA E1 in Europa ..) wegen C++ für Server : gibts da irgendeinen guten :D als freeware oder wo bekomm ich da einen her ? (kann nur Delphi :D , hab zwar C++ auch daheim , bin aber irgendwie zu faul dazu ...) 3. ich dachte mir mit einem "loadMap"-befehl (kenn ich von nem anderen MMORPG) und wenn irgendwer in der Wand steckt .. wofür gibts Admins ?? 4. ich weis , dass die Registry mit so vielen Einträgen sehr überlastet ist , aber ich dachte mir , da es 1. schwerer zu Hacken wäre ,als Datein auf der HDD und 2. es warscheinlich eh ziemlich lange dauern kann , bis über 60 Leute mitspieln .. 5. 1. wie meinst du "dass die Map überall genau aussieht" ?? 2. wenn ich mein , was du meinst , dann sollen hinter den Spielern (je nach "Art") der Spieler , z.B Zwerg und Reiter, fusstapfen für ca 5 sec bleiben und dann wieder verschwinden .. ; halt dass es so richtig gut aussieht , wenns schon 2d is :) 6. ich dachte , du meintest , dass es überhaupt NPCs gibt .. am Anfang dachte ich mir , dass es "nur" 3 verschiedene Arten von Gegnern gibt (außer den anderen Sielern) und wenn Spieler "gute" NPCs programmieren und sie in unserem Spiel "veröffentlichen" wollen , dann müssen sie die nur an uns schicken und wir basteln die dann ins Spiel mit ein .. 7.die Clienten errechnen sich halt , dass ein NPC hin is ; also wenn ein Spieler pro Treffer 5 Schaden bekommt , er noch 10 Energie hat und dann 2 mal getroffen wird (außer er regeneriert sich..) dann kommt halt die Schleife , dass der Spieler verregt , die Animation abgespielt wird und der , der ihn gekillt hat +1 kill bekommt .. 8. 1. "Wo ihr die Grundlagen erprobt?" welche Grundlagen meinst du ?? 2.was verstehst du unter einem konzept ?? Bis denn CU |
Ich schließe ich mich denen hier an, die meinen, dass du dir da ein Luftschloss baust.
In allen Ehren, aber bitte, meinst du nicht auch, dass du etwas übertreibst? Wenn ich mir deine Fragen so anschaue (nichts gegen dich), muss man wirklich grübeln, ob du Delphi überhaupt schon gestartet hattest. Bevor man solche Fragen stellt, wie du es tust, sollte man doch wenigstens schonmal eine kleine Demo programmiert haben, auf die man aufbaut. Aber irgendwie scheint das bei dir nicht der Fall sein!? Ich gebe dir nen guten Tipp, der mir auch gegeben wurde, als ich mit der (Spiele-) Programmierung angefangen habe: Fange klein an! Versuche es mit einem Autorennspiel, einen Space Invaders, Tetris oder Breakout. Kannst es ja dann erweitern und Erfahrungen in Sachen Netzwerk sammeln. Die Einwende von vielen (auch erfahrenen) Board-Usern sind nicht unbegründet. Verstehe mich nicht falsch, ist finde es voll und ganz ok, wenn du Spiele programmieren willst und Hilfe brauchst, denke aber trotzdem dass deine Sichtweise etwas naiv ist. |
Sersn Leutz
mir isses schon klar , dass das ziemlich schwer wird .. aber ich/wir wollten eh erst mit was "kleinerem" anfangen .. nur dachte ich mir ,dass ich die Frage jetzt schon stelle , da man ja nie genau weiß , bis wann einer "richtig" Antwortet .. und außerdem wird es sicherlich noch mehr Leute geben , die eine ähnliche frage haben .. also wäre es ziemlich nett von euch ,mir nicht dauernd zu sagen :"das is zu schwer , fang lieber mit was leichterem an.." sondern mir mit einer RICHTIGEN antwort entgegen zu kommen bzw mir auf die sprünge zu helfen .. P.S. lest euch halt mal bitte die Post richtig durch , da man ,wenn man schreibt "es wird 2d", dann nicht andauernd die Frage "soll es 2 oder 3d werden??" beantworten muss .. Bisa denn CU |
Zitat:
Zitat:
Ich glaube, dir oder euch ist nicht ganz klar, dass ein Spiel zu programmieren sehr viel Planung erfordert und eine logistische und geistige Herausforderung ist. Ich glaube, du solltest mal gamedev.net, gamasutra.com oder auch das Buch "Computerspiele - Design und Programmierung" angucken. Bei allen dreien findest du viele Informationen über den Planungsprozess, das Design, die Programmierung und sogar über Vetrieb etc. Solange ihr nicht mit der richtigen Planung wenigstens angefangen habt, wird hier niemand eine Antwort auf eure Fragen finden können. Für diese Frage müsstet ihr euch wenigstens darüber einig sein, wie euer Map-Format aussehen und funktionieren soll. Und wenn ihr soweit seid, ist es nur noch ein kleiner Schritt, die Map zu laden und im Spiel zu verwenden. |
Namd Leutz
1. wir haben schon ziemlich viel geplant .. ;je nachdem wie man ziemlich viel deffiniert .. 2. übers Map-Format sind wir uns schon einig , es ist also schon "ausgedacht" |
Dann wirst du uns sagen müssen, wie das Mapformat aussieht, da wir dir sonst auch nicht helfen können!
Chris |
Moin Leutz
ich dachte mir , dass die Map-Datei (unverschlüsselt) so aussieht : Map of "Name" Ver. 0.001//angabe der Ver mit der die Map erstellt wurde. Date: 12.08.04//Datum , an dem sie erstellt wurde. Creator: Ich//Name des Erbauers. TileSet: 01;04//Verwendete Tilessets. Heigh: 15//Höhe der Map (Y Wert), da Variabel. Width: 15//Weite der Map (X Wert), da Variabel. 1 01_20 01 1 1; 2 05_18 04 0 1; 3 14_16 01 0 1; usw. NPCs: //Auflistung der NPCs (mit X-Y koordinaten). 1.Hans 002_061 1 0; usw. Scripts: //Scripts der NPCs 1. //noch net festgelegt .. usw. Lights: //Auflistung der Lichter (mit X-Y) 1. 001_025 210_004_255 10 20 4; 2. 210_062 035_195_086 3 3 2: usw. Erklärung : 2. Abschnitt (ohne Bezeichnung): "1" Feld 1 , also ganz links oben "01" Y-Koordinate des TileSets "20" X-Koordinate des TileSets "01" TileSet-Nummer "1" 1=Wasser; 0=Normaler Boden; "1" 1=Blockt 0= Blockt nicht NPCs: "1." durchnummerierung der NPCs "Hans" Name des NPC "002" Y-Koordinate des NPC "061" X-Koordinate des NPC "1" 1=Blockt; 0=Blockt nicht "0" 0=kein Licht; 1= Licht , also , ob er im Dunkeln hell oder auch dunkel ist Scripts: was soll man dazu sagen .. Lights: "1." durchnummerierung der Lichter "001" Y-Koordinate des Lichts "025" X-Koordinate des Lichts "210_004_255" RGB-Wert des Lichts "10" Radius des Lichts bei Kreis "20" Stufen des Lichts , manchmal nützlich .. "4" Art des Lichts .. 0=Kreis; 1=Dreieck;2=Viereck;3=Sechseck;4=irgend was anderes .. Endlich fertig ..Puh ... Wenn ihr noch Fragen habt .. einfach Posten bis denn CU |
Ich bin selber noch Delphi Anfänger aber ich kann dir auch nur den Rat geben fang klein an, denn alles baut sich naher drauf auf!
Glaub mir! Das Konzept haste ja schon zu deinem Game aber fang erst einmal klein an baue eine kleine Demo wie deine Karte geladen wird dann ein kleine Demo wie ein NPC funktioniert usw ... Später haste dann alles drauf, denn kein Mensch hier im Forum kann dir bei solch vielen und zu allgemeinen Fragen helfen. Was meinste wieso all die Programmierer auch große Programmierer "HELLO WORLD" als erstes Programmiert haben? Aus dem einfach Grund klein anzufangen. Du kannst nicht erwarten nach ein paar klicks in Delphi und bischen Code das du gleich ein Diablo2 mit nem Battle.Net Source verbindest und das noch durch eine Hilfestellung in einem Delphi Forum. Ich geb dir den Tip fang klein an! |
Speichern
Hallo,
Ich hab vom Spiele Coden nicht wirklich Ahnung und möchte auch kein Spiel schreiben (noch nicht :-))aber der Interesse halber gibt es Sinn die Spielstände und User Daten in eine Datenbank z.b. MySql abzuspeichern? Wie wird das bei denn mächtigen spielen wie z.b. Diablo 2 gehandhabt ? |
Re: Map+NPC initialisierung in 2D
Hi!
Also ich programmiere jetzt seid knapp 6 jahren und davon 4 in delphi. Ich habe erst vor ner Woche angefangen, ein 2D spiel zu programmieren. Tja und so einfach wie ich es mir gedacht habe, ist es nciht ganz. erstmal solltest du dir überlegen, wie du die Map speicherst, denn so wie du es vor hast, ist es müll, sorry. Ich arbeite auch mit tiles, was wunderbar läuft und ich auch lange drüber nachgedacht habe es zu realisieren (also werd ich hier net rein schreiben, wie ich es gemahct habe ;) ) Ich sag nur es ist verteufelt schnell und ich benutze eine art mul datei ( Ultima Online lässt grüßen ). Ein Tip noch : Schau dir ein bissel Source von UO Emulatoren an. Dort kriegt man gute ideen und kann sich euch einiges abschauen. Dann nochmal eben zum speichern der maps : Ich arbeite mit mehreren Dateien, weil sich bei einer datei zuviel ansammelt und das ganze laden erheblich verlangsamt. Greife nur dann auf die daten zu, wenn du sie wirklich brauchst ansonsten lass sie in ruhe. Lade immer nur den entsprechenden Bildschirm ausschnitt ;) Ist zwar ein bissel komplizierter, aber fixer ;) Ansonsten, viel erfolg bei der sache. Aber als anfänger, auch wenn es schon viele gesagt haben, fang erst einmal mit kleinen spielchen wie vier gewinnt usw an. Damit du ein kleinen einblick in die KI programmierung kriegst. Gruss Ari |
Re: Map+NPC initialisierung in 2D
Hi,
Also so wie das oben aussieht, willst du die Informationen für die Map in eine *.ini Datei schreiben. Aber eine *.ini Datei ist leicht manipulierbar! Ihr solltet (bzw. müsst) dann, bei jedem connecten, die komplette *.ini Datei mit der *.ini Datei vom Server vergleichen. PS. Ich verzicht jetzt hier auf die Aussage "fang lieber mit etwas kleinem an" obwohl ich das (leider) selber schon oft erfahren musste //Edit: LoL jetzt fällt mir erst das Datum an dem der Thread erstellt wurde auf ^^ - Würd mich mal interessieren was daraus wurde! MFG Maximus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz