What I did today

Good to know you switched to caching (at 2 different abstraction levels) as a way to increase performance. Back in the day that wasn’t quite an option, as the sprite engine had to manage anything that was thrown in its general direction.

Merge-sort indeed scales pretty badly, as when merging multiple sorted datasets, you completely trash the cache, repeatedly, until you merged the last two sets. This overhead quickly outweighs the benefit of having your initial dataset split up and sorted by multiple threads.

I gather that the persistent sprite engine, featuring ‘unlimited’ decals, currently also resides in the eternal bit fields?

It remains in limbo - I like what it was doing but I wanted it to do a whole load of new stuff to look really good and I don’t quite have the ken to work it out just yet (well there are more important things to get on with). Essentially I was going to want permanent bump-map decals and such as well as just diffuse texturing so along with scorches we actually had lumps carved into the ground and footprints / trackmarks etc. Maybe when I’ve got more time and some money coming in I can revisit it.

Cas :slight_smile:

I wrote a custom screenshot saver which uses asynchronous transfers to read back and then write a screenshot to file in a separate thread without significant amount of stuttering. I did this because Print Screen produced a blurry screenshot (what) and Fraps’ screenshot function crashed the Java VM when I was running Nvidia Surround at 7680x1440.


Warning: Full res screenshot is around 15 MBs.

Dedicated this and the last day to learning for a (relative to my level and age) hard maths exam tomorrow.

A week and a half and I’m finally free from any school-related work until in about 3 months.

Wow, that looks really cool. Is there any chance I could get the source for that screen shot saver? Great job also!

Finally remembered to weight my SSAO samples. Just simple aproximation that most of the ambient light in outdoors come from sky so samples that point upwards get bigger weight. This look much better than it sounds. I only weight ambient occlusion with this but I leave indirect bounce light untouched.

This is done per sample.

float aoWeight = saturate(dot(sampleDir, u_viewUp)) * UP_WEIGHT + 1.0;

Comparision:

Started working on this.

Ignore the crappy character sprite, but the world is an infinite, procedurally generated world, with chunk loading so FPS doesn’t drop no matter how big your world is. Also maxing out at 1 millisecond per generating a new chunk (4098x4098). Grass is randomly generated, going to make it so you can enter the buildings too :). Grass has a cool wavy animation too.

ScreenshotCapturer: http://www.java-gaming.org/?action=pastebin&id=1004
GLThread: http://www.java-gaming.org/?action=pastebin&id=1005

To use it, call [icode]ScreenshotCapturer.capture(new File(“screenshot.png”));[/icode] right before calling Display.update().

You use a new thread to capture the data through a SharedDrawable, what if the original thread calls GL code while the context is still in that other thread?

That doesn’t matter. Both threads have their own context, but they share certain object; buffers and textures for example. I do not want to call glMapBuffer() in the main thread since that would essentially stall the thread until the asynchronous copy has completed and the data is available, so I call that function on the other thread. Since the asynchronous transfer has already been fired off in the main thread, we’re guaranteed to receive the correct data in the PBO, and since the PBO is not modified from multiple threads there’s no risk of any problems there either.

Ah so through the use of a SharedDrawable, two threads can call GL codes at the same time, of course making sure no problems arise from usage of the same resources?

Implemented initial and hacky texture streaming. At start first 4 mip levels are skipped and texture loading is almost instant(instead of seconds). When game is started I just load one texture per frame and this use about 10ms extra and all textures are loaded after ~300 frames. Next task would move this to worker thread. I also need to implement some kind of importance ranking and texture memory budget limiter so it will scale to thousands high res textures.

Relevant to both of you: http://www.java-gaming.org/topics/tutorial-stutter-free-texture-streaming-with-lwjgl/32571/view.html

Have you tested any loading heuristic based on usage, distance or texture importance? How about when you want to hard limit amount of texture memory usage.

Learned how to render Images in libGDX.

Started complete rewrite of awful SPGL UI library. Just got sick of hacks and difficult XML. Time for a more modern system.

Cas :slight_smile:

Not really. I only base it on the time until it was last used. I leave the VRAM usage constraint to the user in the form of a texture quality setting. It’s not all over if you run out of VRAM, usually the driver just swaps out resources that haven’t been used for a while to RAM.

Today I have set an appointment to see a dentist in order to take out an irritating wisdom tooth affecting my right jaw hinge area.

Currently, the swelling around the jaw hinge is causing mucus buildup near my esophagus, my nasal passage, and the right ear canal (creating earwax buildup and slight deafness).

If for some reason, I’m no longer updating my Pokémon Walking project in 1 month (as in, no activities in 1 month in the “testing” branch on Github), it means I may be dead. I probably need a volunteer in the future to notify Github that I’m dead and the project should be marked as “no longer active” or something.

This news article is what’s scaring me, Man dies of toothache.

Most of me being scared of this, Complications after extraction of tooth, such as Bleeding to death.
http://doctorspiller.com/Extractions/Extractions_4.htm

I don’t have a death wish list, but I just wanted to see my Pokémon Walking be completed when I die.

Made Lilith and her axe from Legos ;D

Finally made a screenshot function, so I could make a gif of this decapitation on my very slow computer ::slight_smile:

http://fat.gfycat.com/FixedMiserlyCommabutterfly.gif