Saturday, April 1, 2023

April 2023 Update

 I only have time for a short update this month. I'm currently on vacation so I haven't been able to get much done in the last ten days or so. Still the first part of the month was productive. I've gotten pretty far in the implementation of the battle system. Still not quite at the point where I can successfully execute a single combat round though. There are a lot of associated moving pieces that all need to work first. Once that's done though adding new skills and abilities and such shouldn't be too difficult because the majority of the hard work will have been done.



 

Wednesday, March 1, 2023

March 2023 Update

I've made some good progress this month, mostly in building all the parts necessary to finally start adding combat to the game. This mostly involved starting work on one component, finding that it required something else to be built first, building that thing for a while until I ran into something it needed, and so on. Even the most basic battle requires a character and monsters, and characters need weapons, armor, skills, classes, species, etc. So for the most part this month was spent still laying the groundwork for the game's combat.



Still not enough for a demo of the game or anything like that. Now that I've got the character creation finished the game has maybe a good 60 seconds of play time. Once I get the combat system in place though, I think everything else will start coming together. At that point development will shift from getting things running, to adding content. 

Wednesday, February 1, 2023

February 2023 Update

Rhysh is still decidedly in the prototyping stage. Most of this month was spent taking everything that I had written for the Godot game engine and translating it into JavaScript. After spending a couple months working with it, it was clear Godot wasn't a good fit. I wasn't really using the Godot editor at all, instead writing everything in GDScript, a cruftier language than even JavaScript. Surprisingly, it's also much slower than JavaScript.

Instead I've decided to use Electron again. JavaScript may have some old weirdness, but if you know all the dark corners to avoid the language is fine. The NodeJS ecosystem is incredibly mature, and just having access to any kind of library I want alone makes the transition worth it. 

I'm not really working on graphics and user interface stuff at the moment so there still isn't much to show. Every once and a while I'll generate some background art for the areas I'm adding to the game, but the actual game UI is just the bare minimum to make it work. 

Now that I have the the dungeon generation, map, and party movement in a working state though I can finally start adding combat, which along with exploration, will be the game's primary focus.



Sunday, January 8, 2023

My Thoughts on AI Image Generation

(TLDR: All art is theft, and that's okay)

I've decided to make heavy use of AI generated images in Rhysh. The primary reason for this decision is practical. I'm a single software developer, making a free game with a very small budget. I don't have the budget to hire or commission artists to produce the volume of work I would need. While I have some experience as an artist, primarily as a designer, I'm also quite bad at it. Now, I could make a game with very simple graphics, or no graphics at, but in the end I'd rather make something I like, using all the tools available to me. 

People say that AI art is problematic, even immoral. AI are is theft. Because AI art generators are trained using other artist's work, they can steal an artists style without any compensation to the original artist. This is true, AI art is theft. The problem is that all art is theft. Any artist, and I would argue most artists, can copy another's style. The greatest artists steal a lot of styles, taking what they want from each and blending them together to create something unique. An AI art generator doesn't do anything different, it just does it a lot faster. 

Another argument is that AI art will put artists out of business, it will destroy their livelihood. That same argument though was made against the camera. At the time most artist's biggest source of revenue was making portraits of people. With the camera, anyone could get a portrait made, in the blink of a eye. However, rather than putting all artists out of business, the camera made it possible for everyone to have portraits made of themselves. It took something that was only available to the rich as a status symbol and made it something everyone could afford. 

I would argue that it also freed artists creatively. When you look at the art world after the invention of the camera you see an explosion of styles, Van Gogh, Picasso, Monet. For centuries an artist's only concern was to make something that looked as close to real life as possible. All of a sudden, that didn't matter as much as making something that was beautiful in a way that only a painting could capture or could make you feel something just by looking at it. 

How do this apply to the plight of modern day artists threatened by AI? Art isn't rendering an image. That's part of it certainly, but art is about saying something human. No matter how good an image produced by Stable Diffusion might look, it's lacking in the ephemeral qualities that separates actual good art from a good rendering. If AI does get to the point where it can say something meaningful about the human condition, then not just artists but every human would find themselves replaceable. 

(Just look at those hands!)





Saturday, January 7, 2023

Fleshing Out The World by Writing Journal Entries

A pretty common way to flesh out a world's lore is to have a bunch of books or audio recordings and such lying around. These should always be secondary to telling the story of your world in the actual game of course, but they can add a lot of interesting detail for the curious. The books in Skyrim for instance are one of the best parts of the game in my opinion, and if you bother reading them do a better job of telling the story of the world than the game itself.

I was thinking of doing something like this for Rhysh. Scattering journal entries and messages from the adventurers who came before you around the dungeon. They'd be brief, a paragraph or two at most. You wouldn't have to read them but (borrowing another mechanic from Bethesda) when you pick them up you'd get a small bonus, a map of a nearby area, the location of a secret door, maybe a skill point. 

Writing a bunch of interesting journals is a tall order though. They need to be relative to whatever area they were found in. They need to tell a story. They need to occasionally be pornographic. What's the best way to do all that?

I don't know, but the way I'm going to do it is by playing a solo RPG.

Because I'm really just looking to flesh out the world and tell interesting stories I've decided to use Fate Solo system. The system doesn't really matter; the mechanics won't end up in the stories. I've played a couple sessions so far and I'm pretty happy with the results.

I'm thinking about posting some them here as I write them. I wouldn't include the ones that are obviously spoilers, but even posting a select few would be a good way to show people what I'm working on.

Sunday, January 1, 2023

January 2023 Update

 

Now that I'm working on this full time I'll be giving regular monthly updates at the very least. This first month of development has been... chaotic. I suppose that's to be expected. It's been a month of trying things out, deciding I didn't like whatever solution I had come up with, and rewriting large portions of what had already been done. All of this churn has really been around the game's map. I'm trying to find a balance between using random generation for much of the map while also keeping areas distinct and interesting. 

I think I'm slowly spiraling towards a solution I like. I'm first building large "zone" maps. Within the zones I can place tiles, walls, event triggers, everything that will go into the actual map. I also define large biome areas that get randomly generated the first time a zone is loaded. Each biome has a different generator so they should all be structurally distinct. This way I end up with a map that's partly handcrafted, and partly random. 

Getting the details right for all of this has been difficult. A couple days ago I switched the tilemap editor I'm using to Ogmo. I was using Tiled, but I just really hated its interface. Ogmo has it's problems too, but it's at least a bit easier to use. Godot has its own built in tilemap editor too, but I kind of hate that one as well. It's not really designed for what I'm doing, as the tilemap itself doesn't get used in the game. It's just data that's fed into the generators that build the actual map. 

Because I switched the map format now I'm having to go back a rewrite a bunch of stuff. Hopefully that shouldn't take too long. Once I get the first few zones in a satisfactory state, I'll start work on adding actual game to the game, the 3D dungeon view, walking around, getting into fights.

Sunday, December 18, 2022

Moving to the Godot engine.

After working with Bevy for about a month I've decided that it's not really going to work for me in its current state. While I was enjoying the Bevy engine and Rust as a language, I think it's too immature to actually use right now. It was mostly the non-existent UI features and the lack of viable alternatives in the Bevy ecosystem. 

Bevy also forces you to use an ECS for everything. While that's a good choice for most games, I'm making a turn based RPG, and most of what my game needs to do isn't done every single frame. Godot's more object oriented node tree approach should work better for what I'm doing.

Not sure how long its going to take to port what I already had into the new engine. I've got to learn the engine and its scripting language first. Shouldn't be too difficult as most of what I had already wasn't engine specific.