Search This Blog

Sunday, October 29, 2017

A little micro-addendum

I always liked totalbiscuit; his style and prose are very good to me.  

This gem relates to the maze discussion I had a few days previous:

https://www.youtube.com/watch?v=0Q6UQ2QlRH0

Real solid stuff here, totally worth watching.

Also, this is worth looking at:
https://forum.game-guru.com/thread/218797?page=2

It appears that BOTR has made a functioning bmp to terrain generator for GG!

Friday, October 27, 2017

Technique Discussion: Modern games and Mazes

Recently I was following the progress of this gem:



Dimoxinil is not only a hard to spell username, but also one of the premier Game-Guru creators.

His previous works (though uncompleted) really set the bar rather high for what's capable with this handy little engine we all like to dick around in from time to time.

This newest game is a really well thought out piece of work and we got a little off topic discussing level design principles;  specifically this particular image:


And also it was noted that there should be some differentiation in the shapes being used by Dimoxinil on this image:

It's really hard to believe quality like this can come out of Game-Guru.
So this got me thinking and I had to expand on some of my own thoughts posted there by way of a highly verbose piece written here :)

So I really have no complaints myself about this particular image. It's a little washed out, maybe, but the shapes used are really pretty good at providing a maze-like feel.  If that's what you're going for, that is.  If you are trying to provide a clearly navigable experience, however, you get lost in it.

I personally don't really like the trend of modern games going the route of "This is my linear movie level.  It's highly detailed, but not mentally stimulating in the least."

An oldie, but a goodie!


The above picture really illustrates once again that no matter how you dress up a simple linear FPS game, it's really just that - a Linear FPS game.

When I read "Masters of Doom", which I consider a must-read by any serious FPS game dev, I saw that John Romero had gotten his start in 3d level design making mazes.  Now this is an important differentiation between modern game design and 'old school' game design. 

Because of the lack of horsepower, gamedevs were FORCED to use more inventive methods to stimulate the player's interest.  This included mental stimulation on the level of insidious puzzles and secrets. This wasn't even a new concept.  The further back you went, the more obvious the mazes were (primarily because of the limitations involved with graphics,storage, and processing hardware).

One of the first mazes I recall from my youth showing on my TV screen.
In fact, if you look at video gaming history, it's rife with mazes.  At least, until, hardware improved.

Then we found ourselves in a place where the streets were long and flat but the window dressing was really good.  I noticed a correlation with this in the early 2k's.  Games were getting prettier .. and easier.  Tutorials, controls, everything started slowly getting simplified. 

Maybe our games are making us dumber?  The lack of mazes means lack of higher order thought; people can't process their environments anymore.  It's difficult to really figure your way around a maze with no clear start or end.. with no walls to guide you.  That however can bring it's own enjoyment.  There are, however, certain tricks you can use to make sure your players aren't getting lost (at least, until you intend for them to be!).

Now it's not hard for you to figure out I live in Pennsylvania.  I've lived here my whole life.  I have spent many, MANY hours as a boy meandering around the forests.  It's real easy to get lost because so much of it is just .. so ... SIMILAR.  As I got older my interest in Survivalism and Hiking helped me get a solid sense of navigational techniques.  These same techniques can be used to help guide a player.  Some games virtually beat you over the head with modern methods such as the 'use a light to guide the player' technique:

I absolutely enjoyed Doom 2016 but the hell maps were a case study in 'follow the green light to move on' 
While I respect and appreciate some of the things modern level designers have done (the aforementioned Doom, for instance, had superbly designed secrets), I really feel like we've over-simplified some of the bits that made gaming fun for those of us who cut our teeth on the Atari, Nintendo, and 286/386/486 PCs.

Rule One: Try to provide a significant landmark to guide players.

That big rock gives you a clear sense of where you are.
When you're out navigating the woods, when you find a major landmark you latch onto it.  It is your anchor, your safety net.  Landmark-based navigation is among the oldest and most easily used methods of finding your way through difficult terrain.  In the above picture, you have two great landmarks.  You have the big rock but ALSO a winding river.  Now if they diverge into separate paths, most people will automatically use that to triangulate where they are.  It's sort of a built in function of the human brain.  Giving people a clock tower, obelisk, large river, mountain, or building can easily change a level from a faceless, winding maze to something where you never truly feel lost.  After all, you're always still anchored to that rock in the distance.

Rule Two:  Light is a landmark, but don't overdo it.

Another time-honored tradition in the real world for navigation is using the position of the sun, moon, or stars to determine where you are.  It's natural for humans to seek light as a source of navigation; cave exits, campfires, houses, all are denoted by lights.   When you get to the point of literally cutting almost every single light out to give people a deliberate trail though of 'green lights' then you are at that point going a little too far, in my humble opinion.

The light is a precious resource; something you don't realize until you are lost in the forest, alone.

Consider this; you are walking through a forest, on a path without a compass.  The path is winding with many forks and the trail is faint.  The trees are like walls, blocking out any landmarks.  You have a watch and know it's 8am.  Suddenly, you get a glimmer of light from the sun; you realize it's to your right and because of that you know that the sun rose in the east - making your direction currently north.  That's opposite the way you wanted to go! You return to your previous fork and try a different path, carefully keeping the position of the sun in line with the direction you wish to go.

These are real world usages of this.  I've been lost in the forest myself before.  I was literally standing on a path wondering where the hell I was.  I knew the path had diverged before.  Obviously I was *SOMEWHERE*.  Until I caught a glimpse of the sun though, I really had no idea which direction I was headed. 

Rule Three: Paths are guidelines, not rules.

Sure, you can keep following the path, but what happens when you go off the trail?
The expression "off the beaten path" is an oft-used one but really denotes that most people tend to follow the trails as given.  Which, let's be fair here, trails exist for a reason.  They are the typically navigated path.  The problems arise when you put the player on a trail they cannot deviate from.  That's not a trail; that's a railroad.  Providing a player a rewarding experience is more than simply giving them a huge art budget and professionally written story.  It's about making the game fun too; exploration is an oft-underutilized component of modern gameplay.  Worse still are examples (I'm looking at you, World of Warcraft) that literally turn exploration into a clinical exercise in boredom. 

Rule Four:  If you really want to get a player lost, take away their frames of reference.

Variety is the spice of life. While it's wonderful to give players a thoughtfully done level that is intuitive to navigate, yet challenging in it's complexity, it's often good to sometimes pull the rug out from under them.

Photo by Alex Wise.
When you dump your player into an area with no clear beginning or end and everything looks the same... they're going to feel a type of helplessness that really can't be described in words.  This type of change of pace can often be enough to really help break apart the monotony of longer games.  Putting in a hedge-style maze that's got a ceiling on it, a teleportation maze where every room is almost the same, or just a great big forest with a whole lot of trees can really change the tempo of a game and give you a real hand in the player's fate. 

In conclusion:

I think Wolf really said it best on the original forum post in question:

"I think divisions like this are toxic in a medium that should be about freedom of art and expression. Multiplayer legends like "killbox" or "facing worlds" wouldn't make me an expert?
A lot of very simplistic multiplayer levels are well loved. This also feeds into the culture of bearded, flannel wearing people with a mild depression that tend to overthink and navel gaze game development. This statement is personal, neither objective, nor fair, nor grounded in anything but my own petty dislike for some happenings in the indie scene lately though."


Or if you really want to simplify it, take Bugsy's sage advice:

"remember kids: if your map doesn't have a rotunda, you're not an expert level designer"

Sage advice, indeed.  I'll settle for just telling anyone reading this to maybe think about maybe adding more intellectually stimulating mazes, if only for my own gaming pleasure.





Thursday, October 26, 2017

Advanced Time of Day and Weather Control, Mk3

It's been a few months since I made any major updates to the Advanced Time of Day (TOD) and Weather Control System I made and put on the store earlier this year.  The second iteration added lightning storms, sound effects for lightning, and specularity changes as well as some color tuning.

Well version 3 is out and it's on sale (9.98, 27% savings!) 

It's added the following:
  • Better documentation
  • Better sunset and daytime transitions
  • Bugfixes for the brightness issue
  • A time of day clock usable by NPCs and scripts
  • A 12 hour conversion system to provide time of day to players in AM/PM format.
  • Lots of little small updates such as better variable names and cleaner code!
All of this marks a pretty good spot for this.  There are currently no bugs known and it's running flawlessly on my system.  Grab your update if you have one and get to work :)

Friday, October 20, 2017

Latest news from Game Guru

Looks like Lee's reading my blog, his update had a very similar format.

https://www.thegamecreators.com/post/gameguru-progress-update

Right now there's also a pretty interesting set of discussions on the webforums on two topics that are near and dear to my heart with #gamedev:

First off, there's a good discussion going on Terrain Generation and modification externally:
https://forum.game-guru.com/thread/218797

In that thread we have actual source code on how the file for m.dat is output (m.dat is the map data found inside of the fpm file, which is really just a zip file using the password 'mypassword'). 
Apparently it's just a 1024x1024 array of floats, with a 00004000 metadata tag at the beginning.  There's a lot that can be done here.  Apparently game-guru does a lot of the actual interpolation/etc so it *SHOULD* smooth a significant amount of it between each floating point value. 

Then you have several AI related discussions:

https://forum.game-guru.com/thread/218792
https://forum.game-guru.com/thread/218816
https://forum.game-guru.com/thread/218810

Mostly centered around AI performance.  The big  issue is people are making 'hordes' of zombies and it's pooping out game-guru. Big surprise there.  Most AI is written as a singular entity and eats a lot of cycles.  Writing mob-based AI is completely different.  I might have to step in on this one though I'm really tremendously rusty on AI writing.  It'll be a lot of work.  But basically if I recall you kind of give each 'mob' zombie a sort of thin-client style AI where there's one main process and a bunch of minor processes.  The main process then controls the subprocesses.  You need functions for computing things such as the centroid (a fancy way of saying a central point they can all reach).  It's a big project, something that would eat a lot of cycles I don't have.

In other news, I got a request from a customer to add a timer or minute/time tracker.  It should effectively be easy enough to implement. I may actually go do that myself if given the time.

Some good stuff out there on the forums, which have generally died down due to a lack of interest from lack of obvious development - but definitely keep your eyes peeled.

Monday, October 16, 2017

Excited for new GG updates.

I realize I've been silent here for a while but I wanted to just say I've been off and on in communication with Lee Bamber with respect to the upcoming release of Game-Guru.  It's slated to be available by Christmas.

So a few important tidbits here and I'm going to list in no particular order, but they are all MASSIVE improvements over the existing system.

  • DirectX11 - Huge huge visual/processing overhaul. 
  • PBR (Physically based rendering).  This will drastically change the way lighting is done.
  • Unlimited dynamic lights.  Assuming this applies to PBR it's going to be a very cool addon.
  • Static lighting fix (removing sun baking into the final static lighting) which has been ruining indoor scenes since forever; maybe now I can actually finish my sci-fi game!
  • Drastically reduced load times, especially the outright evil AI pathing system.
Now let's go through some of these differences one at a time.
DirectX11 - The current version of DX is 9 as used by Game-Guru at this time.  11 provides a more up to date graphical experience as well as better hyperthreading and utilization of graphics hardware.  In laymen terms X9 is more CPU dependent, X11 is more GPU dependent.

PBR - See this link for more detailed information on what's going on here, but basically a PBR map is applied to the object and then the renderer applies lighting to that more realistically.  It's something I'm not super familiar with but the results are very good thus far.

Unlimited Dynamic Lights -  This is an important side effect of better lighting overall.  Currently Game-Guru works with  only two Dynamic Lights at a time.  Dynamic lights can light all objects including Dynamic objects such as AI driven creatures, collectable items, doors, etc.  It's very important if we want to get a functional system for lighting that we get more than two available at a time. Unlimited would be absolutely fantastic in terms of levelbuilding. 

Static Lighting Fix -  As reported on this thread I was able to find and duplicate the issue.  Once I analyzed the issue in detail I was able to report the actual problem being that the sun was baking in without any respect towards the level's sun settings and as such causing overlap and excessive shadows in baked mode.  This has been a major issue for a long time which has caused a lot of oddities and irregularities in Game-Guru's lighting system. 

Reduced Load Times - If you've ever made a level and exported it in Game-Guru you faced the biggest obstacle towards developing an actual commercial product - the incredibly long load times.  I'm not joking here but my old 'Silent Hill Game Guru' map that my son and I made for my wife's birthday had *15 MINUTE LONG LOAD TIMES OR HIGHER*.  Most of this was from the computation of AI paths.  There's literally no way you could sell a game in that environment.  It's simply not possible to explain to a user that they should go take a shower and come back and the level might be loaded by then.  Lee is claiming much improved load times, specifically in the realm of AI pathing (per an email I had with him).  So as a result we should see some really functional export capabilities.

In conclusion - I'm really looking forward to playing around with the newest iteration of GG though it might take a little while for it to show up given the massive amount of work being done.  I'll probably write some new lighting guides, tutorials, or a review on the engine itself.  I'm sure there will be some bugs to iron out, thing always slip past QA even in large scale corps these days.  So a one man show like Lee runs it's veritably guaranteed.  But still, these changes should really propel Game Guru to be a more mainstream capable engine.  Perhaps not AAA, but at least not bottom shelf.