005 - September 2, 2018


This past week I was supposed to automate more or my mesh and texture build pipelines and add texture support to our client renderer. I knew that my sister's wedding would be during the weekend so I tried to make sure to underload my work for the week.

By Tuesday I had my placeholder meshes being automatically packed into a serialized hashmap of models and served to the client. I was successfully rendering the correct meshes for the correct entities by reading from this hashmap. Good early momentum!

But after early wins came some early losses. My version of photoshop that I.. uh.. found a few years ago stopped working right as I was about to create some placeholder textures. I spent a couple of hours trying to create some textures in Procreate (an iPad app) and eventually figured out a good system.

Even so, It was clear that photoshop + a mouse was mostly superior to Procreate + apple pencil, so I ended up buying the cheapest Photoshop plan for about $10.65/mo after taxes.

Going forwards my texturing workflow will be mostly based on Photoshop but I might use my iPad if I'm on the go or trying to hand draw bits of the texture using the Apple Pencil.

I spent Wednesday and some of Thursday working on automating the texture bits of my asset pipeline. Our textures are Photoshop PSD's with a different layer for different parts of a texture such as the hat, legs, arms or gloves of a model.

Texture Layers Photoshop Each piece of the (placeholder) texture has its own layer in Photoshop

Our build script takes all of these layers and merges them into a .png file. We then take all of these .pngs and combine them into a texture atlas. In the future we'll need more than one texture atlas, but one works for now.

In the future we'll also want to dynamically determine our texture png size based on the dimensions of the model that is using it. So tiny models would have proportionally tiny pngs.

PSDs to PNGs Convert PSD files into PNG files

This all worked great and by Thursday afternoon I had an automatically generated texture atlas that I was serving to the client.

Thursday evening and all of Friday I had wedding things for my big sis, but then Saturday afternoon I was able to get back to work. I made progress adding uv support to my blender-exporter library and quickly had an integration test and implementation for exporting my uvs from Blender.

I then wanted to update my mesh-visualizer that I use to visualize my test meshes to verify that my exported uv's looked correct (a last bit of certainty even though it is heavily tested.)

Unfortunately I upgraded to the latest nightly Rust and started having issues with the wasm32-unknown-unknown target that powers by WebAssembly builds. I spent Saturday night and a good bit of Sunday morning trying to fix my issues but with no dice.

Eventually I decided to just wait a few days until (hopefully) the latest nightly works again. This is certainly a trade-off of working with bleeding edge tech. For now I'm only targeting WebGL so short of wipping up a quick desktop OpenGL visualizer I'm stuck waiting for a fix. No worries though, I'll just design next week's goals around this. In the meantime I can just continue TDDing my work so that by the time I need to manually look at the visuals they'll be easy to change / refactor if they didn't work as expected.


So I didn't finished getting my textures rendering in the web client this week and I'll have to just have this carry over into next week.

Next Week

I'm anticipating my wasm32-unknown-unknown target being broken until mid week so I'll factor that into my goals for the week.

Next week I will finishing updating blender-exporter to add support for uvs, start rendering textured models in the game client and add a WebGL UI menu that appears when you click or tap and disappears when you mouse away or tap again.

I haven't made UI elements with WebGL before since I previously always used HTML + CSS for the game's UI so this will definitely take more time than it would if I were more experienced. Monday is labor day giving me some extra time this week.


Our financials for the month of August were:

  • Revenue +$0
  • AWS -$30.89
  • SSLMate -$15.95
  • Photoshop -$10.65

For a grand total of -$57.49

August 2015 AWS AWS spend for August 2018

See ya next time!