Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411469 Posts in 69368 Topics- by 58422 Members - Latest Member: daffodil_dev

April 23, 2024, 02:57:41 AM

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



View Profile
« Reply #20 on: June 25, 2018, 04:29:05 AM »

Thanks for the demo video! This project really excites me as I had a similar idea for my first game, and from seeing the gameplay it looks like you've directed it really well. Love the gun mechanics and animations, as well as the cool map design (huge props to the designer). I definitely agree when you bring those pickups into the game, it's going to help bring it to life, and boost the more tactical side of the game, so I look forward to seeing them!

I also have a lot of admiration for indie devs who make custom engines for their game, which is another reason I'm interested in this project. I'm currently making a 3D game with my java engine, so I can relate to the toils and troubles that can come with creating one. It'll be interesting to see the method you go about when trying to incorporate a new feature into the engine. May I ask, did you make this 2D engine with the intention of creating other games using it, later down the line, or was it made specifically for this shooter? This is something I've found makes me invest a lot more time in my engine, as I try and generalize all features I add to the engine, so they could be used for future titles.

Thanks,
Enyx
Logged

xgibbousx
Level 1
*


View Profile
« Reply #21 on: June 25, 2018, 06:44:34 AM »

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.

Absolutely no problem!

Yes, networking is super tough.  You have to handle all sorts of odd/unexpected scenarios like: a player joining and getting the current state of all objects in the level, networked physics interactions, a player disconnecting gracefully, a player crashing ungracefully, a dedicated server going down and updating the lobby server, handling objects already known by the world, handling objects not known by the world, knowledge of servers / protocols / networking, etc.  In other words, it's not just moving around and shooting bullets :] (BTW, RakNet/SLikeSoft handle A LOT of this for you which is why I recommend to use them as higher-level networking frameworks instead of rolling your own)

Wow, SLikeSoft is awesome!  It's funny because SLikeSoft's first Git commit was the beginning of August 2017 which is exactly when I started adding RakNet to my game.  Dang, I wish SLikeSoft was farther along at that time so I could have used it :]  I would HIGHLY recommend SLikeSoft to anyone that wants to do a networking game.  I would say to spend a few weeks learning C++ from a book and then integrate SLikeSoft right from the start. (BTW, I learned C++ from the book "Beginning C++ Through Game Programming" by Michael Dawson which I highly recommend)

Yeah, I totally know what you mean about the lag compensation for client movement.  When I started doing the network programming, I didn't realize how choppy the actual networking object movement is in a game.  I also had to integrate interpolation to alleviate this.  I tried about 5 different methods including Valve's documented one.  The only one I could get to work well was just basic interpolation :]

Thank you for the confidence on the client-authoritative system.  It's been working well and I will deal with the cheating stuff once I get there (e.g. limiting values on server like speed/acceleration, secure packets, anomaly detection/reporting, etc.).

Thank you and I look forward to posting the progress.  I am currently debugging major crashes due to the new rocket launcher, networked gun spawn, player inventory, etc.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #22 on: June 25, 2018, 07:29:20 AM »

Thanks for the demo video! This project really excites me as I had a similar idea for my first game, and from seeing the gameplay it looks like you've directed it really well. Love the gun mechanics and animations, as well as the cool map design (huge props to the designer). I definitely agree when you bring those pickups into the game, it's going to help bring it to life, and boost the more tactical side of the game, so I look forward to seeing them!

I also have a lot of admiration for indie devs who make custom engines for their game, which is another reason I'm interested in this project. I'm currently making a 3D game with my java engine, so I can relate to the toils and troubles that can come with creating one. It'll be interesting to see the method you go about when trying to incorporate a new feature into the engine. May I ask, did you make this 2D engine with the intention of creating other games using it, later down the line, or was it made specifically for this shooter? This is something I've found makes me invest a lot more time in my engine, as I try and generalize all features I add to the engine, so they could be used for future titles.

Thanks,
Enyx


Thank you very much Enyx!

We have been working super hard on this game and it makes it all worthwhile when this amazing community gives us this fantastic encouragement.  This keeps us going and gives us the energy/drive to create something super special for you guys.

As for the overall feel of the game (e.g. gun mechanics, animations, etc.), one thing I did was to try to integrate every single element from the following classic video:




Yeah, we are super excited to get the pickups and other stuff into the game to ultimately achieve that non-stop fun/action that you experience in Quake multiplayer.  Just adding the rocket launcher recently has added an entirely new dimension to the game.  Each little thing added creates "emergence" which is one of the secrets that makes a game fun.  One of my favorite videos on "emergence" is the following:




Regarding the custom C++ engine, my thought process at the time was the following: "If I want to make games as good as John Carmack, then I need to use the same tools he does!" (which in my mind at the time was C++).  After using the book "Beginning C++ Through Game Programming" by Michael Dawson I followed a YouTube series on how to build Cave Story from scratch in C++ (one of the best experiences of my life because it was guided and opened my mind to incredible new concepts).  This is what gave me the engine foundation and introduced me to many custom game development concepts like sprites, tilesets, level design/development, physics, particles, HUD, etc.  Then, I integrated OpenGL through the SDL-GPU library, physics using the Box2D library, and a finite state machine architecture that I found to be critical to control every aspect of the game.

I tell people that at least 50% of my time is spent fighting with C++!  But, at the end of the day, I feel like I have ultimate control over the engine and the game (i.e. I am not afraid to work on any part of it).  I feel like I can do anything so long as I am able to imagine it and willing to put the effort into seeing it through.

I made the engine specifically for this shooter and there is definitely a lot of "cowboy" code in it.  However, I have kept a strict class/inheritance programming structure in order to avoid "spaghetti" code and ensure I have reasonable productivity.  In other words, my drive to keep the engine clean is just my own sanity :]

But, my plan for the future is to go back, clean up the engine, and make a core version that can be used to build other games with.  I thought about moving to Unity but decided that I like the feature set of this custom engine and would like to keep making more games with it.

Thank you too and I look forward to sharing our progress and all future conversations!
Logged
xgibbousx
Level 1
*


View Profile
« Reply #23 on: June 27, 2018, 10:23:51 PM »

Just made an excellent update that has greatly improved stability, performance, and the overall quality of the game.


Some of the modifications are as follows:

  • Player spawn points can no longer be selected by multiple players causing the game to become unplayable.
  • Start screen no longer crashes when other players' guns are firing.
  • Game no longer crashes sometimes when picking up the new rocket launcher.
  • Rocket motor smoke no longer keeps emitting after hitting a player.
  • Delay when firing the rocket no longer occurs.
  • Players no longer spawn with the rocket launcher after dying.
  • You always get credits for your kills now.
  • Game winner animations now play again.
  • Added new death animation.
  • Added new death gib particles.
  • Added a new custom font to the game.

We are working on all sorts of cool stuff that is going to be coming soon including a new level, health/shield pickups, new guns, new HUD/GUI, player stats, leader boards, dynamic website, and all sorts of other cool stuff.  We are super excited about the recent community reception and are going to work hard to make this game a classic.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #24 on: July 11, 2018, 09:14:14 AM »

We have a new version available with the following improvements:

  • HUD health.
  • HUD shield.
  • HUD primary weapon.
  • HUD secondary weapon.
  • HUD weapon ammo.
  • HUD kills.
  • HUD deaths.
  • Health pickups.
  • Shield pickups.
  • Shield protection system.
  • Ammo pickups.
  • Ammo system.
  • Idle animation.
  • Removed First to Three game mode.

Here's a new video of gameplay:




Join our Discord channel here to communicate with our developers, communicate with our community, and setup games:​

https://discord.gg/ePcwwqM

Have gun! I mean fun :]
Logged
Crowborn
Level 0
**


View Profile
« Reply #25 on: July 17, 2018, 05:34:06 PM »

This looks very fun and a great game for competitive matches. Wish you all the best Smiley
Logged
xgibbousx
Level 1
*


View Profile
« Reply #26 on: July 18, 2018, 12:11:48 AM »

This looks very fun and a great game for competitive matches. Wish you all the best Smiley

Hey, thanks so much Crowborn!  We just got basic player stats working today including tracking/persistently storing kills, deaths, wins, losses, and coin on our dedicated lobby server.  We're going to have the player stats and the new game won cut scene in our next launch at the end of this week/weekend.  The game won cut scene has a cool new slow motion effect we added that I'm pretty proud of :]

I watched the movie Ready Player One a couple days ago and got super inspired on the coin stuff so I'm looking forward to fleshing that out more.  I'm thinking about doing an in-game economy where there's limited number of coin that you can use to buy cool stuff within the game.  Coin will explode out of other players when you kill them and you will auto-vacuum it up like in Risk of Rain.  I'm not sure if the limited number of coin makes any sense yet but I'm chewing on it.

Oh yeah, I'm live streaming all my development activity on Twitch now so you can watch me develop the game in real-time.  I think it's mostly super boring but could be interesting to folks who want to see the super-fine details on indie-game development.  You can check that out here:

https://www.twitch.tv/netblast

Looking forward to supplying you with our next update!
Logged
farid
Level 0
*


View Profile
« Reply #27 on: July 18, 2018, 06:33:41 AM »

It reminds me a lot of the "Contra" game of snes and above all that you are going to multiplayer, I love that type of games. Smiley Smiley Smiley
Logged
xgibbousx
Level 1
*


View Profile
« Reply #28 on: July 18, 2018, 06:46:01 AM »

It reminds me a lot of the "Contra" game of snes and above all that you are going to multiplayer, I love that type of games. Smiley Smiley Smiley

Thanks Farid!

It absolutely has that "Contra" feel to it mixed with multiplayer :]  In fact, you gave me a great idea:  I'm going to add an Easter Egg for you guys inspired by Contra.  I'm going to leave it to you to figure out.  I'll try to get the Easter Egg into one of the next releases... aaaaaaand added to Trello!
Logged
xgibbousx
Level 1
*


View Profile
« Reply #29 on: July 21, 2018, 06:43:10 PM »

​Got an amazing update today with the following added:

Player stat tracking, storage, and viewing:

  • Kills
  • Deaths
  • Wins
  • Losses
  • COIN
  • Note: You can see these on the Netblast home screen after logging in.

Leaderboards:

  • View the top Netblast players by number of games won.
  • Note: You can see this on the Netblast home screen after logging in.

Game won cut scene:

  • Added new slow motion effect.
  • Added new artwork and stat display.

​One of the coolest things here are the "coin".  You will be able to use coin to buy stuff from the store later like weapons, buffs, accessories, etc.  You can then use these new items in your player slots during the game.  The store et al. is going to be coming soon!
Logged
xgibbousx
Level 1
*


View Profile
« Reply #30 on: July 26, 2018, 06:40:32 PM »

Just made a couple major improvements:

  • Secure network layer using TLS working
  • Super efficient dedicated servers working

TLS security makes it impossible for people to cheat on the network layer.  Now, all network packets are encrypted and checked for source.  So, people can't say they killed you and stuff by modifying the network packets.  This is my first step towards reducing cheating in Netblast.

The efficient dedicated servers allow me to run many official dedicated servers on one Amazon AWS server.  So, I can probably run like 10 or more official dedicated servers for us as we get more people playing.

Also, i can no longer distribute the dedicated server code which is why i wanted to make them more efficient to run them myself.  I can't do this because then i would have to also distribute the private key rendering TLS useless.  Furthermore, people cheating could modify the dedicated server to allow cheats.  So, I will be hosting all of the dedicated servers for us in a cost effective manner.

So the TLS and efficient dedicated servers work together to begin to eliminate any kind of cheating potential in Netblast.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #31 on: August 08, 2018, 07:16:17 AM »

Got some awesome updates into this release.  Here's a video showing off the new level (sorry for it being so dark;  will post a new one when I am at a better computer):




Server Authoritative:

One of the things we did was begin our efforts to protect against cheating.  It was demonstrated to us how easy it was to hack Netblast and so we took action right away.  After a lot of research, we decided that creating a server authoritative system with a secure transport layer (TLS) was the best immediate solution.  The secure transport layer (TLS) was delivered in our last release.

This first phase of the server authoritative system protects critical values like health, shields, kills, deaths, bullet hits, wins, losses, ammo, coins, and stats.  Although this is a lot of great stuff, there is still a lot more to do that we will release throughout the coming updates.

Ultimately, the server authoritative system makes it harder for players to fake/alter critical values and create an unfair advantage against you (e.g. locking their health to 100 in memory/RAM so you can't kill them; setting their coins to 1,000,000 in memory/RAM and submitting that to the lobby server; etc.).

New Level:

Abel, our amazing artist and level designer has created a brand new level called "The Falling" as follows:


All of the artwork is original and looks truly stunning in-game with the lighting effects added.  This level is vertical and starts off with players "falling" into the level from their spawn points at the top.  We wanted to go bigger with this level and so its size has about tripled from the previous level called "The Temple".

Furthermore, our development team added support for multiple levels on the dedicated servers.  Now, both The Temple and The Falling can both be played in-game.
« Last Edit: August 08, 2018, 08:40:40 AM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #32 on: August 09, 2018, 02:31:29 PM »

Spectator Mode:

We added spectator mode today making it possible to have our first official Netblast tournament!  Spectator mode allows tournament officials to make sure everything is clean/fair in the tournament matches.  Spectator mode can also be used to simply watch a match if all player slots are full.  Grab a slot when one of the players leaves.

Tournament Schedule:

We are going to be having 3 tournaments per week, every Monday, Wednesday, and Friday @ 6:00 PM PST where the winner takes home a prize of $15.00 each time.  The first gladiator to win 3 matches wins the tournament.  The first gladiator to get 10 kills wins a match.

First Tournament:

The first tournament will be held tomorrow August 10th, 2018 @ 8:00 PM PST in the Official #2: The Falling server/map.

You can enter into the tournament by doing the following:

  • Join our Discord Server at https://discord.gg/RGu3Avc
  • Go to the General channel under the Discussion category.
  • Type "!enter" (w/out quotes) into the channel.

The first 4 gladiators to enter the tournament will play for the $15.00 prize each time.  You can see when the tournament is full and who will be playing in the our Tournaments channel under the Competition category.

Gladiators can simply connect to the tournament server/map @ 8:00 PM to play.  The first gladiator to win 3 matches wins the $15.00 prize.  A tournament official will be spectating the matches to confirm the win automatically.
« Last Edit: August 11, 2018, 08:45:02 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #33 on: August 14, 2018, 11:27:42 PM »

Jump Pads and Wind Tunnels:

Have an update today that really brings out the fun in the new "the falling" level:  jump pads and wind tunnels.  We found that the falling, being so large vertically, caused a lot of the action to settle towards the bottom of the map.  We decided to add jump pads and wind tunnels to get the action circulating back up top.

Jump pads will launch your player up to higher platforms.  They are strategically located through the center of the level and allow you to traverse up and around the central chasm.  Wind tunnels enable you to ride up to any part of the level and are located along the sides of the map.

New Theme Song:

Finally, we got a brand new theme song in the game created by Adam Alake.  The song is absolutely stunning and we are so lucky to have Adam on our team doing the sounds.

Multiscreen Fix:

A big problem we had was players clicking on a second monitor and the game minimizing.  This really sucked when you were in the heat of action and your game window just disappeared.  So, we fixed it where even if you click on a second monitor, the game will not minimize.

Here's a video showing off the latest gameplay and features:



« Last Edit: August 14, 2018, 11:53:14 PM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #34 on: August 16, 2018, 09:43:53 PM »

​Ping:

We added ping measurement into the in-game dedicated server list.  This will allow you to objectively know which dedicated server is best to connect to as well as identify any internet connectivity issues (e.g. super high ping).  The ping just measures the time it takes for a network packet to go from you to the server and back (i.e. round trip).  A reasonable ping is anything less than 150 milliseconds.

European Servers:

We added a brand new server architecture to the game.  Now we have the lobby server in California, the US-EAST servers in Virginia, and the EU-WEST server in Germany.  We are super proud to bring this new setup to the community and we know it will make tournaments and future gameplay much better.

European Tournaments:

We made a huge organizational update to the game.  One big problem we have seen is that it's hard to match European with United States players in tournaments for two reasons as follows:

  • Ping: It takes 3 to 4 times longer for movement, bullet, etc. information to transfer between players on different continents.  This causes a feeling that bullets are not really hitting you, that the game is unfair, and makes it hard for players to shoot each other.
  • Timezone: It's hard for someone in Europe to have to stay up until 3:00 AM to play in a US tournament.  This causes European players to be super tired and not at the top of their game for the tournaments.]

As you can see above, these factors are not ideal for a tournament setting.  Therefore, as a solution ​we created separate US and EU tournaments.  Both continents will have 2 tournaments per week, both on Monday and Friday, with US @ 7:00 PM PST and EU @ 7:00 PM GMT.  Easy to remember.

You can now use the commands: !enter-us and !enter-eu in our Discord server to enter the respective and currently active US or EU tournament.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #35 on: August 17, 2018, 10:46:44 AM »

We just launched the new temple map to compete with our new map called the falling.  We made the level bigger, added new tilesets, added jumppads/wind tunnels, tweaked the lighting, and overall just made it way cooler.  Check this baby out:

Logged
xgibbousx
Level 1
*


View Profile
« Reply #36 on: August 18, 2018, 04:46:24 PM »

​Multiple Logins

Multiple logins with the same username is handled.  Now, if you login to Netblast with the same username that is already logged in on another machine, Netblast will end the other person's session and log them out.  This not only fixes a dedicated server crash but also synchronizes lobby login, room join, and dedicated server play.

Server Crash

​After a ton of testing, the only crash I was able to replicate was due to multiple logins which was fixed as described above.  I will keep an eye out for more crashes as I am sure we have not seen the last of them.

Player Twitch

​When a player was moving up or down really fast (e.g. pad jumping, wind tunneling, or falling), its sprite would twitch up and down pretty violently.  This look pretty low quality so I majorly increased the physics processing to alleviate this.  I hope this doesn't cause performance issues on slower systems.

Lag Compensation​

​I attempted to improve lag compensation but found all efforts to have undesirable side effects.  The best way to reduce lag is to use the server and play with players closest to you.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #37 on: August 27, 2018, 11:08:13 PM »

Server Authoritative Phase 2

We have now moved all spawn, pickup, gun, map object, and player creation to the server.  This means, you can no longer edit the map items on your own computer which greatly reduces unfair play and cheating.

This also eliminates the duplicate pickup problem and greatly simplifies the code architecture.  These improvements will mainly be noticeable as general stability and fair play over the long term of the game.

Colored Scoreboard

Now you can finally see what color each player is on the scoreboard at the top left:


Bug Fixes

Finally fixed the problem where you wouldn't start with full ammo after re-spawning from a death.  Now your player properly starts with full ammo after coming back to life.

CONTRA EASTER EGG

Really excited to announce the Contra easter egg in the game:


It is left to you to figure out how to unlock this awesome capability.
Logged
xgibbousx
Level 1
*


View Profile
« Reply #38 on: August 30, 2018, 08:02:01 PM »

AFK Kick

We had a big problem where a player could crash out of a server and leave their player stuck there forever.  We had another big problem where a player could join a server, leave their computer, and occupy a spawn point forever.

Both of these problems are solved with our new AFK kick features.  This feature automatically kicks stuck players as well as ones who have not moved for 90 seconds.

Crashes

We were able to fix one client side crash due to the new server authoritative network objects (e.g. jump pads and wind tunnels) where physics bodies were trying to be accessed that had not been initialized from the server yet.

Usernames

We fixed the missing usernames under players and at the game won screen.
« Last Edit: August 31, 2018, 09:59:52 AM by xgibbousx » Logged
xgibbousx
Level 1
*


View Profile
« Reply #39 on: September 01, 2018, 03:43:33 PM »

​Server Slowdown

​There was a huge problem where after just a few minutes of play, the server would become extremely laggy, then unresponsive, and then crash all of the players.  That's nice isn't it!

I found some massive memory leaks on the server, fixed them up, and we are all good to go now.

AFK Tweaks

​AFK has now been upped to 3 minutes and also considers keyboard input now when chatting.

Random Map Objects

​Fixed a pretty big problem where random map objects would appear when exiting and reentering a level sometimes.  This was due to some map object vectors not being cleared on disconnect.  This is now fixed.

Gun Swap

​There was a huge bug where when another player would disconnect and rejoin the map, your rocket launcher would get swapped with a shotgun.  This is now fixed.

Contra Easter Egg​

​There was a big problem where multiple players would load the new Contra easter egg and it would mess up other player character skins.  This is now fixed.
Logged
Pages: 1 [2] 3 4
Print
Jump to:  

Theme orange-lt created by panic