Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

21

18.08.2012, 22:11

"Schwer" ist es prinzipiell nicht. Aber eben wesentlich mehr Aufwand, als bei einem einzelnen Funktionsaufruf ein Flag umzusetzen.

Mastermind

unregistriert

22

18.08.2012, 22:36

Wieso sollte das so schwer sein?
Eigentlich muss man ja "nur" den Back-Buffer durch eine andere Surface ersetzen, dann vor dem Anzeigen hochskalieren und in den echten, größeren Back-Buffer reinkopieren.
Sicherlich liegt der Teufel im Detail und wartet auf einen mutigen Programmierer, um ihn zu terrorisieren, aber prinzipiell erscheint mir das sehr machbar.


Ich habe mich gefragt ob es wohl Probleme gibt den Input zu verarbeiten. Weil man ja plötzlich auf Stellen klicken kann, wo in der Originallogik einfach nichts war.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

23

19.08.2012, 07:46

Ja, das ist mir später auch noch eingefallen :)
Dann müsste man ggf. noch DirectInput durch eine Fake-DLL ersetzen (falls das Spiel das benutzt).

24

30.08.2012, 23:00

Hallo.
Also ich melde mich hier nur, weil Micha hier schon so viel diskutiert hat und ich möchte, für diejenigen die es interessiert, ein paar Dinge vielleiecht klarer stellen.

Ich bin Herbie, der Programmierer der für Micha seinen "Wrapper" angepasst hat damit er damit Peoples General spielen kann. "Wrapper" ist hier nicht ganz der richtige Begriff. Ich benutze zwar auch einen Wrapper, um DirectDraw Spiele mitzuloggen aber eben nur für diesen Zweck. Meine DLL, die Micha benutzt, ist eine Neuimplementierung der DirectDraw-DLL. Natürlich nicht vollständig, sondern nur die Dinge, die von den Spielen die ich laufen lassen will, auch benutzt werden. Da Micha kein Programmierer ist haben wir es der Einfachheit halber bei dem Begriff Wrapper belassen.

Ursprünglich habe ich meine DLL für das Spiel Panzer General 3D geschrieben, weil das auf modernen Rechnern ohne Hilfsmittel nicht spielbar ist, ich jemanden kenne der das Spiel sehr gerne spielt und alle mir bekannten Lösungen für das Spiel irgendwelche Fehler bzw. Mängel aufweisen. Ich selbst bin kein großer Spieler und interessiere mich eigentlich auch nicht für Spieleprogrammierung :D . Ich habe aber Spaß daran Dinge zu verstehen und DirectDraw schien mir so einfach zu sein das es sich lohnt das ganze auseinander zu nehmen und die Funktionalität nachzubilden.
Die Implementierung verwendet ausschließlich GDI für die Grafikaufgaben. So wie ich das verstehe macht DirectDraw auch nichts anderes.

Das ich Antialiasing in das Spiel eingebaut habe, ist vielleicht etwas übertrieben. Zumindest bin ich mir nicht sicher ob ich es so bezeichnen würde. Ich habe mir lediglich einen Algorithmus zur einfachen Kantenglättung der Außenkanten der Spielgrafiken ausgedacht und implementiert. Das Spiel arbeitet ja mit entweder 100% transparenten Pixeln und oder 0% transparenten Pixeln. An den Übergängen zwischen den Spielgrafiken und dem Hintergrundbild führt meine DLL eine Glättung durch, indem sie Pixel einfügt die sich aus den Farben der umliegenden Pixel und der Farbe des darunter liegenden Hintergrundpixels zusammensetzt. Das Ganze war nur eine Spielerei, weil ich nicht wirklich verstanden habe, was sich Micha unter Antialiasing bei einem 2D-Spiel vorstellt, aber da es Micha gefallen hat habe ich es drinnen gelassen.

Tja und nebenbei spricht er immer von höherer Auflösung und ich versuche ihm immer wieder klar zu machen, dass das nicht wirklich geht ohne die Grafik auszutauschen und extrem viel Arbeit in die Programmierung zu stecken, weil ich nichts habe außer die normalen DirectDraw-Funktionsaufrufe des Spiels.
Die letzte Idee war dann das einfache hochskalieren über HQ2X oder etwas Ähnliches. Das Spiel benutzt übrigens kein DirectInput und wenn ich mich recht erinnere kann ich über die WndProc Funktion in meiner DLL die Click-Events der Maus abfangen oder auch manipuliern. Ich könnte also die Mauszeigerposition in den entsprechenden Nachrichten einfach "runterskalieren". Bis jetzt habe ich mich damit noch nicht allzu intensiv beschäftigt, weil mein Ziel eigentlich nur ist DirectDraw möglichst gut und fehlerfrei nachzubilden, damit möglichst viele Spiele unter Windows 7 und co. so laufen wie auf alten Rechnern. Wenn ich Zeit finde, werde ich für Micha vielleicht erst mal EPX einbauen. Das sollte nicht allzu viel Zeit in Anspruch nehmen und er gewinnt einen ersten Eindruck was so eine Skalierung für das Spiel bedeutet. Ich bevorzuge die Originalgrafik.

Danke für die Anregungen und Antworten, die ihr Micha gegeben habt. Wenn ich Fragen haben sollte, werde ich mich in diesem Forum nochmal melden.

Gruß Herbie

Micha6162

Frischling

  • »Micha6162« ist der Autor dieses Themas

Beiträge: 13

Wohnort: Zeitz

Beruf: Musiklehrer

  • Private Nachricht senden

25

24.11.2012, 15:00

Wrapper ist fertig

Hallo, es hat sich der Programmierer Sven Labusch zu dem Projekt gesellt und der Wrapper ist fertig und läuft super.

http://www.panzercentral.com/forum/viewt…tart=50#p709824



Vielen Dank für alle Tips.



Micha

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Micha6162« (25.11.2012, 00:57)


David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

26

24.11.2012, 15:11

Kannst du mal einen Vorher-Nachher-Vergleich zeigen?

Micha6162

Frischling

  • »Micha6162« ist der Autor dieses Themas

Beiträge: 13

Wohnort: Zeitz

Beruf: Musiklehrer

  • Private Nachricht senden

27

25.11.2012, 01:09

Vergleich

Bitte auf die Bilder klicken damit sie grösser werden. Am deutlichsten sieht man den Unterschied an der Schrift.



(Link)




(Link)



Auf dem Screen sieht man den Unterschied wesentlich deutlicher. Mancher wird sich fragen ob dieses etwas schärfere Bild diesen Aufwand wert war. Als absoluter Fan dieses Spiels kann ich nur sagen : ja !

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Micha6162« (25.11.2012, 11:32)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

28

25.11.2012, 11:33

Ich kann auf den Bildern keinen Unterschied erkennen.
Könntest du die Bilder vielleicht nochmal weniger verlustbehaftet hochladen?
Für Screenhots ist Jpeg denkbar ungeeignet. ;)

Micha6162

Frischling

  • »Micha6162« ist der Autor dieses Themas

Beiträge: 13

Wohnort: Zeitz

Beruf: Musiklehrer

  • Private Nachricht senden

29

25.11.2012, 22:21

Hallo ,

hier ist der Wrapper

http://www.svenswrapper.de/english/other.html

Und hier das Spiel

http://www.pegww2.net/Pages/install.htm

geht mit jeder Variante, bitte selbst probieren.

Das Spiel hat bereits eine nicht so schlechte Auflösung, dadurch wird es nur etwas klarer.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Micha6162« (26.11.2012, 08:13)


Micha6162

Frischling

  • »Micha6162« ist der Autor dieses Themas

Beiträge: 13

Wohnort: Zeitz

Beruf: Musiklehrer

  • Private Nachricht senden

30

10.12.2012, 11:04

Vorher-nacher Screenshoots

http://rapidshare.com/files/1607376449/S…%2010_43_13.bmp

http://rapidshare.com/files/4178256509/S…%2010_47_09.bmp


Die Screenshots am besten in 2 Explorerfenstern öffnen und zwischen ihnen umschalten.
Um einen Unterschied zu sehen muss man den Wrapper aus dem Spiel entfernen. Wenn man ihn nur abschaltet sieht man keinen
großen Unterschied.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Micha6162« (10.12.2012, 11:22)


Werbeanzeige