TrumEngine: Entwurf
- Malle
- Großadmiral
- Beiträge: 6948
- phpbb forum styles
- Registriert: Montag 13. November 2006, 15:16
Re: 2D-Engine
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?
- Sir Pustekuchen
- Administrator
- Beiträge: 4183
- Registriert: Dienstag 10. Januar 2006, 16:46
- Kontaktdaten:
Re: 2D-Engine
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.
Re: 2D-Engine
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.
- Sir Pustekuchen
- Administrator
- Beiträge: 4183
- Registriert: Dienstag 10. Januar 2006, 16:46
- Kontaktdaten:
Re: 2D-Engine
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 

Re: 2D-Engine
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.
-
- Supporting Programmer
- Beiträge: 45
- Registriert: Montag 2. Juni 2008, 19:58
- Wohnort: nahe berlin
Re: 2D-Engine
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.Malle hat geschrieben:so wie ich bomml's Konzept verstanden habe, gibt es globale Koordinaten
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.Dachte da mehr an bomml, falls er das tun will.
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."
"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Re: 2D-Engine
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.
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.
- Sir Pustekuchen
- Administrator
- Beiträge: 4183
- Registriert: Dienstag 10. Januar 2006, 16:46
- Kontaktdaten:
Re: 2D-Engine
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).
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).
Re: 2D-Engine
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.

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.
-
- Supporting Programmer
- Beiträge: 45
- Registriert: Montag 2. Juni 2008, 19:58
- Wohnort: nahe berlin
Re: 2D-Engine
na kla, kein problem. da mach ich einfach ne msg-box und gut is!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.

ja ach ganz vergessen^^. diese dll solle auf jeden fall dann auch mit zur BotE-exe, veiel haben diese sehr alte DirectX-dll nicht.Sir Pustekuchen hat geschrieben:nachdem ich manuell die d3dx9_30.dll Datei hinzugefügt habe.
@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."
"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
- Sir Pustekuchen
- Administrator
- Beiträge: 4183
- Registriert: Dienstag 10. Januar 2006, 16:46
- Kontaktdaten:
Re: 2D-Engine
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.
-
- Supporting Programmer
- Beiträge: 45
- Registriert: Montag 2. Juni 2008, 19:58
- Wohnort: nahe berlin
Re: 2D-Engine
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)!

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

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."
"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
- Sir Pustekuchen
- Administrator
- Beiträge: 4183
- Registriert: Dienstag 10. Januar 2006, 16:46
- Kontaktdaten:
Re: 2D-Engine
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.
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.
-
- Supporting Programmer
- Beiträge: 45
- Registriert: Montag 2. Juni 2008, 19:58
- Wohnort: nahe berlin
Re: 2D-Engine
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."
"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Re: 2D-Engine
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.

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.