This started from some technology demo's to learn openGL for the forthcoming LWJGL context. However I appear to have largely finished it so here it is. It's set in the American Civil War of 1861-65. You are a Confederate SharpShooter sent out to pick off the scouts of the approaching union army.

There is a glaring lack of Linux testing.The framerate is about 50fps on the 2.8GHz machine (except on the menu, where all that text slows it to a crawl for some reason). Is it playable at lower clockspeeds?

I'll see if there's room to squeeze in a mouselook invertion toggle. There's probably not room for WASD as well, because it's already very close to 16k, having been obfusticated & rezipped with 7zip. I'll take a look at the FoV.

Very nice! And how did you do the character animations? Keyframed meshes or skeletal animation? Did you use the utility library mesh animation classes?

The animation technique is a bit 1980's retro. The objects are all based on data in the wavefront .obj format. As such each face can belong in one or more groups. These are assumed to be hierarchical. My convertor program generates a model encapsulating a number of vertices, a number of triangles based on those vertices & a number of sub-models. Each sub-model is in itself a full model. Rotations and translations can be applied to the model as a whole (in which case any sub-models also are affected) or to any sub-model. This is closest to a skeleton form of animation, but this specific implementation does not allow vertices of a mesh to belong to different groups; a sad restriction, but it simplifies things quite a bit. The rendering code is ludicrously simple. Animation is limited to i) turning (by the shortest route) to a commanded angle, at a given angular rate; ii) Oscillating between two angles at a given rate.

I looked at the library classes, but felt that the advanced features they offered required too much setup for a 16k program. Hopefully someone will prove me wrong.

Still a few problems with the cheap and nasty integrated sound on one of my PCs. Seems the frame rate slowdown during the display of the initial menu is causing the audio buffer to run out before a refill occurs. I've kludged this on a non-posted version, by adding an extra yield() at the start of the menu code (which seems to help) but was waiting to see if anyone else had noticed any issues here.

After making the field of view wider, the subjective speed is faster. I slowed it a touch, but it is still fast because I find the gameplay better that way. Is that Ok with you?

The 'Raid Supplies' objective only appears at levels 5 & 8. I was wondering whether to make it valid for every level from 5 onwards. Any views either way?

I love it!I am unable to test on linux, coz I only have software drivers - and something weird happens when you enter fullscreen - I would need a non-fullscreen switch to test (I think)I played to level 6 or so, and its really great - however the games seems kinda easy?

I played more today, and played further. All I've got to say is: woooaahhh man. Gatling gun rocks The level I got that, not a tree was left standing before I had cleared the level.

I think once you go past having 6 of each kind of baddy on each level, start drawing a number then the icon so you can have large numbers of bad guys. So it'd be like, 7[icon] instead of [icon][icon][icon][icon][icon][icon][icon], because once you get that gatling gun there's just never enough enemies to be found Then you can uncap the level #'s and just make it keep going up and up each level. Perhaps it even could get harder faster, so after you have 6 of each type, have 8 of each type next level, and 12 of each type after that, then 20, etc.

Maybe you could even consider adding more enemies than you're required to kill. That way you wouldn't spend so much time searching for that last guy.

According to my webserver, in June there has been:106 windows dowloads (GET lwjgl-windows.jar)12 linux downloads (GET lwjgl-linux.jar)

Any of you linux guys got the code to work? I'm assuming Yes in the absence of complaints

I've spotted a lighting bug in the code. The sun rotates with the player, rather than staying oriented with the land. Since it's minor, I'll hold off fixing it on the published version, since it looks like the 16k contest might actually start soon, which will mean a recompile with a newer set of libraries.

Malohkan: I see you got the Gatling Gun. I was keeping quiet on that to see if anyone would play up to level 10. I agree with your comments about the difficulty not increasing above level 10 and the icon suggestions, but reckon that 10 levels is enough given the limited variety of gameplay. The Gatling Gun was intended as a fun reward for sticking it out. Besides the jar's packed right up to the 16k limit, so adding new features would mean taking something else out.

On that subject, at the moment the font is a hardcoded raster font, which consumes a huge 800 bytes compressed. An alternative would be to use awt to render text into ImageBuffers & then obtain the bytes & blit to the screen. The code would be more complex, so I wouldn't gain 800 bytes though. Maybe I'd gain 400, but the fonts would now be system dependent (which I don't really like, since I'm currently using a slightly customised courier based font - I know what it's going to look like on all platforms). So it might be possible to squeeze in more features that way, but I really don't want to use AWT fonts, particularly with 'working on all platforms' a prerequiste. So I think it'll stay 'as is' except for bug-fixes.

The 'original' SharpShooter16k, did get an update to add game controller support. I didn't add this to SharpShooterArena. The gamepad support is a touch flakey which might be the issue. Another possibility is that there is an old file in your webstart cache. Try clearing the cache & then try again.

If these don't work, I might back out the gamepad support & post a version without it.

Well I tried clearing the LWJGL cache (I actually didn't know you could do this before, but I'm glad I know now) but that didn't work, it still has the same problem.

So... going along that line of thought, I went into my Java/bin and Java/lib/ext folders... and sure enough there were a set of files with a "lwjgl" prefix. Now, I never added these there, and I don't really know how they got there. Unless I did it unconciously. More likely someone's program did it without me knowing.

Regardless, deleted the files and now it works

Btw to give some feedback, the game runs great even on my old 850 mhz computer with the TNT2. Very playable. Had some good fun playing through the first 7 levels or so I think.

Anywho, it was my fault, but thanks for fixing it anyway. Keep up the good work.

Hello!I've got to say this is a really nice game! I loved the different battles and enimies.I think it would be neat if you could expand on this. More weapons,more enimies,more levels,etc.I think a reloading bar would work nicely. I just have one question: How many levels are there?

It doesn't run, the java webstart downloads and seems to start something but then there's nothing. If i can get you any more informative output, I'll be glad to be of service. But you'll have to tell me what to do, because I'm quite unfamiliar with webstart.