No Game Engine Game Dev: Word Sleuth 059: Putting books on a bookshelf, breaking it, Gimp python-fu

3 months ago
5

Streamed on 2024-10-02 (https://www.twitch.tv/thediscouragerofhesitancy)

Game Engines are for sissies!

As the tools become more refined for faking art, some of the tasks become easier as well. It didn't take too long to get a long row of books that will fit on the bookshelf to show up with random sizes, distances pushed back from the front edge and colors. The color choices need some work, and there are more things I can do to add variety, but the tool is sufficient for initial layout. However, the visual showed an issue ... since we are rendering the bookshelf as a single draw call with a texture, the books are either over all the parts of the bookshelf or vice versa. What to do?

The answer is that I needed to break up the bookshelf into pieces and draw things in a specific order so the books write over the parts of the shelf they need to and the shelf covers the parts of the books that the need to. So I need 6 textures to draw the bookshelf, not 1. Again, it didn't take too long to output all the pieces we needed.

But now I had to update all the UVs for that texture, which is a painful manual process. Time to resort to coding again! So I started digging into GIMP python-fu. I'm not going to lie, this is going to save me a ton of time, opens the door for automated texture packing in the future, and it is more fun to script than to manually pack textures and record UV coordinates, but ...

The GIMP api is not my favorite, and neither is their documentation. Things that should have been trivial or at least simple were hard to find or impossible to do. In the end I think I found all the APIs I will need and set up the initial plugin script, but I much prefer the experience with Inkscape's scripting interface. I'll wrap it up tomorrow.

Loading comments...