Posts

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

Post Release & Future Project

     Since the 1.0 release I have been continuing to fix bugs and overall improve the game. I am also collaborating with a team on a new project. Minor Update-1.1      A week after the release of the game I worked on the 1.1 version. The main features to pay attention to are the addition of Linux support and the option to have up to five save files. The other less flashy changes mostly include small bug fixes and minor improvements.      Support for other platforms is something that I've wanted to do for some time but never got around to. It was only when that I got a specific request for a Mac version that I realized there was real demand for it. So I looked into packaging for other platforms and I found that it's not as simple as I would have hoped. In terms of making a Mac build from my Windows PC, I had no luck. You need an Apple machine to build for that platform so that was more or less out the window. I found you could rent machines over the internet running Mac

Mini Solar System Postmortem

     On September 6, 2021 at 5:05pm MT, Mini Solar System version 1.0 was released. I had initially planned to launch at noon but a last minute bug with volume control of all things, delayed the release until the end of my day. This progress update will not focus on the work I did for the upcoming 1.1 release, but instead will be a post-mortem; recounting the entire development of the game. Overview      Mini Solar System started with the working title "Space Game" and development officially started on May 10, 2020 exactly 16 months ago to the day of me writing this. Development really began to speed up in mid February 2021 when I went full time on the project after deciding to defer university for a year; due mainly to threats related to COVID-19.      There was no real design goal at the start and was initially meant to be a way to display my technical skill and also learn more about the Unreal Engine while I was at it. At the beginning of development I only really

Progress Update #38

Image
    Preparing for Launch / Open Beta Post-Mortem      This is the last full sprint I'll have before the game officially launches in v1.0. I did a small amount of promotion for the open beta that got some people playing the game. I also made fixes and optimizations as well as a tutorial in preparation for the game's launch. Open Beta      I posted the game in 3 game-dev related subreddits and the project sharing channels of two Discord servers. The game page was viewed 72 times and downloaded 22 times for a download rate of 30.5% which I am happy with. According to the analytics page though, all of those people came from reddit so I will keep that in mind for future promotion.      I only got one bug report from the beta though. I assume because if you give the game to the public then most people won't be actively trying to break the game so I guess that's excusable. I did get a few questions though on how to play the game which finally pushed me to make a tutori