Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411413 Posts in 69360 Topics- by 58415 Members - Latest Member: sophi_26

April 16, 2024, 02:57:54 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsNetblast
Pages: [1] 2 3 4
Print
Author Topic: Netblast  (Read 8371 times)
xgibbousx
Level 1
*


View Profile
« on: February 03, 2018, 12:03:16 PM »

Netblast is a 2D free-to-play online arena-shooter that currently offers two game modes as follows:

  • Deathmatch (DM): Up to four players can join a map and whoever gets 10 kills first wins.
  • Team Deathmatch (TDM): Up to four players, divided into 2 teams, and first team that gets 10 kills wins.

We are strongly influenced by Quake 2 multiplayer deathmatch (i.e. simple, fast paced, action packed, and fun).  Our ultimate goal is to create an eSports competitive game with people playing professionally against each other in tournaments and arenas around the world.

Netblast can be played on a local network (e.g, home or office) or between computers in different areas of the world over the Internet.







The game was created by Kevin Bikhazi, Abel Korsmit, Juhani Junkala.  The engine was built from scratch in C++ (yes, it was impossibly hard).

We have US and EU tournaments every Friday with $10.00 prizes each time.  Simply join our Discord channel and type either !enter-us or !enter-eu to enter the next active tournament.

Join our Discord channel here to communicate with our developers, communicate with our community, and setup games:​
https://discord.gg/ePcwwqM

Check out our live development stream on Twitch broadcasting daily:
https://www.twitch.tv/netblast

You can download, view screenshots, view gameplay video, etc at itch.io:
https://atomic-lollypop.itch.io/netblast

Donate here:
https://paypal.me/netblast

Looking forward to providing updates on a regular basis and looking forward to applying your feedback to make this game great.

« Last Edit: March 17, 2019, 09:32:52 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #1 on: February 03, 2018, 12:05:30 PM »

Completed the following in the latest weekly sprint:

  • Fixed massive slowdown due to blood splatter on lower performance machines.
  • Updated itch.io page with screenshots, video, theme, etc. to improve presentation.
  • Fixed a major installation problem for people with a Visual Studio 2017 Redist package already installed
  • Automatically login after successfully logging in for the first time.
  • Logout functionality added.
  • Added DedicatedServer.exe to install package so others can make their own dedicated servers.
  • Making the level less boring based on feedback from TIG IRC.
  • Controller support.
  • In-game menu (e.g. to quit game gracefully).
  • In-game messaging to chat with other players.
  • Gameplay elements (e.g. indicators of where to drop balls off at).

Thank you all so much for your support and for this amazing community!

Edit:

Here is what the game looked like around this time:

« Last Edit: April 22, 2018, 11:05:19 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #2 on: February 18, 2018, 08:38:51 PM »

Had a very long two week sprint where I added and reworked a TON of stuff in the game such as:

  • Graceful logoff, disconnection, and quitting (i.e. no more insta-quit on pressing escape).
  • Added controller support.
  • Added in-game chat.
  • Completely rewrote the entire master game-state system.
  • Fixed a ton of memory leaks and odd crashes.
  • Fixed oddities on level restart (e.g. balls in wrong location).
  • Fixed the double jump bug.
  • Etc.

Looking forward to improving the level design now including adding in some fun AI creatures!
Logged
xgibbousx
Level 1
*


View Profile
« Reply #3 on: February 25, 2018, 12:15:42 PM »

Completed the following:

  • Level design improvements (e.g. grate and piping textures, parallax background images, and animated tiles)
  • Actual ball capture points including their artwork.
  • Multiple bug fixes


Level design improvements are a work in progress and will continue over time.  Looking to add in some cool AI creatures as discussed before and some cool animations and sound effects when you capture a ball.

Would love if some people could invite their friends to an online game and provide some feedback here!  You definitely will need to invite your friends because there is no community yet playing this game.

Thank you all so much :]
Logged
xgibbousx
Level 1
*


View Profile
« Reply #4 on: April 03, 2018, 06:03:37 PM »

Just did a massive 6 week sprint and got a ton of stuff done as follows:

  • Improved instructions at the start of the game.
  • Capture point art and capture visuals/effects.
  • Arrows pointing to current objectives within the game.
  • Tons of bug fixes and other small improvements.
  • Player squash on jump.
  • Usernames are beneath player feet now.
  • Players move slower if carrying a ball.
  • Gun reload and new sound effects.
  • Air drag with max fall velocity.
  • Bullet hit indicators on walls and ground.
  • Removed ball gravity.
  • Invincibility for 3 seconds after spawn w/ sprite flicker.
  • Players carry ball on back instead of head now.
  • Muzzle flash on gun fire.
  • Player death animation and permanent corpse.
  • Reduced bullet accuracy.
  • Players get knocked back after getting hit with a bullet.
  • Players get knocked back after shooting their gun.
  • Rule of 3 camera positioning.
  • Gun lag when jumping and moving.
  • Gun kickback movement when firing.
  • Bullet shells.
  • Players explode when they die.
  • Explosion flash.
  • Explosion smoke.
  • Improved end of game experience.
  • Player shirt colors now correspond to their spawn point color.

I will post animated images of the game-in-action next week when I get back on a computer that can do proper screen recordings.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #5 on: April 11, 2018, 10:42:31 PM »

Just made a very nice update.

Some new things in this build are as follows:

  • Cool artificially intelligent creatures roaming the level.
  • Fully simulated fluid dynamics water pools.
  • Spawn points clear balls when a player disconnects mid-game.
  • Players don't get stuck on walls anymore.
  • The game now purges orphaned players/spawn points every time it restarts after a win.
  • Health can't go below 0 anymore.
  • Updated marketing material on itch.io and TIG forums.

Here's a new clip of what the game looks like today:

Logged
xgibbousx
Level 1
*


View Profile
« Reply #6 on: April 22, 2018, 11:12:05 PM »

I have been mainly focusing on play testing, feedback implementation, and overall marketing/marketability of the project.  Essentially, the project should look good, sound good, and not pose any potential threats to the safety of your information.

I was able to get the following done:

  • Changed the name of the game from "Dig" to "Netblast" so that the name matches the purpose of the game.
  • Created a logo.
  • Created UI screens with a background, logo, and studio name on them.
  • Created a new studio called "Atomic Lollypop" since I need some kind of entity to launch this under.
  • Learned, created, and added theme music to the UI screens.
  • Added password hashing security throughout the entire app.
  • Going to be working on security and bug fixes over the next week.

Here is the new logo:

« Last Edit: April 22, 2018, 11:17:47 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #7 on: April 27, 2018, 11:08:05 AM »

Just got done with the following:

  • Added security to the lobby server so users can't send just any crazy command to it (e.g. delete database).
  • Added brand new custom sound effects (i.e. they are no longer from Quake II).
  • Added brand new custom theme song (i.e. it is no longer from Castlevania).
  • Fixed bugs where player corpses were not persisting.
  • Fixed bug where balls would be randomly positioned after a game win restart.
  • Fixed bug where players would re-spawn at the wrong position sometimes.
  • Increased the time needed to re-spawn.
  • Removed an annoying block from the level.
  • Added directional gun recoil and associated "power jump" ability by firing downwards.
  • Increased power of gun fire recoil to enhance power jump effect.

Going to be working on some "cool" new features over the next week.  Going to submit the game to Re-Logic (Terraria developers) for potential publishing support.
« Last Edit: April 27, 2018, 10:54:16 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #8 on: May 06, 2018, 07:17:14 AM »

Added deathmatch mode!

Had to do quite a bit of work to make this happen as follows:

  • Dedicated server needs to select its type during startup.
  • Dedicated server needs to tell client what type of game it is.
  • Client needs to load particular map and game logic only for deathmatch mode.

Deathmatch mode is super basic right now.  Up to four players can join the map as usual.  The difference is now the first player to 10 kills wins the game.

I am doing a bunch of debugging right now and will soon start working on a brand new deathmatch level.  The new level will have all new level design, artwork, and music.  I plan to study doom/quake levels for inspiration.

I also plan to add other cool deathmatch gameplay elements such as other weapons and health/shield pickups.
« Last Edit: May 06, 2018, 10:13:12 AM by xgibbousx » Logged
Ikkir_
Level 0
**


Explosions are always cool


View Profile WWW
« Reply #9 on: May 06, 2018, 11:18:24 AM »

Glad to see you making progress, best of luck on the publisher: try and get those pickups in and some various gameplay variety before the pitch!
Logged

Missile Comrade: A missile defense game about MAD commanders and mutually assured destruction.
Devlog
Twitter
xgibbousx
Level 1
*


View Profile
« Reply #10 on: May 06, 2018, 04:01:22 PM »

Glad to see you making progress, best of luck on the publisher: try and get those pickups in and some various gameplay variety before the pitch!

Thank you Ikkir.  I have implemented some of the feedback you gave during our last playtest session together on Discord (e.g. gun blast super jumps by aiming your gun down, shooting, and jumping at the same time).

I remember another thing you requested was for the game to have more action, more often, along with more depth.  Deathmatch mode has a lot more action and I look forward to adding depth to it with weapons and pickups (especially a speed pickup to give the boost you requested).

Thank you again and I look forward to playing together again soon (hopefully when I get the new level finished that I am working on right now).
Logged
xgibbousx
Level 1
*


View Profile
« Reply #11 on: May 09, 2018, 12:19:55 PM »

I decided to make this Devlog more interesting and in-depth based on feedback from someone.  My previous posts are more like change logs than Devlogs.

So, I just launched the official Deathmatch level.  It has a brand new level design, artwork, backgrounds, and music.  I thought it would be interesting to record my process in developing it to share:

1. First, I decided to take inspiration from the Quake II Edge multiplayer map.  I watched a bunch of YouTube videos and created a hand drawn sketch of the level from above so I could analyze why it was so fun:



2. Next, I created a hand drawn sketch of my own level from the side based on the Quake II Edge map I created above:



3. Next, I created the physics platforms and background areas of the level in my level editor in order to doing preliminary movement and playtesting within the actual game before committing to any artwork:



4. Next, I textured up the entire level in my pixel art editor called Pyxel:



5. Next, I transferred all of the textures back into my level editor and game:



6. Next, I had a big problem:  It was very hard to tell the difference between a platform and wall.  They kind of mix together when there is nothing to contrast them.  Most people solve this by making the platforms a bright color and the background a dark color.  I came up with a very clever solution though.  I decided to pre-render my own screen-space ambient occlusion (SSAO) shading and apply it to the level to  create the necessary contrast between platforms and background.  The results were stunning:



7. Next, I created the background art for the level in Photoshop from image clippings found around the internet:



8. Next, I created a custom music track for the level based on In Flame's song Episode 666:



9. The final result is an awesome new level that you can download and play right now:



Hope you have enjoyed this rare and detailed look into my level design process.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #12 on: May 13, 2018, 08:09:45 AM »

We are very proud to welcome Abel to our team as the lead artist.  Abel has an awesome pixel art style, talent, and is extremely dedicated to video game development.  Here's some rough sketches of his for Netblast:





Abel's also been learning how to make levels for Netblast in Tiled.  Here's the modified deathmatch level with custom Mega Man test textures applied:



Regarding the massive crash:

This was one of the hardest things I've ever had to solve in programming.

Basically, the game would freeze, unfreeze, and then crash after about 5 - 10 minutes of play on any computer.  I eventually determined that the crashes happened after someone fired their weapon based on having the crash happen to myself during gameplay.

I then made my best guess as to when the freezing and crashes started happening.  The game was running super solid up until about a month ago.  This lead me to the work I did on bullet wall-impact particles since it was related to bullets firing.  I disabled that code and the freezing and crashes stopped happening.  Wow!

It was hard to replicate the freezing and crashes because they only happened every 5 - 10 minutes or so during active gameplay.  I had to setup an auto-firing script, run a timer, and babysit the game to look for the freeze that lead to the crash.  I had to run this 5 - 10 minute test every time I wanted to test a new potential fix... :[  I knew I fixed the issue when the game could auto fire for at least an hour without a freeze or crash.

I started disabling code within the bullet wall-impact routine and eventually found that the freezing and crashing was linked to collisions (because when I disabled the particle collisions code, the freezing and crashes stopped).  After a bunch of hypothesizing I guessed that the crash was linked to using spherical particle emission during bullet wall-impact.  The spherical emission caused physics particles (e.g. particles emitted from the wall) to sometimes spawn inside other physics objects (e.g. the level walls) causing the freezing and crashes.  My spherical emission routine will spawn particles at a random spherical location around a point and doesn't test for physics collisions first.

I guessed that I could switch the particle emissions into a fountain/cube emission and eject the particles away from the wall every time.

And it worked!  No more freezing and crashes now but it took a few days and many hours to solve.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #13 on: May 19, 2018, 08:51:22 PM »

Thanks to our new artist Abel, we have an amazing new deathmatch level.  Not only did we create new tiles, but we created a whole new layout on a scale 4 times the size of our previous level:





Some other great stuff we got done:

  • New player sprites.
  • Ability to handle large levels now.
  • Multiple bug fixes and crashes.

We are now working on other systems (e.g. guns and pickups), artwork, levels, game types, and more.
« Last Edit: May 19, 2018, 09:01:10 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #14 on: June 23, 2018, 01:42:41 PM »

Just uploaded an awesome new update with a brand new rocket launcher, gun inventory, player speed, gun spawn system, and optimized level in the game.


The rocket launcher fires a rocket bullet complete with a fire and smoke trail using a brand new particle system we created.  The rocket bullet itself does both direct and proximity damage on impact.

After picking up a rocket launcher, you can now switch between it and your default rifle with the "F" key.  You can carry both a primary and secondary weapon (e.g. rifle and rocket launcher) and switch between the two.

Greatly increased the player's movement speed and acceleration to give the game a more skill-based feel.

The gun spawn system automatically spawns a new gun into the level after a certain amount of time (currently set to 10 seconds).

The new deathmatch level has optimized tile positions of the tiles as well as the new rocket launcher gun spawn.

With everything above, we are trying to match the gameplay of quake deathmatch (i.e. simple, fast paced, action packed, and fun).

Working on some really cool stuff next that we can't wait to share!
Logged
Ohmnivore
Level 0
***



View Profile WWW
« Reply #15 on: June 23, 2018, 04:50:17 PM »

Reminds me of my old project (also an online 2D shooter): https://forums.tigsource.com/index.php?topic=41836.0

How are you handling the networking? I'm super curious. It was the most challenging part in my experience.
Logged

xgibbousx
Level 1
*


View Profile
« Reply #16 on: June 23, 2018, 06:43:15 PM »

Reminds me of my old project (also an online 2D shooter): https://forums.tigsource.com/index.php?topic=41836.0

How are you handling the networking? I'm super curious. It was the most challenging part in my experience.

Hi Ohmnivore,

First off, thank you very much for your questions and sharing your old project with me.  I checked out SkullRush and I can absolutely relate to your drive to build that game.  I love story-driven games too but nothing is more fun than blasting away your friends online :]  Online games just seem to have an incredibly long shelf life and are also more challenging/exciting from a technical perspective.

For the networking, I used RakNet!

For the server architecture: I use the RakNet lobby server (Windows Server w/ a Postgres DB) that all dedicated servers automatically register with.  This gives you a live server list directly inside of the game making it easy to connect to dedicated servers.

For the dedicated servers: These use the "Replica" and "RPC" systems of RakNet where you have a paradigm of network object construction replication, network object destruction replication, data serialization, data deserialization, and remote procedure calls.  It is extremely difficult and complex to get everything working but once you figure it out, it gets a lot easier.  These dedicated servers essentially just act as proxy servers for the data transmission between clients.

For the clients: These handle all of the processing, data generation, rendering, etc. which means I am using a "client authoritative" system.  Although this is disadvantageous from a cheating standpoint, it was the way that made sense to me at first so I just went with it.  Looking back, I wish I would have gone "server authoritative" (like SkullRush) but I decided to keep moving forward to avoid getting stuck (I actually felt lucky to get anything working at all).

I was telling my team member today (an artist and game-design expert named Abel) that: "I won't stop until 100,000 Korean people gather in an arena to compete in Netblast!" :]  It's a joke but my intention is to create a arena-competitive game like Star Craft but with the skill-driven mechanisms of Quake.

It's funny because the game has been like 5 different games since I started developing it and essentially evolved into my vision for it today (e.g. first it was a single player digging game, then a single player story-driven game, then a bullet-hell shooter, then a basic multiplayer game, then an arena-competitive multiplayer game).  It has just kept evolving over time.

Again, thank you so much for showing your interest in Netblast and I hope to continue to share my journey with this awesome community of like-minded game developers.  I really feel at home here with so many friends :]

Kevin
« Last Edit: June 24, 2018, 05:10:55 AM by xgibbousx » Logged
Enyx
Level 0
**



View Profile
« Reply #17 on: June 24, 2018, 04:33:57 AM »

This looks really cool. The art style is really coming along nicely. Would love to see some high fps gameplay, have you considered making some demo videos? Gifs are great for showing proof of concept, but I'd love to see the mechanical flow in full swing if possible!

Following this Smiley
Logged

xgibbousx
Level 1
*


View Profile
« Reply #18 on: June 24, 2018, 06:21:52 AM »

This looks really cool. The art style is really coming along nicely. Would love to see some high fps gameplay, have you considered making some demo videos? Gifs are great for showing proof of concept, but I'd love to see the mechanical flow in full swing if possible!

Following this Smiley


Hi Enyx,

Thank you very much!

As requested, here's some 30 FPS gameplay (game plays at 60 FPS but video is at 30 FPS due to encoding):




Please let us know what you think :]

Note:

The game is crashing a lot right now due to the new rocket launcher.  I am working on it and would recommend not playing until I have it worked out.  Doing that now!

Kevin
Logged
Ohmnivore
Level 0
***



View Profile WWW
« Reply #19 on: June 24, 2018, 07:01:01 PM »

Reminds me of my old project (also an online 2D shooter): https://forums.tigsource.com/index.php?topic=41836.0

How are you handling the networking? I'm super curious. It was the most challenging part in my experience.

Hi Ohmnivore,

First off, thank you very much for your questions and sharing your old project with me.  I checked out SkullRush and I can absolutely relate to your drive to build that game.  I love story-driven games too but nothing is more fun than blasting away your friends online :]  Online games just seem to have an incredibly long shelf life and are also more challenging/exciting from a technical perspective.

For the networking, I used RakNet!

For the server architecture: I use the RakNet lobby server (Windows Server w/ a Postgres DB) that all dedicated servers automatically register with.  This gives you a live server list directly inside of the game making it easy to connect to dedicated servers.

For the dedicated servers: These use the "Replica" and "RPC" systems of RakNet where you have a paradigm of network object construction replication, network object destruction replication, data serialization, data deserialization, and remote procedure calls.  It is extremely difficult and complex to get everything working but once you figure it out, it gets a lot easier.  These dedicated servers essentially just act as proxy servers for the data transmission between clients.

For the clients: These handle all of the processing, data generation, rendering, etc. which means I am using a "client authoritative" system.  Although this is disadvantageous from a cheating standpoint, it was the way that made sense to me at first so I just went with it.  Looking back, I wish I would have gone "server authoritative" (like SkullRush) but I decided to keep moving forward to avoid getting stuck (I actually felt lucky to get anything working at all).

I was telling my team member today (an artist and game-design expert named Abel) that: "I won't stop until 100,000 Korean people gather in an arena to compete in Netblast!" :]  It's a joke but my intention is to create a arena-competitive game like Star Craft but with the skill-driven mechanisms of Quake.

It's funny because the game has been like 5 different games since I started developing it and essentially evolved into my vision for it today (e.g. first it was a single player digging game, then a single player story-driven game, then a bullet-hell shooter, then a basic multiplayer game, then an arena-competitive multiplayer game).  It has just kept evolving over time.

Again, thank you so much for showing your interest in Netblast and I hope to continue to share my journey with this awesome community of like-minded game developers.  I really feel at home here with so many friends :]

Kevin

Thanks for your detailed response Smiley

I agree, networking is some of the most mind-boggling stuff in games. It's always interesting to see different solutions.

Oh sweet, RakNet! Have you seen the new fork: https://github.com/SLikeSoft/SLikeNet?

SkullRush used server-authorative but had no lag compensation for client movement. It was only smooth on LAN Shrug When things got too bad I added interpolation but it was only a band-aid. Since then I've been toying from time to time with better ways to hide latency: https://fouramgames.com/blog/fast-paced-multiplayer-implementation.

Client authoritative actually has a lot of benefits, and I wouldn't worry about cheaters tbh.

Good luck and have fun! I'll be following the Netblast devlog closely.
Logged

Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic