PDA

View Full Version : Forge CE User Interface Design



Skarma
September 9th, 2010, 03:36 PM
Well, where do I start? I can't seem to get over this question. I simply suck at design and planning, but it's warranted by this entire project and I need to start somewhere. This is where you come in, if I am lucky today. There are so many great artists and designers around this forum it gives me goose bumps and yes, I need you as much as you need me to program Forge for Custom Edition. Yes folks, it's in the works and with the powerful OpenSauce development kit, things have been moving very quickly for only a one man team -- cheers to Kornman00. He has been a great help so far since I have migrated to OS, even though I bug him a lot.

I have a buggy gravity gun working, thanks to Abyll. Currently, I have been working on monitor mode to freely roam the camera about the level. Unfortunately, I do not have a mouse or a middle mouse button, so I cannot operate Halo's built in camera mode yet. E: Got camera working with configurable options. I plan on hacking around this and as Kornman00 suggested, to make these controls configurable. No, I can't even afford $4 to buy the cheapest mouse on newegg.

Kornman00 suggested that I look into Forge World for Reach to get ideas. So I did and I started drooling. I never have owned an Xbox 360 or anything Halo 3 or greater, so Forge to me is new and it's awesome. I only know what I have seen in Reach videos and that isn't much, but what I have seen is great and it's the direction I want to go with this project. So here is the first question for you guys -- should Forge CE be a mimic of Forge Mode in Halo 3 / Reach? The color scheme, font, layout, functionality, etc of the GUI be the same? I like it personally, but it is really all up to you, the guy using this to create his maps. I'm not a modder yet, so I don't know how you would want it.


Reach Forge Interfacehttp://i14.photobucket.com/albums/a343/iambic5/nudging.jpg

I don't know about ripping Forge textures from Reach tags, if that is even an option at this point. I will assume we are creating our own...

From a programming stand point, I will be using a single texture to draw the entire user interface. How is this done? I can import one image file that contains all the pieces of the interface, sort of like an unwrapped model. With this I can render individual sections of the texture, instead of importing, creating, and drawing a bunch of individual textures. This will cut down on file size and increase performance when drawing onto the scene. There shouldn't be too many elements in the texture. As you have seen in Forge, the interface is very simple.

Crappy interface texture example1665Of course the background will need to be transparent.

We need to discuss all this layout stuff as well as have someone create this interface texture. I am no good with paint programs. :saddowns:

Next, we need to figure out user interaction with the interface. Can the mouse interact with the menu or should it go with keyboard only? When hovering your cursor over an object, there will be different keys you can press, like in Forge World, to bring up options (Grab Object, Object Tools, Object Options, Delete Object, etc.) Once you press a key, for example Object Options, should the game world freeze and you can interact the mouse with object options or should you still be able to move in the game world and interact the object options with the keyboard? I vote keyboard only menu. If I was modding, I would still want to be able to play around while I adjust object properties. This is something to think about though.

Next is the HUD. In monitor mode in Forge World, the HUD has a lens feel to it. It's alright I guess, seems distracting. This is just something visual we don't really need, but would be cool to feature. Then we need a cursor. I like the semicircle and green hand thing but if we aren't going for a Forge World copy pasta, then we need to get creative.

Sooo, what do you think? Thanks guys.

Vicky
September 9th, 2010, 05:07 PM
On the side, you know there are middle-mouse button emulators? Years ago i only had a 2-mouse button, worked fine with it.

Skarma
September 9th, 2010, 06:52 PM
I did not know that. I took out the middle mouse button check while in camera mode. It works great and I like it better! I will make the mouse button and camera speed configurable in Forge menu.

Dwood
September 11th, 2010, 04:55 PM
I have a tablet and will help with this.

FireScythe
September 12th, 2010, 09:24 AM
You shouldn't need any textures. A clean interface created with transparent, coloured rectangle and triangle meshes would be better in my opinion, and would remove any dependency on an external file.

Futzy
September 12th, 2010, 09:34 AM
You shouldn't need any textures. A clean interface created with transparent, coloured rectangle and triangle meshes would be better in my opinion, and would remove any dependency on an external file.
Can it draw anything based on vector coorddinates? I can whip up the menu in just a few seconds if it can

CrAsHOvErRide
September 12th, 2010, 12:30 PM
Well he could implement vectors but you use actually vertices afaik.

Skarma
September 12th, 2010, 02:43 PM
I was thinking about using OpenSauce's TextBlock class for the Forge menu, trying that out right now. With the TextBlock interface, a vertex buffer is created and filled and then triangle fans are drawn with DrawPrimitive. It's very useful and all setup for me. The only drawback is creating a pretty, dynamic and elegant menu can get complex. This method is easy for drawing a basic and simple and bland rectangular menu. I guess for now this will do. Not trying to get too fancy?

The reason I chose ID3DXSprite interface is because I am lazy and it's really fast method for 2d drawing. When you have a more dynamic and interactive menu, the million different settings to adjust with vertex buffers can be extremely overwhelming. Whipping up something simple in paint, you can create a texture from resource so it's embedded in the application when compiled and then draw it with a simple call. That and I am just trying to get more people involved.

Hunter
September 13th, 2010, 03:17 PM
Imo it would probably be better to draw the menu with the game engine its self, just draw a box with curved edges and a bored. i don't know game code yet so I don't understand how hard or easy this is.
images would be awkward as the different amount of options would mean bigger or smaller space, so height and width could get anoying.

FireScythe
September 14th, 2010, 06:13 AM
Its not massively difficult to write a basic menu system. I wrote a menu system for this build (http://www.modacity.net/forums/showthread.php?16647-OpenSauce-Post-Processing&p=531726&viewfull=1#post531726), but haven't go round to finishing it (needs a redesign).

Skarma
September 14th, 2010, 05:13 PM
The menus in Halo are all drawn from bitmaps, how I originally wanted to do this. I don't know of any other draw code in the engine. This actually gave me an idea that I can use the Keystone module to create a basic menu background aka CreateWindow function just like the chat window using GDI. Only thing is it's limited to rectangles and ... it's GDI. Keystone can also draw images. I don't think I'm going to go either of these routes.

I managed to create a basic menu design from Yelo's menu draw code (TextBlock). I think I will stick with this until I can figure out something for textures down the road.

FireScythe, I couldn't get that build to work. When I run Halo, the game doesn't load and in task manager, the memory usage skyrockets. Do you have any pics er code?

Thanks for all the advice guys

avengertylerb
July 30th, 2014, 09:42 AM
Make it like halo reach and do no do forge world please because I am going to on that map.