What I did today

That is absolutely beautiful, however how does it perform?

Game is targeted for PC with 60fps gameplay. It does need beefy machine if you want high resolution. Everything is dynamic and procedurally so hardly anything can be baked or faked which do add pressure for performance.

Godray technique itself is really cheap as it only use 16 samples per pixel but temporally refine results which would converge to right solution(in static scene with static camera).

If you want follow the game progress. https://twitter.com/minigore

Today i ventured on the most wonderful journey,
The adventure started with some jolly birds singing outside my window, which had the unfortunate effect of waking me from a state of deep shut-eye.
Annoyed by this altered state, i walked north, into the lands of bathroom, where the tiles are white and the great rivers roam.

The shower was wild and furious, but i mastered the current and managed to get out alive.
I put on my pieces of cloth and ventured east, crossing the border between bedroom and kitchen.

The inhabitant of kitchen named fridge offered a bowl of milk and corn to ease my journey, i accepted the gift, and prepared a mixture of crushed java-beans and hot water.

I have now entered the battlestation and begun to unload the workload of the day, however i have a suspicion that my waterbottle is the source of a contagion. Needs more investigation!

(Semi-procedural generating tilemaps to simulate height has proven to be more of a challenge than i first imagined,
more comparable to playing hanoi-towers than it was to doing the same thing in 3D)

Todo:

  • Drink coffe (check)
  • Work on landscape generator (in progressā€¦)
  • Implement shadow tiles

Ps:

  • Stay away from the waterbottle!!

Also this is my first post, this seems like a awesome community, hi! :smiley:

I had to spend some time on refactoring hex map code before it expands too much and explodes in my face.

Saw my baby for the first time :slight_smile: http://i.imgur.com/ZfLTkRF.jpg

Hi there, Welcome to JGO. :slight_smile:

Those god rays arenā€™t even close to accurate. Radial blur god rays, made popular by Crysis, only rely on the limited screen space information available. Look closely and you can see that the light that goes just next to the large tower structure to the left of the sun magically take a detour around the head of the guy in the foreground. Also, the shadow from his ear is WAY too strong as thereā€™s not enough dust in the air in the small volume surrounding his ear to make that shadow visible (although the exaggerated effect does look decent).

I molested your picture a bit to illustrate what I meant: https://drive.google.com/file/d/0B0dJlB1tP0QZRll4SmxVeGFVN1U/edit?usp=sharing

If youā€™re already doing 16 RGB samples (stored as RGBA), you could just as well be doing proper raytracing through the shadow map to achieve a much more accurate version of this. Assuming youā€™re doing this in HDR, you could be doing twice as many depth samples while still keeping the amount of bandwidth the same. The depth test is all done in hardware with hardware 2x2 PCF filtering, so itā€™s simply a stepping loop in GLSL:


vec3 sampleCoords = startShadowCoords;
vec3 deltaCoords = (endShadowCoords - startShadowCoords) / SAMPLES;

float light = 0;
for(int i = 0; i < SAMPLES; i++){
    light += texture(shadowMap, sampleCoords);
    sampleCoords += deltaCoords;
}
light /= SAMPLES;

Add a random offset to the start position and possibly run a blur at the end of it all to cover up any noise and you have something extremely accurate and good looking for barely any performance hit at all. If youā€™re really concerned about performance, you could even run this at half resolution, and upscale it with a bilateral filter if you get edge artifacts.

Hereā€™s something I made a very long time ago. Banding is due to the lack of a random offset per pixel.

http://img706.imageshack.us/img706/7858/godrays.png

EDIT:
Also, IRL god rays just before landing in Stockholm:

EDIT2:
Dark Souls god rays use the same radial blur technique. This is why you donā€™t use radial blur god rays.

http://imagizer.imageshack.us/a/img841/2849/hfg35.jpg

Proper raytraced god rays from Stalker: Clear Sky (although these had horrible performance):

The original Halo did radial blur god rays way before Crysis. :slight_smile:

Moar hex porn: FOV implemented!

Did some prototyping on how I want my loading screen to look because I was bored.

Components:

http://i.imgur.com/bAMMbvT.png


http://i.imgur.com/KIrGM2r.png


http://i.imgur.com/ddI8juR.png

Result:

http://i.imgur.com/0iJIUO3l.png

There are some inconsistencies between the images, but as a prototype, I think itā€™s pretty good :smiley:
Itā€™s also a very small resolution, gonna double it up.

Strange Attractors!

Source: https://gist.github.com/BurntPizza/a9a204e17705356d977f
Click to generate a new, random attractor that most likely nobody has ever seen before!
(May take a few clicks as not all initial conditions produce an interesting attractor)
Now checks the Lyapunov Exponent to (almost) guarantee visually interesting results!

These are specifically Peter de Jong attractors.
I might put more effort into rendering them, as they can look quite good with a bit of work: http://imgur.com/a/HdonA (not mine)

I made a JavaFX UI for selecting a workspace for my ā€˜game design environmentā€™

Implemented compute shader tile based deferred shading. Gonna improve the tile frustum calculation for better performance and also improve the light culling accuracy using AABBs.

Goddamn I wish I had that much free time and motivation to do cool stuff like that :emo:

Made a screensaver-ish thing: http://www.java-gaming.org/user-generated-content/members/120868/strangesaver.jar

Progressively renders the de Jong attractors one at a time, pausing 5 seconds before starting a new one.
You can also click to start a new one, and press F1 to save a screenshot. ESC to exit.

Small Imgur album: http://imgur.com/a/ndVqN

EDIT: Now with color! http://imgur.com/a/WoEYB
(Jar should be updated)

Cool! But where do you get these ideas from? :slight_smile:

Also some on topic: Today I learnt not to trust X.org and the Linux graphics drivers.
I was trying to debug my code after a few hours of optimizing my engine and no matter what I did, my application launched and freezed out the ENTIRE X.org server after 2-3 seconds. That left me with the option to either restart my entire PC or my X.org server every time I wanted to debug the application.

Because I was certain that the error was in my game (never really had serious issues with Ubuntu before), I spent 2 hours trying to fix this issue, than I said f*ck it, Iā€™m done with this. Booted up windows (because I run dual-boot), launched my application and voilĆ”, it was running completely fine on a smooth 6000FPS+. Smashes head in the wall
Seeing that the error is not in my application I tried to install an earlier, but stable version of Nvidia driver on my linux OS but I got the same crash issue all the time.

I ran out of ideas, so I enabled V-Sync in my application and it now works perfectly on linux now too. However, that means that every time I want to test the performance of my game I will have to boot into Windows and test there because X.org crashes on high FPS? Seems like I will have to reconsider whether or not I will want to continue my game development on linuxā€¦ :emo: ::slight_smile:

I find some article detailing some random phenomenon that I was vaguely aware of but suddenly now handed the key of understanding to, and before you know it feature creep has me writing screen saversā€¦

Actually this specifically was inspired by this: http://reddit.com/r/proceduralgeneration/comments/290rfy/video_of_my_game_that_utilizes_multiple/
The guy threw around some screenshots of the attractors, not even related to what he was talking about (some other cool stuff for sure), and the reward/effort ratio was predicted to be high enough, so I went at it. Before long I realized it would make a great screen saver, which was another thing I was in need of.

Or just use V-sync? Although that might be broken of half of peopleā€™s drivers as wellā€¦

If I just use V-sync I canā€™t be sure that the performance is okay for everyone because I have a pretty powerful PC so itā€™s very likely that it will hit 60fps all the time. I want to make my games perform okay on low-end machines as well. My latest optimization brought up my FPS from 300 to 6000, and if I would have run the game with V-Sync on I might have not even spotted how inefficient some of my methods was.

Also, it is indeed very likely that itā€™s broken for others too. Itā€™s weird because I ran my games before on linux with 5000fps+ on simple scenes and there was no issues.
Iā€™ve scanned through my code looking for errors multiple times but I canā€™t find any. Itā€™s broken with the 2 latest ā€œstableā€ Nvidia drivers, and I also have every other component of the OS updated. Iā€™m a big fan of all the command line tools that Linux gives me, but if I canā€™t test my games out (if such a simple thing is broken imagine what else could be also broken) I will switch back to Windows.

Make your game, and at the end (or periodically) test it with V-sync off and/or on a crappy machine.
I have a craptop running Mint if you ever need a lower-bound perf test.

Implemented silhouette shader.