Schlowski hat geschrieben:Na dann hole ich auch mal etwas aus - leicht Off-Topic, aber ich denke mal, der Thread-Ersteller wird sich nicht beschweren
Ja, ich denke, das wird schon in Ordnung gehen.
Schlowski hat geschrieben:Seit ich 1981 das erste mal an einem PET 2001 gesessen habe und das obligatorische
zum Laufen gebracht habe, bin ich dem Programmier-Virus verfallen.
Bei mir war es erst ein Buch über Computer und BASIC-Programmierung.
Schlowski hat geschrieben:Im Laufe der Jahre hab ich mich von einem VC-20 über einen C-64, Apple-II (Clone), Atari ST, Amiga 500, Acorn Archimedes schließlich zum PC hin entwickelt.
Ich stamme aus dem Ostteil. Zuerst war ich 3 Jahre lang in einer AG Computer, einmal die Woche (Donnerstags) bin ich nach der Schule da extra mit dem Zug hingefahren. Ich habe immer zu Hause schon Programme auf Papier vorgeschrieben, damit ich sie vor Ort nur noch einzugeben brauchte.
Das waren KC85/1, monochrom, an diesen "Junost" Fernsehern, mit Kassettenrekordern zum Speichern/Laden.
Einen ersten eigenen Computer (KC85/4, 24 Farben (eigentlich 23)) bekam ich dann 3 Jahre später geschenkt. Computer waren so wahnsinnig teuer.
Schon ein Jahr später wurde es dann ein C64 (die "Wende" war schon durch), inklusive Monitor, Drucker, Floppydisklaufwerk.
Am PC programmiert habe ich dann erstmal auf dem Gymnasium, in dem, was man da so hochtrabend als das Fach "Informatik" bezeichnet hatte. (Ich und 2 andere Leute hatten mehr Ahnung als der Lehrer - die anderen Schüler konnten nicht mal tippen...) Das waren 286er, monochrom, an Bernsteinfarbe-Monitoren. Da habe ich mein erstes PC-Spiel (als "Projekt") gemacht... Raumschiffshooter in Textmode.... Mann war das eine Grütze. Ich habe aber eine 1+ bekommen...
Schlowski hat geschrieben:
Mein erster war ein 286er mit 10Mhz, 1MB RAM, Hercules-Graphikkarte und 20MB Festplatte, danach hatte ich alles vom 386er über 486er und die diversen Pentiums bis zum heute aktuellen Core-i7.
Zu Hause habe ich weiterhin auf C64 programmiert, bis Ende 1996 mein erster eigener PC dazukam. Ein Kumpel hat mir den aus alten Ersatzteilen zusammengebastelt (ich wollte meine am C64 selbst programmierte RS232-Schnittstelle mti 38400 Baud mal "gegentesten"). Es war ein 286er, glaub 10 MHz (weiß nicht mehr), mit 40 MB Festplatte, Original VGA-Grafikkarte (0,5 MB/s Datendurchsatz...) und ohne Soundkarte. Ich habe auf dem Ding sogar Monkey Island 1+2 durchgespielt - mit Tastatur und PC-Speaker! Maus kannte ich nicht. Bin auch heute noch nicht SO der Maus-Typ, weil mit Tastatur großgeworden.
Das wurde dann irgendwann ein 486er, erst 66, dann 100, jetzt aktuell 133 MHz und ein sehr schnelles Board. Grafikkarte ist jetzt eine bessere VGA+VESA Karte (Horizon64, mit einem ET4000 Chip). Soundkarte ist aktuell SB AWE64. Abgesehen von ein paar "Kleinteilen" habe ich noch nie irgendeinen PC irgendwo gekauft - meine ganzen Rechner sind Gebrauchtware, aus Ersatzteilen zusammengebaut. Inzwischen habe ich einen Kumpel, bei dem auf Arbeit öfter mal sowas abfällt und der baut mir daraus dann sowas zusammen.
Selbst mein Windows-Rechner ist nicht gerade ein aktuelles Modell.
Ich benutze da auch immer noch Windows XP (32bit). Wieso? Weil bei allem darüber keine 16bit-DOS-Programme mehr laufen. Sowas ist nicht verhandelbar.
Schlowski hat geschrieben:
Und immer, wirklich auf jeder Kiste, hab ich mich mit Assembler und Graphikroutinen beschäftigt, hab sogar ein paar Spiele fertiggestellt, aber immer nur für den privaten Bereich. Ich liebe es einfach, sowas wie eine Textausgaberoutine in Assembler zu erstellen. Das Erfolgserlebnis, wenn sie zum ersten Mal nach etlichen Fehlversuchen endlich das gewünschte Ergebnis auswirft. Und dann geht es erst richtig los - Optimierungen! Hier noch ein paar Zyklen, da noch etwas optimieren, einfach herrlich. Für mich ist das so entspannend wie für andere Leute im Garten zu puscheln oder Kreuzworträtsel zu lösen.
So geht es mir auch. Textausgaben in Grafikmode, Patterngrafik (also diese "tilebased"), Sprites...
Ich habe auch ein Format für Proportionalschrift entwickelt. Später auch erweitert um "4farbig" (also 3 Farben plus Hintergrund), hauptsächtlich, damit man die Schrift "weichzeichnen" kann (runde Stellen an Buchstaben wie O). Und natürlich die dazugehörigen Ausgaberoutinen gebaut (sonst würde es ja keinen Sinn machen).
Auf meine Sprites (obwohl in Pascal+ASM hybrid gemacht und die Routinen von 2004 sind und ich die eigentlich auch mal "neu machen" könnte) bin ich ein bißchen stolz:
Spritegrößen 1x1 bis 255x255, in jeder Kombination (also auch 74x113 oder so).
Entweder 16 (aus 256) oder 256 Farben (16-farbige brauchen nur halb soviel Speicher, klar)
Nutzen alternativer Paletten für die Farben.
Spiegeln in X- und Y-Richtung
Verkleinern/Vergrößern in 65536 Stufen (Beispiel: 256 = 1:1, somit 32 = 1/8, 1024 = 4x, ...)
"Zerren", um bei "kummen Auflösungen" (also die keine 1:1 Ratio haben) auszugleichen.
(Kann aber auch allgemein zum Zerren benutzt werden.)
Drehen in 256 Stufen (also 64 = 90°, 128 = 180")
Möglichkeit halbtransparenter Pixel in (theoretisch) 256 Stufen.
Optional 16-stufiges Dithern, um (gerade bei Vergrößerung) keine Quadratpixel zu haben, sondern geditherte Farbverläufe.
Optional Sprites "hinter" einer der Hintergrundebenen legen, so daß sie teilweise verdeckt werden.
(Das alles immer noch im 256-Farb-Mode.)
Eigentlich fällt mir, außer den Dingen, die meine Sprites sowieso schon können, kaum noch etwas ein, was man sonst noch mit Sprites anstellen könnte.
Passend zu den Sprites habe ich auch noch "Level-Routinen" gemacht, mit bis zu 4 hintereinanderliegenden (tilebased) Ebenen, die unabhängig voneinander bewegt werden können (eigentlich für Parallaxing gedacht, was die "Grundeinstellung" ist), ebenfalls mit der Option "halbtransparenter" Pixel.
Schlowski hat geschrieben:
Assembler für den X86 ist (nach dem RISC-Assembler für den Archimedes) wirklich immer wieder eine Herausforderung - welcher Befehl geht mit welchen Registern, welche sind implizit, welche Kombi braucht wie lange, und das alles noch ohne MMX, SSE und wie sie alle heißen, die hab ich bisher noch nie angefasst. Das ist wirklich ein endloses Feld von Optimierungsmöglichkeiten. Etwas erschwert durch Auswirkungen wie Cache-Hits/Misses, Alignments von Daten und Routinen, Wait-States von RAM und Graphikkarte etc.
Ja, mit so Kram murks ich auch rum. Die bekannte "ASM86FAQ.TXT" ist mir dabei eine große Hilfe - da kann man öfter mal Zyklen nachschlagen oder, wenn man mal wieder 386er-Befehle braucht, die Byte-Opcodes dafür ermitteln.
Schlowski hat geschrieben:
Daher bin ich sehr froh, dass ich jetzt einen echten P90 zu Hause habe, mit dem ich testen kann (Danke nochmal an Matze97). Emulatoren sind immer nur soweit zu gebrauchen, dass man auf erste Lauffähigkeit testen kann, aber wenn es dann ans Eingemachte geht, geht nichts über echte Hardware.
Genauso ist es. Ich programmiere ja auch immer noch direkt auf meinem 486er.
Schlowski hat geschrieben:
Apropos Hardware: Ich bin mit Leib und Seele eine Software-Mensch, zur Not könnte ich wohl noch einen PC von Grund auf zusammenbauen, hab das früher mit meinen ersten PCs auch gemacht, aber ich kann mich nicht wirklich für die Schrauberei und Bastelei begeistern. Zum Glück gibt es genügend andere Leute, die das anders sehen und keine Angst vor einem Schraubendreher haben.
So geht's mir auch. Ich finde es derzeit ein wenig schade, daß das DOSforum in letzter Zeit sehr "hardwarelastig" geworden ist. Nicht, daß ich etwas gegen Hardware hätte - die wird ja gebraucht. Aber mein Interessenbereich konzentiert sich doch mehr auf Software (und da auch mit Schwerpunkt Programmierung) und im Softwarefeld geht es hier auch mehr um Benutzen (Spielen/Anwenden) als um Selbermachen. Das macht es etwas schwerer, "Gleichgesinnte" zu finden, die wirklich noch auf der originalen Hardware originale Software bauen.
Schlowski hat geschrieben:
Zum Thema "Programmieren und das restliche Leben": Ich habe meine Leidenschaft zu meinem Beruf gemacht, bin Software-Entwickler und verdiene damit schon seit 25 Jahren mein Geld. War zwischenzeitlich mal selbständig, aber das war nichts für mich, bin seit ein paar Jahren wieder Angestellter und sehr glücklich und zufrieden damit.
Naja - beruflich könnte ich das nicht machen. Beim Programmieren bin ich nur dann wirklich gut, wenn mich das, was ich mache, auch interessiert. Im beruflichen Bereich müßte ich ja unter Windows & Co arbeiten und mit neuen komischen Methoden. Und nach Vorgaben zu programmieren würde mich auch in meiner Kreativität beschneiden. Und weil Programmieren zu den wenigen Dingen gehört, die mir noch Spaß machen, will ich bewußt vermeiden, etwas zu machen, was mir das auch noch verleidet.
Das einzige, was mich heute noch an aktueller Programmierung interessieren könnte, wäre so "Systemprogrammierung", also wenn für irgendwelche Geräte, die mit kleinen Chips mit wenig Speicher oder so auskommen sollen, in Assembler so Microcontroller o.ä. zu programmieren wäre.
Schlowski hat geschrieben:
Meine Lebensgefährtin weiß, dass ich ein Computer-Verrückter bin und durchaus eine erkleckliche Anzahl von Stunden auch zu Hause am PC verbringen möchte und akzeptiert das. Wir haben ein wie ich finde schönes Gleichgewicht gefunden zwischen gemeinsamen Aktivitäten (na, na, na, wer grinst da so ;-) ) und Zeiten, in denen man für sich was macht, das klappt ganz gut.
Ich habe keine Lebensgefährtin. Ich kann mir überhaupt nicht vorstellen, mit einem anderen Menschen zusammenzuleben. Ich kann mit den meisten anderen Menschen irgendwie überhaupt nichts anfangen.
Schlowski hat geschrieben:
Aber genügend Zeit hat man eh nie, könnte noch viel mehr Zeit am PC verbringen - andererseits sind Dinge ja häufig deswegen um so schöner, weil man eben nicht beliebig viel Zeit dafür hat, sondern sich die Zeit irgendwo abknapsen muss.
Das mag ja sein - aber wenn ich zwar Zeit habe, dann aber müde und unkonzentriert bin und trotzdem versuche, etwas Sinnvolles zu programmieren, schleichen sich da Fehler ein, die mir im "wachen" Zustand nie passiert wären. Und wenn ich dann wirklich mal Zeit UND Kraft habe, kann ich nichts neue programmieren, sondern bin damit beschäftigt, Zeug zu debuggen, das ich im o.g. halbkomatösen Zustand fabriziert habe - eine sinnlose Zeitverschwendung, die ich mir sparen will.
Allerdings trifft der Zustand Zeit UND Kraft bei mir immer seltener zusammen. Meine ganze Kraft wird von meinem derzeitigen Job aufgefressen, so daß ich selbst an Wochenenden meist zu müde und fertig bin und "Rücken habe".
Schlowski hat geschrieben:
Wieder zurück zum Thema VESA-Graphikroutinen: Ich hab mich bewusst gegen die 320x200 Auflösung entschieden, weil ich die für eher textlastige Spiele als einfach zu gering empfinde.
Ich liebe diese geringen Auflösungen aus mehreren Gründen. Einmal, weil natürlich die MODE-X Sachen einiges an Geschwindigkeit rausholen können durch spezielle Fummelei. Dann natürlich, weil man weniger Pixel braucht, um "eine Fläche zu füllen". Und dann auch, weil ich Spiele im Stil der späteren C64-Spiele und der SNES-Ära mag, auch wegen ihres Designs.
Schlowski hat geschrieben:
Ich spiele gern Rollenspiele, vor allem so schöne Oldschool-Spiele mit runden basierten Kämpfen und tilebased (kachelbasiert klingt einfach nicht...) Welten. Da geht es dann im allgemeinen immer darum, noch bessere Waffen und Rüstungen zu bekommen mit immer tolleren Extras und Werten - und sowas lässt sich bei 320x200 nicht so gut darstellen, bei 640x480 schon eher.
Darin unterscheiden wir uns. Mit Rollenspielen konnte ich noch nie irgend etwas anfangen, für mich eher langweilig. Ich mag "Action"lastige Spiele wie Jump'n'runs (Mario, Giana), Shoot'em'ups (R-Type, Katakis) , dann so Kombinationen aus beidem (Turrican, Earthworm Jim) - und dann natürlich noch Adventures (die einzige Art von Spiel, wo ich eine Maus als Eingabeeinheit akzeptiere, da wären natürlich alle Sachen von Lucas Arts/Lucasfilm Games zu nennen).[/quote]
Schlowski hat geschrieben:
Bis dahin habe ich noch einen weiten Weg mit meinen Routinen zu gehen, aber ein Anfang ist gemacht. Meine Spiele werden definitiv auch immer bestenfalls "fertig", aber nie fertig. Die restlichen 10 oder 20% machen meist keinen Spaß mehr sondern fühlen sich eher wie Arbeit, zumindest aber wie Hausaufgaben an, da verlässt mich die Motivation für private Projekte doch recht schnell.
Erstaunlich, wie ähnlich wir uns in vielen Dingen sind.
Es ist einfach so: Wenn die "schweren Sachen" gemacht sind und der Rest nur noch "Handwerkszeug" (von dem man sowieso weiß, daß man's kann), ist die Herausforderung weg - kein Rumfrickeln, keine Kreativität mehr, nur noch "fertig machen". Da hätte man dann gern einen Assi, der den Kram einfach noch "zusammenbaut und n Schleifchen drum macht".
Schlowski hat geschrieben:Und was immer fehlt ist Sound - da habe ich einfach keinen Zugang zu.
Ja, das ist haargenau wie bei mir! Fast alle meine PC-Games sind total still, habe nur 2 gemacht, die (SPEAKER!) Sound haben (mehrstimming, mit demselben "Trick", der bei XENON 2 benutzt wird, nur bei mir etwas "flüssiger" umgesetzt).
Ich habe mich immer eher als Programmierer gesehen und in Grafikprogrammierung bin ich einfach irgendwie besser.
Aber weil ich dies immer als störendes Problem angesehen habe, habe ich mich vor einigen Monaten (ja, leider MONATEN schon wieder) durchgerungen, eine Sound-Engine zu bauen. Sie ist zu 99,9% fertig in der ersten Version (Mono, ohne Filter). Ich will nur den einen Befehl noch irgendwann fertigmachen.
Der dazugehörige "Tracker" (so richtig "trackermäßig" ist er leider nicht, weil meine Musiken eher aussehen wie eine Art Assemblersprache) ist auch schon recht brauchbar, aber noch lange nicht fertig. Und ich werde mich wohl irgendwann breitschlagen lassen, auch noch einen alternativen Eingabemodus zu bauen, der dann (nach außen) wie ein Tracker wirkt (die internen Daten bleiben gleich), damit VIELLEICHT Leute, die etwas mehr Ahnung von Musik haben als ich auch bereit wären, mit dem Ding mal Musiken für meine Spiele zu machen. Meine eigenen "Kunstwerke" sind auch eher so "formelhaft", ich mache Musik wie ein Mathematiker...
Die Soundengine ist direkt für die Nutzung in Spielen konzipiert, z.B. mit einem "Interface", um Musiken und Soundeffekte zu starten/mischen. Insgesamt 16 Stimmen, ich denke, das reicht. Eine Besonderheit ist, daß es sowohl digitale Klangsynthese als auch Samples gleichzeitig nutzen kann - bei ersterem habe ich mich etwas an den Fähigkeiten des SID (C64-Soundchip, falls das WIRKLICH jemand nicht weiß...) orientiert - das heißt: Ja, es gibt programmierbare Hüllkurven.
Schlowski hat geschrieben:
Ok, meine Graphiken sind auch nie hübsch und meistens nur irgendwo anders her geholt (ich habe im Laufe der Jahre diverse RPG-Maker angesammelt, die alle hübsche Tilesets mitbringen), aber die könnte ich notfalls und mit viel Geduld noch irgendwie mit Bordmitteln hinbringen,
Zum TESTEN meiner gebauten Grafikprogramme (Malprogramme, Level-/Spritebuilder) nehme ich schonmal irgendwelche Grafiken aus irgendwelchen Bildern. Aber ich kam noch nie auf die Idee, fremde Grafiken in eigenen Projekten zu verwenden. Meine Grafikfähigkeiten sind, naja. eher so "mittel". Auf einer Skala von 0 bis 15 (mit 0 = Strichmännchen und 15 = DaVinci oder wasweißich) würde ich mich bei 5-6 sehen, kommt drauf an, wie ich in Form bin und WAS gezeichnet werden soll. Bei TIEREN bin ich z.B. total schlecht, habs noch nie in meinem Leben geschafft, ein Pferd zu zeichnen. Gegenstände und Menschen (oder irgendwelche Monster) krieg ich inzwischen recht brauchbar hin.
Schlowski hat geschrieben:
aber bei Sound und Musik verlässt es mich total, da habe ich einfach kein Ohr und kein Gefühl für.
Naja, bei Sound lasse ich mich manchmal inspirieren von Sachen, die ich gern höre - obwohl ich zu den (wenigen) Menschen gehöre, die so gut wie nie Musik hören. In meiner Bude ist nie irgend ein musikerzeugendes Ding an, während ich etwas anderes mache. Und wenn ich WIRKLICH mal Musik höre, dann höre ich NUR Musik - ohne etwas anderes zu machen. Ich bin wie DOS: Alt und kein Multitasking.
Schlowski hat geschrieben:
Und was die Zielgruppe angeht, da habe ich schon vor einiger Zeit aufgehört, mir Gedanken drum zu machen. Ich bringe es bei mir zum Laufen, ob es dann woanders auch läuft, ist mir relativ egal, einfach weil ich weiß, dass das Programm zu 99,9% meinen PC nie verlassen wird.
Naja, ich programmiere immer so, daß es auch auf anderen (DOS)-Rechnern mit anderen Grafikkarten noch läuft. Lauffähigkeit unter Windows (XP32bit)... ja, wenn es keine Umstände macht.
Die ET4000 hat teilweise so coole Tweaked Modes, daß ich es schade finde, daß diese nicht "allgemein" auf VGA-Karten funktionieren. Ich habe da mal einen 256-farbigen Textmode gefunden, den fand ich dermaßen geil, daß ich ihn am liebsten für ein Spiel benutzt hätte. Leider funktioniert er wohl nur auf der ET4000 (oder vielleicht auch anderen ETx000) so, auf anderen Grafikkarten sieht es komisch aus oder geht gar nicht.
Erklärung: Irgendwie so ÄHNLICH wie der "Multicolor" Mode beim C64:
zwei nebeneinanderliegenede Bits des Zeichens ergeben eine von 4 möglichen Farben. Die 4 Farben werden aus dem Farbbyte genommen. Wenn das Farbbyte den Code $4C enthält (also normal Hintergrund=$4, Schrift=$C), wird daraus in diesem Mode das:
Bitkombi Farbe
00 $CC
01 $C4
10 $4C
11 $44
D.h. es sind die Farben $CC, $C4, $4C und $44 aus der gesetzten 256-Farbpalette möglich! Diese kann man in diesem Mode auch setzen, so als wäre man im Grafikmode.
Wenn man die Palette geschickt verwendet, könnte man damit ein total schickes Spiel IM TEXTMODE machen (die meisten C64-Spiele sind ja auch im Textmode, fällt mit modifiziertem Zeichensatz und Multicolor nur nicht mehr so auf). Da auch die VGA-Karte, genau wie VIC (C64-Grafikchip) diese "Softscroll"-Register hat, mit denen man das Bild pixelweise verschieben kann, könnte man.... Ach ja, was man nicht alles könnte...
Schlowski hat geschrieben:
So wie jetzt, wo ich für DOS und VESA 2.0 im Flat Real Mode programmiere - das wird außer einer handvoll Enthusiasten eh keiner mehr bei sich auf richtiger Hardware so zum Laufen bringen.
Also bei mir würde es wohl mit an Sicherheit grenzender Wahrscheinlichkeit laufen. Meine Kiste ist ja quasi geradezu ideal dafür.
Schlowski hat geschrieben:
Bliebe noch die DOSBox, aber seien wir mal ehrlich, da kann man dann auch zu einer Riesenauswahl an kommerzieller Software für wenig Geld greifen, dank GoG und Humble wird man ja geradezu dicht geworfen damit - da sind die Chancen, dass mein kleines Heimprojekt irgend wen anspricht auch eher gering.
Ja, genau das finde ich auch. Und den Leuten, für die das nur "Retro" und eine Modeerscheinung ist (und die sowieso jede Modeerscheinung mitmachen) ist es ja der Mühe nicht wert, das RICHTIGE Zeug zu haben, sondern es reicht denen, wenn es auf ihrer ultra-überkandidelten Hardware so AUSSIEHT - also daß ein 2D-Jump'n'Run zwar so aussieht wie anno 1988, aber im Gegensatz zu 1988 dafür heute 3 GHz Quadcore CPU und 8 GB RAM braucht... - (also wenn ich SO "Coden" würde, würd ich mich schämen, mich Programmierer zu nennen...)
Schlowski hat geschrieben:
Aber das stört mich auch nicht, dafür kann mich hier mit ein paar Gleichgesinnten auszutauschen, das macht für mich den Reiz des Retro-Computing aus.
Naja, mir geht's nicht um "Retro". Retro wäre es für mich, wenn ich es früher mal gemacht, dann aufgehört und jetzt aus nostalgischen Gründen wieder damit angefangen hätte mit einem "guck mal wie komisch das damals alles war" Gefühl. Aber ICH habe ja nie wirklich damit aufgehört - bin all die Jahre ja dabeigeblieben (bei meinem alten Sch...-- Kram).
Schlowski hat geschrieben:
Ich kann inzwischen auf dem Computer Dinge tun, die vor 25 Jahren "cooler Kram" gewesen wären. Aber die Zeit schreitet voran und ich mag (und mache) immer noch die Dinge von vor 25 Jahren... (So dass der einzige, der das vielleicht noch "ein wenig cool" findet, wohl nur ich selbst bin...)
Aber nicht doch, mir geht es genauso und damit sind wir schon 2
Ja, es gibt bestimmt auch noch mehr. Wir unterscheiden uns zwar in einigen wenigen Dingen, aber im Allgemeinen sind wir uns in vielen Dingen recht ähnlich. Sogar in den verwendeten Sprachen: Pascal und Assembler.
Gibt es eigentlich irgendeine Stelle, wo man von Dir programmiertes "Zeug" (Spiele, Tools, Testprogramme) herunterladen kann? Ich interessiere mich immer für die Arbeit meiner "Programmiererkollegen", vor allem natürlich im DOS-Bereich.
Schlowski hat geschrieben:Du siehst, bei dem Thema gerate ich auch ins Schwärmen und Schwafeln, ich breche das hier lieber erstmal ab, sonst komme ich noch vom Hundertsten ins Tausendste...
Ja, auch das haben wir gemeinsam...