Guardian [FINISHED]

Yes. I know… And I even know some editors which give you the ability to generate normal maps from heightmaps…

I only wanted to say, that I find this solutions more… like a work around… it would look much, much better if an artist (or even a programmer could do this) would have worked on such a normal map…

Then the editor would be able to change the normal’s direction by just swiping around with the mouse and then changing the direction the normal vectors are pointing…
So editing normals works like combing your hair ;D

And for smaller scale you could simply edit every pixel’s normal independently… I mean… you don’t have so much pixels in pixel graphics, do you? :smiley:

Some screenshots…

http://dl.dropbox.com/u/99583484/Project%2016x/Screenshots/Screenshot%202.png

http://dl.dropbox.com/u/99583484/Project%2016x/Screenshots/Screenshot%201.png

No tile textures yet. I just wanted to show off the projectiles 8).

EDIT: LOL, the projectiles travelled exactly the same distance in both screenshots. ;D

Legend of Dungeon’s article isn’t really that useful to us since he uses Unity to generate normals and calculate lighting. :wink:

For such low resolution characters you can get away with very basic normal maps, and it should be easy enough to generate them on the fly:

//for each pixel in character sprite
//convert xy to range [-1.0 to 1.0], then half the result to reduce the effect a bit
normals.xy = ( (gl_FragCoord.xy / spriteSize.xy) * 2.0 - 1.0 ) * 0.5;
normals.z = 1.0;

For things like brick walls, a more accurate normal map would be necessary.

In my 4K game the normals are hard-coded. The brick normals are easy enough since the entire background is procedural, and the character normals use the code above.

I agree that an editor would be awesome. I have been thinking of that for a bit now… :slight_smile:

EDIT: You can get an idea of how normals are generated here: (not necessarily the most efficient GLSL code…)
http://glsl.heroku.com/e#5215.13

Why not do that? :slight_smile: But I guess ideas would collide… :X But if you never try?

I have no idea how to use shaders…

[quote]I have no idea how to use shaders…
[/quote]
Why not learn? :slight_smile:

BTW: The GIF I showed earlier doesn’t use shaders, i.e. the normal lighting is all done in software (Java2D).

Why not learn? :slight_smile:

BTW: The GIF I showed earlier doesn’t use shaders, i.e. the normal lighting is all done in software (Java2D).
[/quote]
Thanks for the link, but I try to write my own code when possible, so I went to the LWJGL wiki and read through that instead. (It hurts my brain trying to turn code from a library into a function that I can use withuot all the annoying configuration. It’s much easier just to skim through source taking little bits here and there and then work out the rest)

Why not learn? :slight_smile:

BTW: The GIF I showed earlier doesn’t use shaders, i.e. the normal lighting is all done in software (Java2D).
[/quote]
Wow… great tutorials… I need to follow :slight_smile:
I’m intrested in lesson 3… I feel it :wink:

Wow… great tutorials… I need to follow :slight_smile:
I’m intrested in lesson 3… I feel it :wink:
[/quote]
Yeah, once I get my own shader code working these tutorials will be Awesome!

Thanks for the link, but I try to write my own code when possible, so I went to the LWJGL wiki and read through that instead. (It hurts my brain trying to turn code from a library into a function that I can use withuot all the annoying configuration. It’s much easier just to skim through source taking little bits here and there and then work out the rest)
[/quote]
Also be sure to check out the rest of the series; it targets LWJGL devs who would rather “reinvent the wheel” and make their own sprite renderers.

(Note: the series is still an early work in progress!)

THANK YOU SO MUCH!

(I can’t hit the appreciate button for another hour or so)

EDIT:

I was looking at the spritebatcher and I found this:

protected void checkFlush(Texture texture) {
		if (texture==null || texture==null)
			throw new NullPointerException("null texture");

		//we need to bind a different texture/type. this is
		//for convenience; ideally the user should order
		//their rendering wisely to minimize texture binds
		if (texture!=this.texture || idx >= maxIndex) {
			//apply the last texture
			flush();
			this.texture = texture;
		}
	}

This caught my attention:


if (texture==null || texture==null)
			throw new NullPointerException("null texture");

Is there a reason for that? (or is it a bug)

Sometimes I null check two or three times just to be sure. 8)

nah… typo which should be fixed now

New Monsters:

Troll Rock Smasher & Troll Rock Thrower:

http://dl.dropbox.com/u/99583484/Project%2016x/Animations/Troll%20(Basher).gif

http://dl.dropbox.com/u/99583484/Project%2016x/Animations/Troll%20(Thrower).gif

Hehehehe…

Troll Rock Thrower in action.

http://dl.dropbox.com/u/99583484/Project%2016x/Screenshots/Screenshot%203.png

I fixed my projectile system, so now I can have projectiles go at different speeds, angles, weights etc.

Okay, time to unveil the name for the project.
Unfortunately I made a hash of typing it in. :persecutioncomplex:

-1465377359

There you go!
Happy deciphering!

WOW! This looks so good! Keep up the good work, I can’t wait for the next update…

And we have particles!

Yay!

(No screenshots. Just wait for a Prototype Release)

Okay!

I have a prototype build out!
This requires Java 7.
You need to unzip the file, then it should run fine.

Arrow keys to move. Space to attack. 0-9 keys to change character. + and - to zoom in/out.
1-4 are guardians. 5-9 & 0 are monsters. Monsters don’t attack monsters ;).

Monsters are to the right, but they will find you if you can’t find them. :frowning:
Yes, you will be overwhelmed eventually. :’(

Please give me some feedback if you think a particular character is overpowered/underpowered. I don’t have the time to test everything.

Enjoy! ;D

I think you should allow your monsters to attack other monsters ;D
(P.S. how did you make the hash?)

thenameofthegame.hashCode();

An if monsters attacked monsters it would be too easy.