Live-coding Fleet Commander

One of the games that got me to build Rez is Fleet Commander.

This is a kind of procedural narrative game that is partly inspired by Out Of The Park (OOTP) baseball from 2002. OOTP is a baseball sim where my keenest enjoyment was watching prospects come through the farm system to the majors. It was fun to watch them develop as players and see how the team functioned in the season.

I imagined something similar where you command a fleet of star ships that have to deal with situations going on (medical emergency, pirate raid, diplomatic incident, mysterious signal, and so on) and where you control officer assignments and development. The idea is there is a central plot that is there and then procedural missions that branch off from it.

While I have done a lot of work on Rez Iā€™ve done relatively little on the games that inspired me to make it and I want that to change. So here is a Live Coding session where I start building Fleet Commander.

Honestly I donā€™t really expect anyone to watch this. Itā€™s certainly pretty awkward and might be boring[1] unless you are curious to watch me designing the game ā€œliveā€ and see how thatā€™s done with Rez.

[1] If this hadnā€™t been a live stream I would certainly edit out the bits where I am fixing bugs in Rezā€™s implementation of bags.

3 Likes

I might watch a bit of the livestream, but Youtube is currently broken on my Firefox for some reason.
I had an idea for a similar game where you have to manage an interstellar empire, but I had trouble imagining how to fit a narrative in it. Your officer system seems good, I may do something similar. You send agents on missions, that can get random events with skill checks, so you should choose the best one for the job.

Now that I think about it more, Iā€™ll probably turn it into a Perry Rhodan fangame (immediate respect points from me if you know the series). I donā€™t think theyā€™ll go after a free fangame and if they do, I can just take it down and rebrand it.

2 Likes

Yep thatā€™s the core of it. Only in FC you assign a ship with all of its officers. Different types of situation/mission require a different mix of skills. Additionally there is the psychology of the various officers (and particularly the captain).

For example a reckless captain might be ideal in a situation that calls for bold action but less so during delicate diplomatic negotiations.

Then again there is the dynamic of how officers work together. A trusting captain might develop their officers better but be more susceptible to surprises.

The idea is that the central (scripted) plot intertwines with the procedurally generated situations. It may make the game ā€œunwinnableā€ but I donā€™t care too much about that right now.

Be good to hear more of your ideas.

Alas I am not very au fait with German Sci-Fi series :grinning:

1 Like

Yeah, Iā€™d plan to have bigger missions have multiple agent slots. You wouldnā€™t e.g. infiltrate and enemy empire to steal an artifact with just one really capable person.

Multiple difficulty tiers that modify the skill checks and chances for negative encounters may be good in that case.

You could also take the CoiceScript approach and make a utility to auto-test the game with different random seeds and see what percentage made it to the end.

If you knew that itā€™s a German sci-fi series without googling, thatā€™s enough for me lol.

Interesting idea. Rez games are event-driven with all state contained so that is plausible.

Alas I asked ChatGPT so I am afraid I still claim no knowledge of German Sci-Fi :grinning:

1 Like

Iā€™m planning to do a second live stream on the 30th in the evening (GMT).

Iā€™m planning to stream myself continuing to build the Fleet Commander game tonight at about 8:30PM GMT for about 60-90 minutes.

Off-camera I have been fixing Rez bugs and improved its performance quite considerable. With respect to the game Iā€™ve mostly worked on fixing a few bugs Iā€™ve already introduced and created some better name generators.

1 Like

Second live coding session on Fleet Commander, where I mainly worked on adding star systems and dynamically creating some plots.

While I would enjoy the company, comments, feedback etcā€¦ if anyone was to tune into one of these, the main reason for doing this is to actually get me to work on the game itself and not tinker with Rez itself. Somehow I fowled up the camera so you wonā€™t see me. I suspect thatā€™s not much of a negative.

If youā€™re expecting someone working on a classic IF parser/puzzle game youā€™d be very disappointed. Thatā€™s not what this thing is at all. But if youā€™d like to see an amateur build a procedural generation based IF game in public it might have some interest.

Youā€™ll also see me bumble around, do some debugging, forget basic trig, and show off some of the cool shit Rez can do.

Also if anyone is an OBS steaming expert and could help me up my game that would be welcome!

Iā€™ll go over this in more detail on the next stream but I just added a rough & ready SVG render of the sector map to the game:

1 Like

Iā€™m planning to stream myself live coding again this evening, probably about 9PM GMT for 60-90 minutes.

Iā€™m finding it useful for putting some focused time into the game.

Iā€™ve been thinking about the Lore and I think I now have the first few narrative scenes scoped out. How the game is going to begin for the player.

Iā€™m also planning to improve system generation. At the moment star position is broadly random and maybe it would be more realistic with some clustering. Second a star right now is just a name & coordinates ā€” weā€™re going to need some actual stellar mechanics and planets!

A key aspect of the game play is going to be surveying planets. In most games you click ā€œsurveyā€ and thatā€™s it. In FC you will have to setup a survey team and support them and survey different locations. So there will be orbital survey looking for promising sites and then deploying and supporting a survey team as they explore.

Also I want to make some progress with generating ship crews. Iā€™d like to be able to inspect a ship and see the crew at different stations and some of the overall crew data (rating, experience, morale and so forth).

Iā€™m thinking these things out now because I find thinking on stream more difficult (I mean, I know nobody is watching but stillā€¦)

Iā€™ve actually continued to record myself (Iā€™m up to session 5) but not bothering to post them. I think until the game is actually somewhat playable itā€™s not very interesting ā€” itā€™s a lot of me not quite remembering how to do things in Javascript and pausing to try and think. I am however finding it a useful discipline and will post some videos when Iā€™m more playing/tinkering rather than building the foundations.

1 Like

The Procedurally generated bits looks cool. Perhaps one of the fortes of Rez.

So i was wondering how the procedural bits are going to interface to the written story bits. For example, Iā€™m assuming there will be various characters you encounter that will have scripted scenes and events, and of course dialogue.

2 Likes

You are not alone :grinning:

At the moment my thinking is that the interface will be storylet driven and that I will use a common mechanism for both pre-written and dynamic story elements, i.e. pre-scripted will present in the same form to the game as dynamic elements and will depend upon the same model for triggering as dynamic elements.

But itā€™s a quite open question.

1 Like

Perhaps some kind of stats are needed.

My game is absolutely littered with stats, did you have something specific in mind.

Player stats maybe. Because what rewards will you get from procedural missions except maybe a stat boost. Then perhaps you need this for the scripted sequences.

Okay so Iā€™m still not sure how much the player is ā€˜embodiedā€™ in the game vs. a god-like observer. At the moment I am tending towards embodiment.

If the player exists in world then they can gain XP and improve their character. Completion of missions could earn XP and story points.

Story points are an idea I am borrowing from Star Sector. You earn them along with XP and skill points. They let you do things like avoid a combat you donā€™t want to fight or build hull modifications into a ship.

They feel like a great way of letting the story generator do its thing but allow the player to intervene to get the outcome they want but as a relatively limited currency there are choices. If you fix this situation you might not have a story point later to fix another one.

Wellā€¦ I just recorded quite a good session and then discovered it hadnā€™t captured any of the audio :frowning:

The result of this session is that the initial fleet generator now creates a much more realistic set of officers.

Iā€™m not sure quite how far down the Dwarf Fortress historical generation rabbit hole I am going to need to go. My instinct is that I am going to have to go some distance but Iā€™m trying not to get too far ahead; Iā€™m not starting from the Big Bang and the deduction of the existence of rice pudding and income tax. Just, start with something reasonable for the stage of development and incrementally improve.

Here you can see that the officer has been promoted over time to captain and skills related to his station have improved as heā€™s moved through the ranks. However:

  • thereā€™s no background origin. Is he a native Beta Sector inhabitant or did he come across from Alpha before the gate fell. Which planet/system is he from?
  • heā€™s apparently spent his entire career on this ship and was put in the command station as ensign-1 (the lowest rank) which is again unlikely.

Kind of hand-wavingly good enough to get started but massive room for improvement.

1 Like