Resuable Tools

Someone in the forums decided to make a GUI editor for their engine a couple of days ago. It got me wondering about something that I’ve been wondering since I was working on GWEN.

Why isn’t there a GUI editor that has plugins that let you export to ‘your’ format. One editor, many formats. When you think about it most GUI systems are the same. They’re a bunch of controls that sit on and next to each other. A few things might differ like texture format, or font size/positioning, support for docking or control anchoring. But the majority is the same. Panels, buttons, text inputs, checkboxes, dropdowns, sliders, drag zones.

It seems like people are re-coding the whole thing over and over – when they only really need to code the exporter.

24 thoughts on “Resuable Tools

    1. Granted, you’re talking about a slightly different situation here, but it still seemed relevant.

      For a more serious reply.. not all GUIs are created equal. I could create the same layout in Windows forms and in HTML, but Windows forms uses absolute positioning and HTML uses flowing layout. So either the HTML one would be a hideous, accessibility nightmare with CSS absolute positioning everywhere, or the Windows forms export would try and convert HTML flow into absolute positions which would be tricky to get right.

      I assume this would be ideal if you only wanted to export for one format. The main problem with exporting the same layout to different formats is that you’d have to limit yourself to the boring GCD set of controls.

      And if I bring my own custom controls, would I be able to use this tool? I suppose each export would need its own custom control support. .NET has whole libraries for handling design-time support, there’s a few articles on codeproject that implement a simple form designer.

      If you wanted something super useful like coding integration that just makes this app a ton more complicated. I can double click on elements in Windows form designer and bam I get a pre-made event handler for the most common event for that control, and I can go right to coding for it. With your tool, I’d have to export, then import into VS, then I’d probably end up double checking it in the Windows form designer anyway and using those code generation features…

      Furthermore, don’t cross-platform GUI libraries like QT and Java attempt to solve this problem in their own way anyway? I could make my own .NET app with Windows forms, and Mono SHOULD, ideally, properly translate them on Linux (at least, it’s Mono’s responsibility to implement .NET, and as long as I don’t use P/Invoke everything SHOULD work in theory as like as they do).

      It’s still an interesting idea you have.

    2. I think he’s referring to game GUI, not an OS. Which changes the game, just like level editors, where you can export your needed format. I agree there should be a popular GUI editor that can export in a common format.

    3. hey this maybe unrelated but on the tool gun for awhile ive wondered a few things. and i know a few things. i know the picture is of a pocket pc screen but the application on it says you have not crashed click here to crash and in the top of the screen it say back to counter strike what pocket pc application is this garry because i know that no one else knows

  1. Reminds me of writing/reading from any kind of custom data structure. It seems to me like reading and writing to a specific data structure is a general problem that can be solved with a single tool that uses a simple description of the file format.

    I’ve never had to do a lot of manual writing to- and reading from custom files though, so I never bothered to try and write it though. It might already exist or it might not even make sense for more complex data structures (especially when there’s some kind of compression involved). If the size of the data/file doesn’t really matter, I guess you could just as well use an existing json serializer.

    1. This is a classic big-data problem, HPC research is leaps and bounds ahead in terms of dealing with abstract data structures. This is probably because there’s usually less trouble adopting standards in the scientific community. Google’s Protocol Buffers is on the right track, however this idea still hasn’t garnered widespread adoption.

  2. Im a photographer and not a coder, but I think that a good GUI greatly improves any game. If you have a hard to use GUI then the game is that much worse.

  3. No Garry! Don’t do it.
    You can’t just keep starting new projects, it just slows the others down.
    At some point you will have finished 10% of 20 projects.

Comments are closed.