Jump to content

Civ Selection GUI


Recommended Posts

Looking at the latest from SVN, it looks like there is still no CIV selection screen within the game setup GUI. So I figured maybe I'll dip my toe in on this one since it's mostly XML and JS to start with.

Looking at some of the design documentation vs. what the game currently has, there is a bit of a discrepancy. The design wiki indicates that civ selection should be a dropdown box with the list of Civ's one could play somewhere on the game setup screen. The actual GUI now has a big image with a tooltip that says click here to change civ.

Keeping everything on the one screen keeps everything very simple. A dropdown, maybe an image that represents the civ as it is now.

On the other hand having a separate screen allows for more information conveyed. I could see something like a dropdown selection or next/previous buttons rotating through the civs. An image that represents the civ, a text pane with some civ description, some history, some pros and cons, etc.

Just curious what the original designers think, since I'm sure there are images floating in their heads.

Link to comment
Share on other sites

I think since its fairly simple to use the actual game engine to mock up an idea, I'll just capture some screen shots of what I'm thinking about...I'll post them when I get a chance.

I have not gotten a change to go through all of the resources in SVN with a fine tooth comb. I was wondering if there is an XML file, or a series of XML files that describe the civilizations. I could see an XML containing information similar to the design documents for each civ (http://trac.wildfiregames.com/wiki/Civ%3A_Carthaginians). Basically something that has the name, brief overview (where it originated, short history, etc), civ bonuses, team bonuses, special buildings or special units for the purposes of displaying that information on the selection screen. Then additional information for the use within the simulation such as the list of units and buildings, etc that this civ is capable of using in conjunction with the tech tree for the civ.

Is there a file like that existing already?

Link to comment
Share on other sites

The first is a simple modification of the existing game setup screen. Changing the Civ Name to a drop down. This would be the simplest and quickest way to change the Civ for experienced players.

GameSetup.png

The second is a new screen that comes up when clicking on the Civ's image. One part of the screen showing the image again, plus previous/next buttons (maybe a drop down instead?). The rest of the screen can be civ information...It'd be nice if there was a HTML rendering text box, then you can put a nicely formatted HTML page full of history, civ bonuses, Hero lists, special buildings, etc.

CivSelect.png

It appears there is still much underlying work that still needs to be done. Like, where do you get the civ information, the civ lists, what to do with the selection.

Link to comment
Share on other sites

It's great that you're looking at this :)

I was wondering if there is an XML file, or a series of XML files that describe the civilizations.
I'm fairly sure there isn't. There probably should be, and ideally it would be independent of the GUI code and scripts.

I currently have a crazy (but necessary) plan to rewrite most of the game's simulation system, with one consequence being that things like civs can be represented as first-class entities in the system, so that would probably be the best way to handle it in the future. But that doesn't exist yet, so there's not much option other than hacking it into the GUI for now.

It'd be nice if there was a HTML rendering text box, then you can put a nicely formatted HTML page full of history, civ bonuses, Hero lists, special buildings, etc.
I once had a crazy (and unnecessary) plan to replace the game's whole GUI system with WebKit (the HTML engine from Safari and Chrome), so everything could be written with full fancy HTML and CSS and JS and everything. I still think that'd be a great thing to do, but a lot of work and very risky - I don't think anyone has embedded WebKit in a high-performance cross-platform OpenGL application before, so there might be serious difficulties making it work or it might have unacceptable performance, and it might be hard to maintain the code as WebKit evolves. It's much less risky to stick with the current GUI system, whose problems are mostly well-known and can be fixed incrementally. So I'd be very happy if someone wanted to try embedding WebKit, but in terms of getting a working game I think it's an unnecessary distraction.

(I actually implemented a prototype where I had WebKit rendering a Theora video with rotation and real-time reflection (all using simple HTML and CSS) inside the game engine, which I thought was pretty cool, so it's certainly possible and opens a lot of possibilities, but that was Linux-only and a very long way from being usably complete...)

Anyway... You can still embed some simple formatting commands in the current GUI system - I don't know if/where it's documented, but there's code to support and and and images etc. It shouldn't be hard to add some other simple formatting extensions if necessary. It's not HTML, but it might be adequate :ok:

Link to comment
Share on other sites

My only comment is usability-related. This is nothing less than great for new players but after a few games there should be an opt-out option.

Also there is a big difference between historical background, which is pure education/entertainment, and the civ bonuses, which is important info for decision-making that new players may want at their fingertips even when they become experienced players. So maybe some sort of three-tiered system is worth thinking about - One that's fastest but least informative (like the current version), one that's most complete (like what you're proposing) and one that provides quick reference, or a cheat sheet. (Think the cheat sheet that shows up in Google Reader when you hit the question mark).

Edited by Jeru
Link to comment
Share on other sites

My only comment is usability-related. This is nothing less than great for new players but after a few games there should be an opt-out option.

Note that I did modify the existing screen slightly to replace the civ name with a drop down. I think that would be a decent solution to the quick, "I want civ X" scenario.

I notice a small bug(?) with the drop down list behavior though....when selecting an item, when you pull down the drop down again, it doesn't automatically move the list to the selection...it starts at the top again.

I also noticed a typo in the emblem XML files...the Carth image is referenced as Kart.dds even though the actual name in SVN is Cart.dds.

Link to comment
Share on other sites

I'm fairly sure there isn't. There probably should be, and ideally it would be independent of the GUI code and scripts.

The reason I say this is because looking around the existing collection of data, civ data is mixed up among a lot of different files. Technologies are in a technologies file, the sprites are in a sprites file, etc. For someone modding the game, it would be nice to refactor these types of things to put civ stuff together in a civ file. That way I can introduce a new civ to the game by creating 1 new file instead of modifying countless others.

Of course, even with my limited time playing around with this stuff, there are PLENTY of things to do. I figured I'd start with something that seemed relatively simple and it seems to be exploding into a zillion little things. I guess nothing better to do then roll up ones sleeves and start digging in with whatever spare time I may have.

Link to comment
Share on other sites

The civ select screen is enlarged to be as large as the session setup screen. Additional panes are added for various pieces of information. The dropdown has the list of available civ's and selecting the civ actually changes the image...The text should change as well obviously, where there is text to change to.

CivSelect2.png

Link to comment
Share on other sites

I notice a small bug(?) with the drop down list behavior though....
It'd be good to file these issues as tickets on Trac, so we don't forget about them.
The reason I say this is because looking around the existing collection of data, civ data is mixed up among a lot of different files. Technologies are in a technologies file, the sprites are in a sprites file, etc. For someone modding the game, it would be nice to refactor these types of things to put civ stuff together in a civ file. That way I can introduce a new civ to the game by creating 1 new file instead of modifying countless others.
Yeah, the current organisation is probably not ideal, since it's grown gradually over the years. I don't think creating a new civ is something that many(/any) people will actually do, so it's more important to focus on making it easy to work on civs that already exist - but more centralisation of civ data would be good in any case, and I don't believe any of it should be hard-coded in the GUI files. Rearranging the data is probably something to look into after rejigging the game's simulation system (but that might take a while...)
Of course, even with my limited time playing around with this stuff, there are PLENTY of things to do. I figured I'd start with something that seemed relatively simple and it seems to be exploding into a zillion little things. I guess nothing better to do then roll up ones sleeves and start digging in with whatever spare time I may have.
Making games is hard - everything explodes into a zillion little things :). One problem here is that some GUI scripts do insane things because the engine doesn't quite provide enough capabilities (particularly for dynamic layout), and sometimes they're just not designed as well as they could be - it'd be good to discuss any such issues that you see.
Link to comment
Share on other sites

as the only GUI programmer on the team, at them moment.

I'd like to say that the second design, looks great, for beginners, and the drop down box is a good idea also, although, I think it's already a drop down box.

Aside from that, I really can make things change in the GUI department now, and intend to do so...

so any new ideas, or improvements that will make the GUI engine more user friendly, please forward to me, either here on in a new thread.

I'll read them, and take them in mind, when I'll go into the engine's code.

That goes for community members and staff alike.

Edited by Sluzky
Link to comment
Share on other sites

That new one looks pretty neat. Personally, I don't care what it looks like, I'm interested in the function. Simple ui's for testing, and leave it up to people with artistic talent better than mine to dream up those neat screens.

Theming that screen based upon the selected civ would be a neat idea (background image, foreground image, fonts, and colors). The data has to be separated from the view though.

Link to comment
Share on other sites

I agree with almost everything. (Fonts and colors should be uniform IMHO).

Just wanted to remark there's more to this than just art, it's supposed to be a design that people find easy to understand and useful. I think users are not likely to refer often to the history of each civ but they may very well want to double-check one of the civ bonuses. Hence I took away from the "screen real estate" for the history section and placed it at the bottom.

Edited by Jeru
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...