[Released] Retro Space Rail Shooter template

https://assetstore.unity.com/packages/templates/packs/retro-space-rail-shooter-132618
Google Play Demo: https://play.google.com/store/apps/details?id=onemanescapeplan.spacerailshooter
WebGL Demo: Unity Play | Retro Space Rail Shooter - Template Demo game

A game template inspired by classic games of the 16-bit era. This template provides nearly everything you need to start building a 3D on-rails shooter in a retro style, including code, music, sound effects, models, prefabs, HUD, menu and gameplay scenes, retro-style shaders, and more!

This project is designed for Unity developers of all skill levels. Extensive, well-written documentation will help everyone from rookie coders to expert developers to understand and work with the code, components, and assets.

Not a coder? No problem! Flexible, highly reusable components allow you to quickly build enemies, NPCs, levels, new weapons, and more without needing to write any code.

Features:

  • Single-player on-rails shooter gameplay. Steer your ship to aim; shoot down enemies while avoiding obstacles and enemy fire.
  • Scoring system
  • Player inventory / power-ups system
  • Laser cannon and homing missile weapons
  • Player lives and respawning
  • Several types of AI and movement patterns for enemy / NPC ships
  • Retro flat-shaded player spacecraft model with two variants
  • 5 retro flat-shaded enemy spacecraft models, plus 1 retro flat-shaded enemy carrier model
  • Functional enemy prefabs for each enemy model
  • One complete level demonstrating all gameplay features, plus several scenes demonstrating specific concepts and gameplay features
  • Menu Main scene
  • Settings scene
  • Two music tracks and dozens of retro-style sound effects
  • Graphical presets to create a more authentic retro look. Quickly set your resolution and framerate to emulate 16-bit, 32-bit, 64-bit, or high-def platforms
  • A custom retro shader that gives your models an authentic 16-bit look, with flat-shading and checkered shading inspired by the Super FX chip*

This project also includes my core library, which contains highly reusable code and systems that can be utilized in just about any project! The core library includes:

  • Object pooling system
  • Many components for simple movements and animations
  • Volume and event triggers
  • Health and damage system
  • A “DrawConnections” system for visualizing script links (such as references and events) between GameObjects in the scene view
  • Many other utility components that can simplify your life when building a game!

Retro Space Rail Shooter is a high-quality template developed by a professional software engineer in the U.S. You can expect clean, modular code that is well-written and highly flexible, as well as exceptional documentation written in perfect English. My goal is to give you a solid foundation that lets you focus on building your game, without ever making you bang your head on your desk in frustration!

*This project is not affiliated with or endorsed by Nintendo.


This is the first release of this package, so there may be bugs or other issues. Please email me or contact me on Unity Connect if you encounter any bugs, and I’ll fix them as fast as possible. This is also my first Asset Store release in general, so your feedback is greatly appreciated in shaping the direction of the project. If anything seems confusing or hard to use, let me know and I’ll try to improve this in future updates.

FAQ

  • Is this a Star Fox clone?

The visual style and basic gameplay are inspired by Star Fox and other 2D and 3D space shoot-em-ups. However, this is not a Star Fox clone - it does not have all of the same features, such as barrel rolls or wingmen with talking animal heads

  • Is this an emulator?

No. Although it has a similar visual style to some classic 3D games from the 16-bit era, it is not an emulator.

  • Is this a complete game? How many levels are included?

This template includes nearly everything you need to get started building a 3D rail shooter; however, it is not a complete reskin-and-release game. There is one full example level included which demonstrates gameplay and various included features, and the beginnings of a second level to demonstrate additional features. At the minimum, you will need to build your own levels.

  • Does it support controllers?

I have included basic controls for gamepads. The template currently does not have a screen where players can adjust button mappings. You may wish to use another Asset Store package for customizable controller input.

  • Is mobile supported?

The template currently does not include official mobile support. However, I have tested it on Android and all of the features appear to be working correctly, with the following caveats:

  • The template does not include touch-screen controls for the player’s spacecraft, but all you would need to add would be a virtual joystick and a couple of Fire buttons to the HUD. Unity’s Standard Assets package includes a virtual joystick, and there are many other packages on the Asset Store for touch-screen input (the Google Play demo uses the Standard Assets virtual joystick, which is not included in the template).
1 Like

This looks amazing. Do you have a video of it playing. Would love to see it in action.

Does it support boss fights ?

Thanks Roachie! I just added a video to the first post. The template does not include boss fights right now, but I may add support for them in the future.

Thanks for the video. Looks great, will definitely consider picking it up soon.

I’ve released an update (1.1.2) for the Retro Space Rail Shooter package

  • Improved “Retro Checkered Shader” and “Retro Greyscale Checkered Shader”. The shaders now automatically adjust checker size based on render resolution. Improved overall behavior of greyscale shader, and changed some of the included settings.
  • Reorganized retro shaders into new “Retro 3D Shaders” folder and added demo scenes and documentation for those shaders
  • Fixed compiler error when the Unity Postprocessing stack was not included in the project
  • Updated to Unity 2018.3.1f1
  • Temporary introductory discounted price of $30 ends on January 24th due to limitations on personal sales which I missed. The price will return to $60 on January 24th. Sorry for the confusion!

Since I’m new to Asset Store publishing, I am not sure how Unity handles files getting moved when you update a package. Existing users who are updating from 1.1.1 may need to remove the old versions of the Retro scripts from OneManEscapePlan/SpaceRailShooter/Shaders after updating to 1.1.2.

1 Like

Just bought the pack, first impression is very good, I will be making a mobile game with it, will let you know how it goes

One question can you add an easy way to allow for different paths? so the player can steer for example inside a star field and it will trigger a right path, that will end up in a different branch when completed.

a bit like the 3 options in in this image

Hi Lars, thanks for purchasing the template, and thanks for your feedback! I do not want to make the template too similar to Star Fox - please see the section “Why doesn’t it have [some feature]?” in the documentation (found in Assets/OneManEscapePlan/SpaceRailShooter/Documentation). However, the documentation does briefly cover what changes you would need to make in order to add a branching level progression system - see the section “Branching Paths” under the heading “Level Progression”.

As far as having multiple paths inside a single level, this currently isn’t supported and would be tricky due to the way I coded the camera movement, but I’ll try to add support for this in one of the next few updates.

Let me know if you have any other questions, and happy developing!

1 Like

yes multiple inside a level, thats what I’m looking for! Thanks

the multiple braching at the end of a level I think I can manage myself with the help of playmaker

One more suggestion, free roaming flight mode, for example some area could activate free control to the player and he can move in all directions and after exiting this area the path would take control again,

this would be really nice for progressing part where the player needs to collect a certain item or fight a bos, and after competing that task you can fly out of the area or a gate opens, or anytime before the player has completed the task he can also exit but he won’t get maximum score, something along those lines.

basicly requesting two flight modes path and free with a way to transition between them, really hope this is possible with the way its set up.

thanks

and one final mode, trigger a landing spot so when the player get close to a planet surface you could land or dock the plane. this I could use for transitioning to other kind of game play, for example walking with a character. Or going into another plane.

http://www.gallantgames.com/pages/incontrol-touch-controls

I’m trying to integrate InControl for touch controls on mobile, perhaps you can give me a few pointers as where I should look for the controls in the player scripts?

Thanks for the suggestions! Some of your ideas are too far outside of the current scope of the template, but I’ll keep them in mind for the future.

All input is handled in Assets/OneManEscapePlan/SpaceRailShooter/Scripts/Input/PlayerInputHandler.cs. If the InControl touch controls you are using work with Unity’s standard Input system, you should not need to make any changes to PlayerInputHandler in order for the virtual input to work - just select the proper axes from project Input settings.

Thanks I had to change the input system as its not using unity’s default one.

Now I got it to work on iPhone 7 with virtual joystick ( graphics metal )
I’m still thinking of how to implement tilt controls, but I will try some things first.

Sorry about the many requests, Its just excitement of what this makes possible, thanks for considering. ( free roaming being on the top of my list )

Thanks Lars, I’m glad you’re excited about the possibilities of the template! I have been putting together a new system that allows you to change the player’s heading, which can be used for alternate paths through levels. The same system could probably be adapted to create a free-roam mode. I’ll try to release an update early next week.

Great thats good to hear :slight_smile:

I have one warning in the editor on my Mac with metal

Metal: Error creating pipeline state (Custom/AdditiveBillboardSpriteShader): Vertex attribute Color0(2) is missing from the vertex descriptor
(null)

and this suggestion

Shader warning in ‘Custom/BillboardSpriteShader’: Use of UNITY_MATRIX_MV is detected. To transform a vertex into view space, consider using UnityObjectToViewPos for better performance.

Do you know if its something easy to fix?

EDIT: I changed the material shader to sprites default seems to work.

and there is one script missing on the main camera in level 1, I don’t know which one that could be, ( after import clean from asset store )

Thanks for reporting those issues, Lars! The missing script would be “Post-Processing Behaviour” from the “Unity Post-Processing Stack” package on the Asset Store. I had originally planned to include the Post-Processing Stack with the template, since it is a free package, but it seemed like the Asset Store team didn’t want me to do that, so I made the Post-Processing Stack optional. When installed, it is used to add post-process antialiasing to the 64-bit setting (which was inspired loosely by the N64’s horizontal-blur filter, although the post-processing filter looks better than the N64’s filter.

I regret integrating the Post-Processing Stack at all at this point, as it keeps causing headaches. If you do choose to install the Post-Processing Stack, please read the “Known Issues” section of the original post for instructions on how to fix an error in its code. Or, you can skip the Post-Processing Stack, since the only thing it adds is the anti-aliasing filter to the 64-bit setting.

Regarding the shader: that shader works fine on my Windows PC, but it doesn’t render on mobile, probably due to the same issue you’re seeing on your Mac. I’ll load the project on my Mac and fix the shader.

Thanks again, and I hope to have an update ready early next week.

If anyone is interested in purchasing the retro shaders by themselves, I have released them as a separate package: https://assetstore.unity.com/packages/vfx/shaders/retro-3d-shaders-136828 Owners of Retro Space Rail Shooter do not need to purchase the shader pack, as the shader pack is included in the template.

cool, the shaders are nice!
I would like to see one variant of the checkered shader where the checkers are fading in and out smoothly, now they are popping. probably it was like that back in the days. but it seems like fading the checkered would still result in a classic look but easier on the eyes in a busy scene.