Jump to content

Space Blast


asyncrobot
 Share

Recommended Posts

Hi everyone,

I was working on a game called "Space Blast". You can play it by clicking the link. http://www.spaceblast.io
There isn't much players currently.

img1.jpg.421bac4d6a3f4cfdd1c792dd8a78e0f8.jpg

Features:

  • XP based level up system.
  • Player's XP is reduced to half when player ship explodes.
  • Players shoot asteroids and other players to gain XP.
  • Asteroids divide into smaller pieces. If a moving asteroid hits a ship, ship explodes.
  • Players gain skill points on each level up.
  • Upgradable skills: Health, Health Restoration, Speed, Fire Rate, Bullet Speed, Weapon Damage.

Development Notes:

  • I wanted to make physics simulation deterministic, so I wrote a small library for simple impulse based physics simulation. Only circular bodies are supported and no rotation is implemented. But still it is hard to get the same simulation running on the both ends. Also I think I spent too much time here.
  • There can be lots of moving bodies, so the communication is in binary format to reduce the traffic.
  • Only client and server specific code is separate. All game related code is shared between client and server. This really ease the development for me.
  • Game simulation runs on clients and server at the same time.
  • Minified game source (client javascript) is about 70 KB. It is not very important but I am quite happy with it :)
  • Sound effects are played in different playback rates (90% - 110%), this also gives some variety. When player ship explodes it adds a lowpass filter.
  • Game also works on mobile devices but it requires good processing power.

Any feedback is welcome.
Thanks!

img2.jpg.e9dbdf153323c3617ace072d1bdeb988.jpg

Link to comment
Share on other sites

Loved this game. Had a ton of fun playing it. Ended up playing for an hour without knowing... asdf for the win! What did you use for the multiplayer capability?

I was expecting the steering to be more like this https://phaser.io/examples/v2/arcade-physics/asteroids-movement but once I got familiar with it, it was ok.

Keep up the great work!

Cheers,

DarkwallLKE

 

asdf.png

Link to comment
Share on other sites

Thank you, I'm glad that you enjoyed it :)

I didn't use anything specific for the network capability. I read these articles and pick something I could achieve :)

http://gafferongames.com/networking-for-game-programmers/

Basically server sends entity information (position + velocity) at a constant rate, when client receives that, it applies new properties directly for the simulation. I only apply some smoothing on the graphics layer. Until client receives new data from server, client runs simulation with the data it has.

About sending data, I wrote serializers for each game object. If a property gets modified, only modified part is sent automatically by the server.

Link to comment
Share on other sites

Nice game. I do like the simplicity of the overall graphics but I'm thinking that a bit of spice would be nice - maybe make an agressive neon look with sci fi elements? :)

I was the only player sadly so I can't say much about the overall gameplay experience. One thing I noticed and liked was the debris (when a static element is shot at) being directed at an inverse angle from the shot direction (like a pool ball).

Link to comment
Share on other sites

@True Valhalla I heard the same thing from several people but I couldn't reproduce it. I really appreciate if you can give me more information on that. Such as your PC, browser and error prints on developer console. I didn't implement support for big endian devices but I think that is not very common. I am planning to support that later. I added a small script to check this, if you click on the link below it should say "little endian". That might be the case, but I am not sure.

http://www.spaceblast.io/endian.html

@elparole Thanks, I wanted to support mobile with this one. But it uses too much processing power, my phone becomes very hot and I can see the drop in battery level :) Without upgrading your damage skill it is not easy to destroy enemies. May be I should change that, game balance is hard to tune. Another strategy is to destroy enemies by shooting nearby asteroids. Asteroids explode into smaller ones and if they bump into a moving asteroid that also destroys ships. I am planning to make this more effective.

Link to comment
Share on other sites

@asyncrobot Oh! So I can destroy asteroids! :) First time I played I thought they are undestroyable. This was because of only 2 newbie players were on the map at the same time. Today, I saw lot of players and now I see the what's going on! I think you could make asteroids graphics of damaged state more obvious for players, because right now more of them could think that they cannot destroy asteroids and won't get any experience points and quit the game because of none progress.

Earning exp by destroying such objects is very good idea for that kind of online game. It is easier for new players to join the game.

Also, I like avoiding bullets in gameplay and predicting enemies position when shooting. Reminds me Quake 2 :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...