R: Font-Engine fertig...


2003-10-10 08:54 #1
Nun ist endlich die Font-Engine für Horror fertig. 😃 Es ist eine grüne, manchmal ein bisschen verschnörkelte Schrift. Manchmal wird ein Buchstabe noch falsch angezeigt, aber das kann man in den Griff bekommen.
Hoffentlich reicht der Speicher noch, wenn ich das Programm in Horror integriere. EMS/XMS will ich nicht nutzen da:

1. Ich nicht weiß wie es geht (irgendwas mit "intterrupt")
2. Mein Spiel dann nicht mehr unter XP funktioniert.

Grüße,
LordEverything
2003-10-13 00:54 #2
Wieso sollte es nicht gehen? Ich kenne einige Dos-Spiele, die den erweiterten Speicher nutzen und ohne Probleme unter XP funzen. Alles ne Sache der Konfiguration des Windows's. Viel mehr Probleme bereitet unter XP meist die Nutzung des Soundblasters von Dos-Anwendungen aus. Dafür gibts zwar auch einen Emulator, aber der hat dann ein paar Aussetzer im Ton.

www.windowsclone.de.vu

  • games & progs for casio cfx-calculators
  • some old games coded in QBasic

Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.

2003-10-13 01:09 #3
Als Gegenargument kann ich nur anführen, daß man die korrekte Konfiguration der XP-Umgebung auch einem normalen Anwender erklären können muß. Das ist leider nicht so ganz trivial.

Falls es doch eine Option ist, überlege gut, ob Du XMS oder EMS verwendest. XMS sollte ohne Zutun in der normalen NT-Umgebung (und damit auch unter XP) zur Verfügung stehen.

Ein großer Nachteil von XMS ist, daß alle Daten, die sich im XMS-Speicher befinden, nur über Kopieren herankommt (das erledigen die XMS-Routinen). Ein Zugriff ist entsprechend teuer.

EMS dagegen verwendet sogenannte Pages von 16kB, in denen die Speicherblöcke eingeblendet werden. Das geht auf CPUs ab 386 fast ohne Overhead, kostet allerdings wiederum 64kB vom Upper Memory, welches von XP standardmäßig für DOS-Treiber etc. verwendet wird. Deswegen funktioniert EMS per Default erstmal nicht.

Alle Windows-Systeme bieten dazu noch DPMI an. Damit kann man dann sogar einen eigenen DOS-Extender mit virtueller Speicher-Verwaltung aufbauen (wie z.B. in FlipOut...). Das ist in der Anwendung jedoch deutlich komplexer.

Also: Falls noch Fragen sind... 😉

waiting www.tom-productions.de - www.tofahrn-foto.de - www.tofahrn.de

2003-10-13 08:09 #4
Naja und wenn man keine Ahnung von XP hat, kann man sich ja immernoch mit einer DOS-Bootdiskette behelfen, vorausgesetzt, man hat noch eine Partition auf der Festplatte, die nicht in NTFS umgewandelt/erstellt wurde.

Das kann man aber auch relativ leicht wieder zurückwandeln mit Programmen wie, Partition Magic oder Paragon Partition Manager (war vor ein paar Monaten soagr mal als Vollversion in der CHIP)

Abgesehen davon kann man das Programm auch so konfigurieren, dass es läuft und dann die entsprechende PIF-Datei mitliefern.

www.windowsclone.de.vu

  • games & progs for casio cfx-calculators
  • some old games coded in QBasic

Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.

2003-10-14 22:11 #5
herc
schau dir mal www.powerbasic.com/ an, das hat weniger speicherlimitationen als qbasic !

und kennt ihr www.bochs.org ? ist ein kleiner, aber starker dosemulator - da sollten alle uralt progs super drunter laufen
2003-10-14 23:48 #6
herc
der korrekte link lautet bochs.sourceforge.net/
das ding kann sogar win95 emulieren 🙂

also wenns irgendwann keine normalen x86 pcs mehr gibt werden wir trotzdem bis in alle ewigkeit robot spielen können 🙂 ) vielleicht werd ich also meine kinder auch noch für robot begeistern !
2003-10-15 03:44 #7
Ok, ist völlig Off-Topic, dennoch: Falls jemand einmal einen professionellen x86-Emulator benötigt, auf dem so ziemlich alle x86-Betriebssysteme inklusive XP, Unix etc. laufen, der sollte sich einmal vmware (http://www.vmware.com/) anschauen. Damit emuliere ich hier ganze Netzwerke auf einem einzigen, entsprechend ausgestatteten (mind. 1GB RAM, 1GHz CPU) Host-System.
Wer die Ausgabe von USD300 scheut, kann sich auch ein paar mal einen 30-Tage-Trial-Key organisieren... 😉

waiting www.tom-productions.de - www.tofahrn-foto.de - www.tofahrn.de

2003-10-15 11:00 #8
Danke, werde ich mir merken. Ich verstehe zwar nicht alles aber wenn ich mich damit richtig beschäftige...

Der Speicher hat jetzt übrigens doch noch gereicht. Allerdings beläuft sich die Ladezeit jetzt auf gut 10-15 sec. Das kann ich aber verkürzen. Momentan zeiche ich die Bilder in einem verdecktem Layer und lese sie dort ein.
Ich werde es noch so schreiben das die Werte direkt in ein Arrary gelesen werden.

Robot ist ja wirklich sehr sehr schnell. Leider bietet QB keinen richtigen Inline-Assembler und erstellt mit dem Compiler auch nur P-Code. (Keine Ahnung was das ist.)

@herc
PowerBasic find ich ganz super aber es ist nicht kostenlos und unterstützt keine 256 Farben. Ich finde das PowerBasic eher was für Tools ist.

Grüße,
LordEverything

P.S: Hauptmenü ist jetzt auch integriert. 😃
2003-10-15 18:30 #9
herc
@andreas: ja, vmware ist super ! aber: es benötigt x86er hardware, da nicht die komplette hardware emuliert wird. bochs hingegen emuliert komplett die gesamte hardware bis hin zum soundblaster. (vielleicht interessant für dich einen blick in den sourcecode zu werfen?)

@lordeverything: hmm... und blitzbasic ? das kann sogar 3d usw..
ausserdem: der qbasic compiler ist auch nicht kostenlos 😉
2003-10-15 19:49 #10
@herc
QuickBasic ist nicht kostenlos? Als ich es von "www.qbasic.de" runtergeladen hab stand da das Microsoft es freigegeben hat.
Ich habe als Horror noch am Anfang der Entwicklung stand mal eine BlitzBasic-Version programmiert, aber irgendwie hab ich das dann noch aufgegeben, wegen diversen Problemen mit transparenten Gegenständen.

Hätte man sicher fixen können, aber damals hatte ich wirklich keine Lust drauf. Trotdem kann ich BB nur emfehlen. Vielleicht programmiere ich später nochmal eine BB-Version. Bei der damals wollte ich die Hintergründe rendern, 32 bit Farben benutzen usw...

Grüße,
LordEverything

P.S: Blitz3D finde ich immer noch viel zu teuer. Allerdings hätte ich mir BB nicht gekauft wenn ich gewusst hätte das später noch so ein Blitz rauskommt das API unterstützt welches genauso teuer ist.😡

2003-10-15 19:54 #11
Quote:
vmware ist super ! aber: es benötigt x86er hardware

Is' schon klar! Dafür laufen die virtuellen PCs mit fast der gleichen Performance, wie die Host-CPU. Das bekommt man mit einem Emulator natürlich nicht so gut gebacken. Ich denke auch, daß die Zielgruppe eine ganz andere ist.

Ich wollte das ja nur die Existenz von VmWare anmerken und keine Grundsatzdiskussion lostreten... 😉

Quote:
... emuliert komplett die gesamte hardware bis hin zum soundblaster. (vielleicht interessant für dich einen blick in den sourcecode zu werfen?)

Gute Idee, werde ich machen. Aber meine Bugs in der AdLib-Emulation kenne ich zur Genüge, ich bräuchte nur 'mal ein paar Tage Ruhe und Zeit am Stück...😞

waiting www.tom-productions.de - www.tofahrn-foto.de - www.tofahrn.de

2003-10-16 17:19 #12
herc
ok, das wusste ich nicht. damals vor vielen jahren war der qbasiccompiler noch nicht umsonst.

zu blitzbasic: schade.. ich dachte das wär immer das super gameprog tool. naja, vielleicht werden da kommende versionen deine anforderungen besser erfüllen.
ausserdem: 60 $ für blitz2d ist nicht wenig, aber nichts im vergleich z.b. zu visual c++, welches mehrer hundert $ kostet !
2003-10-26 01:13 #13
Wäre ja auch mal ganz Nett, wenn es für Pocket PCs einen Emu gäbe, der nicht nur 8086 emuliert, sondern auch 80386. Die ganze Grafikausgabe müsste aber umgestellt werden, dass größere Auflösungen berechnet werden und diese entweder verkleinert auf dem Display erscheinen oder man scrollen kann-
Aber der langsamen Geschwindigkeit des 8086 emulators auf einer 200 Mhz ARM CPU nach zu urteilen, würde man von einer 80386 Emulation auf dem Pocket PC nicht viel haben.

www.windowsclone.de.vu

  • games & progs for casio cfx-calculators
  • some old games coded in QBasic

Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.

2003-10-26 03:01 #14
Wenn man ohnehin umstellen muß, wäre es dann nicht besser alles schön in C/C++ zu programmieren und das Programm native laufen zu lassen?

waiting www.tom-productions.de - www.tofahrn-foto.de - www.tofahrn.de

2003-10-29 09:22 #15
Dann würde der PDA wahrscheinlich das Spiel wieder schaffen (von der Geschwindigkeit her), aber dafür kann man keine anderen Spiele ausführen. (z.B. Sim City 2000 hab ich noch für DOS, für Pocket PC müsste ich das extra Bestellen, wobei es die Firma auch gar nicht mehr gibt, die die Pocket PC Version rausgebracht hat)

www.windowsclone.de.vu

  • games & progs for casio cfx-calculators
  • some old games coded in QBasic

Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.

2004-01-04 22:05 #16
Zeichnest du die Grafiken Pixel für Pixel, oder benutzt du den QBasic PUT (hiess der so? ist schon zu lange her...)? So weit ich mich erinnern kann, hatte der auch nen Parameter für AND, OR & Co. Damit könntest du zu jedem Bild ne Maske verknüpfen und schon hast du transparente Darstellung. (ist mir gerade so aufgefallen, das dies in der Horror Version die ich habe noch fehlt. Und wenn man keine Gegenstände hat, laesst einem ein kleiner druck auf enter nach rechts gehen, was mich mind. 1 leben gekostet hat 😉

die framerate koenntest du noch erhoehen, wenn du im szenen array (ich nehme an du benutzt eins) noch ein bit oder auch mehr als muss-nochmal-gezeichnet-werden-flag benutzt. dann müsstest du nur geänderte dinge neuzeichnen, was einen nicht zu verachtenden geschwindigkeitsschub geben muesste.

ansonsten kann ich nur sagen PRIMA ARBEIT!!! auch wenns ziemlich kurz war, aber mir hat das spielen sehr viel spass gemacht, zumal deine gegner auch besser funktionieren als meine 😉 warte sehnsüchtig auf neue versionen!
2004-01-05 23:14 #17
Hallo,

endlich mal jemand der sich noch (oder schonmal) mit dieser primitiven Programmiersprache beschäftigt hat. (ausgenommen moormaster)
Zum der Masken-Technik:
Ich habe diese schon öfter benutzt (z.B in der BB-Version). Aber bis jetzt habe ich das noch nicht für wichtig empfunden. 😃
Also die Bilder habe ich mit meinem Sprite-Editor gezeichnet den ich schonmal früher programmiert hatte. Er speichert im *.cbm-Format. (CyberBitMap, ich weiß: doofer Name). Und zum Anzeigen nehme ich natürlich PUT. (wie du schon sagtest)
DIESE BESCHEURTE ENTER-TASTE!!! Wenn ich doch endlich wissen würde warum das so ist. Ich benutze für die Eingabe INP(&H60).
Das mit den Szenen hab' ich nicht ganz kapiert. Was ist ein flag? Ich merke mir diese Fachbegriffe nie.😏

Hm... Ich würde so gerne eine neue Version ins Internet stellen. Aber meine neue optische Maus blockiert einfach meine Tastatur (und sich selbst auch) unter DOS. Dazu hab ich schonmal eine Frage in "Allgemein) gestellt.

Grüße,
LordEverything


2004-01-06 00:07 #18
Hm, also ich habe Assembler Routinen damals in QuickBasic immer vermieden, weil ich in Assembler nur relativ wenig hinbekomme, und das auch nur, mit nem dicken Buch vor meiner Nase 😉 Aber wenn du was richtig schnelles für Grafik in QB haben möchtest, empfehle ich dir DirectQB, einfach mal über Google suchen. Und ich glaube das EMS dabei kann man irgendwie abschalten...

Ein Flag musst du wie einen Schalter ansehen. Die einfachen kannst du an und aus schalten (wahr / nicht wahr). Aber ich nehme immer eine normale Integer Variable, weil ich damit mehr Zustände speichern kann. Ich glaube hiermit dürfte dir klar werden, wie ich das mit dem Sprite-Neu-Zeichnen-Flag meinte 😉

Und die Tastatur abfragen, da gab es doch Befehle, die überprüft haben, ob eine Taste gedrückt wurde, wenn ja, habe ich deren Ascii Wert ausgelesen und dann je nach Wert (select case) andere subs ausgeführt. (ok, kann mich nicht mehr so genau daran erinnern, schon zu lange her 🙂 Auf jedenfall waren es glaube ich ganz normale QBasic Befehle...

Wegen der Maus?

Hm, Theorie 1: Ausversehen Maustreiber für Dos installiert. Schau mal in die Autoexec.bat und Config.sys. Manche Mäuse vertragen Dos Treiber mit Windows-internem-Treiber nicht.

Theorie 2: Vielleicht braucht die Maus doch noch einen Maustreiber, falls keiner installiert ist.?

Theorie 3: Irgendwo in der Rechtsklick auf Arbeitsplatz -> Eigenschaften -> Gerätemanager, kann man bei der Maus irgendwelche Optionen für Dos einstellen (Stichwort: Emulation)

Theorie 4: Irgendein freilaufender IRQ, müsste im Gerätemanager an einem gelben Ausrufezeichen erkennbar sein.

Prüfe mal einfach nach, vielleicht hilft das ja irgendwie.


2004-01-06 02:36 #19
* Zu dem Enter-Problem:

Ich habe früher mit etwas ähnlichem, wie diesem hier gearbeitet:


'*************************************************************************
'
' ONKEY.BAS = QBasic-Programm zur Demonstration der ON KEY Funktion
' =================================================================
' Im Hauptprogramm wird der Anzeigewert mit Höher-/Tiefertaste verändert.
' Die F1- und F2-Taste werden nicht zyklisch abgefragt ("gepollt"), sondern
' ereignisgesteuert (Interrupt-gesteuert) nur bei Tastenbetätigung mit
' ON KEY... bearbeitet. Die Bearbeitungsroutine "Hilfe" der F1-Taste gibt
' unten auf dem Bildschirm einen Hilfetext aus. Die Bearbeitungsroutine
' "HilfeEnde" der F2-Taste löscht den Hilfetext wieder. Die Tastenbear-
' beitungsroutinen sind lokale Subroutinen.
'
' Thomas Antoni, 03.03.00 - 06.01.01
' http://www.antonis.de
' thomas@antonis.de
'
'**************************************************************************
CLS
'
'------ Ereignisgesteuerte Bearbeitung der F1- u.F2-Taste aktivieren ------
KEY(1) ON 'Ereignisverfolgung für F1-Taste einschalten
ON KEY(1) GOSUB Hilfe 'Bearbeitung für F1-Taste aufrufen

KEY(2) ON 'Ereignisverfolgung für die F2-Taste einschalten
ON KEY(2) GOSUB HilfeEnde 'Bearbeitung für F2-Taste aufrufen
'
'------- Hauptprogramm ----------------------------------------------------
PRINT " ONKEY.BAS - Demoprogramm für die ereignisgestuerte Tastenbearbeitung"
LOCATE 21
PRINT " [F1-Taste] ... Hilfe anfordern"
DO
Taste$ = INKEY$
IF Taste$ = CHR$(0) + "H" THEN x = x + 1
IF Taste$ = CHR$(0) + "P" THEN x = x - 1
LOCATE 7, 1: PRINT x
LOOP WHILE Taste$ <> CHR$(27)
END
'
'-------- F1-Taste ereignisgesteuert bearbeiten: --------------------------
'-------- Hilfefenster anzeigen
Hilfe:
zeile! = CSRLIN: spalte! = POS(0)
COLOR 4
LOCATE 18, 1
PRINT " ------------ Hilfe-Fenster ------------------ "
PRINT
PRINT " [F2]-Taste........ schließt das Hilfe-Fenster"
PRINT " [Höher]-Taste..... erhöht den Anzeigewert"
PRINT " [Tiefer]-Taste.... reduziert den Anzeigewert"
PRINT " [Esc]-Taste....... beendet das Programm"
LOCATE zeile!, spalte!
COLOR 15
RETURN
'
'-------- F2-Taste ereignisgesteuert bearbeiten: -------------------------
'-------- Hilfefenster löschen
HilfeEnde:
zeile! = CSRLIN: spalte! = POS(0)
COLOR 4
LOCATE 18, 1
PRINT SPC(70); " " 'Hilfetext löschen
PRINT
PRINT SPC(70); " "
PRINT SPC(70); " "
PRINT SPC(70); " "
LOCATE zeile!, spalte!
COLOR 15
RETURN


Nicht unbedingt eine Super-Gute Lösung, aber du kannst im Hauptteil alle Timer und Grafik relevaten Dinge abarbeiten...

Diese und vor allem auch für Grafik (Assemblerroutinen in QB!) kann ich dir Antonis QB (http://pub4.ezboard.com/www.antonis.de) empfehlen! Schau dort mal bei Tutorials und dem Grafiktutorial zum downloaden nach. Wenn ich noch in QB proggen würde, wäre ich jetzt überglücklich! Aber ich hoffe dir wird es helfen. Auch die anderen Tutorials sind nicht über, oder gar die MonsterFAQ, da steht auch ne Menge über Tastaturabfragen drinn (daher auch der Code, siehe oben 😉

Erwarte sehnsüchtig neue Beta,
Fausti
2004-01-06 19:49 #20
Hm, also das mit dem Schalter ist glaube ich nicht so geschwindigkeitsaufbringend. Denn das abzufragen braucht ja auch seine Zeit.
Natürlich hab ich "qbasic.de", also Thomas Antonis Qbasic-Site schon auswending into.
Hm, also das Programm von Thomas hilft nicht so recht weiter.
Diese Art von Abfrage hab' ich auch schon benutzt.😰

Deine Maus-Lösungen muss ich gleich mal ausprobieren, das könnte gut sein, dass da der Fehler liegt.

Grüße,
LordEverything