Posts

Showing posts from October, 2021

A New Chapter

Image
     This week has presented the biggest change probably since the release of Mini Solar System; I was offered a full-time position as a junior programmer at Studio 369 which I was happy to accept. I start on Monday and I couldn't be more excited to work with the team there! However, this did mean though that my priorities shifted quite instantaneously. I went from working full-time on "RPG_Game" to preparing for this new job. This mainly meant getting up to speed on networking as that is the one area of Unreal Engine I feel I have a lack of knowledge in (I'm already proficient in UI, AI, gameplay, materials, and general backend work), and since 369's specialty is networking I figured I would come prepared. I did do a little work on "RPG_Game" but it was minimal just to tie up some loose ends. Unreal's Multiplayer Framework      As explained by the Unreal Engine documentation, "multiplayer programming [is] inherently more complex than programmin

Polishing the Foundation

Image
     This sprint was relatively uneventful; mainly cleaning up the existing foundational elements of the game (the first person character and spell component) and continuing to improve the necessary elements of the game like the pause screen. Player Character & Spells      The improvements to the player character come in two parts; the ability to have, use, and change spells, as well as interaction via an interface. Both of theses are as simple as I could make them. Utilizing inheritance from USpellBase using the spells is only really a single line, and changing out the spells we can use the NewObject factory to make a new spell very simply. FirstPersonCharacter.h FirstPersonCharacter.cpp      As for the interaction interface, it only consists of two functions right now, one to fire an interaction event and one to check if the object can be interacted with. This second function is used mainly to show UI on the player's screen like "Press 'E' to use" or

Spell Component System

Image
     This sprint was focused mainly on creating the base spell class. This process was mainly bottle-necked by the sub components used for visual representation of the spell and how Unreal's component system deals with dynamically creating and destroying components. More Minor Additions      Before I get into the main event, I'll take some time to explain the other, less ground-breaking, changes I made on Monday.      The first of these was the loading screen. I mentioned that in the last sprint I couldn't get the loading screen to recognise that a level had been loaded and speculated that it had to do with some change to the way the engine streamed levels. Actually though it was all due to an unset variable. You see, if you want the loading screen to be user dismissible then you have to set the "PlayTime" variable (which controls the minimum time to play the loading screen) to -1 instead of 0 like I had originally thought. Problem solved.      The nex

Building the Foundation

     This week's sprint had me shifting to working entirely on the new project. However, I'm not yet doing the exciting gameplay but instead I am polishing the less fun, but vitally important, foundation of the game. This means menus, settings, loading screens and anything else that will be needed for a video game. The Main Menu      Ultimately, there isn't too much to share, I mean, it's just a menu; the vast majority of games have one and most are forgettable. So, to avoid doing what I've done at least half a dozen of times before I decided to make a scrolling menu. I was thinking that from the main menu, hitting settings would scroll down and below that would be credits and so on.      I started approaching this with the widget switcher. I planned to animate the transition between menus but there wasn't any built in support for it so to avoid wasting time I moved on (In hindsight, it wouldn't be that difficult to do but would take time to implemen