Progress Update #22
Adding Gameplay to My Game
With development now moving into the alpha stage it is time to add something to do in the game. On the roadmap I have outlined the two parts of the game; the part when you fly around the solar system as a little space ship (referred to as celestial mode), and the part where you can get a view of the entire solar system at once and change settings (referred to as overview mode).
The Main Menu
Before jumping head-first into the game though, I decided to first make a simple buffer between out of game and in-game, more commonly referred to as a main menu. Only really two things to talk about here, the background and the text.
I personally find flat images for main menus quite boring. There's not much to look at and once you open the game for the first time you have seen really all that screen has to offer. so I took some inspiration from one of my favorite games, Minecraft, and made a spinning panorama image as the background. This was achieved quickly by placing a cube capture camera in the scene, giving it a render texture to output to, making a static texture from that render target, and setting the resulting cubemap as the texture for a mesh in the main menu.
Next was the issue of what text to show on the main menu. More specifically the font. I knew that I wanted to change from the default unreal font but I didn't know what exactly to replace it with. For the time being I am using the font form Celeste, renogare, for its smooth and clean vector look. It will cost money if I decide to ship with this font and because I don't want to just rip off Celeste I am still looking for alternatives with a more sci-fi feel.
I also wanted a version number as you can see in the corner with major version, minor version, patch number, and build number to keep track of releases. I followed this quick little tutorial to implement it.
Celestial Mode
There really isn't much to say for the celestial player right now. I essentially just remade the Unreal spectator pawn with some minor adjustments. I made a new interface for all celestial objects effected by gravitational forces (ICelestialObject) and added that to the pawn so that it can be effected by gravitational forces.
This little pawn also taught me about input binding in C++ which came in useful when doing the overview pawn.
Overview Mode
Overview mode is the most exciting addition I believe. I'm super happy with how the movement came out, and starting on the interactive UI I'm anticipating great things for the final version.
As I said in the celestial mode section, I had already learned how to bind keyboard input so that was relatively simple. The thing that I was completely in the dark about was how I would use mouse input to replicate the click and drag to pan, rotate, and move like you can in lots of 3D applications. Luckily for me, I found an answerhub thread in which the legendary Everynone explains exactly how to do the rotation piece of that puzzle. Once I had translated that into C++ I was able to implement the move and pan really quick.
With the movement done, I moved on to the interactive UI. My vision for this was to have rings around the planets that when you click would focus the planet and show a little data about them. With the 'Project World Location to Widget Position' doing most of the heavy lifting, I was able to get this result:
Conclusion
The features that I plan to include in the alpha are as follows:
- Be able to change planet generation through planet tags
- A simple HUD for the celestial mode that displays things like speed and planets
- Loading screen from main menu to in-game
I believe that I can do 1 & 2 within the next week but 3 I have never done before. However, if I figure out a way of doing a loading screen quickly, I could theoretically have a playable alpha done by the end of next week :O
Comments
Post a Comment