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

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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).

Share this post


Link to post
Share on other sites

Cool game, congrats!

Works well on my smartphone moto x style. I found one other player and we tried to shoot each other, but it seems our guns were very weak or health/armor very strong, so after 5 minutes we still had both 90% health.

Share this post


Link to post
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.

Share this post


Link to post
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 :)

Share this post


Link to post
Share on other sites
On 07/04/2017 at 8:49 PM, asyncrobot said:

@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

The page reports little endian.

I checked my console and noticed errors with MoPub ads, so I disabled AdBlock Plus (common extension) and now the game works. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.