Search This Blog

Wednesday, June 21, 2017

What's wrong with Game Guru?

Long post warning!

Let me start off by saying I don't want to diminish Lee's hard recent hard work.  A little context before we begin.  About a year ago, Game-Guru had stagnated.  A great many of us felt that the project was being let go in favor of another, bigger project.  After all, we've been through the following already:
  • Several kickstarters
  • FPSC X10's failure
  • A C-code rewrite
  • A few years of semi-active development
  • A few "big updates" that were little more than content drops.
  • A rebranding (Reloaded to Game-Guru)
  • Several new product launches for unrelated projects (AppGameKit, MyWorld, etc)
  • A very long stagnation period (on the order of about 6+ months).
Despite not reaching stated milestones for the initial project, I think it was felt that this project was probably nearing it's endpoint and that we wouldn't see much coming in the future.
I for one, started to drop off the radar.

Then, suddenly, Lee really got his shit together.
Like monthly updates became a thing but not only that - they were substantial.  The EBE (easy building editor) which was stagnant for like.. literally around two years got off the ground.  This is, was, and will remain seriously fucking cool of him. 

Multiple codefixes were done.

Major updates were included with some hard work by one forum member who rewrote a number of shaders and was selling them separate.   Lee opened up the LUA code significantly.

Yet recently I dove in to try to get my weather system finalized for sale (it is, though I have to get it on the store yet which is always a monster, monster chore).

So my son has been making some really awesome stuff lately.  My weather stuff is almost done for the version 1 weather and time of day system...

That's when we run into problems.  Things which are glaring, GLARING monsters in the room that need addressed.  I'm going to go into them in no particular order.

Culling, culling, and more culling.

If there's one thing that absolutely DESTROYS this engine, it's the seemingly total lack of culling being done.  Here's a prime example.

My son built a nice little house using the EBE.

Not my son's house, but a good representation nonetheless.

This house had probably a few hundred trees around it. They weren't anything special.  Trees, by the way, are the Anti-Christ when it comes to Game-Guru.  They have too many polys at too odd of angles and it just nukes performance.


So anyways, we're inside this house and literally there's nothing in there - just a few floors, no windows, and some solid walls comprising a room.

And at this point I notice it's running like a leg-less dog.  I mean it's just absolutely CHUGGING - 8 fps.  12 fps.  My machine is no slouch.  I have a  quad core AMD 3.2 GHZ, 16GB of very fast gaming DDR ram on top of a gtx 960.  It isn't top notch, but it's damn quick.

8 FPS is just painful. So I open up the tab screen and check and it's got massive computations for polygons that aren't even showing.  I notice it's only happening when I look in the direction of the trees.

There's ZERO good reasons for this.  Those trees should be completely occluded (occlusion was at 100%) and completely out of the graphics processing pipeline, for all intents and purposes.

Performance is a major issue right now and culling would fix 75% of this, by my estimate.

Trees for instance would be significantly less obtrusive if they weren't trying to render all of them simultaneously (including ones three layers behind the current front row).

The goddamn sun!

So obviously this one is near and dear to my heart.  The Sun is a fixed object, immovable from a level standpoint. While some good progress was made by breaking out the sun's shadows into their own source, it is something that I just cannot see being a viable thing - a fixed sun makes level building difficult on so many areas.  Your skies have to be perfectly aligned or it looks absurd. Sci-fi levels (in space, no ground/etc) always have a mystery light coming in.  Nighttime maps have 5pm shadows.  On and on it goes.

The inconsistent handling of third party objects by AI.

AI supposedly has come leaps and bounds over the past few months.  I honestly couldn't tell.

One of the biggest benefits of using Game-Guru versus any other engine is the massive library of cheap or free objects.  These objects give you a huge amount of models to work with at a tiny fraction of the cost you'd spend in other engines.

Let me just stand here, at this fence and try to figure out why I can't walk through it.

I use a wide variety of objects and while there are fixes for this, they don't work most of the time.  AI still doesn't know how to navigate around half of the stuff out there, specifically dealing with interiors.  It's frustrating to have them just stand there unable to move while you have this beautiful level made up.

Water levels and terrain generation.

Over the past few months I've tested out other engines (Unity, Unreal, Lumberyard) and come to discover they have a major advantage in terms of rendered terrain.  I will say I'm happy to see the random terrain generator has returned to it's previous iteration but that's not to say there's not room for improvement.

The fact there are two modes really doesn't escape any new users.  Flat level vs 'Random Terrain'.  Cool.  I'm not asking for much more than that.  I would, however, love the ability to actually import my OWN terrain from an actual terrain generating system that provides far more realistic looks and value than what's available from me spending probably on the order of hundreds of hours making my own terrain.

I'm lumping water in with this because the fact the water plane cannot be adjusted in-game is a major travesty.  This simply not tenable to have a single water layer that is completely and utterly immutable.  I don't know what else can be said on it.  Before any other work is done with water, we need controls inside of the GUI which will allow adjustable water planes or better yet, MULTIPLE water planes with their own individual controls.  Now that, right there, would be some seriously cool stuff.

A real development environment.

I've said this before, and I'll say it again:  I would be willing to pay more for a professional-grade version of this product.

Simple? Yes.  But it feels like using crayons to try to paint a Rembrandt.

This is tremendously important to me.  I use several enterprise-grade tools in my day job as a Linux Systems Engineer at a Fortune 500 company.  I've grown to appreciate their simplicity on the surface while having a deep undercurrent of customization for those looking for it.
I've also worked with a plethora of engines in my 20+ year journey doing indy-video-game goofing around  and let me tell you that unequivocally this is one of the worst interfaces I've ever used.

To be fair, at least it's not Blender Game Engine...
I don't know what it would take, but I'm tired of the tool being aimed at people making indy games but having kiddy-pool level controls.

There is literally NOTHING I hate more than the inventory management system. NOTHING.

It just seems like a cop-out at this point.  I mean how hard would it be to add a simple set of checkboxes for options that are ALREADY in the engine?  It can't be that difficult.  These are settings that are already being assigned.  Why not have a search function or meta tags for your objects?  Why do we *HAVE* to scroll down through that terrible little list on the left of objects for our levels?   Why not have a simple game properties pane?  Something where you can adjust settings outside of being IN a test loop of the game?  I shouldn't have to load the damn thing just to configure it.  This is *ESPECIALLY* onerous when you have a large level that needs a simple edit and you spend 10+ minutes waiting for the AI to compute it's paths (which don't work anyways) just so you can change the skybox or fog levels.

We need an option for level properties.  A properties pane.  A way to pass variables through the GUI to objects (say to pass a specific starting value to AI).  Lots of little tweaks.  I don't mind if you keep the kiddy-tech exterior, but give us more under the hood here! 

Better component pieces.

Let me just say the Character Creator has REAL potential.  The EBE was a great piece and if he keeps at it, it will add a massive amount of value.  These pieces come to us raw and unpolished though.  The original thought is good.. mostly.  But the implementation is kind of ugly at times.

This is about as good as you can manage for a custom character.
The female characters, for instance, have some godawful hairstyles available.  But moreover, there's a lot of potential for the character creator.  There's a huge amount of variability there and it really gives the engine the feel of being a REAL engine with big boy pants and everything.


I realize this comes off as a bit of a bitch-fest but we're talking several years of development and it's just ... disappointing.  Less so than previous years, but still disappointing.  The performance is abysmal.  The interface is atrocious.  The fixed sun is a throwback to 2004.  The AI is embarrassingly bad.

All that aside, it's come a long way.

Given Lee's current pace I can only hope he sees this and gets inspired to bang out some quick, meaningful changes that will produce big results from low hanging fruit.

With all that I just want to say thanks to my readers for sticking with me, the community for Game-Guru for sticking with the engine, and Lee for sticking with the project.  It's been a long road and there's miles to go but we're getting there one patch at a time.