Development update - October 8, 2024
Added 2024-10-08 16:05:25 +0000 UTCMore work towards settings actually having effect on how game runs, seemingly finished Corvette logic, added plenty of settings for Skin Editor that could alter characters in a more unique ways and bring back legs being a more vulnerable spot of Falkoks.
I have also started work on Plazma Burst 2 to HTML5 + JavaScript port. I assume that it won't take much time and won't distract me from working on Plazma Burst 3 (Porting earlier build of PB2.5 from Flash took me about a month, thus I think it won't be too bad in case of PB2).
Goals of this port are:
- I don't see Plazma Burst 2 holding players despite new accounts being created regularly (multiplayer has 0-10 players online on average);
- Plazma Burst 2 Flash performance is very poor (I have about 10 FPS on Flash version and 60+ FPS on port I'm working on);
- Plazma Burst 2 campaign mode is rather frustrating due to bugs (rope, walker stucking, AI are twice as good on 60 FPS setting, timewarp isn't a choice for everyone yet players actually need to use it. Making an optional alternative to it could be nicer);
- Players don't really want to trust executable files. Web version could be just better;
- Port gives much more control over optimizations and debugging - would not be able to fix rope this well without these actually;
I plan to publish PB2 port once I add some sort of code obfuscation just to make it harder to cheat once multiplayer will be added. But then I'd like to experiment with letting players lock their multiplayer matches from free-to-play/low account level players, which might or might not be the best protection from cheating.
Skin Editor
- Fixed a bug causing skin ID collision due to temporary replacement due to lack of downloaded skin file;
- Added drone sounds to the list of voice presets so they could be used for custom skins;
- Made it so collision preview doesn't show non-existing physical parts that are reserved for breaking spine case;
- Made it so skin model selection for each body part shows this exact body part version of skin preset option rather than their heads;
- Added damage multipliers for each body part;
- Added collision scalers for body parts;
- Added mobility as part of skin;
- Changed movement and leg IK logic so it handles custom leg collision radius scaling properly and legs still touch the ground;
- Added per-damage type damage scalers of types: projectiles, explosions, impacts, radiation, liquids. So, for example, it is possible to make creatures that are invulnerable to anything but radiation.
- Added character mobility setting.
Level Editor
- Added "force skin limitations" with corresponding pop-up message that appears about impossibility of altering some of locked skin's properties whenever skin designer tries to alter them;
- Optimizations for object property interpreting;
- Added support level scripting-created custom bars (top left corner) that are assigned to specific ragdoll rather than player connection. Should make it possible to implement slow-motion ability purely via scripting as well as allow similar abilities created by custo maps designers;
- Made it so custom bare kept incorrect pointers occasionally;
- Scripting has access to timewarp scaler at certain point/for certain body now;
- Made it so scripting has access to timewarp areas.
Gameplay
- Any hit towards small entities like turrets, antigravity fields and drones plays critical damage effect now;
- Made it so frozen drones fall down;
- Made it so frozen drones do not play loop sound;
- Made it so freezing affects a weapon that is held by frozen entity visually;
- Made it so metallic characters play metal friction sound effects;
- Made it so Corvettes are broken into multiple parts upon destruction;
- Fixed speed of scaled-down Corvettes;
- Fixed a crash due to an attempt to play death sound after ragdoll was removed;
- Made AI for Corvettes;
- Added logic for Corvettes to attack back their last attacker (characters and ragdolls);
- Moved Corvette activation sound to their AI awakening;
- Added wall dodging for Corvettes whenever there is no line of sight towards their targets;
- Made players leaving Corvettes to be less lethal to players;
- Decreased recoil for some of S-entities;
- Fixed S-entity coloring problem;
- Fixed glowing spot on texture of TGS FttP vehicle;
- Implemented skin damage multiplier logic for case of explosion damage;
- Implemented skin damage multiplier logic for case of impact damage;
- Implemented skin damage multiplier logic for case of radiation damage;
- Implemented skin damage multiplier logic for case of liquid damage;
- Implemented skin damage multiplier logic for case of toxic cloud damage;
- Optimized bone to sprite lookup of ragdolls;
- Implemented character mobility (technically it is just a multiplier to walk speed, jetpack acceleration and recoil/knockback from weapons/projectiles);
- Made it so characters move their limbs slightly slower in case of high mobility;
- Fixed a crash related to lens flares not being able to work with lava pools;
- Made it so bullet shells are rotated initially;
- Small rendering optimization;
- Fixed a few small memory leaks related to ragdolls keeping pointers towards deleted sprites and guns keeping pointers towards their muzzle flashes and shadow objects after removal;
- Re-implemented low settings version of explosions and made it look much closer to volumetric explosions;
- Implemented smooth frame transition for low quality explosions so they can look much better in slow-motion and in case of smoke clouds;
- Made it so smoke layer of low quality explosion is shaded with world shadowmap & dynamic lights;
- Fixed a bug causing low quality explosion to skip animation during vanishing in case of being used as smoke cloud;
- Implemented a robust way to mask low quality explosions near walls (previously it had binary opacity);
- Added random flips and rotation to newly made low quality explosions;
- Adjusted opacity in case of freeze/flame explosions for low quality explosions to match volumetric explosions opacity;
- Decreased amount of dynamic light generated from explosion-created hotspots, especially if area near explosion has too many walls;
- Made it so low quality explosions rely on frame number passed to shader rather than getting a UVs update for a whole geometry. Made it so shader is discarded outside of explosion UVs;
- Added reachability tracing for low quality explosions;
- Made it so low quality smoke sprites still cover legs of characters (they weren't doing it due to smooth masking);
- Made it so low quality explosions can be pushed by movables;
- Fixed a bug related to particle collision optimization that has caused decal quantity decrease on background walls;
- Added edge lookup optimization on attempt to find the closest edge of a really complex wall (over 100 points) which improved particles performance when colliding with big cave-like wall;
- Fixed a bug causing screen-space distortions to stick to screen whenever game is in pause state but camera can still move around;
- Fixed screen-space distortion bug that caused incorrect screen-space distortion grid offset on certain quality settings (and low quality explosions since they use these to create smooth masking);
- Fixed a bug causing S-entity to lose glowing layer.
Interfaces
- Contacted plenty of artists, requested artwork for loading screen from one of them (artwork creation is in progress);
- Made it so texture quality option from Settings has effect on the game;
- Added even higher level of details for explosions as option;
- Made it so particle quantity scaler from Settings affects game (it also makes particles larger instead);
- Added quality option for screen-space distortions from explosions to Settings;
- Made it so screen-space distortions option changes how they look like live without a need to restart game;
- Made it so entity shadows option from Settings has effect on the game;
- Added option to enable/disable optional 3D rigidbodies (wall/vehicle debris);
- Added option to enable/disable dynamic lights;
- Made it so particles can be completely disabled via Settings;
- Made it so bullet holes and hotspots can be disabled via Settings;
- Made it so water reflections can be disabled via Settings;
- Made it so water animations can be disabled via Settings;
- Made it so performance metrics option has effect on whether performance/network graph is shown;
- Made it so performance graph is always shown when Settings screen is open and moves to the top of it;
- Added option to show on-screen keyboard (non-interactable so far only);
- Added Shift and Tab to on-screen keyboard;
- Fixed an issue causing main menu appearance animations to prevent button color changes on clicks.
Multiplayer
- Implemented synchronization logic for Corvettes;
- Added synchronization state sync for Corvettes.
Sounds
- Made metallic friction loop sound effect (1).
Plazma Burst 2 HTML5 + JavaScript port
- Started working on JS + HTML5 port;
- Added spritesheets caching for specific colors because .filter usage tanks performance;
- Added skies;
- Fighting Adobe Flash CS6 export bugs and inconsistencies;
- Fixed arm segment rotation being incorrect;
- Added proper game scaling;
- Added reuse of frame objects in spritesheets if all properties are equal to previously added object, could save a bit of memory;
- Fixed rail effect shifting by the end of animation playback (Adobe Flash CS6 export bugs);
- Fixed an issue causing Level 41 being unable to play sound "test_sound" from library once elevator goes fully down;
- Fixed switch spritesheets not having blink animation on switch press;
- Fixed a crash that happens if player kills usurpation soldier on Level 2 (c1a) right after door was open. Something with audio callback;
- Made sure campaign levels do not cause any crashes;
- Re-added switches and explosions;
- Made non-regular explosions by recoloring regular one;
- Fixed water visuals;
- Re-added lens flares;
- Added guns (campaign guns);
- Added cursor;
- Added barrels;
- Fixed antigravity decoration animations;
- Fixed sniper rifle;
- Fixed shield grenades for impossible mode;
- Disabled first click ignoring if game wasn't paused and the player just Alt-Tab-ed out of it;
- Fixed Tab key;
- Fixed OICW crash and it not firing in burst mode. Fixed minigun not spawning. Fixed m4a1 not spawning. Fixed glock not spawning;
- Adjusted volumes for most voices lines. Slightly changed Silk lines;
- Fixed trigger logic error in Level 41;
- Fixed huge memory cost of lamps. Campaign levels and fanart2019 map can be loaded in about 200 ms;
- Implemented hash-map atom-atom collision optimization;
- Added rest of animated decorations;
- Added atom-wall and projectile-wall optimizations;
- Made it so event listener model isn't relying on recursive search of objects that have these event listeners on each frame;
- Fixed a bug causing Level 40 to have bright line at one of the doors due to backgrounds colliding here but not overlapping (I have left map unchanged, I changed lightmap generation instead to keep any other maps compatible);
- Fixed a bug causing falkok ship to have antigravity fields going into the ground after the impact on Level 40;
- Re-added cursor hint text. Added shadow filter;
- Fixed mouse wheel not working;
- Fixed a bug causing hint text to be scaled with cursor;
- Re-added animations to projectiles that had it;
- Reworked rope physics and added trajectory line where player expected to go on release;
- Made walker stuck less on geometry in campaign level;
- Re-added vehicle sprites.
Comments
By offloading server logic to community-hosted servers, do you mean moving ad display code to a custom server? How do custom servers and integrated servers differ in logic? I have to agree with you on that sustainability point. You don't have to always create new purchasable content for the player base, but rather create an initial selection that you think is adequate for how long PB3 multiplayer/co-op will be popular and leave it at that, or relinquish the task to personally-selected artists. A lot of the sustainability problems can be solved by simply expanding your development team rather doing it all yourself. Although, subscriptions have proven themselves time and time again, working for PB2's maintenance and PB3's development. I can see why you might just stick with that for the long term.
O
2024-10-27 02:19:41 +0000 UTCThese are kinds of things I've been thinking of for years actually, so it is fine. Ads do seem a bit way too unreliable, so I'd like to give a try to offloading some of server logic to community-hosted server, at least when it is not related to ranked modes. Servers can be basically hosted by players. One-time purchases of the game and cosmetics could work in theory but feels like they would limit for how long game might be self-sustainable. Smallest yet optional subscriptions could probably be the best approach.
UnrealCrash
2024-10-25 20:35:34 +0000 UTCLoving the customizability of the skin editor! Its very intricate, and it gives me some ideas of how you could monetize your game without compromising its 'free to play' and 'non-pay-to-win' aspects. Since you are already familiar with adverts, you could possibly find newer sponsors which could assist you in the development process; similar to investors, taking a stake in profits. Of course, if that isn't appealing, other methods of ads which are non-intrusive & non-distracting could be native or rewarded ads, which tend to be on the more passive side. Native ads are incorporating small features like a company name or something a company may offer to patrons; like PB2 did with the Coolbuddy logo on their crates. Rewarded ads would require an in-game monetary system which may take some time to implement. It would also need to have some non-advantageous purpose, like cosmetics, which are popular features players tend to buy in to. If you are considering putting this game up on Steam, you could also consider adding in-game events for the new player base, which could prove rewarding in terms of exposure and potential highlighting by Steam themselves if popular enough. Admins and moderators could regulate these types of things. I realize I just threw a bunch of ideas at you, and this might be a bit overwhelming. But for now, it can be food for thought while we approach a release for this game.
O
2024-10-24 02:19:59 +0000 UTC> Glad to see another post. 15 minutes was more than I expected but nice to get to see. > The Corvette fight was pretty cool. My only worry is how they can engage and fight the player even after leaving the screen. It is not much of a problem just a worry as enemies with powerful weaponry or very skilled in combat could become a nuisance for players to deal with if they attack them outside their visibility range. Currently, they have attack range of 1500 units, player's horizontal vision is 1200 units (less in case of vertical vision). So far these are supposed to be bosses and player probably should not really try to run away from them. They do emit hum sound which can help identify where they are. I think them as well as boss version of S-entity could have an additional mode where they would not be as much of a nuisance and won't have as many hitpoints. Corvettes as well as S-entities do attack their targets from any range for about 3 seconds after they been hit, so they will try to punish off-screen shooting players. Corvettes do also have quite low precision and alternate attack mode does give some time to hide. Speaking of player hitpoints - it is quite possible that singleplayer modes might give more hitpoints to player versus cooperative campaign case where amount of hitpoints is probably better to divide by number of players +/- some bonuses. But this is a balance topic, it is a pre-release type of discussion. > But that entirely depends on how it is set up. I think would be fair that enemies outside your screen would in a way lose sight of you and then fire blindly to where they think you are. AI characters can do that (configurable on per-AI basis), but Corvettes actually have somewhat different behavior logic. I think it can be kind of interesting to make different entities behave differently. > Cryo Grenades now as well? At some point, you gotta show all the different types of barrels and grenades because at this rate every new enemy could be carrying a new gadget to throw at me. But in a way that makes it even more fun to discover new enemy tactics later in the game. I think this one was obvious an one so perhaps it doesn't count as spoiler :P These can freeze teleport grenades and delay teleport sequence. > Being able to reduce the damage taken to certain characters' limbs is actually pretty nice. Would love to use it to create armored opponents that require the player to have good aim and maybe even outflank them to kill them effectively. > Quite excited to see what I could do with that. So far there is no front/back damage scaling but could be added later. > That's all I got for you this time Eric. Excited to see what you have in store next month! Thank you ^^
UnrealCrash
2024-10-13 17:09:15 +0000 UTCHey Eric! Glad to see another post. 15 minutes was more than I expected but nice to get to see. The Corvette fight was pretty cool. My only worry is how they can engage and fight the player even after leaving the screen. It is not much of a problem just a worry as enemies with powerful weaponry or very skilled in combat could become a nuisance for players to deal with if they attack them outside their visibility range. But that entirely depends on how it is set up. I think would be fair that enemies outside your screen would in a way lose sight of you and then fire blindly to where they think you are. Cryo Grenades now as well? At some point, you gotta show all the different types of barrels and grenades because at this rate every new enemy could be carrying a new gadget to throw at me. But in a way that makes it even more fun to discover new enemy tactics later in the game. Being able to reduce the damage taken to certain characters' limbs is actually pretty nice. Would love to use it to create armored opponents that require the player to have good aim and maybe even outflank them to kill them effectively. Quite excited to see what I could do with that. That's all I got for you this time Eric. Excited to see what you have in store next month!
Patty
2024-10-13 02:23:35 +0000 UTCSeeing that explosion at 13:07 and not see a dot of lag gave me so much euphoria…that was so nice to see, my childhood self would go ballistic xD
Ocean Weep
2024-10-08 17:26:24 +0000 UTCIn PB3 I'll focus on both. In PB2 port I'll focus on at least campaign first. Though multiplayer is still very possible.
UnrealCrash
2024-10-08 17:09:28 +0000 UTCRegardless of whether or not you're focused on making the multiplayer first or the campaign first, please make the campaign eventually. It's so fun fighting in slow motion in Plazma Burst
Nucl3ar
2024-10-08 16:40:38 +0000 UTCPB2.5 porting to another language was done in under a month, so I think it could be done even faster. Would be nice to save some audience by the time PB3 is out too.
UnrealCrash
2024-10-08 16:18:31 +0000 UTCThe port would be pretty cool to see if it doesn't damage your workflow on 3.
DukeofLeet
2024-10-08 16:13:29 +0000 UTCThe pb2 port is much appreciated!!
SupremeVoid
2024-10-08 16:09:49 +0000 UTC