SharpShooter Arena

A multiplayer shoot em up based on my SharpShooter16k code

http://www.circuitswamp.org/projects/sharpshooterarena.html

Bring a friend, otherwise there’s nobody to shoot :wink:

NB. Multiplayer relies on my Introducer running on my home pc. I’ll leave it running for now, but need to sort out a better solution

Edit: If the game starts but says ‘Looking for Server’, then it couldn’t connect because the server is down.

Cool, lots of fun!

I would suggest allowing WASD controls as well as arrows, but that’s just because I have a freaky keyboard with arrow keys split across the board.

Also it can be hard to find ppl if they are spread out over the map.

That could be remedied either with a minimap or with onscreen waypoint markers/arrows.

Thanks!

Thanks for the comments.

I will be adding WASD and am thinking of adding HUD bugs to indicate player bearing. The HUD bugs will be downward arrows (or triangles) right at the top of the display. There probably won’t be any left/right off-display indication because creeping up on people from behind is fun. (NB. The existing enemy damage indicator doesn’t appear if you are attacked from behind unless the attacker is very close behind you)

A bit of investigation also found out why I could see Mazon, but he couldn’t see me. It happens when one of the player’s clock gets out of synch. The game uses a common time standard from the Introducer (server), adjusted for half ping time. If the outward packet lag is much greater than the returning packet lag, the correction is inaccurate and in extreme cases can result in one game client rejecting all updates from the other. I have tested fix for this, which will go in, when the above improvements are made.

Looking at the log, there’s been quite a few people dipping into the game and then leaving, but only the occasional time when more then one person is online. Since there isn’t anything to do apart from shoot other players, this doesn’t encourage return visits except for prearranged death matches. Maybe multiplayer Player versus Environment would be a better bet. The difficulty with that is the amount of system state to continuously update across the network. A possible idea is for each client to transmit it’s player position to all other players. Each client will then only transmit a subset of its local object database to each player, i.e. the subset of objects close to that player. It won’t really work for SharpShooter Arena bvecause the world isn’t big enough (unless it is acceptable to stop drawing enemies in the middle distance). Still it’s food for thought for the next game variant.

Alan ;D

Edit: Since I’m using this as a ToDo list. Also need

  • Sound on/off toggle (for when you can’t stand it any more)
  • Stop players sliding when dead (Happens when you are killed when moving)

well I managed to play with Alan for a while, and I found it very fun! I would certainly like to see the forced lag reduced to as little as possible. I’d also like the rifle bullet to be much faster, if not instant. That, and increase reload time on both weapons :slight_smile: Maybe increase pistol speed a LITTLE. It just feels odd to have the bullets move not much faster than the players.

hehe, I won against Alan. ;D

Great job, well done!

Everyone beats me. I’m c**p :’(

;D ;D ;D ;D ;D

Update:

  • HUD Bugs tell you where the enemy players are
  • Faster bullets & faster reload
  • Forced lag reduced to 60mS
  • Network update rate reverted to 5Hz for stability
  • Music off (F6); on (F7)
  • Dead Player sliding bug fixed
  • Invisible Player bug fixed
  • Font support extended to punctuation
  • Player not able to move bug fixed (I hope)

WASD is currently not implemented. It requires the chat system to be modified to the RETURN+type text+RETURN system as the WASD keys become dual use. I tried it, but it really needs a cursor to indicate when you are in chat mode. It didn’t feel very smooth, so it’s been backed out for the moment.

Alan

Edit: Hopefully the ‘not be able to move’ bug is fixed

Edit: I’m planning to add a computer player to provide something to do when no one else is logged on. A training mode really. It will only spawn when there is only one player present. It will respawn if killed. If additional players connect then it will disappear.

Nice and important update. Its emerging from a tech demo to a real game.

Edit: I realised that there is no link on your site to the sharpshooter site. Maybe you want to add a link at your “projects” site.

Edit 2: Nice to see that project isnt dead yet. 8)

Edit 3: Maybe make the sliding slower, since its really hard to aim anyway and if one knows to slide hitting is almost impossible.

Thanks for the comments:

  1. Will put the link in when the projects stable. Real soon now

  2. A Computer AI trainer is now implemented, which comes up if you are the only player connected. It disappears as soon as there is more then one player. I think (apart from bug fixes), this game is about finished now.

  3. It is certainly difficult to hit a sliding player. I’m not sure whether slowing the rate will help or not as you only have to be sliding a bit to avoid the bullets. Will experiment a bit.

Alan :slight_smile:

Edit: Need to make AI player see you if you attack from a distance with the rifle

Edit: Tested on Mac Powerbook G4. All Ok except that changing from Fullscreen to Windowed and then back to Fullscreen causes a lockup. I don’t recommend trying this. On a powerbook you are supposed to hold the FN key down when using the functions. This doesn’t seem to work for F12 as Dashboard tends to hog F12 key, FN or no FN key. Alt-F12 appears to do the trick, but results in the lockup. I don’t recall this problem with the SharpShooter16k code. First approach will be to reallocate Fullscreen to another key and see if the problem persists. - Looks like I shouldn’t use F9-F11 either, which leaves me a function key short. Maybe I’ll have to make some of the function keys into toggles.

Edit: There have been reported problems with running this code on Linux, including symptoms of running off the map resulting in an array out of bounds error. If any linux user finds this is still persisting, please post the error.

Server (Introducer) now running under linux - lets see how long this disc lasts for :wink:

  • The last one popped its clogs after 3 months hard labour. This one is an extended life drive… hopefully.
  • I now remember how much I hate configuring linux distros. This time i made notes.

Hi,

I have a question:

How do you do it that every player plays on the same server?

A webstart application is always started on the client computer, right? So I guess it has to connect to a server? Is this server a java application which runs all day? Is something like this possible for someone who doesnt own a server but uses webspase from hosting-companies?

I’d like to test this by using a simple webstart-chat. Every user should be able to speak to everybody else. But I dont understand how you did this “many clients - one server”.

Usul,

Sorry it’s taken so long to reply. I am running a server on a linux based box, which runs continually. It listens on a UDP port & when polled returns a list of IP address/ports of all current players. The rest of the game runs peer to peer, using UDP punchthrough to get through routers if necessary.

Alan

/Edit: The server is running on Light CV860A on my home broadband connection. While this doesn’t cost me any extra in hosting :), the bandwidth is insufficient to host large numbers in multiplayer. So it only handles connections as players join/leave.

You probably could make a chat server using web-hosting with PHP and mySQL. However this would really be too slow, if the long term aim is for multiplayer realtime gaming. A dedicated server would be ideal, but the cost :’( Peer-peer cuts bandwidth costs, but really needs UDP punchthrough to allow peeps with routers to play. I spent a long time considering this issue, before deciding on my implementation, which is cheap if you already have broadband and a spare old computer that can be left on. :smiley:

/Edit2: BTW - Laptop 2.5" disc drives wear out after about 3 months continuous use. I am now using a more expensive :’( drive intended for use in blade servers.

I just try to play a game, but webstart doesn’t seem to work:
You signed lwjgl.jar twice?

An error occurred while launching/running the application.

Title: SharpShooter Arena
Vendor: Alan Waddington
Category: Download Error

More than one certificate used to sign resource: http://www.circuitswamp.org/projects/sharpshooterarena/lwjgl.jar

Possibly it’s built with a puppygames signed jar & I resigned it. However I’m puzzled. I haven’t touched it for ages and its been working fine.

/Edit - Yes, it’s signed twice. I’ll fix it in the near future

I am using 1.4.2_06 version. It is strange of course that suddenly it’s not working (since you didn’t change anything). You are using

Probably there is some problem?

EDIT: Ah, you already answered while I was typing this post :slight_smile:

New jars uploaded - only signed once now :slight_smile:

Hey, I finally played it. I was alone, but then that trainer surprised me ;D
He is a little tough opponent - or I just suc** ? The game have potential to be real fun.
Suggestions :

  1. Maybe mouse look is to fast, I can’t seem to aim right?
  2. Fullscreen shoulb be optional at the beggining
  3. Of course that you could add more trees, bushes, grass, different terrain types, but that is only for an eye. And with that fast game you don’t have time to enjoy your surroundings anyway…
    Fun!

Did you notice the F1, F2, and F3 keys for adjusting mouse aim speed?

Ahh. I missed that. OK.