00:00
00:00
Xzontar

Male

Freelance Programmer

Joined on 6/25/08

Level:
9
Exp Points:
804 / 900
Exp Rank:
84,706
Vote Power:
5.12 votes
Rank:
Civilian
Global Rank:
> 100,000
Blams:
0
Saves:
8
B/P Bonus:
0%
Whistle:
Normal
Medals:
13

Workin' On a New Game (part 2)

Posted by Xzontar - December 7th, 2023


New Game-play Stuffs

Indeed, there has been progress! Since the last update I have implemented all base game mechanics with the exception of power-ups, of which I will likely only have two before release (bombs and shields).


This means I have now added a proper turn timer, tank boosting (for jumping over pits, through lasers, over treads, etc), treads of 1x and 2x speed, 1x, 2x, and 3x lasers. Things went fairly smoothly, with the exception of some movement rewriting for the boost mechanic. My movement and animation code was really only designed for single-cell movement and just wasn't playing nicely with boost initially (which allows up to 5-cell movement). I took the opportunity to refactor and better modularize the movement code so it could be used for boosts, regular movement, and now all the arena movement stuff. This made me cry tears of joy as I was dreading implementing the double-movement treadmills (that can also apply rotation and pushing effects).


While we aren't there yet, there is now a bit more to the maps. I took a classic Robostrike map and re-made it for testing (minus the power-ups). Due to my tread auto-tiling, however, it doesn't look exactly the same:

iu_1126179_2482287.png

(Don't mind the goofy icon in the disabled command button).


Lobby Stuffs

I lot of my time has actually been spent on making the lobby system functional at a very basic level. First, I needed to add map previews for when people clicked on a room. This was fairly simple as I simply have the server send a copy of the map data to the client upon click if there isn't a cached version available. It will then cache it then generate a preview to display for that map index.


I also needed to add a 'ready' system so players could come-and-go and the match wouldn't start until the players were all-in. The trigger is implemented, and the text console updates when people hit 'ready'. I will need to add a better visualization of who is ready to the sidebar down the line.


Lastly, I needed to add a way to select your map when creating a room. For the time being I have added all the information to the right-side panel as you can see here:


iu_1126178_2482287.png


However, once there are more game-modes and other tweakable settings I will expand this setup screen to a full-screen affair. This will be changed quite a bit down the road, however, once I need more than just FFA and Team death match game modes.


Victory Screen

At the moment there isn't much reason to wipe the floor with someone other than bragging rites. Still, I wanted to help with the taunting so I added very basic "Awards". At match end it will congratulate the winners (or taunt you if everyone died) and list any awards earned by players for that match. Currently implemented awards are:


  • First Kill
  • Most Useless
  • Most Vicious
  • Most Deadly
  • Most Valuable


I have more planned, such as "Most Reckless", the "Goofy Award" (aka., stupidest suicide) and a couple more for other game modes.


What's Next?

Next on the docket will be adding power-ups and then designing 6 initial maps. Once this is done I need to head back to the animation system and look through it as I noticed some odd situations client-side where the clients got to the correct locations, but how they got there was janky. This mostly involved complex movements, so things like boosting onto a spinner, then backing onto a treadmill that pushes and rotates you into someone. Should be fun to debug :'(


Once this is done, I'll be doing some more thorough debugging, testing all cases, implementing better server-side sanitization I've been slacking on, and doing some stress-tests on a test server to see how well my code handles lots of players. My goal is to be able to support 100 concurrent players easily, albeit I doubt I will ever get even remotely near that in actuality.


Once everything is running smoothly work will begin on finalizing graphics, creating sound effects, music, and then basic API login (only for user name support initially).


Can I get this done in time for Christmas? Whoo-boy, I sure hope so, assuming things go smoothly. But this is game dev, and things rarely ever go smoothly so we'll see.


That's it for this one! Ciao!


Tags:

Comments

Comments ain't a thing here.