Page 1 of 3

My dream for entering stations / cities

Posted: Fri Mar 25, 2016 11:36 am
by impaktor
This is a post I wrote last year, since I needed to get it out of my head, but I never actually posted it, so here goes:

TL;DR-version: look at the pictures and you get the gist of what this post is about. Also, the main thing in this post is step 0-2. The other are just in-depth exploring of that same idea.

Disclaimer: The images below, this are just mockups. The Pioneer-versions don't have to look as "flashy", I'm just using what I found.

Introduction

Pioneer looks and works the way it does mostly due to it being created as a Frontier clone. But these are shackles that can be cast off, and I think things can be done far better.

Leaving the ship is a request that pops up often, but question is what is the goal one wishes to achieve with this? Exploring terrain in some First Person shooter-view is pretty pointless, unless we have trees, animals, and close-up high-detailed terrain. This is ridiculously beyond our capabilities. As is turning Pioneer into some Minecraft-cone.

As is having some FPS-mode to begin with, with interior of ships and stations needing to be modelled, which is vastly beyond the possibilities of current dev team.

However, I do feel strongly that pioneer desperately needs the possibility to convey the feeling (or illusion, if you will) of "leaving the ship". I want to "feel" that I've reached a destination, that I've stretched my legs, that I'm inside a space station! I believe this can be done at a cheap cost compared to the FPS-route.

I'd like to pitch my vision, or "dream", for an actually (almost) within our reach solution to making Pioneer far more immersive, in multiple stages

Step 0 - Enter station into a real Lobby!

When you land, instead of connecting to the Lobby, with tabs to different functions, you connect to an interactive image of a lobby where instead of clicking on the tabs you can click different doors or consoles/computer monitors in the image to connect to wanted function.

Image

What is gained: Immersion! Being able to feel like you've actually left your smelly ship and get to stretch your legs by entering the station. It would open up for more 2D Lobby-images to be added later on. Different for different stations, or even faction specific, which would differentiate stations. We could have areas in the picture for putting fake adverts "Drink Cosmic Coke", or a faction logo.

What is needed: Initially, perhaps just 1-2 different images / sketches of a lobby, one for ground- and one for orbital-station, and some code. The station.json could specifies lobby image, and maps pixel coordinates on it for each lobby-function (like invisible "tabs" for BBS, Police, etc.).

To think about: You're now in the station, not sitting on the landing pad in the cockpit. Thus we shouldn't show radar, or ship control panel. But the player will still want access to some information (F3 InfoView, F2 map), which could be accessible through the some wrist computer (like the Pip-boy in Fallout), or hand held screen / pad. Also Game-control (like time acceleration) aught to be separated from ship control panel all together. This is stuff we need to think about for the new cockpits anyway.

Step 1 - A bar!

This is my main "dream": You enter the bar (click the door in the lobby-image, and get a new 2D drawn image), you see a bar with variable number of people, which could be done in two ways:
  • We see silhouettes on chairs (each stored as a layer, so chairs can be empty or taken?) You click the silhouettes / occupied chairs, and you get a mission dialogue box with a random face offering you an illegal / shady mission.
  • As above, but instead of silhouettes it would be the actual random FaceGen images slapped on bodies. All faces from the face generator are directly from the front, so this has a potential to look horrible, and require a lot of work to make it look decent, I assume.
I also imagine that since you're going up to shady people in the bar, they would only offer you jobs suitable to your current reputation. Thus no showing the player that there are Assassination missions you can't take. Or sometimes only high reputation jobs are available, so the guy in the bar would give a deny message, hinting that there are other missions yet to be unlocked, once you gained the reputation.

Image

Image

red rectangles just show the interactive/"clickable" area of the image
Image

Image

What is gained: This would add a lot of immersion. All illegal missions are gotten by dealing with shady characters in the bar. Only legal adverts on the BBS (solves #1012).

What is needed: perhaps two different images of bars, with chairs, and silhouettes to place in the chairs. A bit of code to make chairs occupied / unoccupied. All criminal missions like Assassin, and GoodsTraders move to the Bar.

I find this idea pretty brilliant, but I'm not to credit for it in any way, since it's a pure rip-off from other space games, like Wing Commander, Protostar, and Freelancer:

Image

Image

Step 2 - Bartender is special

The bartender has a special function. When you click him he lets you know about rumours he's heard.

Image

Image

Perhaps modules can register "rumours" as new features are "hidden"/added to the game? I.e. someone writes a module which hides, or places something in the universe. The module could "seed" rumours that would pop up when the bartender is clicked, conditional on star date, and system. So maybe after 1y game time there's a rumour that pilots coming out of the Lyra-system with a lot of money. If you go there and click the bartender, he will tell you about a ship wreck leaking goods in orbit somewhere.

Mission scripts could thus lay breadcrumbs of "rumours" depending on which system you're in.

Extra: Step A - more cool stuff in the station

It would be nice if instead of a list of ships on sale, you saw them docked in the station. You click on them and you get info and sales pitch. Here I see two different options:
  1. Ships on sale are actually docked at the station, and we "just" use an external view to show them.
  2. One could use a fixed 2D drawn image of a ship retailer with empty landing pads, and then place 2D images of the ships on them. I guess the difficulty here is that the images of the ships need to be in the same "style" as the scene, or it might look weird. Thus for each ship added to the game, there would also be need for a 2D on-the-pad version to superpose on the shipyard image
Extra: Step B - enter station, exit ship more manually

Possibly you also have to "click" your way into/out of the station, by clicking the station building to enter the lobby, or click your ship on the pad to enter cockpit view.

I don't think this would add anything really relevant, but possibly open up many difficult questions that that need thinking through, but I'm mentioning it here to be thorough.
  • When you land, instead of auto-switching to a lobby-view, you click somewhere to leave your cockpit? You would see your ship on the pad from outside view? You would click the station to enter it? Would the outside view be in-game rendered, or 2D Image hand drawn/pre-rendered in Blender?
  • For an "interactive" image to work, there would need to be a lot of interactive area in it, like +50% linked to functions. Not like my mockup here:
when mouse over the (invisible) red rectangle you get some mouse over text
Image

So, I'm not sold on this at all, since I only see problems here, whose solution don't add much other than the joy of clicking your ship on the pad to enter it.

Step 3 - RPG your way out of the station!

After adding a bar, my second "dream" for pioneer is to really walk around and have turn based person to person combat, in a limited area (or "level") symbolizing the space station and some small region of the city or orbital station habitat ring. Ideally in isometric view (that would replace all the 2D drawn images I've just pitched above), and work pretty much like in X-com UFO / Terror from the Deep or Fallout 1-2. Alas, this is a pretty big undertaking, I assume.

Instead, we can build upon the 2D interactive images that will have been implemented in the previous steps (remember, you're still in my dream), and cheat and get the fun of the added game mechanics without all the work on the graphics. Fun such as:
  • you can assassinate people not just by attacking the ship but by also killing them in person.
  • You might stun and kidnap someone. Maybe that's a mission? Or you just take their special "Sirius Inc. plasteel armor", and credits.
  • Perhaps you pull the fire alarm, or throw a smoke grenade to avert the patrolling security guard, before you assassinate someone.
  • A new field of personal equipment would open up: medi-kit, bulletproof armour, gun, sniper rifle, stun grenade, ammo, and a shop for all this in the station, and player would have character skills to use weapons.
  • Your crew can act as body guards when you land on a base. You can never trust the NPCs at the base when docked in a pirate infested system.
So what's the cheat, that would allow all this extra fun and be more within our reach than FPS/GTA/UFO/Fallout-game play? Perhaps you have not noticed, but now, the world in Pioneer would be first person(/ship?) 3D for space flight (as it is now), and stations would be 2D point-and-click interactive graphics, next, we are able to leave the station, for a full (text based) RPG adventure! (Nerd alert!)

One of the problems in pioneer (imo), is that the graphics is "too nice", which makes adding new stuff very difficult. You need loads of time and skill. And you're always limited to what is feasible from a code/implementation perspective.

A text based RPG-adventure, pioneer becomes a theatre of the mind! I first thought my idea was crazy but I don't think it's as weird as it might seem, after I did some more thinking.

I see before me, that there are Quest modules that would require basically no coding skills beyond nested if-statements and dice rolls, that would take over when you exit the station, under some conditions. I haven't thought through exactly how this would work, because you wouldn't want more than one quest active at the same time, preventing conflicts with each other. Maybe different quests are active in different stations, or new BBS-missions would make use of the RPG side. Maybe bartender/rumours would point the player to different worlds, where only one quest is active.

What is gained: As mentioned above, with all the cool equipment you would be able to buy for your person, and not just your ship, I think this would really be a bold move, and make Pioneer unique and be a bit of a punch in the face of Elite : Dangerous, as well as make Pioneer relevant in an ever more crowded space game genre. I also think we have intelligent or "special" enough players to actually get away with this.

What is needed: An "Exit / enter city" door in the lobby image, that switches to a full frame Lua-window. We already have a GURPS system (Generic Universal Role Playing System) in place by Brianetta, so this could be built upon (BTW, GURPS is what Fallout 1/Wasteland originally used). It's a very well researched area, so what is needed is not coders or artists but some solid "thinking" about RPG and text adventure games.

What appeals to me here is that, once in place, the challenge is no longer on the coder / artist side, but "just" on thinking things through coming up with a good story (which is a skill of its own) and tone for the quests / missions.

Image

Step 4 - Scenery!

A small step from the RPG implementation, is allowing the modules to include images.

What is needed: Actually, I think we already have code for this. (We're putting faces and ship-spinner in New-Ui).

What is gained: I'll let the two examples speak for themselves

Image

Image

EDIT 2018-09-18: I've noticed the images have disappeared, and have uploaded them again, now using https://imgbb.com/ (for future reference). I hope the images get to stay there for a another few years. Naturally, I have them saved on my local hard drive.

Re: My dream for entering stations / cities

Posted: Sat Mar 26, 2016 12:44 pm
by bszlrd
I agree that this kind of interaction could have the potential to add a lot of depth to Pioneer if done right (I mean story/content-wise).
I think this could also be used to expand ship-to-ship comms, and to provide game-play for ship-to-ship docking beyond trading.

I did some looking-around and found some stuff that's lua based, which might be good for reference:
INSTEAD - interpreter of simple text adventures
A guy making lua text adventures with his kid to teach coding

The limitation with facegen showing only front view would sure need to be resolved to make anything decent looking for a bar patron or alike. Archimedean Dynasty/Aquanox sidestepped the issue using generic almost silhouetted people, and showing the face only for the actual dialog for example.

(Some unstructured thoughts from me, since I don't have the free mind capacity for a more deep thinking about this. But nonetheless it is a thing I find really exciting)

Edit: I've also mentioned to Impaktor back then: Zelda-like isometric out-ship experience.

Re: My dream for entering stations / cities

Posted: Sat Mar 26, 2016 8:36 pm
by impaktor
Yes, walk-on-ship and combat-on-ship would follow naturally from walk-on-base. I imagine some map of 100x100 tiles? for small/medium ship, with some basic interiors. Cockpit, cargo hold, etc.

But to tell you the truth, I've started thinking a lot about having a stab at the actuall "full" isometric, (well, at least 2D Alien Breed-like) implementation. Maybe when I have some more time in the future I can play around with a stand alone system, and then try to integrate it in pioneer? That if anything sounds like too much for me to handle. Oh, well. Time will tell.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 9:23 am
by bszlrd
What's good about the isometric Zelda-like approach is it's hopefully modularity both from art and coding pov (I'm assuming at least). And there's an existing lua based engine for it: Solarus. Or the map editor Tiled

For Solarus, I've already did some rough testing out of curiosity.
Image1
Image2
Image3
It was cluncky, and as stupid as I am, my first move was to start creating a tileset, just to see how much work it is.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 11:21 am
by FluffyFreak
I like these ideas, but I'm going to play a little devil's advocate for a minute too :P

Step 0 - Station lobby/interior:
I always wanted to try slicing and dicing up the ships/stations procedurally something like Dominuim wrote about. As an approach it has the advantage or reusing a lot of our existing code, we already render 3D models, we can colour them and texture swap so stations can be unique by having different patterns and colour as well as layouts.
This is also a more familiar workflow, it's 3D models which we have artists for, an existing pipeline etc. It's well and good thinking we can re-use FaceGen stuff but we've been hoping for improvements there for... well, years now.

Doing a first person camera is easy, as is the necessary movement/collision stuff especially on a regular grid where we could cheat/simplify massively. Level generation could be interesting mixing a fixed lobby layout with generated stuff.
Also this could still be shown in an isometric style, you just need to position the camera correctly and use an orthographic transform (I have one lying around from shadow rendering experiments).

Step 1 - A bar!
Given how much time I spend in them in real life I also agree that a bar is crucial to the game! ;)

Step 2 - Bartender is special
Agree.

Extra: Step A - more cool stuff in the station
Not sure this adds anything really, at the moment I think of it like looking at car on a website (like the teslamotors one) and you're just picking and ordering one.

Extra: Step B - enter station, exit ship more manually
This one ties into something that I've been thinking off for a while, it's a consequence of the new terrain-json stuff and city discussions.
To me it makes sense to have places other than cities to land. In films and TV there's always outposts, bars, wretched hives of scum and villainy, etc where you can have illegal things done to your ship and pick up "interesting" jobs that wouldn't appear in more respectable locations.

Anyway this might entail rough landing and "walking" to the bar/repair/market/etc. Now that can be done by landing within a set distance and bringing up a menu like we currently do, or it could be your picture based system but... these are both really the "Step 0" lobby just with a different picture or FPS walkaround area aren't they?

Step 3 - RPG your way out of the station!
You have large ambitions, I looked forward to sitting back and watching as they unfold :P

I do like the idea of a text based addition, minimum effort, maximum awesome to add more depth *if* the player wants it. Sometimes they do just want to dock, refuel, pay a fine and leave again. Getting stuck into things should be opt-in but otherwise I'm interested in it all.

Isometric XCOM/laser Squad-esque gameplay would be great but as you say, that's a lot of artwork. Tiled is a great editor and can support a lot of isometric stuff, I've cobbled together a renderer for it before too which has suffered a little code rot but I'll fix it up and share it somewhere.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 11:43 am
by impaktor
Thanks for reading my massive brain dump.

Please don't spend any time on creating assets or reviving code, as I'm no where near even starting on this. So emphasis on the "dream" part of the title. Also, I have other pioneer projects I'd like to finish first, so that will be what I spend my pioneer-time this summer on, provided it will be rainy.

The only thing here I feel somewhat strongly about is turn based person-to-person combat. How the map is rendered and such is, to me, of secondary interest, so if 3D rendering with shifted camera position is possible then that sounds interesting.

And yes, you should always be able to just land and do a quick refuel, unless on a pirate/outlaw base where they might jump you if you look like an easy target.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 12:49 pm
by bszlrd
Hmm, stray thought: What if it's tile based/modular, but in 3D, with a rotatable (or not) orthographic camera? (Perspective could also work.)

Wouldn't need FPS controls and model/texture detail, and lends itself to turn based combat too. And might still use the existing model display, could sport dynamic lighting for day/night cycle and such. And could still use Tiled for map creation (top view with a special tileset), since that outputs a .json. Might be even connected to the city and terrain gen in the long run.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 1:44 pm
by FluffyFreak
7z of my syndicate map renderer with source.
Uses SFML2 and GWEN (for UI).
Maps, txtures, etc are copyright EA but the isometric viewer is mine.
TMX loader loads Tiled map files but syndicate needs stacked isometric maps which Tiled didn't/doesn't support so there's some changes here, like using the layers as a stack instead of as actual layers.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 2:21 pm
by bszlrd
Neat!
It seams Tiled now supports stacked layer. You can specify an offset for each layer:
Image

I kinda like this way of thinking for map creation. It seems to make it a bit less abstract I guess.

Re: My dream for entering stations / cities

Posted: Sun Mar 27, 2016 2:36 pm
by FluffyFreak
Also the program for dumping that data from the amiga originals is here

EDIT: Oh worth noting that if you run the main batch file in there it will take AGES and generate 473MB worth of png files!