... all the security work...
As someone in IT this bit made me snort Getting this and Java off of our client machines were both happy days.
I know Flash was a big security headache, but that's not because it didn't have a hard-working security team behind it. At its height it was installed on more total machines that any single browser, or even OS. It was arguably the highest-value target for vulns in the world, for years, but it didn't get compromised significantly more often than similarly sized targets.
So, men and women of the Flash platform security team, I retroactively salute you.
I don't know numbers or anything, but during the Adobe era my impression was that Flash was much more widely used than DW, and both were small compared to Photoshop. I don't know whether any of the other tools fully paid for themselves via box purchases and seat licenses; PS was (probably still is) the elephant in that room.
But if you're interested in how the platform (player, AIR, etc) was paid for, a lot of that was licensing. Until 2008 if somebody shipped a device with any flash player installed (usually FlashLite) there was a licensing agreement behind that. The fact that that kind of licensing became untenable is why Adobe tried to pivot Flash to a Unity-style "pay us a revenue share if your game makes a billion dollars" model, but that went down in flames for looots of different reasons.
After months of not working on my turn-based beach soccer game (except to give it some thought once in a while), I decided to go back to it today. (Work has been nothing but all-day meetings for weeks, and I got bored.)
The first thing I did was to download the latest Godot 4.0 alpha release. The decision to go with Godot 4 was tough. But, even though it is still in alpha, my main reason to go with it is that I'd rather bite the bullet and start updating my GDScript code right away while it is still pretty small, rather than having to do it later when I have tens of thousands of lines of code to review, fix, and test.
Instead of importing the whole project at once, I'm going to bring in things one component at a time. My file organization was... poor, let's say, so this gives me an opportunity to relocate all the elements in a more logical place, and to fix whatever import issue I run into, rather than having to sort through hundreds of errors.
Since I'm not doing anything too fancy with the graphics, I don't think I'm going to run into major issues. There are, of course, drawbacks with this approach:
- The engine is in alpha, and will change between now, the various beta releases, the RC releases, and the final release. It is very likely I will run into engine bugs. The problem then will be to determine whether the problems come from my code or the engine.
- Some useful plugins (like unit testing frameworks and to-do manager) will not work at all.
- Documentation is not up to date.
I started by importing the classes for my dialog system earlier today. I almost immediately ran into a few issues:
- Export variables for nodes are written differently in the new version of GDScript.
- The documentation says that the @export_enum annotation should support string arrays but, in fact, it does not. The sample code does not pass syntax check. I had to define my exported enums separately (which, to be fair, I think is a cleaner approach).
So far, that's about all I've done. My goal for the rest of the week and this weekend is to import the various UI elements for my dialog system so I can retest the whole thing and make sure everything works as it used to. I don't expect to run into major issues, but who knows!
I have this weird desire to make an Ultima 3/Ultima 4 type RPG.
Go for it.
TBH I always liked the Phantasie series better. I loved the fog of war when adventuring on the maps. And I loved the row system in combat. If anything deserves a remake, its Phantasie!
This took more time than I thought (mostly because I spent my summer biking, hiking, walking, and playing videogames), but I finished rewriting my dialog system for Godot 4 today! I still need to do some work to get localizations working, but for the most part, this is functional!
On the left side, highlighted in yellow, is how the structure of the dialog is defined. At the top is a what I called a Dialog Block. By itself, it's nothing but a container. Inside the dialog block, I defined different kind of objects:
- Dialog commands (highlighted in red on the right hand side), which I can use to display dialog, along with a name tag and a character portrait
- Player choices & options for branching paths
- Single conditions (compare a value with different comparison operators)
- Multiple conditions (groupings of single conditions, and I have options for AND or OR)
A dialog block can have sub-blocks. I can put conditions anywhere in the block. Each item inside a block is processed in order. If the dialog system encounters a condition (single or multi), it evaluates it. If the condition fails, then it exits the block entirely and moves to the next block.
I added a feature this morning to replace placeholders in a text with variable values. I also spent some time this morning to rework the UI so that it doesn't get messed up when resized.
The game I'm working on (visual novel/dating sim with turn-based beach soccer/football) has four different types of scenes:
- Dialog section with 3D animated background (typically used when the team's minivan is on the road)
- Dialog section with 2D backgrounds (used for in car conversations, group meals, and dates)
- Explorable 3D environment with NPCs and NPC dialogs (for pre-match talks with teammates and possibly others)
- Turn-based beach soccer from an isometric perspective
I had the first three working last year. I started working on the fourth one a while ago (there is evidence of that further up in this thread and on my blog), but I don't think I got very far into it.
The next steps I want to focus on:
- Adding simple animations when showing/hiding the dialog box, name tag, and character portrait
- Import the dialog section with 2D backgrounds in Godot 4
This should keep me busy for the next two or three weeks.
My daughter and I worked on a game together over the summer. It's in a mostly finished state. Certainly needs some polish, but it's playable anyway!
We got super addicted to the Dungeons and Diagrams game in Last Call BBS and wanted an "endless" mode that created random puzzles for us. (Pretty sure they added such a mode after we started this project haha)
Anyway, our game has multiple difficulty levels, and a couple of themes. You can adjust the frequency of certain features in the maps.
HTML5 version up on itch.io:
The Gerald Lawson Google Doodle today is pretty cool, and relevant to this thread.
Video of it in action on my Tweeter
I'm very bad and very silly at coding, but it's starting to resemble a bullet hell game.
I started because I was curious about how well ChatGPT could code things. Turns out, it's...smart, but the code rarely works. However, it was enough to give me some ideas and brush off some of the rust. Very cool way to get ideas and a framework for something.
I know this thread is more to show work and stuff and not news, but I think this one could fit right in.
This, imo, will be huge