TrumEngine: Entwurf

In diesen Bereich gehören alle Themen, die bei der Entwicklung etwas mit Grafik und Design zu tun haben
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
phpbb forum styles
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

noch ne Frage: In Opera und Firefox sind Mausgesten ja mittlerweile sehr beliebt und ich nutze die selbst sehr gerne. Das BotF Rechtsklickmenü war ja im Grunde genommen nichts anderes. Gibt es ne Möglichkeit den Rechtsklick so doppelt zu belegen, dass er einerseits Routenplanungen auf der Galaxymap abbricht und andererseits bei Gedrückthalten das Rechtsklick aufmacht? Oder auch letzteres bei Kurzdrücken je nach Mausposition, sprich wenn nicht gerade Routenplanung auf Galmap?
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: 2D-Engine

Beitrag von Sir Pustekuchen »

Das kann ich dir nicht genau beantworten, denke aber nein. BotE wird bekanntermaßen in vier Einzelfenster zerlegt. In jedem einzelnen könnte man das Rechtklickmenü anzeigen. Es kann aber nicht über ein Fenster hinausgehen. Beispiel: Klickt man im linken Auswahlmenü, so kann das Rechtsklickmenü auch nur in diesem Menü angezeigt werden und kann nicht in die Galaxieansicht hineinragen. Man müsste dann ein Fenster über alle einzelnen Fenster legen, welches nur für die Anzeige des Rechtsklickmenüs zuständig ist. Ob das geht weiß ich aber nicht.
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

so wie ich bomml's Konzept verstanden habe, gibt es globale Koordinaten, also könnte es mit directx gehen. Ansonsten lassen wir eben das menü nur im großen galaxy map view feld gelten. Das reicht ja im grunde.
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: 2D-Engine

Beitrag von Sir Pustekuchen »

Ich bin trotzdem gegen das Menü. Das bringt den Rest komplett durcheinander und alles wirkt nicht mehr konsistent. Man muss ja nicht alles nachmachen. Wenn ein Menü, dann überall. Aber an der generellen GUI will ich nix mehr verändern. Hab so schon wenig Zeit und wenn ich solches Zeugs noch anfange, dann gehts mit BotE ja nie weiter :-(
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

Dachte da mehr an bomml, falls er das tun will. Und überhaupt, man braucht ja nicht gleich ein visuelles menü. Die Mausgesten in Opera funktionieren auch "unsichtbar". Heut sind die User anderes gewohnt als noch vor 8-9 Jahren. Denke, dass man verschiedene Kommandos wie ne Art Tastaturkürzel schnell verinnerlicht und nicht mehr missen will. D.h. man müsste eine Abfrage danach schreiben, ob die Maus gedrückt und bewegt wurde mit ein wenig Fuzzy logic nehm ich an.
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: 2D-Engine

Beitrag von TrommlBomml »

Malle hat geschrieben:so wie ich bomml's Konzept verstanden habe, gibt es globale Koordinaten
wenn du so meinst, dass wenn wir von der vierteilung sprechen, dass oben links 0,0 ist und unten rechts maxclientX-1,maxclienty-1, da muss ich sagen das ist zurzeit NICHT so. bis jetzt hat jeder ausschnitt sein eigenes lokales coordsystem, das umzustellen bzw. beides anzugeben ist möglich, wenn ihr das so wollt.
Dachte da mehr an bomml, falls er das tun will.
bezieht sich das jetzt nur auf inputs oder auch die visuellen sachen? die entwickllung einer GUI ist möglich, dauert aba ne ecke länger. und da würde ich auch sagen, bleibt erstma bei dem was ihr habt.

und was meinst du mit mausgesten?

Edit: die ersten tests mit der engine sind abgeschlossen. ich werde jetzt mal das erste kleine tutorial hier posten (evtl. verschiebt es in einen extra thread, damits übersichtlicher bleibt). folgende dinge habe ich fertiggestellt (grundfunktionen):

CSprite
CViewport
CGraphicDevice
CD3DResourceManager
CD3DResource

deswegen wird sich das tutorial auf das verwenden von CGraphicDevice und CSprite, sowie den umgang mit Viewports beschränken.

PS: ööhhhh, wie isn das mit nem namen für die engine? ich bin da immer so schrecklich unkreativ^^
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

nur auf inputs.

Mausgesten sind Bewegungen mit der Maus bei gedrückter rechter Maustaste (sowas wie Tastaturkürzel alt+i z.B.). http://de.wikipedia.org/wiki/Mausgeste

Der Vorteil ist, dass man blitzschnell per drücken, kurz bewegen und loslassen UI-Aktionen initiieren kann wie z.B. das Umschalten aufs intel-menü oder das zurückkehren zum letzten Menü, aus dem man gerade kam falls man sich verklickt hat.

Im Grunde interessiert da nicht die momentane Koordinate (die würde nur bei einem richtigen popup-menü interessieren, was botf hatte damals), nur die relative Bewegung und dass man nicht gerade ganz am Rand gestartet ist.
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: 2D-Engine

Beitrag von Sir Pustekuchen »

Ich finde es super verständlich. Also wenn schlußendlich alles so einfach einzubauen geht, dann kann BotE relativ schnell auf D3D umgestellt werden. Dein Beispiel funzt auch, nachdem ich manuell die d3dx9_30.dll Datei hinzugefügt habe.

Wenn ein paar zusätzliche Tutorials hinzugekommen sind, dann werde ich einen extra Bereich dafür eröffnen. Als Enginename fällt mir auch nix besonderes ein. Vielleicht BOTEE oder botEE (Bot + ie ie) für BotE E(ngine).
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

Wie wärs mit B2Engine? Schließlich ist es die 2. auf der BotE läuft ;).

cooles Miniprogramm. Das verspricht ja tolle Effekte auf der map. Eine Sache vll. noch: Bei mstrobels Supremacy, was auch DirectX zum Rendern benutzt, hatte ich die falschen Treiber (nämlich original ATI Catalyst, welche grottig sind im Vergleich zu den Omega-Treibern) und konnte alles nur im software modus rendern, was die Animationen quälend langsam ablaufen ließ. Ich hatte es selber erst durch ein kleines .NET Dev-Tool nachweisen können, dass ich nur im Software-Modus das Programm laufen ließ. Ich denke, falls es möglich wäre, dies irgendwie als Warnung einzubauen à la "Vorsicht, ihre Grafikkarte läuft im Softwaremodus, checken sie ihre DirectX-Einstellungen mittels dxdiag und updaten sie ihre Grafiktreiber", könnten wir Mißverständnissen vorbeugen. Manch einer meint dann nämlich schnell, dass die Engine lahm ist und das Programm schlecht programmiert wurde, vor allem diejenigen, die sonst kaum 3D Spiele oder Anwendungen laufen lassen und dementsprechend gar nicht gemerkt haben, dass ihnen da was gefehlt hat.
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: 2D-Engine

Beitrag von TrommlBomml »

Malle hat geschrieben:falls es möglich wäre, dies irgendwie als Warnung einzubauen à la "Vorsicht, ihre Grafikkarte läuft im Softwaremodus, checken sie ihre DirectX-Einstellungen mittels dxdiag und updaten sie ihre Grafiktreiber", könnten wir Mißverständnissen vorbeugen.
na kla, kein problem. da mach ich einfach ne msg-box und gut is! :)
Sir Pustekuchen hat geschrieben:nachdem ich manuell die d3dx9_30.dll Datei hinzugefügt habe.
ja ach ganz vergessen^^. diese dll solle auf jeden fall dann auch mit zur BotE-exe, veiel haben diese sehr alte DirectX-dll nicht.

@Enginename: B2Engine ist schonmal nicht schlecht :)
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: 2D-Engine

Beitrag von Sir Pustekuchen »

Da fällt mir noch ein: Ist es mit DirectX möglich, einfache Linien (z.B. DrawLine) mittels einem Pen zu zeichnen? Irgendwie müsste man ja das Gitternetz der Galaxiemap darstellen können. Dazu habe ich jetzt noch nichts gefunden. In anderen Menüs werden Linien benutzt, um Text zu markieren. Zum Beispiel wenn man durch eine Ereignisliste scrollt, wird das ausgewählte Ereignisse von zwei Linien eingerahmt.
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: 2D-Engine

Beitrag von TrommlBomml »

na sichä :)

müssen die irgendwie besonders sein dicek etc? dann muss ich nämlich mit shadern ran^^. ansonsten fürs gitternetz bietet es sich ja an, liniensysteme zu definiern, die in einem rutsch gezeichnet werden können (das wäre auch besser aus performancegründen).

dazu ist noch zu sagen in bezug auf shader: wenn shader genutzt werden, müsste man die Systemvoraussetzungen auf Shader Model 2.0 setzen (die günstigen heutzutage für 70 euro unterstützen alle schon 3.0 :)). wenn euch das zu hoch ist, könnte ich das noch auf Shader Model 1.1 drücken, 2.0 wär mir aber lieber, weil man da mehr möglichkeiten hat. vor allem für 3D ist es schon fast pflicht.

EDIT: d. h. du willst mit GDI/+ da ran? davon rate ich dir ab, das macht ordentlich performanceeinbußungen (gehen tut es aber)!
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: 2D-Engine

Beitrag von Sir Pustekuchen »

Nee, mit GDI möchte ich da nicht mehr ran. Es ging mir nur um die Frage, ob auch solche primitiven Formen/Linien per DirectX Befehl flott gezeichnet werden können. Es müssen dann bestimmt auch keine feste Linien mehr sein, sondern z.B. auch Punktlinien. Sieht bestimmt besser aus. Punktlinien (also mit nem Dot-Pen gezeichnete Lines) waren mit der GDI sehr performancekritisch. Mit DX sollte dies ja nun kein Problem mehr sein.

Von mir aus nutz da einfach SM 2.0. Ich kenne die Unterschiede eh nicht und jede aktuelle Graka unterstützt mittlerweile SM 4.0 bzw. 4.1.
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: 2D-Engine

Beitrag von TrommlBomml »

wenn shader genutzt werden können ,sollte das auch flott von statten gehen^^. sowas habe ich aber ehrlich gesagt auch noch nicht gemacht (mit shadern dicke linien), da muss ich mich mal umschauen /hören^^.
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: 2D-Engine

Beitrag von Malle »

meine Graka (Radeon 9200, Baujahr 2003) unterstützt nur Shader 1.4. Evtl. sollte man ein redundantes System programmieren dass in diesem Fall die alte puste'sche Galaxymap benutzt. Ich kauf mir jedenfalls keine neue Grafikkarte, die meine soll solange laufen bis sie auseinanderfliegt ;).

Außerdem sollte das Spiel, da es eh ressourcenarm und 2D ist, auf uralten Rechnern auch noch laufen und nicht wegen der Shader dort nicht mehr gehen. Ich denke, das ist schon notwendig irgendwie. Die ganzen 3D Effekte sollten auch abschaltbar sein.
Antworten

Zurück zu „Grafik und Design“