Background Images and UID Issues
Adding background images for visual novel scenes to my game took more time than I thought it would, but it seems to be working:
(The background image was generated with Stable Diffusion.)
The code itself is incredibly simple, and almost identical to the code for the character portrait. Because of this, I duplicated the CharacterPortrait scene to instead of starting from scratch, and this caused issues. At first, I was blaming Godot but, upon further investigation, I discovered that each scene has a unique ID included in the .tscn file. Since I duplicated a scene, both the background image and the character portrait had the same ID. This caused issues during execution, because the character portrait now had the script for the background image associated with it. Some of the methods having different names, the debugger kept complaining about missing methods. I only realized this when I opened the dialog controller scene with a text editor, and noticed that both the background image and the character portrait instances had the same ID.
Lesson learned!
Categories: gamedev
Storing Scenario Data
For the past few days, I've been wondering how I'm going to store my game's scenario data. By "scenario data", I mean:
The requirements are few but not exactly simple:
Here a a few solutions I have considered.
My background as a developer so far in my career has mostly been on the SAP ERP platform. This is a platform that is entirely dependent on the system's database. So, naturally, when I started thinking about how I would store this information, I immediately thought "database". MySQL and other complex DBMS's are out of the question (too complex to include in the distribution of a relatively simple game), but SQLite could do nicely. There is a Godot plugin for that. Or there will be, as the version for Godot 4 is not released (which makes sense, considering the current status of Godot 4).
The issue with this approach is the complexity of editing the data. There is an open source program out there (DB Browser for SQLite) available I could theoretically use, but that is not exactly suitable for actual writing or text editing.
A few years ago, when I started thinking about making a videogame, I considered using JSON files to store the scenario data. And, overall, I think it makes sense:
Since I'm probably going to do all the writing, this is certainly a viable solution.
This is the method I am currently using. The main issue with it is that it's time consuming to write and edit. But I really like it's organized and how the hierarchy is visible in the scene tree, and how easy it is to traverse in code.
I took some time yesterday to look at how the Ren'Py engine does it. It kinda reads like a play: very readable, easy to edit, with a simple syntax. In short: I quite like it! Due to localization and differences in "scene direction" instructions, I won't be able to use the same structure however.
So, what's the verdict? Databases are out, mostly because of how complex it would be to actually write the text. Theoretically, I could write a program that would do the inserts and updates for me, but I think this would take time, and that time would be better spent elsewhere.
At the moment, my favorite solution is a mixture of custom script format and Godot scenes: write the script in a text file, and import that script into Godot scenes and nodes. Whether this import is done at ahead of time through a Godot plugin or at runtime is still up in the air. I know I will at least need a plugin to validate the content of the text file to avoid syntax issues. I do not know how hard it is to modify the content of a scene in a plugin.
Categories: gamedev
A Year with Persona 3 - Progress report #2
I was doing pretty well on my day-to-day playthrough of the game until the end of September, and then I got stock on the boss on Floor 135 of Tartarus and stopped playing. I started playing other things (Ys IX mostly) in October, and didn't touch the game until last weekend. I did managed to beat the boss by trying again and again, until I got lucky and Ken and Akihiko managed to land a few criticals (helped by the Rebellion skill), which allowed me to use a few all out attacks and finish it off. I would not recommend that strategy.
I'm still enjoying the game overall. I cringed at the beach vacation section. It reminded me of the Hawaii section of Persona 5. I can't fault Atlus for being consistent...
My save game is currently on September 25th. Since I'm currently out of a job, I think I may just forget the day-to-day structure and just get to the end. I think I should be able to finish the game this month, provided I don't get stuck on a boss like I did back in September.
Categories: random-thoughts
October 2022 Gaming Report
My least favorite holiday, Halloween, is almost here, so time for another monthly gaming report!
None!
After a few months of consideration, I finally subscribed to PS+ Extra, mostly because the selected game for the JRPG game club was included (Ys IX: Monstrum Nox). Also included: Stray! Despite the game being relatively short, I ended up playing it for a good 16 hours, and I managed to get the platinum trophy in the process. Overall, Stray is my game of the year so far!
The rest of the month was devoted to Ys IX. It was good and, at roughly 35 hours, it didn't overstay its welcome.
I also decided to drop Gravity Rush 2 earlier this week. The game isn't bad. Its world is amazing, and shifting gravity is an interesting concept. My biggest problem was the boring missions. I made it about halfway through back in September. After a month of not playing it and thinking I should go back to it, I came to the realization that I'm probably never going to, and to just let it go.
My big game for November is going to be Persona 3 Portable. I made it to floor 135 back in September, and reached a boss I was not able to beat at the time. Now that I have the game running on my Steam Deck (thank you, Emu Deck), it will be my main game for November. I think my save game is on September 26th. I have not decided if I'm only going to try and catch up and stick with my day-to-day play through, or just get to the end. We shall see.
Also on my list for November: Live-A-Live. I bought it for Switch back in July and I haven't touched it yet.
With my work contract being over, my projects for the rest of the year are:
Categories: random-thoughts
September 2022 Gaming Report
Summer is now officially over, the friend/temporary roommate who had been living with me for the past four months had to go back home because his visitor's visa expired (lots of tears were shed), my work contract is ending in 2 weeks (although I do expect a short extension), and I bought a Steam Deck (which hasn't shipped yet), so hopefully I get to play more in the near future! But for now, it's time for the September report!
None
Another slow month for me in terms of videogames. Again, lots of running and some biking though!
I received the email to order a Steam Deck and, after thinking about it for an hour or two, I went ahead with the purchase. For some reason, orders for Canada are slow to ship, so who knows when I'm actually going to get it. I have a trip planned for Thanksgiving weekend, and I was hoping to get it before then, but that doesn't seem very likely at this point. Edit: It has now shipped and should be here Tuesday, October 4th, a few days ahead of my trip.
One of the reasons for me to get the Steam Deck is that I am finally getting back into game development and will be using it for testing. I've been documenting my progress on this very blog. Progress is slow, but has been picking up recently.
A few months after getting rid of my backlog spreadsheet, I do notice that I am (somewhat unconsciously) starting to build a new one. If I listen to a podcast and they bring up a game I am interested in, I will add it to the mental list. As I am browsing the game collection on Playstation Plus, I'm thinking "I should play that", or "That looks good, maybe I should install it and play it after I'm done with X". If I'm looking at the list of this year's purchases, I find myself thinking "Oh yeah, I bought that, I need to play it". I'm not sure what to make of that (other than the fact that I like making lists and overwhelm myself with future tasks).
Categories: random-thoughts