Need help making GUIs


WizardStan

Mega GP Mania
Joined
May 24, 2008
Messages
16,731
I want to make an editor for World Of Xeen. I've reverse engineered the entire thing, and reimplemented much of it. I want to create an editor so people can create their own maps. I've tried and failed. I can do the backend, I can create window objects which draw the various things, but putting them together is like a 3 year old with lego blocks. I even tried some visual tools so I could just place things and just focus on the backend, but even that resulted in a mess of spaghetti code and poorly aligned objects simply because I lack the experience that comes with years of developing GUIs.


Now, I could either try and try again anyway, restarting what I'd done over and over until I finally get it, basically wasting time to learn a skill I have no real interest in fostering, or I can play to my strengths as a backend developer first and ask if there is anyone who already has the experience that may be interested in helping me through this project.


So how about it? Any good GUI developers interested in a little side project?
 
I'm pretty sure I could, but aren't there GUI resources available pre-made?


EDIT: Also, I mean making the icons themselves, I'm really awful with coding stuff.
 
EDIT: Also, I mean making the icons themselves, I'm really awful with coding stuff.
Yeah, it's the coding part I'm having issue with. I go along with the backend, and then try to expose things to the user and I'm all "Ok, I need some sort of tool bar thing... and then it will have to do this... and then that does that..." and next thing I know I've got a million buttons on my screen, nothing makes sense, and it's a huge pile of spaghetti. I make computers talk to computers, I'm not very good at letting people talk to computers :p
 
Is it in C++? I found Qt pretty easy to use (at least, relative to what I was able to do with it). But I'm no expert in Qt. Although, one great thing about Qt is you don't need to be an expert. With the basic mindset, the documentation walks you through, IMO. I've generally just worked on personal projects because I didn't have anything to program. There was that one project for a math professor, but it fell through. I could probably post some code, if you are interested (and if I could find it... :unsure: ).
 
I think it was GTK I tried (also Swing, I started rewriting it in Java) and it ended up being an awful mess.


If you think QT is any better I'll have a look. If I had something akin to Visual Basic it would probably be no problem, but I'll be damned if I use Visual Basic simply because I don't like making GUIs.
 
Qt has the graphical designer, but frankly, I configure everything in the source file. I used to use Visual Basic, but all of the behind-the-scenes stuff started to get to me. I'm sure that stuff can be changed if you know what you're doing, but the way I learned it was "drag and drop, double click, and write some code." Anyway, in my experience with Qt, everything goes into a tree of horizontal and vertical lines or a grid of objects. In my opinion, things stay very organized. Plus, signals and slots and all that crazy stuff.
 
^ I have to admit I do exactly the same thing :D . Regarding glade, I prefer Qt designer. Could be because I prefer Qt period though :lol:
 
Ok, I gotta admit that does make it a heck of a lot easier. No futzing with positions or remembering what each function does or whatever, just click-draw-slot, and inherit the dialog to fill in my details. What it doesn't tell me and what I really need the help with is whether the design is actually good, what buttons I need, that sort of thing. Guess I can afford to take the time and mess things up now, at least, being able to at least see what I'm working on.
 
I'm not sure how much experience you have with GUIs. But if something needs to change, at least you only need to change the interface. I'll post some quick resources. You can check out the Qt Widget Gallery. It should lay out what some of the common widgets do. The Main Window. class page lays out a lot of what a good application should look like.


Do you have a general idea of what you want the program to look like?
 
Last edited by a moderator:
Not especially. Maybe it has a map view and a 3D view? Some tool for drawing or erasing walls somehow? I have no experience making GUIs.


As I said, this is not a skill I have a major interest in fostering, taking the months of practice, trial and error, to actually reach a point that I know what I'm doing for basically a one off project. If I want a picture of a horse, it's better to just hire someone to draw me a horse so I can get on with the rest of the stuff I am skilled at, you know? Unless I can't find such a person, then I guess I'll break out the pad and paper and get drawing and hope I come up with something vaguely horse-like.*


*note, I don't actually want a horse, it's just an analogy.
 
This is something I've wanted to get into, but my project hasn't been mature enough to build an editor. It sounds like you'd have to make a custom widget for that behavior. Based on the screenshots I've looked at for Might and Magic 5, it looks like the map would be two dimensional? It seems like the 3D view would be used for previewing and maybe texturing? It seems like it would be easiest to work in a top-down perspective.


I don't have a lot of experience in the area, and I haven't worked in Qt for a while, but if you can't find anyone else, I'd try my hand at it. But I'm far from the ideal candidate. I've never actually played the games (although I've wanted to ever since I saw the posters included with a game my dad bought).
 
First of all I want to note that I'm not a professional GUI designer either.

Maybe it has a map view and a 3D view? Some tool for drawing or erasing walls somehow?
I'd say it all depends on what's possible with World Of Xeen's level format and engine.

  • Are the levels NOT based on a two-dimensional map of objects and entities?
  • Does the game have stairways or ramps with which you can reach different floors AND can these floors be "overlapping" in height (i.e. can a floor be placed in a height that's in between the height of floors n and n+1)?
  • Does the game support objects/entities that have something which resembles a "z value" (like for instance a specific class of wall lamp that may hang at different heights, depending on how it's placed in the map)?


If none of these questions can be answered with "yes", then you probably only need a top-down view in your editor. From looking at screenshots of the game, I believe that this will be the case, but I can't know for sure since I've never analyzed or even played it - so I can't really assist any further either without making too many assumptions about your horse, which is not a GOOD THING™.
 
The map is a 2D grid, each square can have a "wall" at each of it's 4 cardinals. There are actually a few different styles of wall, and each wall can also have a decoration applied to it. That's why I was thinking a 3D view to go with, so you could draw your walls on the 2D map, and then visualize and paint them in the 3D window. Either way, I'm going to need some custom graphics drawing, so I need to figure out this QGraphicsScene and QPixMap stuff.
 
I managed to talk to a coworker who quite enjoys UI problems and he helped me come up with some pretty good designs that I never would have come up with on my own. With his help, I think I can get well on my way. I'm going to do a mock up tonight/tomorrow and we'll see how it goes.
 
Back
Top