Journal Entry 59 – Better late than never?

Happy December everyone! I’ve had a pretty crazy week, which is why my blog postings haven’t been happening. I do have some cool progress to share. The first news (that you may have already read on Twiter) is that I have some help with creating the art assets in the game! Hopefully there will be some cool stuff to show off soon 😀 I have been back and forth with her quite a bit to fix issues with the client she is using. She is using a Mac, which meant that I had to go back and support the Mac operating system. Since I am using C# and OpenGL, it isn’t a far stretch to get Mac support via Mono. However, there are some issues to overcome.

The first issue is regarding shaders. Mac OS X only supports up to #version 120 of GLSL. Since all of my code is written with newer versions of GLSL, I need some way to fallback to the older version for the Mac. Well, it turns out I am only really using the newer versions of GLSL for speeding up certain things and making life easier (for example – Uniform blocks). I ended up writing a C# method that can convert pretty much 100% of my GLSL code into Mac OS X compliant code with a few simple string operations. I then need to do a bit more work on the Mac for setting my camera and other functions that take advantage of the newer version of GLSL.

One of the first scenes I got up and running on the Mac OS X using Mono+OpenGL.  All of the normal editor functionality is available to use on either Mac or PC (or Linux, too!).
One of the first scenes I got up and running on the Mac OS X using Mono+OpenGL. All of the normal editor functionality is available to use on either Mac or PC (or Linux, too!).
Here I've added full multiplayer support and server/client connectivity to the Mac client.  It didn't take too long to get up and running around with friends in-game.
Here I’ve added full multiplayer support and server/client connectivity to the Mac client. It didn’t take too long to get up and running around with friends in-game.

Next, I wanted to tackle a few visual aspects. It is tough to render dense forest, since I cannot draw easily across Voxel Chunk boundaries. You might already see from the first screenshot that this issue has been addressed with the latest builds. Here’s a crazy jungle!

Adjacent chunks get certain information about their neighbour, which allows trees and other objects to be seamlessly connected across chunk boundaries.
Adjacent chunks get certain information about their neighbour, which allows trees and other objects to be seamlessly connected across chunk boundaries.

It gets even crazier once you are under the tree canopy, with all of the shadows and dense trunks/leafs/clutter.

Things look pretty clear above the canopy, but below is a different story.  Real jungle biomes will need all sorts of cool and bushy ground clutter too.
Things look pretty clear above the canopy, but below is a different story. Real jungle biomes will need all sorts of cool and bushy ground clutter too.

Finally, I did a bit of work on the stability of the client, optimization and some lighting! I’m working on making sure that lit objects actually have some specularity. Here’s a preview of what’s in the works:

I've turned off the normal lighting (aside from basic ambient lighting) and instead am relying upon the 'gem' in this stone to cast light.  Specularity has been added to make the light sort of 'glow'.
I’ve turned off the normal lighting (aside from basic ambient lighting) and instead am relying upon the ‘gem’ in this stone to cast light. Specularity has been added to make the light sort of ‘glow’.

Anyways, that’s it for now! I just wanted to let everyone know I’m still working on stuff.

Giawa

PS: I got a new computer, which is why all of the new screenshots are Windows 8.1. Takes some getting used to, but I’m loving the speed of the processor.

One thought on “Journal Entry 59 – Better late than never?

Leave a Reply