(April 2018) Monthly WIP & Screenshot thread

I’ve been very busy adding all sorts of new stuff to Spoxel, but i’ve been taking some time the last few days to start coming up with ideas for a new dungeon.


Your game just looks so polished and “finished”. How do you achieve that?

It took me awhile to really zero in on the visual style I wanted with Spoxel. Once I settled on a visual style I spent a lot of time in photoshop really figuring out how to recreate that art style. I’ve somewhere north of 1000 textures and icons at this point in this style.

It seems with programming that I usually completely rework a lot of my code several times before I arrive at something that meets the standards I have. Much like that, I’ve also spent a lot of time reworking most of the models multiple times. This is the 3rd or 4th rework of the main character model for example. Much like software, art can be a very iterative process.

For example, this is the previous version of the character model:

And this is the original when I first started working on the game:

Beyond that… I can’t stress how important reference material is. When i’m working on a new biome, for example, I spend a lot of time on google looking up pictures to pull ideas from. I grab images for everything from unique patterns that I think would fit to images that convey the atmosphere I am going for.


We are finally getting somewhere useful:

A lot of the random chance is taken out that needs to be put back in but still pretty promising… I have to see how much difference there is just changing the seed but right now that has minimal affect on overall level structure. Though maybe I see it where no one else would.


So I have the settings drilled in how I like them… for now. I think these levels are way too big and the straight tunnels may be way too long… but I won’t know for sure until I can see it in 3D. Those settings are all tweakable anyway.

The problem is… now it’s too fun to explore the random space and just keep trying new seeds to see what I get:







I’m working on Light Probes blending. here is the first result.

I have 3 probes aligned in a “corridor” with emissive walls.
At the beginning I use what we have today: the geometry uses the closest probe. So the floor geom only use the central one (the closest probe to it’s “center”) and the cube switches between the 3 probes depending on its position.
You can see a sudden lighting change when the cube switches probe.

At around half of the video I switch to the new mode. The floor now uses the 3 probes and they are blended on a pixel basis. Notice how the reflection parallax is better, However It can’t be perfectly aligned unless I implement oriented box bounds for the probes… work for another day.
However the cube now goes smoothly from one probe to another, with no lighting sudden change.


Wow… ok, that is pretty neat.

I got the idea that we needed proper lighting for corridors type of environment :wink:

I’ve made more progress on my decal projection and effect system, although I had to spend some time going back to rework the foundation to improve performance. Rather than doing everything in the shader, it now generates a mesh for each decal, and the shader just handles the effects and transitioning.



very cool!!

1 Like

Noice! I thought we already had this :smile:

Wow, this really looks awesome!

1 Like

Did you make everything yourself? If not, what library(ies) did you use (i.e. procedural noise)?

Also, is it grid based or more organic like what I did in the last monthly WIP & Screenshot thread? I used brute force too.

Edit : Sorry if it wasn’t clear to whom my message was for; I thought that clicking on “reply” would somehow indicate the original message.

To me, it’s not at all clear who you are responding to. Might want to clarify next time.

I think because I’m the OP for this thread, it does not indicate it specifically… and some folks just reply the bottom but talk to someone specific so it’s not clear that every unattributed reply is meant for me either (see comment on Spoxel above).

Yes. There is no noise. Just java.util.Random initialized with a seed.

I originally thought to have overall level archetypes that would serve as the high level structure and then randomly pick one. However, my first archetype was “random radials from a central core where radial tips are randomly connected”… and that will randomly produce almost every overall archetype I could think of.

From there, I do some number of iterations of the brute force “blooming” where I visit every open connection and try to randomly place a part there. I intersperse this with a pass that sees if a square room won’t fit but a trapezoid room will… because that results in a lot of nicely nested structures. I iterate those two steps a few times.

Next will be to do a graph traversal over the level to map out different security zones, key drops, data terminals, loot drops, etc…


This sounds awesome! Can’t wait to see it!

Great work! Actually I would like to give this post 2 likes at least;)

I thought a good goal for “Capture the Hat” would be a scarecrow. So I did that:

Delivering a hat there now gets your team a point (there’s scarecrow with blue and one with red eyes).


Hi guys,

I’m not coding with JME anymore but I still watch these monthly threads with both pleasure and nostalgia. You’re all amazing ^^ please keep up the good work !



Working on stand-in geometry to confirm that I got my ratios right (and to build out the level mapping in general). I was pretty sure I had it wrong but real geometry seems to confirm it’s ok.

Top view of above map… still missing trapezoid stand-ins:

Closer view of one area:

Still lots of work to do but I’m just trying to get to the point that I can confirm that these levels are too big or not and then start working on mob steering/pathfinding.