SamuKata
sirmister
sirmister

patreon


My largest work update ever

The past days/weeks I have been focusing on the character rendering engine again. If you are already familiar with what I'm talking about, I'm sorry, but the first part of the text will probably be boring for you then.

MY PLANS (the first part)

About a year ago I thought about automizing the rendering process for 3d models (a.k.a. the pictures used in Gain of Life), most importantly those for the main character. The way the images of the main character are handled is quite awful: For each pose, outfit and weight stage there needs to be a manually rendered sprite. This not only consumes lots of time creating those, but also limits the game, because we can't really add new outfits, because that would increase the amount of pictures required exponentially. If you're interested in the math behind that, here is an example: 30 stages x 3 poses x 4 outfits = 360 manually created pictures required. Adding a new outfit would mean 90 more pictures to manually create, and increasing any future efforts required to add a new weight stage or a pose.

Thus, I came up with the crazy idea of procedurally generating those images. I started programming a software that would be able to automatically put a 3d character together and render a picture for the game of it. This would enable me to generate hundreds of pictures with a few button clicks completely autonomously without my own interaction needed.

Now this brings up a new challenge. Hypothetically speaking, if I rendered 20,000 pictures and I'd add them to the game, the game's size would explode to about 20GB of size. Nothing that aynone would want to download.

That's the reason why I went a step further, and decided to store any created pictures in the cloud. Consequently, if you play the game, the game would download the needed pictures on-demand. Thus, the game's size would decrease to around 200MB download size.

Lastly, I thought, why create the pictures upfront, if they're downloaded on-demand anyways? A computer could run 24/7 and render pictures, but if you play the game and a specific picture is not yet created, a computer would just prioritize that work. This would take around 2-5 minutes for the picture to be ready to be displayed inside the game.

Summarized, all this would allow me (at least in my imagination right now) to create a super flexible character window.

WORK UPDATE

Huff, that was a lot of wishful thinking, now here's what actually happened.

Software #1: The worker (100% done)

The name says it all: This software does the hard work of rendering and creating the images. Since Daz Studio can't communicate with the internet natively, I had to write a software that tells Daz Studio what to do. And this is what this software does. It is able to perform basic operations, such as canceling renders, starting new renders, etc. I even found a way to render multiple images at the same time. This is interesting because Daz Studio is single-cored. An 8-core CPU can do magic with multiple graphics cards in a single PC then😏

Software #2: The master (100% done)

All workers register at the master (this software) and tell the master about their current status (e.g. how many resources they have left). Based on that information the master decides which computer gets to do what work. Also, the master has a queue system implemented. So it's possible to send the master e.g. 100 jobs, and it would then slowly work all those rendering jobs off, until they're all done.

Software #3: The image server (100% done)

This software is responsible for storing all those images properly. Also, it is responsible for checking whether the requested image has already been rendered before, and thus doesn't need any rendering. In that case, the image can be sent immediately. This is what I am working on right now. I expect this to be 48 hours of work left.

Software #4: The generator (0% done)

This software would automatically schedule missing images to the master, just to make sure that the computers are running 24/7 working on 3d renders.

Software #5: Control pane (15% done)

This will be to administrate and monitor everything. Adding a new outfit shouldn't be more work than a few clicks. This will be mostly web design, not my favorite part, but at least only I get to see that website. So it'd be fine, if its ugly😜

FINALLY

The tough work (the worker & the master) is completed, and I'm progressing nicely on the rest. The interesting part will be to see whether I can produce useful results with the automatically generated pictures. While I did do some basic testing to see whether my idea has any future at all, there may be unforeseen limits to this.

It seems like I will have quite some time to work on this during February because the rest of my life calmed down a bit. The next days I will work on some new content for GoL, so that I can release a new version by next weekend (not this one, I'm afraid).


More Creators