GameEngine (2D)

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GameEngine (2D)

Beitrag von Kaeru Gaman »

darius676 hat geschrieben:Welche Bildschirmauflösung verwendest Du? "LUCY" skaliert automatisch nach oben oder unten. die "Basis" ist 1680 x 1050
sollte nicht so "grob" aussehen bei dieser Auflösung oder bei 1400*900 usw.
wie genau machst du das?
sieht aus wie ne Fullscreen-Umschaltung, also fragst du vorher die Desktopmaße ab und öffnest den Screen dann so?
wie skalierst du denn dann?

die Methode der Skalierung macht sehr viel aus.
aber immerhin ist das eine Erklärung, warum das auf meinen 1920x1080 so holprig wirkt.

eine feste Basis in der Engine halte ich für weniger gut, die Basis sollte höchstens in der Anwendung gesetzt werden.
weitergehend ist es wohl nicht so prickelnd das Ganze auf WideScreen festzuschrauben.
sehr viele Systeme displayn noch auf 4:3 bzw 5:4.
ich hab mal eben testweise meinen Desktop auf 1280x1024 umgestellt, und siehe da, das Bild wird tatsächlich gestaucht.
das geht so garnicht, du musst also auf jeden Fall das Seitenverhältnis ermitteln.
(macht aber echt keinen Spaß zu testen, ich treff kaum das blöde "start", die Maus musst du echt schleunigst ändern, sorry)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
darius676
Beiträge: 502
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: GameEngine (2D)

Beitrag von darius676 »

danke für die info.


bildschirmformat ist egal. 4:3 oder 16:10 usw.

die engine nimmt als basis das in einer der ini dateien hinterlegte format(meine auflösung zu hause bei der entwicklung) und der skaler errechnet sich aus dem faktor des benutzten/aktiven bildschirms zu der von mir benutzten basis und wird beim laden der objekte aktiv. vielleicht kommt später eine durch den benutzer auswählbare bildschirmauflösung dazu. (mit obergrenze)
es werden alle bildschirminhalte die auf grafik basieren umgerechnet und auch ihre positionen am bildschirm der neuen/anderen desktopauflösung angepasst.

ich bin ein "alter" konsolen spieler und versuch daher eine umgebung zu schaffen die ohne benutzereinstellungen zur laufzeitumgebung zurechtkommt.
Benutzeravatar
darius676
Beiträge: 502
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: GameEngine (2D)

Beitrag von darius676 »

Kaeru Gaman hat geschrieben:
darius676 hat geschrieben:Welche Bildschirmauflösung verwendest Du? "LUCY" skaliert automatisch nach oben oder unten. die "Basis" ist 1680 x 1050
sollte nicht so "grob" aussehen bei dieser Auflösung oder bei 1400*900 usw.
wie genau machst du das?
sieht aus wie ne Fullscreen-Umschaltung, also fragst du vorher die Desktopmaße ab und öffnest den Screen dann so?
wie skalierst du denn dann?

die Methode der Skalierung macht sehr viel aus.
aber immerhin ist das eine Erklärung, warum das auf meinen 1920x1080 so holprig wirkt.

eine feste Basis in der Engine halte ich für weniger gut, die Basis sollte höchstens in der Anwendung gesetzt werden.
weitergehend ist es wohl nicht so prickelnd das Ganze auf WideScreen festzuschrauben.
sehr viele Systeme displayn noch auf 4:3 bzw 5:4.
ich hab mal eben testweise meinen Desktop auf 1280x1024 umgestellt, und siehe da, das Bild wird tatsächlich gestaucht.
das geht so garnicht, du musst also auf jeden Fall das Seitenverhältnis ermitteln.
(macht aber echt keinen Spaß zu testen, ich treff kaum das blöde "start", die Maus musst du echt schleunigst ändern, sorry)
hi!

Möglicher "workaround" bis ich wieder zum programmieren komme:

Probier bitte folgendes:

Die Grafik für den Titelbildschirm Cursor hat die TILE6.dll (glaub ich jetzt, sitz nicht zu hause am rechner)
zu finden in _DATA/
kannst Du selbst überprüfen (drück im laufenden Spiel [;] Taste dan erscheint am oberen bildschirmrandein teile der objektliste und auf den objekten die nummer ....
öffne diese bitte mit EDITOR oder ähnlichen und ändere folgende Werte:
worldFTileMouseEMu...oder so auf 0
und worldFTileHWMouse auf 1
weiters kannst Du worldFTileVELO auf 0 oder 1 setzten

dann sollte das funktionieren.

PS: das Spieler Raumschiff hat die TILE13.dll (hoffe ich )
da auch die worldFTileMouseSW oder so auf 0und worldFTileHWMouse auf 1
bei worldFTileVelo wenn nötig auf 1


die Engine verwaltet die grafiken auf grund der in den TILExxx.dll hinterlegten Daten, so könntest du auch einen "strauch" zum UFO / Gegner machen....
Benutzeravatar
darius676
Beiträge: 502
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: GameEngine (2D)

Beitrag von darius676 »

Kaeru Gaman hat geschrieben:
darius676 hat geschrieben:Welche Bildschirmauflösung verwendest Du? "LUCY" skaliert automatisch nach eine feste Basis in der Engine halte ich für weniger gut, die Basis sollte höchstens in der Anwendung gesetzt werden.
weitergehend ist es wohl nicht so prickelnd das Ganze auf WideScreen festzuschrauben.
sehr viele Systeme displayn noch auf 4:3 bzw 5:4.
ich hab mal eben testweise meinen Desktop auf 1280x1024 umgestellt, und siehe da, das Bild wird tatsächlich gestaucht.
das geht so garnicht, du musst also auf jeden Fall das Seitenverhältnis ermitteln.
(macht aber echt keinen Spaß zu testen, ich treff kaum das blöde "start", die Maus musst du echt schleunigst ändern, sorry)
Du verwendest einen 16:10 Bildschirm? Kann es da nicht sein dass, dieser "staucht" bei einer Vollbildanwendung (Fullscreen)
wenn diese nicht 16:10 (9) ist?

Hilf mir da mal weiter weil ich nur 16:10 Schirme besitze.

Danke.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GameEngine (2D)

Beitrag von Kaeru Gaman »

du hast jetzt garnicht beantwortet, ob du einen Fullscreen oder einen Maximized WindowedScreen verwendest.
und welches Verfahren du zum Skalieren verwendest auch nicht.
bildschirmformat ist egal. 4:3 oder 16:10 usw.
yup, deiner Engine ist es egal und genau das sieht panne aus.
eine verzerrte Grafik find ich halt scheußlich.
wenn du bei ner Playstation ein Game reinschiebst, wird das auch nur verzerrt dargestellt wenn du deinen Fernseher nicht eingestellt hast oder der die Umschaltung garnicht kann.
das ausgangssignal der Console trägt sehr wohl eine Signatur ob es auf 16:9 oder auf 4:3 möchte.

Es spricht nichts gegen den Plug-And-Play Gedanken, den auch eine Konsole bietet, aber die Herangehensweise ist auch wichtig.
einfach das bei dir zuhause laufende und ziemlich ungewöhnliche Format von 1680x1050 der Engine und
damit dem Programmierer der die Engine benutzt aufzuzwingen, halte ich für die schlechteste aller möglichen Lösungen.

auch auf dem PC ist es lösbar, das völlig ohne Benutzerkonfiguration ablaufen zu lassen, aber da muss man halt etwas mehr aufwand treiben.


[EDITH]
Du verwendest einen 16:10 Bildschirm? Kann es da nicht sein dass, dieser "staucht" bei einer Vollbildanwendung (Fullscreen)
wenn diese nicht 16:10 (9) ist?

Hilf mir da mal weiter weil ich nur 16:10 Schirme besitze.
hilf du mir erstmal indem du endlich preisgibst wie du überhaupt den Screen erzeugst und darstellst.
mein Bildschirm staucht nicht, wenn man einen Fullscreen in einem Darstellbaren Modus öffnet.
wenn ich 1024x768 aufmache, bekomme ich links und rechts schwarze Balken wie sich das gehört.
und bitte benutz mal den Edit-Button, drei Posts in Folge muss nicht sein.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
darius676
Beiträge: 502
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: GameEngine (2D)

Beitrag von darius676 »

die Engine setzt nicht diese Auflösung voraus sie nimmt diese in meinem Fall als Basis, da meine Entwicklungsauflösung und Umgebung so aufgebaut ist.

Noch sind viele Vorhaben nicht komplett in die Tat umgesetzt. Da diese Engine nicht auf ein Genere reduziert ist und "universelle" Ansätze hat dauert es natürlich bis Alles so läuft wie ich es und sicher alle gern hätten.
(wenn Du möchtest ändere die Zahlenwerte in den zum Objekt gehörenden Tilex.dll in _DATA/ und teste das Ergebnis aus)

auf jedenfall ist es für mich in erster linie einmal wichtig daten aus der "freien natur" zu sammeln und dann eine lösung anzubieten umzusetzten. auch wenn ich schon etwas ärger aus den posts lese?


:coderselixir:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GameEngine (2D)

Beitrag von Kaeru Gaman »

in der Tat, weil ich keine Grund sehe, warum du meine Interessenfrage nach deinem Verfahren nicht beantwortest.
wenn ich dir einen Rat geben soll, wie du etwas besser lösen kannst, ist es unabdingbar, dass ich weiß, wie du etwas jetzt löst.

aber ist auch egal, wenn dich dieser Punkt so überhaupt nicht interessiert, dann brauche ich mir ja auch keine Gedanken drum zu machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GameEngine (2D)

Beitrag von Kaeru Gaman »

alles was ich zu der Frage finde ist das hier:
darius676 hat geschrieben:die engine nimmt als basis das in einer der ini dateien hinterlegte format(meine auflösung zu hause bei der entwicklung) und der skaler errechnet sich aus dem faktor des benutzten/aktiven bildschirms zu der von mir benutzten basis und wird beim laden der objekte aktiv. vielleicht kommt später eine durch den benutzer auswählbare bildschirmauflösung dazu. (mit obergrenze)
es werden alle bildschirminhalte die auf grafik basieren umgerechnet und auch ihre positionen am bildschirm der neuen/anderen desktopauflösung angepasst.
da ist nicht drin enthalten, ob du nen fullscreen mit den desktopmaßen öffnest.
das hatte ich bereits direkt gefragt, und es wäre zumindest höflich von dir gewesen, wenn du das nicht einfach ignoriert hättest.

darin etwas versteckt ist ausgesagt, dass du jedes einzelne Grafikelement skalierst.
sehe ich das richtig? musste ich zwei mal lesen um das zu verstehen, weil ich nicht drauf gekommen wäre.
das ist recht umständlich und fehlerträchtig.
auch hier sagst du allerdings nicht, wie genau du das machst, was maßgeblich für die Qualität des Ergebnisses ist.

Mein Ansinnen war also, dass ich dir mit diesem Kernproblem helfen wollte, was neben der Maussteuerung das problematischste an deiner Engine ist.
Es hat mich eben nicht sonderlich erfreut, dass du den Anschein machtest, meine Fragen größtenteils zu ignorieren.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
darius676
Beiträge: 502
Registriert: 08.03.2010 22:12
Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X
Wohnort: AT
Kontaktdaten:

Re: GameEngine (2D)

Beitrag von darius676 »

Fullscreen.
Auflösung wird vom Desktop übernommen.
Grundsätzlich geht es mir darum Feedback zu erhalten was funzt und was nicht. dies wird dann von mir sobald Zeit, entsprechend umgesetzt. deshalb muss ich doch nicht sämtliche "interna" des Grafiksystems so wie der Objektverwaltung meiner Engine preisgeben?



in den ini dateien (dateiname.env) ist alles enthalten was die engine zum start benötigt.
Dokumentation folgt.




Zur Maussteuerung:Da ich noch keine Möglichkeit hatte dies anzupassen.(nicht zu hause) hab ich dir doch die Info betreffend der TILE.dll
gegeben. Da die Engine mit diesen Daten arbeitet ist es möglich das Verhalten der Objekte zu verändern. betrifft auch die "Maus"

diesen Fehler wie du ihn beschreibst kann ich nicht feststellen und daher war es mir wichtig darüber informiert zu werden was
Probleme macht.
"Maus" lässt sich "weich" und schnell kontrollieren.
wird eher ein Performanceproblem sein dein Rechner hat sicher mehr Power und da muss ich halt noch eine Lösung einbauen.
Im Moment wird ohne Rücksicht auf FPS gerechnet. Nur Flipbuffers(). Wenn deine Rechner viel schneller ist, kann ich dir zum jetzigen Zeitpunkt nur den Tip geben: worldFTileVELO bei TILExxx.dll ich glaub Tile6.dll) für den "MAUSCURSOR" auf einen niedrigen Wert >0 zu setzen

Danke für dein Feedback.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GameEngine (2D)

Beitrag von Kaeru Gaman »

für mein Empfinden "funktioniert" eine Grafikausgabe "nicht richtig", wenn der Inhalt unschön skaliert und das Seitenverhältnis verzerrt wiedergegeben wird.
insofern handelt es sich bei dieser Problematik um ein Kernproblem. aber das ist meine Sichtweise, die musst du ja nicht teilen.


auf das Mausproblem wollte ich dich lediglich ausdrücklich hinweisen.
wann du dich drum kümmern kannst liegt natürlich an deinem Terminplan und ist nicht so tragisch.

das Umschalten von EMUMousePointer auf HWMousePointer eliminiert das Problem natürlich komplett, war ja zu erwarten.

wenn ich allerdings lediglich die VELO von 16 auf 4 runterschraube, verkleinert sich das Problem nur, verschwindet nicht ganz.
bei 16 sind die anliegenden Bewegungsschritte wesentlich größer als 16pix, bei 4 wesentlich größer als 4pix.
das muss kein Geschwindigkeitsproblem sein, weil ein Fullscreen eigentlich mit dem Refresh des Monitors läuft, und meiner läuft mit festen 60Hz.
ich halte es für wahrscheinlich, dass auch das ein skalierungsproblem ist, möglicherweise mit einer Nachkommastellenkorruption deines Skalars zusammenhängt.

also grundsätzlich:
Natürlich ist es deine Sache, worum du dich wann kümmern willst, aber ich habe den Eindruck dass die Skalierungs-Geschichte ein schwerwiegendes Problem deiner Engine ausmacht.
wenn du stets auf der selben Auflösung entwickelst und testest fällt dir das natürlich überhaupt nicht auf.
compilier dir mal auf jeder Auflösung die dein Desktop kann eine Version und teste die mit jeder Auflösung gegen, dann bekommst du eher einen Eindruck.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten