The Fellowship
A story about my personal experience with the Unreal Fellowship program and my process of developing my project for it.
Soon after diving fully it Unreal Engine courses, I saw the Unreal Fellowship advertised on the splash page of the UE website. It was advertised as an exclusive crash course on Unreal Engine for experienced game devs that are new to Unreal… This seemed to fit my exact predicament precisely!
I was quite excited when I was accepted and was told the theme for the game you are required to make would be Arcade Games. Those are generally short, tight games with a reasonable scope. Immediately my mind went a game from an arcade cabinet my Uncle had for a vertical scrolling bullet hell flying game called Dragon Spirit. So instead of worrying about coming up with an original design idea (since this was more for learning the tool than for making a new hit game to sell on the market) I decided to make an Unreal uplift version of Dragon Spirit for my project.
In the months leading up to the start of the Fellowship I was learning as much as I could and applying it to a different project (see previous blog). This turned out to be extremely valuable because when the fellowship started they basically went over many of the same things that I had just started working on, but at a much more rapid and exhausting pace. Because of my recent practice I felt quite comfortable spending lab time to work on the basis of my project instead of trying to wrap my head around the lessons and got to working on my first blueprints.
For the Fellowship we were given a variety of special templates to start from that had basic functionality and well structured systems that could be used however you wished. After reviewing each of them I thought the 3rd person template would be the best idea. I would just need to find a way to convert it into an orthographic top-down camera and then figure out how to get it to scroll vertically. Essentially I ended up making my own system I called the Scene Mover that did a number of things:
1) Included the character that could move freely but fly above all the terrain
2) Included four walls to contain the character
3) Included the camera which followed the scene mover origin but could pan left and right as the character moved.
4) Moved from a designated start position to a designated end position over a set time.
5) Included an off screen collider in front to activate enemies and one in back to destroy them
I did probably over develop this scene mover system, but in the end I was quite proud of it. You could adjust basically everything from scroll speed, screen width, spawner volume size, pan limit, to the level length. One of my colleagues liked it so much he wanted me to share it with him to use. It seemed a bit tricky however because I made my calculations based off of an orthographic camera and he wanted to go perspective, but in the end was able to make it work.
I made this video below in the middle of the project to demonstrate my progress to my group. (expecting to make more but never got around to it)
My next big objective was to figure out enemies. At minimum I wanted a basic flyer, a flyer that shoots, a land enemy that shoots, a water enemy that moves and shoots, and a final boss if I had time. Note that these were all based heavily off of the enemies in the game I was basing this off of. Additionally I needed to work out how to get projectiles working so the player could shoot both land and air with different buttons, and that enemy projectiles would hit me (and nothing else).
I created one main enemy blueprint that essentially handled all of the logic and toggled between modes based on what the child enemy blueprint had set. Again I feel I overengineered this system but once I had a basic land and air enemy ready I was able to make the rest really quick. I even made another that starts on the land, moves forward, jumps into the air, and then flies directly at the player. For the boss I was able to throw it in as a basic land shooter with more health and higher rate of fire.
With enemies and projectiles working it was quite easy to make Pickups. These would be static objects on the ground that would pop up an egg you would need to collect to get a pickup. Blue would give you more lives, and red would give you more damage. Taking damage would remove one of each. This did require my first dive into User Interfaces and with the help of their template I was able to make all of an active interface to display health, damage, and score as you played.
The next big thing would be the level itself. I didn’t have a whole lot of time for this but was able to snag a really nifty auto-material and sculpt up a basic landscape to fly over. This is where I really started to see everything coming together. The scene mover worked perfectly over the long strip of terrain. I basically just needed to populate the level with enemies and pickups and press play!
The final touch I wanted to add was a start screen and I wanted to use the cinematic I had made prior to the event. I was able to hook up the scene with a stripped down Dark Ruins and set it up to run as soon as the play button was pressed from the main menu and then load the first level.
I left sourcing vfx and audio for last but eventually was able to scrounge up a few resources off of Fab and incorporate them into the project. I tried to adjust Post Processing a bit to stylize it and then spent the rest of my time polishing what I had. I considered spending more time and trying to squeeze in more before the deadline but at that point I was quite happy with my progress and didn’t want to break anything, so I packaged and shipped it off!
Overall the experience was great. Specifically diving into the templates I started to see the importance of structure and the power of blueprint interfaces and component classes. Also jamming with the other 49 fellows, seeing their struggles and their successes, helping and receiving help, connecting and vibing throughout the month. If you ever get the chance, I highly recommend it.
Check out my final sizzle real below. I do not currently intend to pursue this further but if you want to ask me anything about it please get in touch.