Full C++ source code for Helium Rain, a realistic space sim

Hello !

I usually post on my project’s thread but I figured this could be a helpful resource for other developers.

We’ve just released 70,000 lines of C++ code on GitHub which is the entire source code for the game (not including the assets, levels, etc). We thought it could be of some use to developers, as we encountered many common issues with Unreal Engine. It’s neither a fully open-source project or a tutorial, it’s just an ongoing project that happens to be very large, with two years of work by two developers. It’s released under the MIT license so you’re free to reuse anything you like.

Details

Highlights of the source code, from the most interesting to the (probably) least interesting :

  • around 20,000 lines of Slate UI code (we started before UMG existed) ;
  • menu system with fading between screens, clickable notifications
  • a game settings menu, a save slot system with a “load game” menu ;
  • a 3D cockpit system with a complex projection system - the HUD is painted on a 3D mesh, and it’s still able to project on the scene behind ;
  • dynamic control of materials (though the assets also play a major role here) ;
  • spaceship attitude control, weapon system, automated docking and combat, economic model… Stuff that is really dedicated to our game and probably useless to others.

It’s not something gamers will be interested in, but if you’re looking for answers on C++ issues, it could be a good starting point. I’ll answer your questions here if you have any !

Screenshots

I hope some people will enjoy it !

This is great! While I’m not making a realistic space opera, as you guys are, some of the things you’ve done I’ve been working towards, and appreciate the chance to look at other methods of accomplishing those things.
It’s always a great thing when the community gives other people a peek behind some of the work.

Your game looks like it’s coming around great, and I’ll be sure to look into it.

Again, thanks for posting this for the community to utilize!

thanks for this man!

This is super generous for you to do.

Thanks!

This is incredibly generous!

I’m actually developing an action-adventure space game, so this actually may prove useful for comparing methodologies and if I encounter issues you may have already overcome.

I’ll definitely keep in touch if I end up using any of your solutions!

You’re welcome !

At the moment, we’re not publishing the assets so you won’t be able to run the game from compiled sources. So it’s not like the sources are super useful right now. In the meantime, you can take a look at what the game looks like to see if there is something you want to check out in the source. I’ll be happy to explain any technical aspect of the code.

thanks share

For the gods of game developers!

Hi,

Thanks for the sharing.

Could you please explain me where you set the preview image that you are using on the items “description” panel? I’m wondering if you are using a precalculate image or a live preview.

Thanks,

Hi,

Thanks for the sharing.

Could you please explain me where you set the preview image that you are using on the items “description” panel? I’m wondering if you are using a precalculate image or a live preview.

Thanks,

We’re using pre-rendered images for all item thumbnails. Here’s how that’s working for a spacecraft :

  • when we create a spaceship, we add a UFlareSpacecraftCatalogEntry data asset to the game
  • it contains a FFlareSpacecraftDescription, a structure that holds a FSlateBrush for preview purposes
  • we import a processed screenshot of the object and use it in the FSlateBrush field

Tell me if any of this is unclear :slight_smile:

that really does look awesome

Thanks !

I’m also releasing the sources for a game launcher and updater. I built it years ago for an UDK game, and brought it up to speed for UE4 this weekend.

Features :

  • confirm with the user that he’s fine with installing where the updater is (in-place installation) ;
  • download the game from an anonymous (possibly password-protected) FTP server and check the consistency of all files through MD5 ;
  • has an about window you can customize ;
  • will let you launch the game once it’s ready.

It’s not really an installer, but it makes an installer pretty pointless.

Sources are here. It’s made with Qt, so it’s portable, and you can build it as a static executable (single file program with icon, all DLLs including the compiler’s, etc :slight_smile: ).