Another month has passed since the last update, and I’ve been mostly focusing on the UI displays and fixing a few bugs as well as some general organisation. I haven’t been able to dedicate much time to the project for the last few weeks, as I had the Save Manager to finish up for Carter Games by the end of April.
Below is a short video of the current progress made on the project as of writing:
View persona UI
The UI hasn’t changed much on the front-end, but behind the scenes a lot had gone on. I’ve spent the time to improve the UI Polygon setup that I’m using for the odd shapes in the UI. The new setup lets me drag points in the editor space and the graphic is then drawn using those points. I’ve also made it so this updates in edit mode so it’s easier to visualize. The upside being it’s easier to edit and less buggy. But I still need to do a little bit more to it. As it currently doesn’t scale with the bounds (width/height) of the graphic.
With this new UI polygon setup I remade the UI for the skill strengths & weaknesses. Mainly to have the extra length for the text. I couldn’t quite match the text perfectly with Persona 5’s text as the font has a few layers to it. That and I couldn’t find a font close enough to match it, so I went with the readable option. This turned out okay and I refactored the display code to toggle the sections correctly when needed.
The next new part was the navigation of the UI. In Persona 5 you can inspect each skill and move around the slots for each persona. This wasn’t the easiest system to code despite it being simple in theory. I ended up with a data structure that split the slots in the columns with an option for wildcard slots that could be accessed from specific slots. I reused the old selection UI from the skills select screen and refactored it to allow for 4-directional blue backgrounds. This was done so as in the game you would see this highlight in the direction you were navigating in.
With this I also implemented the inspect display which I had already laid out to show the skill in more detail. This display updates as you move around the skills and hides is no skill is currently being hovered over. Some of the more general fixes such as toggling user input listeners at the right times were also adjusted. As some of them were listening on start instead of when the screen was opened.
Another notable change is the model preview. While it is still early days, I was able to get the model to spawn in and rotate with user input. The model is stored in a new model system that replaces the old one I had from the 1st day of working on the project. The main upside of the new setup is that I can easily get & re-use models without spawning them all in on start.
The final main change is the ability to switch personas. Using the newly released Save manager 2.x I was able to make a save object for the held persona’s the player has. Currently this is the container class but down the line it will be the raw data for each persona. There is still a lot to do with this system as is, but the ability to switch between all held and select a different persona is now possible which is the key thing.
The only other progress of note is a major clean-up of old code. While a lot of the code base is still scrappy and a bit messy, I have spent the time to remove scripts that I want to re-do or are for systems I’ve yet to actually focus on. Structurally the code is split into categories based on what it is about. So, data structures or scriptable objects are in a “Data” folder. While general systems, gameplay specific systems & UI all have their own folders. Inside these folders I have the code split by mechanic. Namespaces wise they all now use the base folder which does name more namespaces, but a more structured setup which I like, for now.
Given this has only been a small amount of progress, I’m still happy with it so far. I’m hoping in the coming months to be able to get into some of the gameplay. Implementing the enemies, moves & actual combat. So hopefully more exciting stuff to come! I’d expect the next update in about a months’ time.