"Chariots of Ra" requires a wider view.
Please rotate your device to Landscape orientation.
Revised layout of Hall of Deeds to allow for richer data to be displayed. This includes showing stats for solo and team games separately. Also shows KD and Win Ratios.
System now tracks games joined / started by the player/ This stat is incremented when the game starts (countdown ends). This stat is used to calculate the finish %age of the player. Low finish %ages will allow others to identify rage quitters
Added Battle Log to profile. This allows players to view their battle log in their profile. Admin's also have access to the battle log to view all games played by all players.
Added Ka Economy. MATCH ENTRY DEPOSIT Joining any multiplayer match requires a 5 Ka deposit upfront. If you finish the match legitimately, this deposit is safely refunded along with your match earnings! If you leave the match early before it's over, you forfeit your 5 Ka deposit forever to discourage rage quitting.
FAIR PLAY PROTECTIONS If you're in an active fight and all other human players rage quit, your 5 Ka deposit is instantly refunded so you can leave the empty arena without penalty. The game rewards multiplier is also locked 30 seconds into the match, so players quitting later will never drag down the remaining players' rewards!
Players can now save their vehicle configurations as templates. Up to 5 templates can be saved per player. This allows players to quickly switch between their favorite vehicle configurations.
Added Race game mode. Race mode is a game mode where players race to complete a certain number of laps. The first player to complete the race wins the match.
Tweaked vehicle stats to make them more balanced. Also improved the How to Play page, adding descriptions of the various game modes
Added game mode last tank standing. No re-spawning in this mode. last tank standing gets extra ka. This mode also introduces spectator mode for players who have been eliminated.
You can now enjoy team death matches! Team death matches are a new game mode where players are split into two teams of 5 players each. The first team to reach 50 kills wins the match. In private team death matches the host has the ability to move players between teams and kick players from the lobby.
You can now enjoy king of the hill! King of the hill is a new game mode where players fight to control a central zone. The first player to reach 2000 points wins the match.
A few other updates. In order to ensure that players cannot sit in the garage and keep the game from starting the host can now start the game 10 seconds after the start requirements are met - so do not linger in the garage too long - the game might start anyway, whether you are ready or not.
In order to achieve the above we had to refactor gamemodes into a class and also treat lobbies as a separate class. Both of these have sub-types FFA and TDM. This refactoring allowed us to add new game modes with their own rules, logic and lobbies with a reduced risk of introducing bugs to other game modes. Additional gamemodes should be much easier to add in the future.
Private matches are now available! Hosts can create a private match and invite players to join by sharing room code.Private matches are not included in normal game match making.
In order to earn Ka there must be 2 or more players in the match. This is to prevent players from farming Ka by themselves. A multiplier is applied depending on how many players are in the match. The formula for earning Ka was also updated to reduce the value of winning an FFA. The new formula is: Ka = (Kills * 10) + (Assists * 4) - (Deaths * 3) + (1st Place * 15) If multiple players have a tied winning score the win points are distributed evenly.
| Players | Ka Multiplier |
|---|---|
| 2 | 0.3x |
| 3 | 0.6x |
| 4 | 0.85x |
| 5+ | 1.0x |
Assists are now tracked in game and here's how they
influence score and Ka calculation.
Ka = (Kills * 10) + (Assists * 4) - (Deaths * 3) + (1st Place * 50)
Score = (Kills * 100) + (Assists * 25) - (Deaths * 50)
In order to get credit for an assist the following
conditions must be met:
Target is destroyed
Player didn't deliver final blow
Player contributed either: 20% or more of total damage to target, OR Caused damage
within the last 5 seconds
Added promotion system. Players accumulate ka points for
kills and game victories. When a player has enough
ka points they gain a promotion to raise their rank.
A redesigned profile page shows player's rank, ka, kills,
deaths, and victories. Rank is also displayed in the lobby
and on the end game screen. Here's the formula for earning Ka:
Ka = (Kills * 10) + (Deaths * 3) + (1st Place * 50)
For each rank above the base Neferu rank the player gets a 1 degree aim assist boost - i.e. up to a 9 degree boost for the highest rank.
Turret kills now count as kills and contribute to KDA.
Aim assist is here! The target cone varies by weapon. Generally longer range weapons have smaller cones. The bad news is that bots also get aim assist, they are quite deadly now. Maybe their armor and dmg levels need to be reduced.
Ratelimiters added to game creation and joining to prevent abuse. Users get blocked from joining more than 4 games per minute. Callsigns are now sanitized to prevent ocd einjections.
Players no longer die immediately after first respawn. Arrow keys are now functional. And host in lobby no longer gets stuck on "configuring" status.
Added ability to have textured backgrounds in arenas (I think black still looks best). Walls have been replaced with more egytian temple style blocks. Turrets also look more inplace with the main theme.
Bots are slightly more challenging and have better AI. They shoot at you more often and are more likely to move. They have two types of characters. Survivalists retreat if their health goes below 30%. Tacticians use a combination of their health and enemy health to determine targets. They are slightly better at running away and slightly faster and stronger.
The logs are not structured such that they can be viewed in GCP. Sekhmet's fury has a nice lightening effect. The latency numbers in the lobby and admin page are now accurate. Player has 3 seconds of immunity after spawning. This eliminates the chance of immediate death upon respawning.
Optimized and reorganized the codebase - removed some duplicated code, added viewport culling for smoke and engine audio and moved constants to a single file.
Also corrected how system was determining the environment - Analytics should track correctly now. Minor updates to legal pages and developer logs so that content does not overlap with the footer.
Created two new maps, Hippodrome and Dungeon of Doom. Improved turret aiming, they now aim where you will be rather than where you are.
Updates to Sessions.js to reducce disconnects and improve connection stability.
The game is now fully playable on mobile devices. There is room for improvement, some page layouts can be changed to be moore usable on smaller screens - but the game is usable on mobile devices and that is good enough for now.
The previous update had broken staging! Messaging between Clients (players) and workers (game servers) was broken.
We successfully implemented a signaling proxy architecture to allow secure WebRTC game connections in a containerized environment. This solves the "Mixed Content" issues (HTTPS site connecting to HTTP workers) and firewall restrictions. The solution is stable, scalable and performant.
Also updated the homepage and how-to-play pages so that they scroll
Re-architected the to have a orchestrator / worker architecture. The orchestrator handles authentication, garage and selection of game type. A game server (worker) is spawned each time a new game is started. Node.js is single threaded, this model will allow each game to spawn in an independent core - this enables scalability and improves stability
The above was also a great opportunity to overhaul the process for starting a game. Now when a player clicks "Play" if a game of the approporiate type is already underway (in lobby or less than 30 seconds in) the player is routed to the existing game - of not then a new worked is spawned.
The homepage now shows the players' battleframe - this is what they enter the game with. There is a "default" battleframe for players who have not customized their own. The customized battleframe is persisted in firebase and loaded on login.