Helium Rain

Helium Rain

View Stats:
minWanabe Apr 3, 2020 @ 12:56am
HR Fanmod
I was inspired by some of the recent (excellent) modding adventures by others to also try my hand at improving the game.

I've created a steam guide with more information of changes here

It has been quite an interesting time, being the first time I've worked with C++, Unreal Engine, visual studio and also github. Thanks devs for open sourcing your game!

Download 1.4.2 (Windows)[github.com]

Download 1.4.2 (Linux)[github.com]

Steam Guide with Information
ScreenShots[imgur.com]
Github Fork[github.com]
Download 1.4.1 (Older)[github.com]

*Only compatible with the steam and itchio[deimos-games.itch.io] versions of Helium Rain*
Last edited by minWanabe; Mar 8 @ 4:22pm
< >
Showing 1-15 of 57 comments
S. Gordon Apr 3, 2020 @ 4:18pm 
Very nice work. I will give this a try since my modding is strictly visual.

I was wondering if this could be achieved:

We have a couple of menus when right clicking at the top:

Is it possible to create the following:

1) an extra page with a button clickable at the top listing all stations discovered by the player (only if the sectors discovered) with a filter to be able to see how much quantity of input and quantity of output for trade.

This would make it easy to create trade routes.

Without the filter applied all stations known(discovered) by the player show up.

Then you could apply a filter INPUT / FUEL / QUANTITY / DISTANCE which would show all stations requiring fuel and in order of appearance of needing much- to needing less - and then closest to the player

Or you could apply a filter OUTPUT / METHANE/ DISTANCE / QUANTITY which would show all stations having an output of METHANE in order of appearance closest to the player - then filtered on having much to having less quantity.

I would propose something like this:

So first choice would be INPUT/OUTPUT
Second filter choice: PRODUCT
Third and fourth options would be a checkbox

Only Distance checked: stations closest to the player
Only Quantity checked: stations with highest yield
Both Distance and Quantity checked: Closest with highest yield

2) a way to restrict certain ships to a faction in order to create faction specific ships.

If this would be an option I would be able to create a mod using Endless Space 2 ships.

Other mods like Eve, and the obvious Star Trek, Star wars etc... could also be possible.

Empire Carrier
https://i.redd.it/5u9nxsllrf101.png

3) A ship that can manufacture(spawn)/repair/launch/retrieve micro-fighters and bombers (drones) - 10 fighter/bombers max

With 5 orders available to the drones:

1) Launch - drones launch and deploy in a ball formation around mother-ship.
2) Stance Aggressive - close/medium/far - drones will engage all enemy ships within certain radius - 1 km/3km/5km
3) Stance Defensive - close medium/far - drones will defend all friendly ships within certain radius - 1km/3km/5km
4) Repair - drone lands (de-spawns) - gets repaired - launches again and joins the active order given to others
5) Land


4) Weaponized stations.

Thank you for this: this looks promising already and will give it a try.

Gordon
Last edited by S. Gordon; Apr 3, 2020 @ 5:13pm
minWanabe Apr 4, 2020 @ 3:45pm 
Hi, thanks for the compliment. I also think your set of mods are really cool.

If you re-download and apply my mod, in the Economy window you'll now find a sub menu "Stations" which has something very close to what you've described in your suggestion. It's a pretty great tool. The distance filter setting isn't quite the best, the order of sectors are all over the place but if I try to get it to sort by distance and then sector I currently get some bad results. Could probably use some more work to get that part going right. I'm also considering the value of a "Ships" sub menu with its own set of filters etc.

Worst case scenario with ship restrictions is that it would be possible to "hardcode" the ship identifiers in the game to act differently from the others. It would be better to be able to add the various variables required to the data/ships itself for a more generic and "friendlier" solution. I've looked in the C++ code where the definitions are for the variables and I made an extra one to see if the mod tool would auto-populate with it or not from the modified EXE, but nada. I think that stuff is defined using the unreal tools and I don't think I can use those with the way the source was released. I could be wrong though, I'm very unfamiliar with pretty much everything I'm doing with this. :-P

Regarding carriers, I can say that technically stations/ships are "the same" (not exactly) so it's at least possible to make ships dock to other ships using the already existing docking platforms. I don't currently know if there's any support for docked ships to be moved with the main ship for example when going to another sector though. There would need to be some kind of new docking/undocking platform/system suitable for drones and all the math/path-finding to support that. The probable inability to edit/tweak the data aside, that's fairly math heavy stuff and that's a strong weakness of mine unfortunately. If there is indeed no ability to add extra variables to the ships (like say, DroneMaximumCount,DroneRepairSpeed,DroneLaunchSpeed,etc etc) then technically it could be "hardcoded" too but it'd be one hell of a mess I'd imagine, and my "docking"/"undocking" mechanic would probably be just literally creating/destroying the drones near the carrier ship, rather than anything that would fit in properly with the game immersion.

If the mod tools currently allow weapons to be slapped onto stations (no idea) then technically weaponized stations would possible, I think (because they are technically ships). I doubt the in sector AI would use them right now and the out of sector combat simulation will most definitely ignore them at present, however.

In summary, my current opinion of making content related changes to the game through modifying/building the source code is leaning towards unfeasibility. I do like your thoughts in regards to where the content could go towards though. It would be cool to have at least one alien faction in the game, hidden from the Diplomacy window and in a permanent war with everyone. As an late game event they spawn in a far away sector that's hidden and undescoverable, from there they'd launch an invasion on all the people of Nema. I'd imagine they'd probably try to destroy rather than disable their opponents, and likewise everyone else would also go for full annihilation towards the aliens.

Cheers and have a good one.

[edit]The Stations sub menu is now the Stations/Ships submenu[/edit]
Last edited by minWanabe; Apr 4, 2020 @ 7:02pm
minWanabe Apr 6, 2020 @ 2:30pm 
I've since found a possible way of adding variables to the data/ships etc themselves and having them appearing in the visual editor. I've put up a (very basic atm) outline of how to do so in my little readme[docs.google.com] near the bottom
S. Gordon Apr 6, 2020 @ 3:58pm 
Hey there,

I'm still testing my mod, found a couple of bugs that need to be put right, but interested in digging deeper. I am no programmer, so the only thing I can do is think logically.

When flying to the different sectors you can see that some sector stations have their specific model - pirates, farm, spire etc... so there is a way to substitute the stations for other models. I might need to use the Umodel software to find out what the names of these stations are (because the big stations are not part of the mod kit), so I can substitute them with something else.

Another thing I found was that any ships 'specifications file' located in the Unreal Mod Kit (found in Content/Gameplay/Catalog/Ships/ file has a setting called 'build constraint' which is not set active. When activated you can set constraints. Wonder if it is possible to add different variables pertaining to factions because all that there is at the moment ingame is:

Free asteroid / No sun exposure / Hide on Ice / Hide on no ice / Geostationary orbit/ Special slot in complex / no complex.

So I figure if you activate one of these in the file of that particular ship it will not show up in the build cue depending on what sector you are in. Making it possible to restrict ships depending on the options up here.

If this can be combined to have a similar setting for the AI companies as the player has in restricting his shipyard to only allow building by the player, we are basically creating a faction specific ship system.

The downside of this is that the player will not be able to purchase bigger ships at the beginning because he needs a shipyard of his own, and should be provided with a basic all rounder to start making money in the beginning of the game.

I am not familiar with compiling and source code yet. Will have a look at that readme, but I will probably get lost.


- Carriers could be achieved as you say -

Spawning/De-spawning is fine - since we are not planning on manually controlling the drones to dock, we would not be adding a docking mechanic as with regular ships. Basically a despawn would be possible once they pass a threshold. So no need for docking slots regarding drones. I could create a ship using the mesh of the shipyard to simulate an entry and exit point for the drones, but once they fly past the threshold they could vanish/despawn - even if flown manually. All we would need to spawn the drones would be a button on the ship menu or middle mouse icon (launch drones).
The hardest thing to achieve as of yet would be the 'track' the AI would need to fly - the pathing so to speak - to the hangar.

Repairing a drone would be something like - x time before respawn depending on % damage - the more it is damaged, the more time it takes to respawn when 'docked'.

Destroyed would be spawning a new drone after 5 minutes for example - simulating a rebuild - when required steel/fuel/plastics are available.

The warships already have a choice of - attack military - protect me etc... so flying the mothership - the drones could be held back (defend me) or attack either military or freighter targets and be on their merry way like any ship in one fleet.

Regarding stations, I am not sure... I have tried to put a turret on a station, but haven't seen it materialize. Haven't game tested it fully, so I should deep back into it.

Another approach or workaround to a stationary gun platform could be to construct a ship with station parts, a very big mass and very low acceleration. It would then be a ship, but would be too slow to actually move and have the appearance of a station. That is just an easy way around the problem. It would be able to move, but very slowly. Maybe take 2 months to go from the Spire to Lighthouse for example which is indeed a very doable thing.
Last edited by S. Gordon; Apr 6, 2020 @ 5:55pm
minWanabe Apr 10, 2020 @ 6:55pm 
Hey hey,

Yeah bugs can be a bit of a never-ending thing, they're always cropping up everywhere ;-).

The values that BuildConstraint can be set to are predefined in one of the code files, a very useful thing for "hardcoded" options. For the various "restriction" variables I've added (BuyableCompany,BuildableCompany,BuildableShip,ResearchableCompany) are instead a text entry that you type in the Identifier or ShortName depending on what it's for to check against, with PLAYER being a special option for the player company. Those vars are untested right now so they might not actually work atm but if so it should be easy to fix up. A drop down menu would be pretty nice but then for it to work you'd have to add each entry you want the drop down menu to have in the correct code file and then probably your own unique exe file which would be told to read those values...could get a little messy doing it that way.

I've had a look at the settings of BuildConstraints and I can mention they are only applied for stations and not ships when they are built. It would be kind of funny to have weird restrictions on ships like that, but would probably not be necessary I think? Also, if a "ship" has an engine count of 0 the game will recognize it as a station, otherwise it's a ship. That distinction can change the behaviour in many different areas.

I've done a bit of tinkering with Carrier Ships and I do now have something interesting all hooked up with them. They'll automatically build drones using internal ship-factories. The cost of those drones are setup the normal way as any other ship. They can also automatically look for resources they require to build their drones locally and buy/take them. They prioritize their own company stations but there is currently no toggle to make them only take from their own company stations. Their drones are technically apart of their fleet but are hidden from various UI screens. Because they're part of the fleet they will repair/rearm the same way as any other ship in the fleet.

When the carrier fleet moves to another sector all their drones are added to their "fake" internal hangar, and then during combat they will undock for the fight and then return to base. A small GIF showing undocking/redocking here: https://imgur.com/a/JHYCmDj . The undocking delay can be set lower (which is faster) and might be setup as a variable on the ship to enable some types being slower/faster. If a carrier is destroyed their drones will try to auto-link their ownership to local same company carriers, if they can't do that they self destruct. In skirmish mode the carrier ship doesn't really have any special properties right now, it starts with no extra subordinates. The drones do respect the sector reservation system. They will not undock if they are set to a reserve ship, for performance reasons.

I've still got a lot more testing and fixing/tweaking to do with the carriers before they're good to go, right now for example I'm testing to see if I've fixed a game crash that happens sometimes when their ships re-dock.

I looked a little more into armed stations and I can say that it's possible their turrets will fire in sector without any changes. [edit]Actually looked at this now, stations don't shoot afterall, can be changed[/edit] The out of sector combat system will definitely ignore them, although I've made a couple of changes that should include them as a combatant.

By the way while I was looking into trying to figure out how to build/make a mod (and not being successful) and export them into a .pak file so the game can read their files, I noticed that your "1.3.7 Harmonic Resonance" package comes with "HarmonicResonance.pak","HarmonicResonance.-pak" "I-War-Test.-pak" and "HarmonicResonance_old.pak". I have not a clue when talking about this (are the .-pak extension files neccessary?) but it's possible at the very least I-War-Test maybe should not be included, unless maybe it's some sort of compatibility thing, I wouldn't know :-O.

Cheers, have a good one.
Last edited by minWanabe; Apr 10, 2020 @ 7:04pm
MMMrph Apr 12, 2020 @ 7:14am 
Does this fix the late-game crashes that occur frequently?
S. Gordon Apr 12, 2020 @ 2:10pm 
@minWanabe

I am astonished at the awesome news.

I wasn't sure if the Buildconstraint was something that could be used to have certain stations only produce certain ships, but since I came across the setting, I just wanted to point that out to you as a possible path to explore.

The great news is the carrier ships - I dunno how we could share our work together so you would have access to the templates that I made of the ships in the Harmonic Resonance mod. I could then create a visually appealing drone / small fighter that could be outfitted with weapons as seen fit to function as as an interceptor / fighter / bomber drone.

What I would like to bring ingame is this:

https://www.youtube.com/watch?v=KT4KORiy1QQ&t=112m51s

The Lexington is a ship from the space RPG 'Mission Critical' from yesteryear. I created a basic model with assets from existing Helium Rain parts. You can see a picture of that here, and the schematic of the Lexington ingame can be seen in the youtube video around the 52 minute mark.

https://steamuserimages-a.akamaihd.net/ugc/778498271542651792/E8DC61BC070F70BC618E728C58E0F697F096D7E4/

In the YouTube movie above it shows gameplay where an operator is controlling the drones with waypoints and so forth. This is something beyond the scope of the carrier mechanics you are working on and is of course not required.

What would be cool though is to have the 'Lex' with its drones available as a playable ship ingame in Helium Rain, using the mechanics you are working on.

For the gunstations, I would simply use a ship that looks like a station and moves very slowly because you will want to place your gunstation close to an asset you would like to protect. Or in the best case scenario have a 'builder ship' which creates a station and maintains it, but is otherwise unarmed. Say a ship that is docked to a pod that moves slowly and once the pod is undocked and you wait a day; a ship with a velocity of 0 m/s is spawned that looks like a station, but which can be upgraded by the ship that dropped it if you want to upgrade the turrets for example.

And last but not least, I was wondering why my mod was going from 135 megs to 600, and now I understand. All the files left in the folder during cooking will be added. I moved them to a different folder, and this will probably cure all files stuck in the release that shouldn't.

So thank you very much for pointing that out.

I would appreciate it if you keep me posted on this. Great job. The devs made a great game, but there are some additions that this could really make it shine.

Keep it up.
Last edited by S. Gordon; Apr 12, 2020 @ 2:12pm
minWanabe Apr 15, 2020 @ 2:26am 
I've just updated the download binary with a new version. A few fixes/tweaks. I spent a bit of time optimizing some of the various ship AI and some of their systems for performance, should hopefully help late game performance situations. I was able to measure some substantial FPS increases in very specific testing scenarios. The biggest remaining bottlenecks to game performance (the real time stuff, not the turn simulation) are a lot of physics stuff and also the particle system. It would probably be pretty sweet to be able to look at those particles themselves and maybe find ways of optimizing them, especially if it's possible to use the workshop modding system to make them into a patch that (safely) overrides the original ones. I had a little look at them. I saw that none of them have any LOD levels assigned and some of them aren't done on the GPU or are only partially done on the GPU. A couple seemed to have more than one light which probably doesn't make much of a visual difference. There's also still room for optimizing the C++ stuff, frankly that's a never ending process but there are very diminishing returns on that front.

I'm not 100% sure about fixing any late game crashes you may have experienced, MMMrph. I can say that when I discover crash bugs (of my own doing, naturally) I'll fix them ASAP or try to find a work around if it's a bit complicated. In tweaking/implementing stuff I've been working on I have suppressed a few crash bugs that have always existed but the circumstances for those particular crashes probably never occurred in normal game-play, or if they did they would have been super rare.

@S. Gordon

Yes, thanks for letting me know about the buildconstraints and also your suggestions with carriers and the station/ship menu. They definitely have kept me pretty busy :-)...been a pretty good learning experience, although a bit tedius at times.

I ended up watching that video while I was doing other stuff. A very old game indeed, had an interesting story and a lot of interesting minigames/game mechanics. Yeah the ship seems cool, would be badass to see it in existence. And yes a system imitating their strategic view with the drone system would certainly be interesting but that would kind of be like making another game in a game. I agree we'll be alright without it :-).

I think you can take advantage of the carrier stuff but it's not exactly straight forward, it will require installing the tools needed to basically compile/build the C++ code so that the editor can recognize the new possible variables the ships and etc can have assigned to them. Once an individual has access to tweaking those values in the modtools it's probably possible to distribute any results of that via the workshop as "normal". The vanilla game will ignore those extra values of course but if someone is running this particular set of modifications the data will be read and necessary in game behaviours will change as a result. I'd still like to add a few more possible variables for people to play around with, such as basic variables to unlock ships or modules through research. As it is, all the possible advantages of making new research items are "hardcoded"

Yeah I see what you're getting at with armed stations. Being able to deploy them in a specific place would make sense. Building ships and also mining type ships would be an interesting and also substantial change to the economy if tied in to everything properly. There's definitely a lot of potential room to move the game balance/etc that's for sure. For the most part I personally quite like how it's a very streamlined straight forward sort of empire builder/trading game, so continuing that theme of relative simplicity compliments the game in any new stuff I think.

Sweet, glad you got those extra files sorted out for your next release.
MMMrph Apr 16, 2020 @ 2:56am 
Originally posted by minWanabe:

I'm not 100% sure about fixing any late game crashes you may have experienced, MMMrph. I can say that when I discover crash bugs (of my own doing, naturally) I'll fix them ASAP or try to find a work around if it's a bit complicated. In tweaking/implementing stuff I've been working on I have suppressed a few crash bugs that have always existed but the circumstances for those particular crashes probably never occurred in normal game-play, or if they did they would have been super rare.

Thanks for the reply. In both campaigns when I played the game, when your empire got big enough and you were taking over the whole map the game would get slower and slower and eventually progressing to the next day had a good chance of crashing the game. Given that the game seemed to save at random, it made the game unplayable as you could lose a lot of progress easily.
Stranger May 18, 2020 @ 10:05am 
Well somehow we didn't see this thread until today, but I want to state that this is some absolutely amazing work, and makes us quite happy that we did open-source the game. Congratulations on the huge effort !
Last edited by Stranger; May 18, 2020 @ 10:05am
Great mod and some nice changes, but there are a few bugs:

1. Sometimes I lose the ability to fly other ships in my fleet until I exit to main menu and reload the save - I believe this is related to accessing the Shipyards menu from the Orbital Sectors view, although I'm not sure which part of it I need to click on/change to cause this bug. It seems to somehow make the game think I am not in the same sector as my own fleet.

2. After accessing my own shipyard via the above Shipyards menu, I can allow/deny external orders at shipyards owned by other companies, including setting restrictions on individual ship types.

3. Projectiles sometimes don't appear from my own guns (I can't tell if they're not appearing from other ships guns). I'm not sure if they're invisible or just absent.
minWanabe May 23, 2020 @ 9:26pm 
Hi and thanks very much for the bug reports.

I've had a look at those bugs you've reported and I'm pretty sure I've fixed bug #1 and #2. Bug #3 looks to be in a better place now but I haven't tested it enough just yet to be 100% sure it's fixed. I'll get to that but for now I thought considering how annoying Bug #1 probably is I'll push out an update asap. I've updated the .exe download. Thanks again for reporting those bugs, that is very very helpful.

Thanks Stranger,
I really appreciate your post and also the open source nature of the game. Software is never really finished but being able to release everything needed for others to pick up and do their own modifications is a pretty great send off. The Helium Rain team did a lot of really good stuff with this project and it's pretty much in a bit of a unique niche even. There's nothing else quite like it out there.

I think quite a few other people have had a look at doing their own source code modifications too. There seems to be a few Github forks with no commits/uploads. It's impossible to know but my geuss is that people are getting discouraged when it comes to getting the SDL2 Joystick library compiled. I was able to get it compiling multiple times with a hacky "solution" but that method doesn't seem to work anymore at this time, or I completely forgot about an important step I did in the first place. It's on my todo list to (hopefully) revisit at some point.

Good luck with your future projects.

[edit]I've since updated the .exe upload again, bringing another fix to the projectile issue and there were also a few other bugs found and fixed including a game crash.[/edit]
Last edited by minWanabe; May 25, 2020 @ 6:16pm
Martin Sep 4, 2020 @ 9:58am 
Thank you for your great work !!!
minWanabe May 10, 2021 @ 10:03pm 
Hello folks,

I've just uploaded a small update for this to Github and also uploaded some ScreenShots[imgur.com]. The binary download has been updated.

Changes compared to the previous version is as follows:

Shipyards button removed from sectors menu (because it has a completely different function from the other buttons it's next to which is inconsistent with the UI design)
Stations/Ships menu in economy tab can now filter for multiple factions simultaneously, and now has a filter specifically for shipyards
Ships menu now has a "include traveling" filter, which when enabled ships that are traveling will appear in the display
Added in Population tab in the economy menu, showing total population, population money,wealth and happiness per sector
Global War event now has a minimum amount of days before it's allowed to fire off again
Added new sector license requirement for building stations, which costs money to unlock and scales based on the sectors features (such as being able to place mining stations), population and how many other companies have knowledge/licenses of the sector. Captured stations in unlicensed territory have a 3x penalty to production speed and 1.50x credit cost per cycle
AI Companies now consider building at their own shipyards before going to other companies for ship orders
AI Companies now manage their budgets differently
AI Companies are now allowed to build multiple trade/military ships simultaneously, amount dependent on their personality and if they are at peace or war
AI Companies are allowed to upgrade 2 stations simultaneously
Optimized: Companies now track what sectors have what stations that belong to them, very slightly reducing some iteration/if statements
Fixed: Fleets wouldn't properly show their status indication icons
Fixed: Donating items would still limit the transaction amount to the quantity the faction can afford
S. Gordon Jun 11, 2021 @ 5:33am 
Legendary :-)
< >
Showing 1-15 of 57 comments
Per page: 1530 50