Author Topic: OutpostHD - An Open Source Remake of OUTPOST by Sierra On-Line  (Read 47825 times)

Offline jballou

  • Newbie
  • *
  • Posts: 6
Re: OutpostHD - An Open Source Remake of OUTPOST by Sierra On-Line
« Reply #125 on: April 21, 2019, 11:18:32 AM »
First off, thanks for the detailed response, it's gotta be a wall of text since I put up a wall myself.

I actually realized after I posted it that there was a whole subforum here and a lot of this has already been covered. So I'll just go over the remaining points.

For the master reports, a little context for the user on how to open the interface would be helpful. Even if it's a temporary dialog with buttons to connect all the UI pieces, it wouldn't be that much worse than the original. Heck, you wouldn't even make players wait 5 seconds for a smarmy AI WAV file to play before displaying the menu, so you're already ahead of the game :D

I'd be glad to work on some UI connectors to allow localizing out some text and events, that would let you make the code part and people like me could make smaller scripts with the help text and triggers that make them appear. It's not a trivial ask, but I've done something similar in other games and it did end up saving time and being easier to have a simple event thrower/listener than hardcoding the tutorial stuff directly into the game.

For the factory alert, and other stuff, something like an "events scroller" at the bottom would be good. Any event, be it "time travel", "bold new discovery", "factory can't deliver goods" or "no more air" could all show up in a feed. Players click the event to get deeper context and information, and maybe color code and/or flash critical events that need immediate attention. Something that always bugged me about Outpost was that things would happen, from the seed factory imploding to the rebels surrender, and I'd have no idea it happened until I clicked News Briefs. Bringing that to the foreground will go a long way here.

For the materials breakdown, I can see an entire "resource view", that has minerals, metals, air, etc. all on the list. Each has an In/Out column, to show the balance. Clicking any resource shows what buildings are creating, and consuming, these resources. You can get fancy like click an element to move to it on the map, or prioritize/enable/disable buildings that consume resources, but to start with just a list of the things and the balances would solve a lot of problems.

I can mock up a couple of these for you, what's your preferred format?

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2186
    • LairWorks Entertainment
Re: OutpostHD - An Open Source Remake of OUTPOST by Sierra On-Line
« Reply #126 on: April 21, 2019, 04:19:53 PM »
First off, thanks for the detailed response, it's gotta be a wall of text since I put up a wall myself.

I actually realized after I posted it that there was a whole subforum here and a lot of this has already been covered. So I'll just go over the remaining points.

For the master reports, a little context for the user on how to open the interface would be helpful. Even if it's a temporary dialog with buttons to connect all the UI pieces, it wouldn't be that much worse than the original. Heck, you wouldn't even make players wait 5 seconds for a smarmy AI WAV file to play before displaying the menu, so you're already ahead of the game :D

By master reports, do you mean the full-screen reports UI that was recently developed?


At the moment this can be accessed by double-clicking on a Factory (surface or underground) or a Warehouse. This can also be accessed by pressing F1 though I'd like to reassign this key to something more intuitive in the future.

If this isn't what you mean, I'd like to hear more.

I'd be glad to work on some UI connectors to allow localizing out some text and events, that would let you make the code part and people like me could make smaller scripts with the help text and triggers that make them appear. It's not a trivial ask, but I've done something similar in other games and it did end up saving time and being easier to have a simple event thrower/listener than hardcoding the tutorial stuff directly into the game.

I'm not opposed to this but developing a scriptable GUI would take considerable resources. I wanted to keep things as straight forward as I could in the code -- it's why structures are hard-coded instead of being in some external definition file like an XML, etc. It's also why the UI is hard-coded. Developing a scripting system for this does mean that the UI can be developed without having to recompile the code but it adds additional overhead that I'm not convinced is a good idea, it potentially limits how tightly it can integrate with the core code (there's some really weird stuff I do in there, not as bad as working with wxWidgets but hard-coding the UI does overcome some inter-class comm issues that would be difficult to do with scripting). It also eliminates a lot of the loading times you'd get by having to load up external script files, check them and 'compile' them. Ultmiately it really just kind of shifts the location of the problem without actually solving it.

That stated, I do intend to have a lot of the text moved outside of the code -- currently it's all in a series of constants that are defined in <Constants/Strings.h>. This works but it's hardly ideal for being able to quickly change the text as needed. The plan is to build an XML file with key/value paired string constants that the code can reference with something like StringConstants[nameKey];. Quick, easy and provides and safe. There are a few cases where I use c-like string formatting specifiers (ala printf) that would make assumptions about the nature of the format specifiers... so I'll have to think about how to do this well should the string be changed.

For the factory alert, and other stuff, something like an "events scroller" at the bottom would be good. Any event, be it "time travel", "bold new discovery", "factory can't deliver goods" or "no more air" could all show up in a feed. Players click the event to get deeper context and information, and maybe color code and/or flash critical events that need immediate attention. Something that always bugged me about Outpost was that things would happen, from the seed factory imploding to the rebels surrender, and I'd have no idea it happened until I clicked News Briefs. Bringing that to the foreground will go a long way here.

This is precisely what I had in mind. Similar in style to how Endless Space does it with the notifications building up along the left edge of the screen. When you click on them you get more details, right-click to dismiss.

For the materials breakdown, I can see an entire "resource view", that has minerals, metals, air, etc. all on the list. Each has an In/Out column, to show the balance. Clicking any resource shows what buildings are creating, and consuming, these resources. You can get fancy like click an element to move to it on the map, or prioritize/enable/disable buildings that consume resources, but to start with just a list of the things and the balances would solve a lot of problems.

I can mock up a couple of these for you, what's your preferred format?

Please do!

I don't have a particular preference in format. I would recommend posting in the User Interface subforum. Another forum user (havkyp I think?) suggested using a program called Pencil -- I still use it and it's pretty effective at quickly developing UI mockups. It's not perfect but it's free and does its job. I mention it in this post.
« Last Edit: April 21, 2019, 04:55:12 PM by leeor_net »

Offline jballou

  • Newbie
  • *
  • Posts: 6
Re: OutpostHD - An Open Source Remake of OUTPOST by Sierra On-Line
« Reply #127 on: April 21, 2019, 07:03:12 PM »
Yep, I found the interface, but the double-click invocation wasn't clear to me at first. Another wiki/tooltip issue probably.

About the event/scripting interface, having not looked at your code, your reasoning seems pretty good. So, that aside, maybe I could come up with a list of tips, and things that trigger them? I think the initial set of triggers for tips would be a building created/destroyed, turn numbers, mines going dry, and robots dying. That covers a lot of ground, and seems like a reasonable amount of work to parcel out (again, making some big assumptions from my side here).

I'll take a peek at Pencil tomorrow, and pop a couple ideas into the UI subforum, and we can discuss them further in there.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2186
    • LairWorks Entertainment
Re: OutpostHD - An Open Source Remake of OUTPOST by Sierra On-Line
« Reply #128 on: April 21, 2019, 07:08:19 PM »
About the event/scripting interface, having not looked at your code, your reasoning seems pretty good. So, that aside, maybe I could come up with a list of tips, and things that trigger them? I think the initial set of triggers for tips would be a building created/destroyed, turn numbers, mines going dry, and robots dying. That covers a lot of ground, and seems like a reasonable amount of work to parcel out (again, making some big assumptions from my side here).

Makes sense to me. :D Should be very do-able in-game. It's a matter of setting a flag to 'show first-time tips' and as you said just have them trigger as the player uses the game.

Looking forward to seeing what you come up with!