September 2021 Update: Finishing the Tech Demo

Heya! Let’s jump right in.

We hit a bit of a snag on the tech demo

So I’ll start off with the bad news that you’ve probably noticed by now - the tech demo did not come out this month. This is due to us having a hard time getting art assets done due to the low budget of the game right now, and having trouble finding people to help get things done expediently. This on us however - because we simply can’t afford to pay people a premium price to get things done quickly. But we’re working on it!

Most of the month was spent waiting, since we’re at the point we’ll need art assets to continue making progress. However, because of the long wait with little progress, we’ve decided we’ll likely have to look into finding new team members to help with the project to help lessen the load of the other artists.

So again, my apologies! We were really hoping to have put a video out by now, mostly just because we’re excited to show what we’re working on. We were going to save the current look of the game for the video, but I’ll leave a small clip on here to at least wet everyone’s appetite.

But the good news is that the game is ready programming-side for the tech demo and all the game systems are in place for it! So we’ll get into that. We have some cool stuff to show!

Game framework & world saving

javaw 2021-09-03 17-42-11-38 large.jpg

NNGINE-L is a mostly feature complete engine, so setting up Robot Farm is simply a question of setting up the framework for the game. Generally, setting up your framework is actually the hardest part of development, because you’ll be committing to it for the rest of the project if you want to avoid spending a lot of time refactoring later and making your life generally miserable. Fortunately, I’ve been able to lay the groundwork for a framework that I’m really happy with.

The foundations are laid, and from here I can start building up the game and its features. This includes systems such as:

  • The newest iteration of our component based Entity implementation (originating in We Shall Wake, and 2D Robot Farm)

  • Customizable world systems that will be exposed in the World Editor, such as atmosphere, fog, block editing, entity/construct placement

  • World saving

The world saving is the biggest part. I’ve successfully been able to serialize the world and settings for what you make in the World Editor, except now it’s insanely more powerful than the one we included in the original 2D Robot Farm.

Not only does it support 100% entirely custom assets that can be modded in (meaning you can reskin the entire world and make your own custom terrain), it also supports custom entities and entity models as well. Additionally, these are all loaded on the fly when you load into the game, so you can also mod files used in existing save files.

Add this on top of the fact that the same is done with all of the custom Lua code, and you have an extremely powerful engine that will be heavily moddable. Players can take our basic game engine of Robot Farm and make all sorts of custom storylines and games with it. Want to make a Pokemon-esque game in Robot Farm? You got it. Persona? Totally doable. The basic Harvest Moon experience without combat or robots at all? You can do that too! I am absolutely excited to put this in your hands and see what you make!

Continued graphics implementations

So, we move on now to the graphics. As you may have noticed in the above screenshot, we’ve added quite a lot of effects since you last saw Robot Farm! It includes the following, and more under the hood things that are less interesting that I won’t mention. Before I list out these effects, I’ll just let you guys know beforehand that these will all be toggleable in the game’s settings menu to not only help with performance, but let players pick and choose what effects they want to see.

  1. Atmosphere systems - this will allow for the day night cycle to reflect in the current sky. It’s dynamic and can be set to any time of day. Of course, you won’t see this too often since the final gameplay camera will be tilted more downwards, but there will be areas where it’s orientated differently, so we want to make sure the functionality was in there!

  2. Fog systems - we’ll use this to help build up atmospheric settings. It can used for things like snow storms, desert storms, or even spooky cave/graveyard fog fitting of the upcoming month. You’ll be able to configure it from the World Editor for your areas!

  3. Godrays - self explanatory. This will interact with the fog and provide some really pretty effects. You’ll get cool instances where the godrays reflect off of the fog and give you some pretty atmospheric moments.

  4. Bloom - this is also self explanatory. We’ll use it to make the colors pop, but of course, I know some of you don’t like this, so I’m going to stress that it’ll be editable in the preferences menu.

  5. Depth of Field - another toggleable effect, this is just to make the game a little prettier and bring the foreground into focus, and also help establish distance in the world. But don’t worry, it won’t be nearly as aggressive as Octopath Traveler’s. I want it to be more subtle here.

  6. Entity Animation - sprite sheets are now dynamically loaded into the game properly and converted into voxel models, and then stored internally in the same way a typical spritesheet would be. You can define the animations with Lua and they’ll work in the game based on those settings.

And finally, here’s a little video of all of this in action. I posted the video to our twitter, so please consider giving it a like and retweet to help spread the game around!

Disclaimers on the current footage/screenshots

Now, a few disclaimers I want to get out there once again: I’ve stressed this in every blog post so far, but the final terrain isn’t going to be blocky and minecraft-esque like this. I want to add proper tile transitions to this tiles much like you could see in the old 2D Robot Farm:

vlcsnap-2018-08-05-14h37m54s471.jpg

By transitions, I mean notice how the lighter shades of grass connect with the lighter shades. You can see the lighter grass hanging over the darker grass. My hope is to get a similar effect into 3D Robot Farm’s rendering engine. Unfortunately this isn’t trivial, but NOKORIWARE prides itself in being a team of go getters!

Additionally, the world won’t remain this blocky. We’re working on slope technology we want to include in the tech demo that will smooth things out. We definitely don’t want the player snapping to different elevations - we want it to be nice smooth transitions up and down. This is pretty tricky since the game runs on Voxoid, which was made to only render voxel models. We’re going to have to pull some fancy scaling tricks to get this to look right.

So hopefully that’ll put to rest any worries that the game will look too blocky outside of the pixel-art look itself! We’re definitely putting a lot of work into doing the opposite, and want the game to be absolute gorgeous when it’s released.

SDCGraphics

This month, we built a new 2D rendering system to act as our UI rendering solution. But it actually turned out to be really amazing.

unknown (1).png

This image may not be too convincing, but let me explain!

Above is a test program we made for it. You can see Cody’s sprite being rendered at the top, and below is a basic triangle and quad (square). MSAA is going to be added as well to smooth out the raw shapes, and we’ll also potentially be adding some optional subtle bloom as well to help it pop like our old Robot Farm UI used to.

Now, why’s it called SDC? This is because it uses an uber shader that allows you to queue render commands and render all of it with a single draw call. That means it’s extremely powerful to the point where you could actually rebuild the entirety of the original 2D Robot Farm with it, and it’d perform better by a large factor. Which also means that when NNGINE-L is finally released someday, it’ll be coming with this very powerful 2D toolset as well so that players can make 2D games with it.

Font rendering

Another thing we’re working on is bringing our distance field texture technology back into NNGINE-L, specifically getting font rendering to work. The reason it has to be redone is because we updated to SDC graphics, and our old implementation was no longer compatible.

For those of you who don’t know what a distance field font is, the short-end of it is that it’s a rendering technique that allows you to render fonts at any size without it starting to look stretched, with no limits whatsoever on how large you can render it. It also boasts looking really sharp and anti-aliased at any size as well; whereas typical font rendering solutions with a basic TTF can look a bit pixelated at smaller resolutions. This is essentially a method of future proofing the game as much as possible for future machines running higher resolutions.

Anyway, take a look:

unknown.png

So here’s a picture of a japanese character being rendered. Notice how sharp it is! This is pretty important, because normally distance field fonts tend to have a rounded look to them. Essentially, this new system is extremely low memory, and renders the raw curve data of each glyph, so it’s actually 100% precise no matter what size the font is on screen. The only downside at the moment is that it’s a bit slower than our old implementation, but we’re going to work on fixing that - and even then it’s not too big of a deal to begin with. We’re just perfectionists.


Making our Discord public

Lastly, I want to mention that when our tech demo comes out, we plan on making our Discord for Robot Farm public for anyone to join! We’ve gotten some requests over the years to make one so that players can begin to form a community around the game and it’s progress, so that’s we’re going to do. You know we can’t say no to your little puppy dog eyes. But it’s a bit for us too, since we’d love to meet you all and hear what you think of what we have so far, and things you’d like to see as well. So when our tech demo comes out, be sure to check the description for the link! We look forward to meeting you. :-)


And that’s all folks!

javaw 2021-09-03 17-41-56-02.jpg

That covers about everything! As for the tech demo, we’re going to get it out as soon as possible, but like I said, we’re a bit limited by the speed of the art production right now. Once we can finally get some assets done for it, we’ll release the video and finally let everyone see what we’ve made so far in action! From there, it’s full steam ahead to making the actual game!

Like always, I really appreciate everyone’s support and I hope this blog post was an interesting read for you! And I also hope the upcoming month is great for you! Please stay safe out there!


Happy spooky month,

♥ NOKORIWARE


Stay updated!

NOKORIWARE YouTube

Robot Farm Twitter

We Shall Wake Twitter


Check these out too:

Puppygames Twitter

LWJGL Website

Arcweave Website

Arcweave Twitter

Koburgerlaw

Previous
Previous

October 2021: Tech Demo & Health

Next
Next

Java | Using JPackage (Quick-Start Guide for Windows)