Ludum Dare 31 — December 5th-8th, 2014 — Theme: Entire Game on One Screen

Back to Browse Entries

Bit Raiders (multiplayer)

by Hexicube - Compo Entry

A simple battle-arena with a non-moving screen so that the entire game is on the screen at any given time.

Important note:
The master server is subject to not being up 24/7, when it is down nobody will be able to play. You can go into settings and edit your binds and if predictors show up, but the client will fail to connect. I'm usually up at 2pm-2am GMT+0 (weird sleep pattern). If you're unable to connect at 6pm-12am GMT+0, leave a note as it's either a bug or I forgot to put the server up.

Additionally, if the game crashes a lot, put this batch file (windows only) into the same place and run it through that:
https://dl.dropboxusercontent.com/u/13281778/LD31.bat
When it crashes you can provide the error so that I can pinpoint the cause and fix it.

Controls:
- WASD to move around and jump (rebindable, down does nothing)
- Left mouse to fire (hold to charge, peaks at 0.5s then drops to 80%)
- Right mouse to launch (same mechanics as firing)
- Click anywhere when dead to respawn at that location

Tips:
- Damage dealt is based on the velocity of the shot fired, shoot downwards for more damage
- The velocity of the shot fired ignores your own velocity when you get hit, try to dodge entirely instead of reducing damage
- Headshots deal double damage, aim for the face
- Fired shots (and the predictor) take your own speed into account, move towards your target when firing for more damage
- Launch upwards and jump at the same time for a super jump
- Launch upwards in mid-air to get higher
- Shots pierce, try to line up as many enemies as you can

Known issues:
- The game doesn't start because it can't find the main class, no idea how to fix that
- Client refuses to connect, either the master server is down (more likely) or there's something wrong your end (less likely)
- Bumping your head removes all lateral velocity, not a major issue
- Launching down through a platform you're standing on makes you go through it, not removing as it's useful and fun
- When falling and near the ground (about 5px), you instantly drop down the remaining distance, leaving it as fixing it could remove going through platforms
- Players float 1px above the ground, not fixing, artifact of the collision code
- Game crashes a few seconds after starting a game, no idea what the cause is, start the game with the batch file linked at the top so you can give an error for it

Notes:
- The entry is multiplayer only, which means I have to run a master server to manage everything
- Matchmaking is automatic, you should be able to press "Start Game" and be dropped directly into a match once the indicator at the bottom states you are connected to a server
- Matchmaking takes your option for shot prediction into account, matching you against opponents with the same setting (if you have prediction off nobody else you fight has it, unless they hacked their client to do so)
- No goals, just shoot your opponents and feel good about it
- All matches have a cap of 10 players in that match, I have yet to test what happens when two matches are running at once so expect a couple bugs here and there


I used another one of my in-progress games as a starting point for some of the client code (the entire gui package, the key handler, the font holder/char, parts of the game class, and the desktop starter class, as well as all the images that are in sub-folders). You can find that code at github:
https://github.com/Hexicube/RTRL
I'm pretty sure this is allowed, since that's open source, but if not I'll have to enter the jam instead.

Note that the server code connects to the hard-coded master server like the client does. You can compile and run that server and clients will connect to your server as well, once my server fills up (set to 10 players just in case there's bugs with multiple matches at once) people will be directed to yours instead.



Version history:
- Proto 7: Initial version
- Proto 8: Attempted to fix crashing issue based on suspected cause, also fixed minor aiming bug
- Proto 9: Fixed a crash relating to arrows moving off-screen (shouldn't happen normally)
- Proto 10: Attempted to fix a bug that caused maps to be shifted 1 block to the left for some players (which caused the arrow crash), older clients will be broken now

Downloads and Links


Ratings

#223Fun3.48
#393Overall3.35
#557Theme3.60
#585Innovation3.09
#1086Graphics2.18
#1856Coolness35%

Comments

Absor says ...
Dec 8, 2014 @ 12:28pm

Game just closes/crashes a lot for some reason but well done with the multiplayer, it actually worked without too much lagginess (2 players). Later I couldn't start the game even though it was connected to server.

FloatingGhost says ...
Dec 8, 2014 @ 12:28pm

Just played against the creator for a while - I absolutely love it!

Now this is a great concept executed well, fun/10

Hexicube says ...
Dec 8, 2014 @ 12:29pm

Just so you both know, right mouse makes the game 5x better. :P

Dec 8, 2014 @ 12:31pm

Game looks like fun, however after 5 seconds of play the game just crashes. I won't vote of course. But the idea is cool. Not very innovative but seems to work fine as for the rest. Shooting arc is very handy.

Hexicube says ...
Dec 8, 2014 @ 12:37pm

If it's crashing a lot download this, put it in the same folder, and run using it:
https://dl.dropboxusercontent.com/u/13281778/LD31.bat
That should make it give an error I can use to fix the issue(s).

berkano says ...
Dec 8, 2014 @ 1:50pm

Seriously impressed to see a multiplayer game come out of LD! Great fun to play. Needs some SFX :-)

Hexicube says ...
Dec 8, 2014 @ 1:53pm

I wanted to add SFX, but the sound system would have taken too long. :<

andysolace says ...
Dec 8, 2014 @ 2:00pm

Really good fun! Pity about the crashing. I entered several times to try and see what was causing it,but its definately related to the projectiles:

Error is actually caused by an ArrayIndexOutOfBounds exception :

java.lang.ArrayIndexOutOfBoundsException: -1 at org.tilegames.hexicube.LD31.entities.Arrow.tick(Arrow.java:43)
at org.tilegames.hexicube.LD31.map.Map.tick(Map.java:42)
at org.tilegames.hexicube.LD31.Game.tick(Game.java:355)
at org.tilegames.hexicube.LD31.Game.render(Game.java:132)

====
Hope that helps you out mate, game is pretty good fun otherwise :) Gratz on all the multiplayer stuff!

Will watch and rate if you manage to get this sorted out! Or leave a comment on my page when its fixed that I'll spot to get me to head over here :)
====

(Stack Trace cont:)

at com.badlogic.gdx.backends.jglfw.JglfwApplication.render(JglfwApplication.java:254)
at com.badlogic.gdx.backends.jglfw.JglfwApplication.frame(JglfwApplication.java:222)
at com.badlogic.gdx.backends.jglfw.JglfwApplication.start(JglfwApplication.java:197)
at com.badlogic.gdx.backends.jglfw.JglfwApplication.initialize(JglfwApplication.java:177)
at com.badlogic.gdx.backends.jglfw.JglfwApplication$1.run(JglfwApplication.java:87)
at java.lang.Thread.run(Unknown Source)

Hexicube says ...
Dec 8, 2014 @ 2:04pm

Exactly what I needed solace, I'll have a fix rolled out. I also appreciate you constantly trying to make it work! :D

Also, does the map wall have gaps in it for you? Seems like it might based on the error.

Hexicube says ...
Dec 8, 2014 @ 2:06pm

See if that fixes the issue, solace.

andysolace says ...
Dec 8, 2014 @ 2:35pm

Well done mate. Tons of fun :D Glad to see its all fixed up! Thanks for leaving the comment - I can rate now :)

Hexicube says ...
Dec 8, 2014 @ 2:36pm

Good, also that drop shot you did actually made me laugh IRL and start playing hardball! :P

andysolace says ...
Dec 8, 2014 @ 2:56pm

Oh the one when we were stood testing the collision on the walls? I was toooo tempted lol! xD

My favorite shot was the double thrust upwards, over the platform and boom! downwards headshot! Was about the only time I hit you though I think :P

Hexicube says ...
Dec 8, 2014 @ 3:14pm

The collision one was pretty funny too, you were basically like "Oh, that's the issue...FITE ME!".

That double-thrust one was the drop shot I think, just completely owned, at least until I started going for the spree! :3

brokenbeach says ...
Dec 8, 2014 @ 5:05pm

Would have loved to play against someone. But the game seemed like a fun concept, particularly jumping around, so I will just rate the fun criteria.

Hexicube says ...
Dec 8, 2014 @ 5:18pm

Damnit, missed you by 10 minutes, was playing something else...

Mokosha says ...
Dec 9, 2014 @ 7:32pm

Had trouble running on X64 ubuntu:

$ java -jar LD31.jar
libGL error: failed to load driver: swrast
X Error of failed request: 255
Major opcode of failed request: 155 (GLX)
Minor opcode of failed request: 17 (X_GLXVendorPrivateWithReply)
Serial number of failed request: 83
Current serial number in output stream: 86

sam101 says ...
Dec 9, 2014 @ 7:39pm

Ahah, your server/client protocol is fun. I liked the idea, even if I couldn't play a lot since there was no other players.

Hexicube says ...
Dec 9, 2014 @ 7:45pm

Moko, that's a very peculiar bug, I don't think I can fix that one. You could look up if you need a library?

Dec 10, 2014 @ 1:12am

Thanks for playing with me! cool game! I Included it in part 4 of my Ludum Dare 31 compilation video series, if you would like to check it out :) http://youtu.be/Kdfz6b6_ebE

RHY3756547 says ...
Dec 11, 2014 @ 3:08am

Hey, glad to see someone else (other than my brother) who worked on an online game! I was the guy who was named something like sgdfs, I had fun playing! A few problems though, the damage system was hard to follow (like how low on hp you were, how low i was) and the trajectory system was quite hard to control and line up. For the jumps, it seems like it didn't follow the intended trajectory at all sometimes. Apart from that and lack of graphics and audio, the gameplay is there and it's mega fun. Great work setting up a reliable multiplayer server in 48h!

One thing though, not relating to the game. You said this in a rather sour post on the blog:

"After looking through the game list a couple times, I really can’t find any that interest me. I don’t want to vote because of bias against them"

This is extremely rude and uncalled for! The current system is set up so that you get as many ratings as you give out (to a point) and it's set up that way for a reason. You can't just say "everyone's games are terrible I won't bother"... There are literally 2500 of them! I've only played around 30 and I've already absolutely loved a few.

Hexicube says ...
Dec 11, 2014 @ 3:33am

I really didn't mean the start of the post like that. It was more that they weren't to my tastes, and I didn't want to vote with an opinion that was skewed in a way that disfavoured games that didn't really deserve it. I'm not exactly a word artist, even though my posts tend to take on the size of one.

I'm by no means stating that some of them are terrible, I simply judged by the appearance and text post for the games that they simply didn't seem like the kind of game I would be able to give a fair vote on.

I wouldn't go around saying point-and-click adventure games all suck because RPG FPS games are so much better, that IS rude and IS uncalled for. Instead, it's more "I want to avoid giving an opinion that is unfair to the author because I don't like that genre".

Before making that post I really tried to find games that seemed to me like I would find them interesting. If I recall correctly, about 30 of them looked interesting, but I've only voted on 12 because a number of the other ones weren't for windows (one was even android only, not sure how that expects to get many votes). However, maybe I should reconsider my approach to that, after all I mind find an unexpected gem hiding in the pile that I really enjoy.



As for the feedback, I can respond with the following:
- I wanted to include health bars on people, but was for some reason fixated on the idea of uncertainty
- The damage system is 100% based on velocity, which follows a (slightly) quadratic curve and encourages skilled charge shots that go really fast
- Jumps don't line up because the predictor doesn't account for horizontal drag, you can use left/right movement to counter-act it though

Kitch says ...
Dec 11, 2014 @ 6:18am

Tried to give it a go... but I got a long series of "Connecting to Master Server" / "Unable to connect". I'll try again later.

BTW, +1000 for the key rebinding options. Us soutpaws really, really appreciate that. :)

Hexicube says ...
Dec 12, 2014 @ 12:40am

I went to bed about an hour before you tried, was extremely tired and it was like 6am for me then. I really need to find a temporary dedicated server for it so people can play it with friends.

L0N3 W0LF says ...
Dec 15, 2014 @ 5:00pm

Very awesome game ahhahaha great work :3

Hexicube says ...
Dec 16, 2014 @ 5:51pm

Um...pretty sure I never had the needed servers up at around 5pm yesterday for you to be able to play...

maxmetallica says ...
Dec 17, 2014 @ 1:36pm

i loved it

01rafael says ...
Dec 20, 2014 @ 9:38pm

Nice graphics! So minimalistic.

billrizer says ...
Dec 26, 2014 @ 8:16pm

Couldn't connect :(

Hexicube says ...
Dec 29, 2014 @ 9:40pm

I've been struggling to find the time to keep servers up because of christmas, they should be up now.

You must sign in to comment.


TEAMS: Teams entering the Jam should pick a single representative to submit your game, or create a team specific account you can share. We currently do not support Team Voting, but sharing an account and together playing and rating games is acceptable.

NOT LOGGED IN?: If you get a message about not being logged in, even though you are, it’s because your web browser cached the non-logged in page. You can fix this by either refreshing your cache or clearing your cache. CTRL+F5 in many browsers. Chrome is a bit more work. Press F12 to enable Developer Mode, then you can right click on the refresh button and select “Empty Cache and Hard Reload”. This option is unavailable if you are not in Developer Mode.

PORTS: Ports to other platforms can be done after the deadline. That said, the sooner you finish your port, the sooner people can play your game, improving your chances of placing in the final results. For best results, provide a Web version of your game, or a Windows version with no dependencies. Also be sure to rate about 20 games to improve your visibility.

MY GAME DOESN’T SHOW UP: If you can’t find your game, it’s usually because the URL to your downloads are missing ‘http://‘. Fix your URLs (http://mysite.com/mygame.zip) and you will show up. Alternatively, if you just posted it, wait a minute. The cache may not have refreshed yet.

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crash or win condition bugs after the deadline (in a sense, like “porting” to support more players). We also allow “typo” bugs. I.e. A true that should have been a false, a word that should have been a different word, very tiny changes that you would have caught if you had more sleep. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just things you messed up last minute. Typos.

[cache: storing page]