What I did today

I’ve been admiring and tweaking my new SSAO effect. Doing SSAO at half resolution and having high quality grass straws covering half the screen lead to the SSAO becoming an aliased, shimmering mess, AKA eye cancer. After working over the weekend on it, I finally got all 3 passes of the shader fast enough to be possible to do at full resolution, and the difference is HUGE. My goal was to get it down to 1-2ms at full resolution 1920x1080, and I managed to get it down to around 1.3ms, while at 2560x1440 I ended up at 2.1 ms… The best part is that the new shader has a million times better texture cache coherency. The old one would choke once it started sampling random pixels in a 25+ pixel radius around each pixel due to texture cache thrashing, but the new algorithm does some clever precomputation to the depth buffer to improve performance. Along with ALU optimizations to the shader as well, the new shader is over 2x faster compared to the old shader’s absolute best case, and 20-30x faster than its worst case. The bilateral blur shader also got a ~2x speed up thanks to simplifications of the algorithm and that I packed the SSAO value and the depth value it needed into a single texture to halve the number of texture samples. All in all, it works, and it looks gorgeous now that I don’t have a radius limit. But now to the pictures!

This is with SSAO off. When in the shadow of the sun, it gets extremely hard to see where things are and what shape they have. We can’t really see if the building is floating in the air or if it actually touches the ground. The corner right behind MORS (the character) is almost invisible due to the flat colors, and the only reason you guys even know there’s a corner there is thanks to the blue stripe following the wall. MORS himself also looks flat and boring. His legs are essentially just two shades of gray, and his arms also look extremely flat. The detail simply isn’t there when there’s no direct lighting to bring it out.

With SSAO, the scene gets a whole new level of depth. Not only is the vertical corner behind MORS clearly visible, we suddenly see an additional little horizontal crease to the bottom left of the building that was completely invisible before. The grass where the building stands is slightly darker too, showing that the building is indeed standing on the ground. MORS also looks significantly better. The area under his arms and around his neck and feet are significantly darker due to being occluded, bringing out a lot more detail in the lighting.

Of course, this effect is completely dynamic and isn’t precomputed in any way. It does have some limitations as it works on screen space information, e.g. the depth buffer. For example, the background as seen between his legs is too bright. His legs are simply blocking the information for the background occlusion to be detected, so there is no way to know if the background should be occluded or not. Still, the overall quality of the sceen is massively improved.

What I did over the last couple weeks, finished up my animation classes and fbx importer, cel shading, skybox, and sadly projective aliasing on my shadow mapping…


https://www.youtube.com/watch?v=otCfHv3f8Ao&feature=youtu.beMmB9b5njVbA

It took me three days, but finally the game is becoming multiplayer
This map is just for testing purposes.
My partner did the art :point:

I’ve been working on some in-line string color formatting, so I can do things like this with a single drawString call:

“§GREI am green and §BLUI am blue!”
“I am green and I am blue!”

… still a bit buggy though;

Whatever you do, don’t get tempted into feature-creeping your way into something that resembles HTML or UBB code… it’s good as it is, I tell ya.

Java decided to create a pointer for some reason , I don’t know why but this statement.


last_position = handler.ship.correct_pos;

Last_position was constantly being updated even though it was only assigned once. Anyone able to explain?

Every non-primitive in Java is a pointer. What is the type of last_position?
And why this thread?
Those are rhetorical questions.

^ :wink:

in-line color is probably as far as it’ll go, it only happened because it seemed the best solution for my multicolored console output so I went ahead and just rewrote my font class to use the tags everywhere. The original system was basically [icode]drawString(x, y, “Green font!”, Color.GREEN, fontSize);[/icode], so each string could only be one solid color. Now I can go this; [icode]drawString(x, y,"§GREGreen font and §BLUBlue font!", fontSize)[/icode] and my font class just cuts it all up and formats it accordingly. I could of used my old system anyway, but the code to print out things on the console probably would of been a hacky mess.

Output example:
“Small Farm has been completed.”
“Bilbo Bagginz has leveled up!”
“Bob Bobby was killed by a Zombie”

I can now calculate the point spread function (Fraunhofer diffraction) for arbitrary telescope apertures using ray tracing.

My MiniLD #58 entry SurvivorPong is now complete. It is my attempt at remaking Pong by adding a bit of challenge. The idea is you have to stop a deer from running into leopards which are hiding under leaves, and the score is how much time you can survive.

The game needs a GPU which supports OpenGL 3.3 or higher, and Java 8 runtime. By the way, this is just my second real game, so please give me constructive criticism if I have done anything in a wrong way.

LudumDare Post
LudumDare MiniLD entry
Executable JAR download (4.67 MB, needs Java 8 to run)

Please play once and tell me your opinions on how should I improve. I want to learn from any mistakes that I would have made. Also I’ll be participating in the main LD event too this time.

Finally finished A* path finding. Here is a little test.

I worked a bunch of the mobile port of Fragile Soul, finished a few music requests on a livestream, and decided to relax and play with a vst to see what sorts of sounds I could make and ended up making a (chillwave) song out of them.
https://soundcloud.com/literature-corner/focus

Today was exciting for me.

Carried on playing with Fraunhofer diffraction patterns.

Continued working on the shooting mechanics of my spaceships and added burst fire, next up is making them move around each other constantly. Also, fixed up the Symbols that show up when you zoom out as they were glitching out and barely visible before. The squares are planets, and the triangles are capital ships. This game is going to revolve around capital ship battles, and once the commanding ship is destroyed all the units in its fleet can be easily destroyed as well. Which is why the player will soon be able to only add ships to a fleet, and not be able to control them directly. Instead, they can only control their commanding ships, and hope to god their fleets are successful. Hopefully one day I will become less newbie and actual be able to finish a game withought having to ask at all in the forums for help.

Yet Another Dungeon Crawler - Graphics -> loading…
Player sprites downloaded from internet.

love the way the wobbling background texture travels in stereo. very solid tune, nothing disturbing in it, despite it’s short length.

thanks for sharing! :slight_smile:

Finally finished my new in-line string colors… here’s a bunch of pages that now use it. :smiley:

In the first two screenshot here’s the only method calls I have to do to draw the messages on-screen.

		//DESCRIPTION BLOCK
	font.drawString(x, y+70, "§ORA1Are you sure?!", 2, true);

	if (confirmation){
		font.drawString(x, y+86, "§YEL1Seriously are"
				+ "\nyou §RED1ABSOLUTELY sure?"
				+ "\n§WHI0THE OLD GAME WILL BE DELETED", 2, true);
		buttonReally.render(g, mouse, x-43, y+165, debug, false);
		buttonYes.render(g, mouse, x+12, y+130, debug, true);
	}else{
		font.drawString(x, y+86, "You already have an active "+gameMode
				+ "\ngame. Are you sure you want to restart"
				+ "\n§GRE1"+mapName+"?", 1, true);
		buttonReally.hideButton();
		buttonYes.render(g, mouse, x+12, y+130, debug, false);
	}

After 3,5 years finished my first game ever.

Biodrone Battle
[url=http://www.biodronebattle.com]

http://www.biodronebattle.com/images/cover.jpg

[/url]

@65K Congrats :slight_smile:

Started a project called “CaveGear” (My first project ever) and drew some art for it :slight_smile:
I will post in WIP when there’s a playable version :slight_smile:
The Color of the shirt, the hair and the shoes are defined through the program itself and not in the textures so the character is customizable (there even are 4 different Hair styles for now)