Space Whales, Game Progression & More Dialogue
Introduction
In 'My Descent Into Dialogue Induced Madness' I stated that I was planning on finishing three main features by the next devlog:
- Successful game progression.
- New module(s).
- Support for space anomalies.
My success in regards to all three of these will be covered significantly here. This devlog will also cover the following topics:
- Updates to the dialogue system.
- Progress on random events.
Game Progression
Heres the synopsis: you have to reach an area of space known as 'New Eden' - in order to do this, you have to traverse three distinct regions, in order, 'The Core', 'The Frontier' and 'The Abyss'.
How many star systems should be between 'The Core' and 'New Eden'?
It takes about 1.5 to 2.0 hours to beat FTL: Faster Than Light- I assume many rogue-likes are similar, as that specific amount of hours is enough to get invested, but not to be devastated in the event of loosing. I timed how long it took me to survey enough planets, wormholes and other phenomena within a star system before deciding to move on - it was a range between 2 to 5 minutes, without outliers. Therefore, by multiplying the mean value, I came to the conclusion there should be 35 star systems in a 2 hour game. Later, I changed this to 25, as my dataset was very limited, thus requiring some leeway. Additionally, I am a biased source and was playing the game completely optimally, which I also needed to account for.
How should travelling between 'The Core' and 'New Eden' be difficult?
I have devised three 'survival' mechanics for Stellar Cartographer: 'Hull Stress', 'Hull Integrity' and 'Morale'. I believe their in-game tooltips offer the best explanation - note that the currency which is obtained by turning in exploration data at space stations is called 'nanites':
Morale: The willingness of a starships crew to follow their superiors. Depending on circumstance, an uprising may occur at 0%.
Hull Stress: General starship wear-and-tear. Principally may be reduced at a space station in exchange for nanites. Damage over 100% will be transferred to hull deterioration.
Hull Deterioration: Permanent damage to a starship. Catastrophic, and often explosive, ship breakdown occurs at 100%.
Morale is currently unimplemented, but would decrease via certain dialogue choices - especially ones which kill main characters. The aim is that an understanding of both the dialogue and the game itself should be required to win.
I believe that separating hull stress and hull deterioration will make the game more fair to the player, as acquiring hull stress is somewhat optional - jumping through wormholes incurs +7% hull stress, scanning in large arcs incurs +1-3% hull stress depending on the size of the arc, activating the boost ability (starship go fast) attracts +1% hull stress per second, and some dialogue options may incur hull stress. I do not want the player to feel cheated if they are to die to, for example, a dialogue option which significantly damages their starship - the player should only blame themself for not being careful.
Perfecting the cost of removing 1% hull stress at a space station will be difficult - the cost should scale with time and demand sacrifices - e.g, repairing your starship or buying a new upgrade. I am currently using this graph, where 0.0 on the X axis is 'The Core', 1.0 is 'New Eden', and the Y axis is the cost in nanites per 1% hull stress removed. Getting the cost correct will require more testing, as I feel like its way too low at the moment.
Overall, the goal of these survival mechanics is to create tense scenarios where the player has to perform a cost benefit analysis for every action that they take, and to create scenarios where survival is dictated mostly by the players actions.
Long Range Scopes (Space Whales!)
The 'Long Range Scopes' module is the Pokemon SNAP esc mini-game which I planned on adding last devlog - interacting with a space entity on the map allows you to take three photos, which are ranked according to some basic criteria. The first space entity to be added is the 'Pod of Space Whales'. I made the models in Blender and learned some basic animation so their 'tails' wiggle occasionally.
The value in exploration data for each photo is ranked out of four criteria: size of subject(s), distance of subject(s) from the centre of the frame, posing of subject(s) and characteristics of subject(s).
The size of a subject is determined by un-projecting the position of four points on a prop to the screen, then projecting those points on an upwards line. The size (vertical size) is the highest point minus the lowest point. Photos where the subject is too small/large are ranked less.
The distance of a subject from the centre of the frame is acquired by finding the average of the four points, and then calculating its distance from the screen centre. Photos where the subject is close to the screen centre are ranked higher.
The posing reward for a subject is the size reward plus the distance reward, granted only if the subject is currently posing (for space whales, if their tail is waving).
The characteristics reward is a flat bonus to rare variations of props - I have not added any yet, but I can imagine adding a 'golden space whale' at some point.
An improvement which I would like to make would be to visually indicate when the vertical size of a prop is optimal - likely by just applying a blur effect when you are too close/far.
Dialogue
I have made a number of updates to the rule-based dialogue system which I covered extensively in the last devlog:
- Support for comments.
- Support for random events on planets and in space.
- A system for allowing parts of a query to be passed into dialogue text - e.g, replacing "$planet_name" with the actual planet name.
- A new column for querying a concept for the random best rule - ranking all of the rules and, if multiple have the same highest number of matches, calling a random one from that group - this was required for random events.
- A system for random events to have a seed which is used by the random number generation in the random best query type, ensuring that if the player re-interacts with an event, the event will always be the same.
Random Events
My early random events were far too complicated, with branching options and many special character interactions - I only managed to complete 2 of them. It became obvious that I needed to make simple filler between such events, so I settled on this outline:
Exposition -> Investigate -> Reward or no reward
This outline will hopefully allow me to make more dialogue to pad out the world faster.
What Next
Most of the features which I feel are required prerequisite to an alpha build are finished! Therefore, I feel that I should focus nearly exclusively on polish, bug-fixes and adding a tutorial. There are some other small tasks which I would like to complete in the meantime:
- More variety with the 'long range scopes' module. The 'pod of space whales' is only one of the points of interest in the game, however all of the other ones are completely devoid of props. I would like to add giant crystals, space coral, etc.
- Sound effects. Particularly sound effects for taking photos via the 'long range scopes' module - I have an old camera lying around which should work perfectly for this.
- Sorting out export presets. Desktop icons for the game and the such.
- Consolidating the location of values which I will likely have to tweak to improve the games progression and difficulty.
Thank you for taking the time to read this devlog.
Stellar Cartographer
Space Exploration
Status | In development |
Author | KermitTheGodFrog |
Genre | Simulation |
Tags | Exploration, Godot, Singleplayer, Space |
Languages | English |
More posts
- A Tutorial, Polish & Space Coral2 days ago
- My Descent Into Dialogue Induced MadnessAug 18, 2024
- Generating Star Systems & Documenting Celestial PhenomenaJul 07, 2024
Leave a comment
Log in with itch.io to leave a comment.