(wegen meiner Units...)
FPU hat geschrieben:Deine Probleme möcht ich auch haben ;)
Ich meine eher: Ich habe das ganze Zeug - und am
Programmieren liegt's bei mir wirklich nicht, warum ich nicht 1 bis 3 größere Spiele (oder mehr) pro Jahr rausbringen könnte. Eher an den restlichen Dingen.
FPU hat geschrieben:Eine VM ist gut (sofern der Zielrechner genügend Rechenkapazität aufweist).
Auch hier ist der minimale Rechner wieder 386er. Die VM ist ja dann nicht so'n Scheiß wie Javascript. Das wird "tokensiert" und der Token-Code sieht dann aus wie eine Art Pseudo-Maschinencode. Die VM selber soll auch nicht das ganze Spiel machen, sondern nur für die Figurensteuerung zuständig sein und um Figuren an-/auszuschalten usw. Da alle Figuren sowieso in so Art mehrfach aufeinander zuweisende "Datenbanken" bei mir liegen, wird das nicht so ein Rechenaufwand. Oder anders ausgedrückt: Den Rechenaufwand macht ein externes Programm, BEVOR das Zeug in's Spiel einbaut wird und das Spiel selber muß dann nur noch aufbereitete Daten abarbeiten. Kann man jetzt schlecht erklären, wenn man dabei möglichst theoretisch bleiben will.
FPU hat geschrieben:Viele Dinge sind einfach viel zu trivial um mit der Pascal/C/ASM Keule draufzuhauen. Hinterher hat man nur nen Haufen Fehler im Programm für eine minimale Funktion die man mit einer Skriptspache im Handumdrehen erreicht hätte.
Wie gesagt, es wird keine Skriptsprache und sowas würde ich auch für ein Spiel nie verwenden. Das "Pseudo-Basic" kommt im Spiel selbst gar nicht vor und ich würde in einem Spiel auch niemals mit 'nem Parser rumfuhrwerken! Ich meinte: Das Pseudo-Basic dient der Vereinfacherung der Eingabe, damit man nicht in dem Pseudo-ASM-Code rummurksen muß (was man auch könnte).
FPU hat geschrieben:Ich mache unter Windows vieles gerne mit Skripten
Ich mache gar nichts unter Windows. Wenn mein DOS-Zeug auch unter Windows läuft - OK. Wenn nicht - Pech gehabt.
FPU hat geschrieben:Willst du die Sprache selbst basteln oder was fertiges anpassen?
Ich habe schon mehrere solcher Sprachen gebastelt und werde das auch hier wieder tun, ja. Ist alles schon konzeptioniert.
Also, um das nicht falsch zu verstehen: Es dient dazu, die Bewegung und das Verhalten (und Kollisionsabfragen) der Figuren in einem kleinen ASM-ähnlichen Pseudocode darstellen zu können. Denn das ist immer noch schneller als wenn man's in reinem Pascal oder schlimmerem tut. Es hat auch den Zweck, daß man die Figuren - zusammen mit ihrem "Verhaltensprogramm" einzeln nachladen kann, statt das alles in einem festen (Pascal-compilierten) Code in der EXE mit rumzuschleppen. Spart übrigens auch Speicher.
FPU hat geschrieben:Das höchste der Gefühle im Bereich Sound waren bei mir früher immer nervige Töne aus dem eingebauten Lautsprecher äh Piepser auf der Hauptplatine.
Habe ich auch schon gemacht. Mein Spiel "4 Gewinnt" (auf meiner Webseite) ist ein Beispiel dafür. Habe da - mit demselben Trick, den Xenon 2 anwendet - Mehrstimmigkeit simuliert. In Xpyderz wird auf dem PC-Speaker sogar digitale Musik abgespielt - habe nur noch nicht die Sounddaten-Erzeugungs-Unit geschrieben. Aber wenn man Xpyderz unter DOS startet und als Parameter eine WAV-Datei angibt, wird diese während des Spiels auf dem PC-Speaker digital abgespielt.
(ich programmiere unter DOS)
FPU hat geschrieben:Ist von mir aus genemigt
(Ich programmiere in Pascal und Assembler, statt C)
FPU hat geschrieben:Wobei ich nicht weiss was die Leute an C und C++ so toll finden.
Ich auch nicht. Habe auch schon (im Auftrag für'n Kumpel) in C programmiert. Ich hab's hingekriegt - aber meine Fresse, nervt das!
FPU hat geschrieben:Hab früher auch in Pascal programmiert, bis ich armer Irrer den Rückschritt auf C gewagt habe.
Jedem das Seine. Ich verurteile keinen für die Programmiersprache, die er verwendet. Ich find's gut, daß es überhaupt noch Leute gibt, die in richtigen Programmiersprachen coden (statt diese Pseudo-Programmierer, die denken, XML wäre Programmieren...)
(Mein Zeug läuft (leider) nicht mehr auf 286ern, ich setze mindestens 386er voraus.)
FPU hat geschrieben:Naja... man nimmt halt was man kriegen kann.
Und irgendwie scheint alle Welt einen 386er als Minimum heranzuziehen.
[...]
Aber man sollte auch lernen mit wenig auszukommen und sich in Bescheidenheit zu üben.
Genau das tue ich ja. Manche meiner Games sind auch 286er. Aber bei manchen Dingen (4-Ebenen-Parallax-Scrolling) ist es von Vorteil, ein paar mehr Segment-Register oder 32-Bit Register zu haben, weil z.B. der ständige Wechsel des Segment-Registers ziemlich an der Rechenzeit zerrt.
Also ich bin der letzte, der es auf sich bezieht, Gigantomanie zu betreiben oder Systemrechenzeit zu verschwenden, indem er ultraharte Systeme benutzt. Mein Entwicklungsrechner ist ein 486er mit 133 MHz. Und obwohl ich einen 486er habe und an einigen Stellen mit 486er-ASM-Befehlen ein, zwei Zyklen hätte herausholen können, verwende ich weiterhin nur maximal 386er ASM-Befehle.
FPU hat geschrieben:Nicht umsonst wird bei modernen Spielen so viel geskriptet, um die ganzen Ghz auslasten zu können
Tja, mit so einem Müll kann ich auch nicht viel anfangen. Ich
benutze die vorhandene Rechenleistung, ich verschwende sie nicht. In manchem Skript-Mist wird über 90% der Rechenleistung dazu benutzt, den Skript-Parser/Interpreter zu betreiben und unter 10% zur Ausführung das eigentlichen Problems. Damit kann ich nichts anfangen. Und wenn man GHz-Kisten nur dazu baut, damit Coder (oder was sich für Coder hält) beschissener programmieren können, hab ich dafür auch kein Verständnis.
FPU hat geschrieben:Naja... wäre schön wenn es heutzutage eine ernst zu nehmende gut konstruierte Alternative zu x86 gäbe.
Das gibt es wohl einiges. Das Problem ist weniger, daß es das nicht geben würde, sondern, daß x86er-PCs dermaßen populär sind und fast jeder einen hat und es daher - gerade als Spielprogrammierer - keinen Sinn macht, auf 'nem System mit einer toll konzipierten, aber total seltenen (und seltsamen) CPU ein Spiel zu coden, das dann keiner außer einem selber spielen kann, weil keiner sonst diese Kiste hat. Das ist wohl der wahre Grund. Und daß die x86-CPU wie Stückwerk aussieht, liegt daran, daß sie auch genau das ist. Man hat die halt über die Jahre/Jahrzehnte weiterentwickelt, mit der Vorgabe, weiterhin abwärtskompatibel bis 8086 zu sein. Und dadurch wurde dann immer irgendwas irgendwo "drangebaut", das nicht das stören darf, was schon vorher dran war...
(Alles selbstgemacht. Die "Bibliotheken" (Pascal-Units mit ASM-Anteil) habe ich auch alle selbst programmiert.)
FPU hat geschrieben:Respekt. *hut zieht*
*rot werd* - Danke. Naja, ich programmiere eben dauernd so'n komisches Zeug - andere Leute nicht, aber die haben dafür 'ne Freundin oder 'n Auto oder irgendne Art von Sozialleben...
(...und gerade zur Zeit wird das ganze Kriegs- und (Anti-)Terror-Thema so gehyped, daß es nicht mehr zum Aushalten ist.)
FPU hat geschrieben:Was sollen die Firmen denn herstellen wenn überall im Fernsehen nur noch Gewalt, Mord, Krieg und Totschlag zu sehen sind?
Das mag sein, aber deswegen muß ich's ja nicht mögen. Oder am Ende auch noch den Mist unterstützen, indem ich selber auf diesen Zug aufspringe.
Eins meiner nächsten Spiele soll zwar ein Raumschiffshooter werden - aber eher so SciFi-Arcade, ohne irgendeine Art von Kriegshintergrund.
FPU hat geschrieben:Mal von Nintendo mit der Wii und ein paar anderen Ausnahmen abgesehen, die mit neuen Spielideen versuchen andere Zielgruppen anzufixen.
Naja, OK, Nintendo macht ja in letzter Zeit so dermaßen "familienfreundliches" Zeug, daß es mir schon ein ganz klein wenig ZU Kindergarten ist, was die da machen. Das spielen dann wirklich nur noch Pappis, Mammis und kleine Kinder und ich gehöre leider zu keiner dieser 3 Gruppen.
(...Ich habe so viele Ideen, so viele Konzepte und so viele Bibliotheken hier rumliegen)
FPU hat geschrieben:Das ist wohl das Schicksal das du mit vielen kreativen Köpfen teilst. Da wird noch so manch gute Idee im dunkeln verschwinden und nie verwirklicht.
Tja, seufz...
FPU hat geschrieben:Wobei ich deine Grafiken selbst gar nicht so schlecht finde. Hätte ich auch nicht besser hinbekommen.
*noch roter werd* - Danke abermals.
(Hm... ja, ich weiß: rot, roter, am rotesten...)
(... wegen des Debuggings)
FPU hat geschrieben:Jaja... und nachher hat man für das Spiel mehr Hilfsfunktionen und mehr Fehlerbehandlungsroutinen geschrieben als normalen Spielcode. (Und den eigentlichen Fehler dann vielleicht erst nicht gefunden)
Und was besonders schön ist: wenn man eine oder mehrer
Zeilen Code auskommentiert oder neu hinzufügt und der Fehler dadurch verschwindet, sich anders äußert oder ein ganz anderer wird... das is ja soooo lustig
Ja, ne? Ist so lustig, man lacht sich den Arsch ab.
(wenn manche Leute wüßten, welche Mühe selbst ziemlich einfache Spiele schon machen... - OK, sollte man denen vielleicht auch lieber nicht erzählen - dann hat am Ende überhaupt keiner mehr Lust, mal an einem Spielprojekt mitzumachen....)
FPU hat geschrieben:Also benutzt du für die Sprites und Tiles quasi nur einen Ausschnitt aus einer 256er Farbpalette und musst den Grafiken nur noch mit auf den Weg geben welchen Teil der Palette sie benutzen sollen?
Nö, nicht einen Ausschnitt.
Sondern, das Tile oder Sprite benutzt 16 Farben der vorhandenen 256. Dazu referiert es auf eine Tabelle, die 16 Bytes groß ist und diese Bytes entsprechen den Farbnummern in der echten 256er Palette.
FPU hat geschrieben:Und wie erstellst du die Grafiken hierfür? Doch sicher nicht mit Standardprogrammen
Natürlich nicht. Die Sprites und Tiles pixle ich in einem selbstgeschriebenen Malprogramm. Das müßte ich zwar nicht, aber die Malprogramme, die es so gibt, nerven mich. Vor allem, weil ich es hasse, mit der Maus pixeln zu müssen. Das ist mir zu ungenau. Und außerdem ist mein Malprogramm 8bit-Palettenbasiert, d.h. man kann eine Palette definieren und damit dann malen.
Aber für die Spiele habe ich dann ein weiteres Programm, das Sprites oder Tiles aus einer Vollgrafik ausschneidet und in das gewünschte Format gleich wandelt. Dabei bekommen die Sprites und Tiles eine spezielle Anordnung im Speicher, damit sie auf die effizienteste Art per Assembler verarbeitet werden können. Haben Sprites z.B. dasselbe Aussehen und unterscheiden sich nur dadurch, daß sie gedreht oder gespiegelt sind, erhalten sie dasselbe Image und ein Dreh/Spiegel-Flag. Dasselbe gilt, wenn sie sich dann noch in den Farben unterscheiden, aber von der Farb-Anordnung gleich sind. Dann wird ebenfalls das gleiche Image benutzt, und lediglich eine zusätzliche Farbpalette generiert. Wenn es eine Palette gibt, die schon passend ist, wird diese benutzt. Und so weiter. D.h. ich habe hier Konverter programmiert, die vorhandenes Zeug in für mich besser verarbeitbare Daten konvertieren.
(Du benutzt also Mode 13h 320x200 (nicht Mode-X) und pufferst im Speicher, oder?)
FPU hat geschrieben:Ja. Wollte lieber erstmal klein anfangen.
Die Grafiken werden im Hauptspeicher erstellt/gescrollt und dann in den Grafikspeicher kopiert.
Bei zwei Puffern für den Bildschirm verbrate ich dadurch 128 kbyte an Dos Speicher. Nicht schön aber es funktioniert.
Ja, ich könnte das nicht mehr, weil ich einfach keine 128kB zur Verfügung stellen kann. Die Vollversion von Xpyderz enthält ja auch das Menüsystem, einen im Spiel integrierten Leveleditor und einen vollständigen TCP/IP-Stack auf 3 verschiedenen "Plattformen": PPP, Netzwerkkarte (mit Crynwr Treiber) und eine speziell für Anbindung ans Windows-Internet (wenn unter Windows) gedachte "Schnittstelle". (Außerdem noch ARP, DNS und HTTP Request/Reply.) Irgendwann reichen dann die etwas über 600 kByte einfach nicht mehr aus...
FPU hat geschrieben:Ne Hardwarebeschleunigte sauber dokumentierte und offizielle genormte Lösung wäre mir aber ehrlich gesagt lieber als das Gefrickel.
Aber sowas scheint man in der PC Welt vergeblich zu suchen.[/quote]
Tja. Jede verdammte Firma erfindet 'ne eigene "Norm"/"Standard". Dokumentiert wird natürlich nix - oder erst, wenn das Zeug nirgends mehr offiziell verkauft wird (also so veraltet ist, daß es keiner mehr hat). Und um diesem Mist Herr zu werden, wurden dann "Treiber" erfunden. Und das Lustige an Treiber ist eben, daß die dann (aus Kostengründen) von diesen Firmen nur für das System geschrieben werden, das gerade das populärste ist - also im Klartext für die aktuellste Version von MS-Windows oder wenn man Glück hat auch noch für die vorhergehende.
Ohne Treiber ist heutige Hardware entweder so nützlich wie ein unheimlich teurer Briefbeschwerer oder sie hat, wenn man Glück hat, wenigstens noch ihre Grundfunktionen ohne Treiber verfügbar - funktioniert dann also auf dem technischen Stand von ungefähr 1993 oder früher, wenn man sie ohne Treiber benutzt.
(Treiber - also Softwareschnittstellen - machen das Ganze übrigens langsamer als direkte Zugriffe. Naja, stört wahrscheinlich keinen, der sich alle 4-6 Monate den neuesten Rechner kaufen kann...)
Ich weiß auch nicht - vielleicht bin ich ja auch bescheuert - aber:
Fortschritt sieht für mich irgendwie anders aus...