What I did today

@J0:
it was pretty daunting figuring it out but I think it’ll integrate nicely with box2d, i’m using it for all bodies including tiles. there’s never too many at one time and it still runs very well for me.

Released first alpha version of Pico, see https://github.com/snordgren/pico/, for anyone who might be interested. Here are some icons I made for my game with it yesterday:

Start implementing resizable components, first one is the scroll area. It works but the elements lag behind.

https://puu.sh/wgDmS/595dc729d4.gif

Today I reworked a large part of RF’s rendering pipeline. I finally added proper sRGB support throughout the pipeline, and the fake bloom just looks so much better with it. We’ll need to re-tweak a lot of colors as all non-texture colors (e.g. hardcoded float color values for as vertex colors or uniform color values) will look significantly brighter now, but it’ll just be a tiny amount of work to fix.

A very common problem I’ve encountered is essentially wanting to scale something nicely without aliasing, but still retaining the pixely look of GL_NEAREST filtering. Essentially, I want antialiased edges between the different texels, but the actual interior of each texel to be just a single color from the texture. I found the solution to this: I enable linear filtering and then use a shader to “sharpen” the texture coordinates before sampling. This lead to very good results.

What I actually wanted to use this for was to upscale the entire rendered scene in Robot Farm to screen resolution. Our tiles are 16x16 pixels big, which meant that we needed to render those tiles (and everything else) at a scale that was a multiple of 16. We then realized that having a higher screen resolution or simply lowering the tile scale meant that the player would be able to see much further than intended, which gave the player a big advantage when exploring. To keep the view distance fixed, we needed to support arbitrary scaling with of tiles without them looking like absolute crap. For example, here are our 16x16 tiles drawn as 17x17 quads.

The issue here is that with nearest neighbor filtering, the pixels from the original tiles end up covering either 1 or 2 pixels, which causes heavy distortion of objects depending on where they are on the screen. This is especially visible during motion, but the anti-aliased text drawn at tile resolution shows the issue very well in a still image. The numbers look choppy and have weird thickness here and there. When using the new shader to upscale, here’s what I get:

In this case, the new shader essentially works as bilinear filtering of the screen as the upscaled resolution is so similar to the original resolution, but it is a tiny bit sharper than bilinear filtering at least. Not too impressive actually…

Looking at a more zoomed-in result where we upscale from 16x16 to 34x34, we get the following result with nearest neighbor filtering:

Ugly again, the fact that each pixel is upscaled to either 2 or 3 pixels causes visible differences and artifacts in the text again. Let’s try bilinear filtering:

Well, it’s soft and all, but it’s also very blurry. How about the new shader?

Perfect! The image is as sharp as it can be without introducing aliasing, but still filtered to the point where the pixels in the text look perfectly even. Try switching between this and the unfiltered image and see the massive difference without a significant loss of sharpness.

Essentially, what the new shader does is give you the output of extremely super-sampled nearest neihgbor filtering, without requiring rendering at a higher resolution. It looks great and costs pretty much nothing! =D

Programmed in grenades today:

Today I forked LibGDX to add an alternative to the setup app for generating a Kotlin project instead of Java. No more manually configuring a project to use Kotlin for me! That felt good - to have enough programming chops to be able to go into someone elses codebase to add a feature I wanted.

I finally figured out a way to achieve these arcs in maps with blender, I don’t know why metaballs exist but it was exactly what I was looking for!!

Now to make it look like an actual game map (which I’m not very good at…)

Window animations, created by moving (and scaling) the window itself instead of doing it in the compositor because a technical limitation in my implementation.

https://puu.sh/wnhag/f96eb0f650.gif

I started to make a new advent calendar with 23 new little games and a nice gift for one person at the end. (like I made in 2015)

First game finished:

Next week = next game =)

Is that Midas or does it just look very much like it? I’ve played and it’s a great story and good controls too.

You are right. Its Midas with some new features (golden statue to get golden, other harder level etc)

Cool, looking forward to trying it out!

Made one of those soft particle things… Not sure if it’s “technically” correct or not, but it looks pretty :slight_smile:

Decided to jump into 3D game programming (did a wee bit of VR dev in Unity before but almost no code). Is jME a good place to start? Perhaps. I don’t know. But I’m not gonna change my mind now; the jME SDK already took an hour to install. :slight_smile:

EDIT: Thanks for nothing @Damocles. jMonkey. :persecutioncomplex:
Also please lads if you’re not already gonna slap a medal on the post right below can you add one for me? Cheers.

JavaME (for the old brick phones) is certainly an interesting environment to train programming for small application and have an eye on performance.

That was OpenGL ES 1.1 if I remember? Certainly interesting to get stuff running on it.

From a practical view: its more reasonable to learn Android development right away.

Next game is ready for my christimas/advent game calendar
It is like the good old 4k competition for me. :wink:

So a few of us from the IRC decided to enter [thecurrentyear] by making a Discord channel. We’ll continue to use the IRC alongside it for the time being because programmers are stubborn some people like it, and if Discord goes tits-up we can just move back :slight_smile:

I pretty much finished my arcade cabinet! Thanks for everyone who helped me a long the way. Here’s a video of me playing my game, with working sound and working controls and working everything ;D

iktskeXOLnI

I find the way abuse interfaces to add in java Namespaces ))
From cons you need refactor all project to it (except use it local)
and this is obvious if you want add Namespace in code without it)


	/*
	__NS pref is global Modules Namespace
	*/
	//Its local namespace - for gather all usage add use them in module by one line
	public interface __NS_Parse_Data__Self extends
		_P_Parse_Data_A,
		_P_Parse_Data_B,
		_P_Parse_Data_C{
	}
/****************************/
	/*
	_P pref is Namespace for local module Use
	*/
	//Our Namespace  _P_Parse_Data_A
	public interface _P_Parse_Data_A{
		//no public mod to hold it in Namespace and prevent Autoimport to take it)
		static class Data_Object_A implements __NS_Parse_Data__Self{
			static int IN_A = 0;
		}
	}

	public interface _P_Parse_Data_B{
		static class Data_Object_B implements __NS_Parse_Data__Self{
		}
	}
	
	public interface _P_Parse_Data_C{
		static class Data_Object_C implements __NS_Parse_Data__Self{
		}
	}
/****************************/
	public interface __NS_Parse_Data__External_Use extends
		_P_Parse_Data_A{
		//Data_B is locked local fot self namespace
	}

	//we even can create 2 different name spaces for external use
	public interface __NS_Parse_Data__External_Use_2 extends
		_P_Parse_Data_A,
		_P_Parse_Data_C{
	}
/**************************************************************/
	public interface __NS_Render_Data__Self extends
		_P_Render_Parse_Data{
	}

	public interface _P_Render_Parse_Data{
		static class Render_Parse_Data implements
			__NS_Render_Data__Self,
			
			//Parse namespace Adds for use
			__NS_Parse_Data__External_Use
		{
			static int IN_AA = Data_Object_A.IN_A + 1;
		}
	}

most funny its – I think that if I have Namespaces I may trim Classes Names
but irony - you can’t :wink:
because if you have name “Parse_Seq”
trim it to “Seq” because its in Namespace Parse – is wrong and weird =)

but namespaces can help organize Code – but need refractor full project

p.s I also dreamed to have ability to add tags to functions – to organize it
let say you have set_Var for use with some checks
and same set_Var without checks – for Init class
add we already have such Tags XD
U_set_Var – for Use and
I_set_Var – for Init ^^

Up: Sometimes Eclipse can’t find reference in big extend iteration top class _NS_Self
(its long explain - when you see it self, you understand :))
its easy fixed by adding direct _P Ns (its generate text import _P.*) and works fine
*Its not compile Java error – its Eclipse Class Visitor plugin Bug (or maybe some limit of iteration search)
Its compile fine without extra code - no any errors or warnings - simple: search Referents may show “potential match” on 1-2 Var objects so move to class declaration not working.

I think Idea Compile and search Refs work fine – but Idea can’t run project with 2k compile errors ^^

It will either be us or them.

http://lethalrunning.com/images/characterDesignColor_Illustration-small.png

www.lethalrunning.com