Survivor - first alpha!

0 working days (one weekend) until the competition deadline and we manage our first public alpha! Will we make the compo in time? C’mon! ;D

(the original download is temporarily DOWN, so use the main site instead, which has a mirror of the download: http://grexengine.com/sections/games/survivor/ )

http://www.cokeandcode.com/survivor/webstart/survivor.jnlp

In this demo, you can:

  • run around.
  • try not to get killed by the red things
  • try and shoot them
  • if you kill all of them (approx 20) then the doors will open and you can move to other rooms (also filled with monsters)
  • visit the other rooms in the level by finding doors and walking under them when they’re open.
  • NOTE: in the bottom right of the screen is info on all the mobs in the current room. Including a counter telling you how many you have left to kill.

Controls (IMPORTANT!)

  • up, down, left right
  • A, W, D, and X fire in the four compass directions (E/N/W/S)
  • -/=/,/. zoom in and out, change FOV, etc

Known bugs:

  • the doors in the 4 satellite rooms are too small (my fault) and you have to be pixel perfect when walking under them in order to leave the room. Once you complete the room, wait for the door to FULLY open, then walk under it and fiddle with the keys until you hit the sweet spot and you will be teleported out.
  • monster AI is crap. It’s my quick hack whilst we try to get the flocking AI working fast enough (note: we’ve got a demo of the flocking code outside of the game using 100+ monsters and it looks very cool…I’m really hoping we fix the problems and get it into the game in time!)
  • you don’t get any points for killing things!

Levels:

  • “temple” is the level I suggest you play first. It’s quite small and playable.
  • the other level (pyramid) is only half-complete and some rooms are impossible (e.g. because I hadn’t got around to adding mobs to them yet, or the mobs spawn in inaccessible locations)

I’m afraid this comes with oodles of disclaimers too…

[] We’ve spent a lot less time on the game than we wanted to; we could really have done with another four weeks. So it’s missing a lot of polish. I’ll soon be updating my dev-diary on JGF (see my sig below) with the history, the highs and the lows, right up to the last week, and you’ll hopefully agree we’ve actually done pretty well considering! PS: “soon” probably means in 1-2 weeks time
[
] There’s a lot of things missing from the current webstart build. We’re desperately trying to add these over the next 48 hours, so lookout here for update posts. In particular:
[list]
[] the flocking AI isn’t in yet - it’s super-fast when compiled, but there’s a performance problem when running it from beanshell that makes in unplayable right now
[
] no sounds
[] only one MD2 model for monsters :frowning:
[
] no user-configurable controls
[] at least one big level in the works
[
] most rooms should have more than one monster respawn point - so that they are a lot more challenging - but at the moment there’s only one each. The rooms were designed for multiple spawn points, so some are really boring right now.

[/list]

Authors (in alphabetical order):
Dave Blake:

[*] Misc AI (in particular the flocking)

Kevin Glass:

[] 3D renderer
[
] most game logic (plus controls etc)
[] webstart packaging (harder than you’d think! :wink:
[
] lots of internal tools and libs etc

Adam Martin:

[] original design
[
] production / project management
[] core logic, internal data structures and management
[
] menu + loading screens
[] level design
[
] level editor
[*] beanshell scripting system

The display shows 80-120 fps, but the game jerks once about every second (steady rhythm to the jerking effect). I think the FPS is wrong because when it jerked it took close to 100 ms each time.

Windows 98 se
pIII 750
384mb ram
Radeon 7500

A side note I got the same behavior with starting this app for the first time I did with another webstart game I played here, where webstart choked the first time the classes were loaded and then after killing it and started it again it was fine, guess that’s why they call it beta :p.

Yes, I get that same steady one second jerking. Otherwise the game looks nice. A bit irritating to step in the game menus by releasing the keys though.

WinXp, JRE1.4.2_04, gf4, 2ghz athlon

A quick crack of the whip, and… Kev’s been locked back in the dungeon, never to return until he’s slayed the jerky problem.

Meanwhile I’m trying to tart up the levels, a lot.

XP/GeForce4ToGo/3GhzHT
Works ok, framerate none too consistent, and that 1 second jerk happens for me too.
Couldn’t figure out how to get out of a room once I’d gone in…?

Cas :slight_smile:

Aren’t you just delighted that we don’t have an instructiorns screen yet, nor a webpage ? :).

Rules for rooms are:

  • when you enter, the doors slowly close (get yourself into position!)
  • once they’re closed, bmonsters spawn
  • when the last monster dies, doors slowly open
  • when doors are fully open, you can walk through them (well, technically, “underneath” them at the moment ;)).

Below are the HTML isntructions I’d written but we haven’t put up anywhere yet…

Overview

You're stuck in a maze. Or a prison. Or maybe you were too drunk to look where you were going and fell down a hole. Whatever...what matters is that you're in some underground complex full of rooms filled with lots and lots and LOTS of nasty things, all itching to get a piece of you.

Fortunately for you, you have a gun. Unfortunately for the weird critters trying to kill you (who knows why? Who cares!), they don't. In fact, they don't even know what a gun is - so there are lots of exciting, shiny, and above all dangerous weapons just lying around this place, pretty much ignored by the denizens. It brings a gleam to your eye just thinking about it. A mean, nasty, "Come get some!" kind of gleam.

Inspiration

If you've played Smash TV, you'll know what you're in for: literally thousands of mindless deadly critters who know only two things: they outnumber you 10,000 to 1, and even with the biggest guns in the known universe, against those numbers you ain't gonna last long...

Controls

A bit unusual, but "classic" in their own way. Trust us - you will NOT have a chance without these controls; it's the only way you'll be able to simultaneously dodge the hordes and deal death in all directions.

One set of keys controls your character, running around the screen. You can go up, down, left, and right.

The other set of keys controls the direction you're firing in. You can shoot up, down, left, or right.

Yes, you can run in one direction and shoot in another. In fact, you'll have to.

Levels

Each level is composed of multiple rooms. When you enter a room, the doors close and the monsters emerge.

When you kill the last monster from this room, the doors will open again and you can move to another room.

Each level has a "final room" which it's up to you to find. When you defeat the enemies in that room, you've completed the level.

Tactics

Time to seriously exercise those brain cells. You know, the female ones for multi-tasking, and the male ones for predictive tracking of dozens of moving objects. Only... you'll be using all of them at once.

Most of the time, you'll either be in the middle of a rapidly shrinking circle of enemies, or else dieing. Since you can only fire in one direction at once, you aren't going to be able to kill the front line fast enough to keep that circle comfortably spacious, so you should always be on the look out for where it's thinnest, and concentrate your fire power.

This is the best way of staying alive: keep making a break in the circle, and rushing through into the space beyond (which will normally be relatively empty). Since you're so popular with these critters (they only want to play...), they'll be concentrating on crowding around you, so once you burst out you'll have a few seconds of respite - before they all change direction and come rushing back again.

Completing the level

Completing levels earns you credits, which you can use to unlock other levels. There's no specific order in which you have to complete levels, but particularly hard levels will tend to earn you more credits. It's up to you what order you want to attempt the levels in.

If you spend all your credits on a level you simply don't have a chance of completing, there is an option to "reset the game" which will take you back to the start - you'll have to complete all the levels again, but this time you can make better decisions about which ones to unlock and which to avoid.

Nice start :slight_smile: I can see this evolving into a gauntlet like game. Got the jerks too though.
Another interesting issue is that when I press enter to select a menu option, another game window opens, probably because jws still got focus.

The S key instead of the X would be a bit more convenient I think, and maybe an option to switch the shoot and move keys for left/right handed people.

[quote]Nice start :slight_smile: I can see this evolving into a gauntlet like game.
[/quote]
Thanks. Kind of by accident it seems to be ending up more gauntlet than smash-tv, partly because we’re having problems getting quite the number of enemies I wanted, partly because we haven’t got the “real” AI in there yet, and partly because we can have arbitrary shaped scrolling levels, with obstacles and all sorts.

Yup, there are quite a few things we wanted to do with controls but have simply run out of time.

The best thing is to view this game more like a 72hr game-programming compo entry at the moment! So we won’t get any prizes in Sun’s compo (competitors are too good), but hopefully will entertain the judges etc :).

I really want to carry on with it though and add in the polish etc we haven’t had time for up until now - any volunteers to join us? 90% of the work was done by myself and Kev and it’s been a heavy workload even heavily re-using libs like Xith and other libs and code each of us had already developed. Anyone else who joined would have to be prepared to put in consistent significant effort (half the team already got bored / tired and just gave up and walked away once - don’t want that to happen again). We haven’t yet even talked about who will carry on working on it after next week, or in what capacities.

Nice one, congrats to you all! I love Gauntlet(s).

The jerk every 1-2 seconds is visible here, too (Win2K, Ati 9600, Java 1.4.2). However, I see the same jerks with my own mini project (Jogl) and don’t know yet how to remove it.
So, in case you find the issue why you got jerks every few seconds, please tell us. :slight_smile:

Runs unplayable slow on my machine.

k7 500/gf2mx 32mb/128mb/1.4.2

Framerates are about 30 down to 4. Needless to say that collisions won’t happen relyable anymore with a framerate that low. But I guess it’s just unoptimized right now.

WASD would be better imo. Well, just wire the ‘S’ key to the same action as ‘X’ and the problem is solved. I also think it’s pretty weird to have direction controls on the right side (because it’s usually the other way round - just look at a joypad or a gameboy).

But I think it’s a good start :slight_smile:

An error occurred while launching/running the application.

Title: Survivor
Vendor: Java Games Competition Entry
Category: Download Error

Unable to load resource: http://www.cokeandcode.com/survivor/webstart/survivor.jnlp

Wrapped exception:
java.io.IOException: Stream closed.
at java.net.PlainSocketImpl.available(Unknown Source)
at java.net.SocketInputStream.available(Unknown Source)
at java.io.BufferedInputStream.available(Unknown Source)
at sun.net.www.MeteredStream.available(Unknown Source)
at sun.net.www.http.KeepAliveStream.close(Unknown Source)
at java.io.FilterInputStream.close(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source)
at java.io.BufferedInputStream.close(Unknown Source)
at java.io.BufferedInputStream.close(Unknown Source)
at com.sun.javaws.net.BasicDownloadLayer.download(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol.getLaunchFile(Unknown Source)
at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

I’m using jdk1.5 beta2/WinXP. Jnlp is loaded correctly at start and I can see all your directory with web browser, so it is not a problem of my network setup IMHO.

First off, thanks for the feedback, and being so kind about something thats pretty annoying at the moment :wink:

I’ve just done a very minor update that should stop the per second jerk. Could anyone who’s seen it check it to see if it gone away.

You’ll find the status area in the bottom right doesn’t update anymore (which seems to be causing the problem).

Cheers all,

Kev

very nice(!), reminds me of “take no prisoners” especially in the graphics style. up to now its runs a little slow (about 8fps on duron 850, geforce 2 mx400, 384mb, win xp).
one thing about the controls: i would preferre a “shoot where youre looking”-button. dont like the four way style …

Jupp the per second jerks are gone now.

As for a “shoot where youre looking”-button I think it’s a bad idea since you need to be able to shoot while you’re fleeing. (I guess that’s what you’ve also concluded, while making the game, since you’ve implemented the current style ;D)

Quite nice :slight_smile: Ran smooth, but after I got to the top level (one with the white things in the middle) the FPS dived to 8fps for some reason (might have been sinking slowly before then). Took another dive to 6fps in the next room :o

Firing seems to be good, except it suffers from the leapfrogging problem at low fps so your bullets appear to go straight though the monsters. You probably need some kind of teleport in effect so you get some warning before you end up with a monster on your head all of a sudden…

Oh, and how about letting the blood patches remain? Would help make the environments less repetative.

[quote]Quite nice :slight_smile: Ran smooth, but after I got to the top level (one with the white things in the middle) the FPS dived to 8fps for some reason (might have been sinking slowly before then). Took another dive to 6fps in the next room :o
[/quote]
Can you remember the names of the rooms? (the text that appears in the middle of the screen and fades as you enter the room).

If your slowdown was in Cloisters, then it could well be due to the sheer number of monsters simultaneously on screen. There’s defintiley a performance problem with the mob AI (and I fear it’s just “beanshell is too damn slow”) which we’re working on today.

Hmm. Could perhaps copy other games and do:

  • blood patches fade to 50% alpha and remain
  • patches stored in a double-linked-list and when size() > some number (e.g. 30) they are deleted completely (or even better fade to full alpha before being deleted).

That way you get lots of blood patches but just in case you get an insane number of mosnters dead it’s not going to kill our performance :).

Also, I really like the fade effect so I’d like to keep fading the patches even if they are remaining visible :).

[quote]very nice(!), reminds me of “take no prisoners” especially in the graphics style. up to now its runs a little slow (about 8fps on duron 850, geforce 2 mx400, 384mb, win xp).
one thing about the controls: i would preferre a “shoot where youre looking”-button. dont like the four way style …
[/quote]
With the current webstart version (you might have to click it twice because of Sun’s incompetence - my webstart ignores the update the first time you click it, so you have to do it twice to get it to download the patches) try Cloisters - just keep going north from the starting room.

If you reckon you’d have a hope in hell of surviving that room with “shoot in direction you’re facing” then I might have to add a playback mode so you can prove it :D.

(FYI right now I can’t even complete that room myself. It’s the “boss” room for this level, so if you CAN complete it you complete the level. It used to be a bit easier before I added the big block in the middle so I might try reducing that in size a bit this afternoon.)

[quote]An error occurred while launching/running the application.

Title: Survivor
Vendor: Java Games Competition Entry
Category: Download Error

Unable to load resource: http://www.cokeandcode.com/survivor/webstart/survivor.jnlp

Wrapped exception:
java.io.IOException: Stream closed.

I’m using jdk1.5 beta2/WinXP. Jnlp is loaded correctly at start and I can see all your directory with web browser, so it is not a problem of my network setup IMHO.
[/quote]
I’ve seen that before myself a couple of times on webstarts since installing the evil slobbering monster that is 1.5 beta 2.

For me, retrying always worked. I believe it’s just a bug in Sun’s HTTP networking code / webstart connection code where it’s dropping the connection either too proactively or not quite defensively enough. HTTP servers are allowed to drop the connection in a variety of circumstances (and then the client is supposed to reconnect and request a restart from however many bytes they already had) and I suspect webstart 1.5-beta2 is just not quite handling one of those cases properly.

I would actually packet sniff it to find out, but it happens to me so infrequently that it would be huge hassle to try and capture the data!

(equally, it could be badly programmed webservers. There are a lot of those out there)

The slowdown was in ‘Guardians Curse’, first level, straight up two rooms I think. But having tried it again it worked fine. Dunno whether thats a good thing or not…

Fade and keep would be a good idea for the blood splats. Some less jarring way of adding them would be nice as well (possible expand from nothing really quickly instead of just appearing?). Bullets pinging off of the walls and raising sparks would be a neat addition as well.

[quote]The slowdown was in ‘Guardians Curse’, first level, straight up two rooms I think. But having tried it again it worked fine. Dunno whether thats a good thing or not…
[/quote]
Oh, crap! I didn’t realise that level was in the webstart :(. Oops, I’d better go clean it up (there’s lots of problems in that level - it’s only about half working).

Temple is currently the “most complete” level and the one I would recommend for now…

Probably take too much effort to make it look good in the tiny amount of time we have :frowning: but point taken

Yeah, that would be cool. Kev, I hope you’re listening :wink: (actually Kev’s got much more important stuff he’s doing right now - like trying to fix our performance problems :(. Wish him luck!)