EverEnding DevBlog, April 2017: Desync

It’s been a rough month for the project. I’ve been feeling the least motivation to work seriously on it that I have in a long time, and there’s probably a number of reasons for this, ranging from stressing out about volatile political conditions to worrying about money to being distracted by very good video games. However, I think the biggest thing undermining my motivation is lack of confidence in the technical side of the project, and I’m still figuring out what to do about that.

See, I’m building this project in Adobe AIR, which is essentially the same thing as Flash but repackaged for local installation instead of streaming. There’s a lot good to be said about AIR, and a number of good games have been made in it, but over time it’s felt like I’m struggling more and more against it, being limited by its weaknesses while not taking advantage of its strengths. I’m starting to question (again) whether I should be working in this environment at all. The past month has been a struggle to get the framerate up over 60fps. Originally I had believed that once I got my multi-threaded solution working it would just happen. Then I thought that once I got my multi-threaded solution optimized it would happen. Then I thought that once I went through and optimized everything else it would happen.

Now I’m thinking it might just not happen – at least, not with the amount of individual animated details I want to have in each level, and/or not with the lighting system blending in on top. There may be another way to handle the lighting issue, so I’ll look into that. I also can probably improve performance somewhat by more carefully culling draw operations that would take place outside of the screen space. I can try those things, but it’s time to start carefully considering what I do if they don’t work. I’m slightly tempted to try to port the engine into some new architecture/environment, though I probably won’t. I may experiment with getting it running in OpenFL again, since that gives me a lot more opportunities for optimization, but I probably won’t remake the entire thing running in C and SDL…

Probably.

So, what do I have to show for this last month? (A bit more than a month, actually, since this devblog is a week late). I did all of the animations left to get the basic mask enemy working (though the enemy itself still needs some work since the behavior doesn’t work quite right), fixed a number of bugs, finished getting the multi-threaded particle system running and fixed performance problems therein, and made some performance improvements. It’s not a very productive month, but they can’t all be I guess.

But what’s next? What’s my plan to get out of this funk?

Most immediately, I’m going to go in and see if some judicious culling of draw operations can improve the framerate. Then I’m going to see if I can figure out how to do some decent looking water. Then I start building out the early levels, adding details, fixing up the mask entity so it feels good, and perhaps starting work on getting another enemy working.

There’s still so much to do, and I don’t feel like I have any momentum. But who ever starts with momentum? It’s something you pick up along the way.

Leave a Reply

Your email address will not be published. Required fields are marked *