As you can see, this week I've been focusing on some of the art assets needed for Starlight Revolution. One of my goals right now is to develop a fast and efficient process for creating spaceship models. The workflow I've settled on so far has been to build the base mesh using sub-surface modeling, and then sculpt details on top using ZBrush's alpha and stencil tools. This is a departure from my earlier process, and hopefully it'll help me avoid doing mesh retopology.
There are still a lot of kinks to work out, but I think I've got the basics down. The area I want to focus on next week is making these models truely modular, so that the player will be able to assemble their ship from parts. This is an important development goal, as with a sufficient variety of parts it'll allow players to customize the look and feel of their civilization, but there are a lot of potential hurdles to jump.
So that's the update for now. I've been considering doing weekly art livestreams, so let me know if you're interested in the comments below, or by directing a twitter @Mention to @JeckDev. You can also subscribe to the mailing list for occasional email updates on what I'm doing. If you'd like to see what kind of content you can expect, you can check it out the latest newsletter here.
This week has been all about optimizations. Starlight Revolution has some pretty neat things going on under the hood, but the way they're implemented often starts out very inefficient. The goal is always to get the basic functionality in first, and then focus on making it run fast later. Sometimes, this focus on functionality first can also lead to bugs.
One of the recent changes I made had such a negative effect on framerate that I almost had a heart attack. For every laser in the scene, framerate was increasing exponentially. It took awhile to figure out, but what was happening was that each laser was being treated as a camera, rendering the entire scene from its perspective. The scene was only displayed on the screen once, when it drew from the real camera, so from the outside it looked like the game mysteriously slowed down every time a laser was fired. Not good. Fixing this bug turned out to be simple, but it was humorous to see how such a sma
If you'd like to chat on this or other topics, feel free to message me on twitter @JeckDev or leave a comment below. You can also subscribe to the mailing list for monthly email updates on what I'm doing. If you'd like to see what kind of content you can expect, you can check it out the latest newsletter here.
This week I've been working on the particle system I'll be using for Starlight Revolution. Particle systems are one of those high-impact areas of game development, where a lot of beauty can result from very simple initial conditions. That's not the case here, yet, but I'm hopeful that in the future things will look better.
As I mentioned in an earlier update, Starlight is designed to record replays, and play them back both forward and backwards. As a consequence of this, I need effects to work when played either way. My initial idea was to utilize openGL's transform feedback functionality to update particle positions incrementally, but after working out some implementations along those lines I've settled on another solution.
I'm handling particles entirely within the shader. As inputs, the shader is fed a number of particles, a couple of values defining the system, and a time. Future frames are independant of the prior ones, which will likely come in handy in the future. This is actually the simplest way to implement things, though it is not without drawbacks. Some effects might be difficult to do if they require complex movement, but I'm fairly confident I'll be able to use this to make things look good. As a side benefit, because shaders are accessible to modders, adding new particle effects to the game should be a fairly simple endeavour.
If you'd like to chat on this or other topics, feel free to message me on twitter @JeckDev or leave a comment below. You can also subscribe to the mailing list for occasional email updates on what I'm doing. If you'd like to see what kind of content you can expect, you can check it out the latest newsletter here.