XaiJu
longlivetheprincess
longlivetheprincess

patreon


Progress Report

Greetings, everyone!

Christmas is right around the corner, and with that, I'm going to slow down a bit to enjoy the holidays with my family. Not stopping, though; never stopping. There's still so much to do, and I want to get the Supermodel Snapshot prototype out there ASAP.

So, what did I do this past week? Just one thing, basically: I began the work of implementing a working particle system for Ren'py.

What's a particle system, you might ask. Anyone who's dabbled in game graphics before will know what I'm talking about, but those who consume games instead of making them might be drawing a blank. To make it easier to understand, look at the attached video. This is a recording I just took of the current state of the particle system I have developed for Supermodel. The final system won't look anything like this, for the record. This is just me testing the technology and trying to get the basics working as well as possible before I use this to implement real effects.

Essentially, a particle system creates hundreds, if not thousands, of sprites (game images) that it can show on the screen simultaneously. Due to how these sprites interact and layer on top of each other, they actually don't look like small sprites but something larger and more organic, such as an explosion, smoke, sparks, snow, rain, and so on. In the example from the video, I'm just using a white circle that fades out toward the edges. Even so, the result looks almost like some kind of hypnotic plasma. 

Why is this important, and why am I spending so much time implementing it? It's important because particle systems are one of the cornerstones of modern (or even classic) video game graphics. You see them all over the place, and they do a lot to make the graphics look more advanced than they really are. In Supermodel, particle systems will be helpful to add mood to the VN section (for example, by having dust motes drifting through the air in a scene) and impact to the card game. I want the act of playing a card to feel satisfying on every level. Smacking a powerful attack card onto a Challenge card should feel visceral and impactful. In Supermodel, that means having the card shake violently while a booming sound effect plays, and a particle system creates an explosion effect to truly make you feel like your card play was awesome. Card shaking is in place and feels good, and sound effects are an easy add. The challenge has always been the particle systems, which brings us to the question of why this is taking so much time to implement.

The answer is Ren'py, really. Ren'py, the engine that my games run on, is meant for visual novels and doesn't have robust support for things like particle systems, despite them being a cornerstone of any halfway decent game engine out there. Ren'py does theoretically support them, but the documentation is basically non-existent. At the same time, any community examples are so outdated as to be defined as antiquities. 

To get my particle system to work (and keep in mind that it's still a work in progress. It won't look like the video when it's done), I had to take advantage of a code example someone posted back in 2015. That code no longer works, making Ren'py crash if you try to use it. So, the first thing I had to do was to fix the crash bug. However, once I had done that, I discovered that the particle system did not work even without that bug. Thus began a long and arduous process of debugging and improving the example code until I finally ended up with the above result after days of frustration. It's finally getting somewhere. 

When I have the time during the Christmas holidays, I will continue to pick away at this particle system until it looks exactly like I want it to and offers functionality that might be useful (such as gravity). Once that is done, I will begin to create a few basic effects using it and apply those to some of the central card game mechanics.

But until then, I would like to wish you all a Merry Christmas. And if you don't celebrate Christmas, then Happy Holidays to you, at the very least.

Until next time!


Progress Report

Comments

Properly implemented particle effects are not resource hogs, but I do plan on offering a toggle for those on extremely low-end systems (not that this game is designed to run on phones. Tablets, sure. Phones, no). The games you refer to probably splash huge amounts of particles all over the screen, which is not what I have in mind. I'm not trying to make my game look like an anime.

I strongly advise against this; Particle effects are a HUGE resource hog, and the problems they cause for users with low-end systems are generally not worth the added visual razzle-dazzle. Every mobile game I DL that uses particle effects chugs like a mofo thanks to them, to the point that I've had to abandon games I liked because I couldn't handle how slow they were running. My PC handles them better, but I they're still the number 2 thing I turn down when a game starts running slow. (Shadows are #1). If you're going to incorperate particle effects, at least put a disable option in the settings menu, because I guarantee you'll be getting complaints otherwise.

Asterion Del Toro


More Creators