1. Paper Planet
  2. News

Paper Planet News

Hotfix r2536

Changelog:
  • Aged Warspear now gives +3 damage immediately upon pickup.
  • The seed input box now accepts any string of characters, not just numbers.
  • Fixed NullReferenceException in Tyrant's Crown.
  • Fixed NullReferenceException in Super Firework Bullets.
  • Fixed NullReferenceException in Fractal Bullets.
  • Fixed the bullet mask setting checkbox not being correctly marked on initial load.
  • The bullet mask setting will now default to off instead of on.
  • Bullet color changes will no longer rarely carry over through restarts.
  • Changing bullet sprites now correctly handles deleted tracker instances. (Fla(s)k Cannon)
  • Fixed removing an item that gives you max HP also removing health.
  • Fixed the RemoveAll function for items not removing the last item, potentially causing issues.
  • Fixed Superglue's stuck bullets not rotating along with the enemy they're stuck to.
  • Fixed Wildfire's "Cookies" dialogue missing it's sound effect.
  • Fixed item removal not correctly removing charged items.

Hotfix r2498

[h2]Changelog[/h2]
  • Fixed Blackhole's NullReferenceException error when it (somehow) gets something that isn't an enemy.
  • Fixed Bubble Bullets trying to kill its bubble tracker animation which might already be deleted.
  • Fixed Burst Laser's charged bullet firing breaking when firing a charged shot pattern.
  • Fixed Null Value exception in bullet physics.
  • Bullet Opacity is now applied correctly on restart.

Paper Planet: Bullet Update | r2491



Hey there! Sirp the system dev here. We've been busy.

It's been quite a while since our last update, hasn't it? But, know that that time has been spent toiling away to make the game as performant as possible. With a brand new bullet system, and every single item in the game re-written to work more efficiently, synergistically, and do as little as possible, performance has been dramatically improved. If you have a batter computer than me (which I doubt you're running on a desktop from 2009), then you can expect even better results than I get: Gone are the days of 3,000 bullets causing noticeable framerate issues. Try 10,000 before you dip below 60! If you want to learn a little about how this was done, head to the last section of this post.

[h2]Alpha OST Release[/h2]
Willops finally did it! The Paper Planet OST has been uploaded to YouTube for the pleasure of your ears.
[previewyoutube][/previewyoutube]

[h2]What's with the version number?[/h2]
We've (actually just me, really) have implemented a new versioning system. The version number represents the number of Unity builds we have done since its implementation in May. This way, we don't have to worry about assigning version numbers arbitrarily. It also shows up in Unity's cloud diagnostics system, so we can now differentiate between releases when looking at errors logged by that.

[h2]Going Forwards[/h2]
With this major update, the Paper Planet demo branch will no longer be getting new content as we move into a beta stage of closed testing. If you wish to participate, please visit the Discord. The demo will still get bugfixes for any major and/or minor issues that crop up.

Changelog

[h2]Additions[/h2]
  • Brand new system for handling bullets, which should improve performance.
  • Added a whopping 26 new items, the most of any single update yet! Can you name all the references?
  • Gave a texture to Wildfire Can's damage aura, so you can actually tell it has one.
  • You can now delete your saves from the title screen. Very important.
  • Added a "bullet mask" option to settings. This enables/disables the bullet mask, which makes player bullets not render around certain objects. (enemy bullets, beams, the player, etc.)
  • Added an epilepsy warning to the splash sequence.
  • Whenever an error occurs, a red box appears in the lower right corner, tallying up the total errors that have occurred during that run. If you see the box, something's probably gone wrong, and you should tell us!

[h2]Item Changes[/h2]
  • Changed how shield items affect the shield. Different items are now given a priority, and the one with the highest priority will be the shield, while the rest will use their secondary effects to change it. (Currently: Cursed Chip > Shield Projector > Violet's Petals)
  • Medkit's claw attack now triggers some item effects, such as Rocket's explosion.
  • Increased Medkit's possible attack distance. (3.5 -> 4)
  • The bullets that Yellow Gem fires now transfer their gem-ness to bullets created by them, allowing Yellow Gem to control bullets made by items like Split Bullets and Firework Bullets.
  • Moved Railgun's bullet effect animation backwards, so the bullet is closer to the front.
  • Shield Cell has been rewritten and un-hardcoded. Because it was disgustingly implemented before.
  • Castle Crusher now works correctly with Fla(s)k Cannon, Burst Laser, and Mirror Bullets.
  • Bowling Ball now increases the size of charged bullets by 50%.
  • Nerfed Zenith's Spare Hat. It now only spawns 1 bullet instead of the full player shot pattern.
  • Tesla Coil zaps last slightly longer and are released slightly slower due to engine limitations. (0.03 sec -> 0.04 sec)
  • Firework Bullets and Heckfire Bullets now work based on distance traveled instead of a timer.
  • Pong Buddy is now 50% wider like the chonkers lad it is.
  • Sharp Dart piercing increased. (1 -> 2)
  • The math function used by Mirror Bullets to determine the edge of the visible area has been changed, and it now determines the edge correctly no matter where the thing calling it is.
  • Magnet now has a minimum pull distance of 0.5 units.
  • Split Bullets now no longer splits the original bullet after it has split once.
  • "Faulty" Dreamcatcher now shows its stat boosts.
  • Most items that create bullets from other bullets (e.g. Split Bullets, Firework Bullets, Prism Buddy, etc.) now copy the damage, drag, hp, and time alive of the original bullet to the new bullets.
  • Yellow Gem and Rat Buddy are now stackable.
  • Energy Drink now uses the generic item class.
  • Shield Buddy now inherits shield-changing items.
  • Moved the holes on Bowling Ball, so it's actually a bowling ball, and not a coconut.
  • Stumpy's Ukulele's firing sound has been made quieter.

[h2]Other Changes[/h2]
  • Redid the layout of the settings menu.
  • Made the Cruiser, Blaster, Splitterer, Spore Shooter, and Beamers' colliders more accurate.
  • The remaining .wav audio files have been converted to .ogg. Finally.
  • Wildfire's firebomb attack now pushes it backwards.
  • Deimos' laser attack now pushes it backwards.
  • Max Health has been converted into a proper stat.
  • Seeds now generate the entire 32-bit integer range instead of 0 to 100,000.
  • Some enemies have slightly different movement arcs due to changes in rotation calculation (mainly Worm).
  • Shown stat changes are now accumulated in a given frame, then shown if there are any. This way multiple items can adjust the same stat at the same time without overriding each other's shown change.
  • Red projectiles now have a minimum speed of 0.25.
  • Item/Pickup names and descriptions now use separate text boxes. Not that you'll be able to tell. Yet.
  • Enemies and projectiles are now capable of dealing more than 1 damage. (None of them do, though.)
  • Paperclips will no longer spasm in the center of the planet after the planet has exploded.
  • Player inputs and movement have been correctly split between the physics step and update step.
  • Paperclip blip sounds will no longer stack so high as to be deafening, and are also slightly randomized.
  • A few tweaks to the audio controller. There should be less very loud sounds created by lag.

[h2]Bug Fixes[/h2]
  • Fixed Blackhole throwing errors when the enemy it was pulling dies.
  • Bullets spawned from Split Bullets now properly inherit their parent's color and sprite.
  • Fixed bosses not notifying their minion spawns, causing a warning to be thrown upon zone advancement.
  • Fixed Rubber Band Ball not working well with Superglue.
  • Charged bullet textures are now consistently applied when fired.
  • Aura effects are now consistently applied to bullets.
  • Castle Crusher now only plays one firing sound when activating, instead of one per bullet fired. You will no longer become deaf.
  • Fixed Shield Cell's health shield rendering over the pause menu.
  • Fixed a Rat Buddy NullReferenceException.
  • Fixed a Cat's Eye Diamond NullReferenceException.
  • Fixed a Zenith's Spare Hat NullReferenceException.
  • Many enemies that did not disable their colliders when dying now do, so items like Detonator work correctly.
  • Item descriptions now stay visible/invisible in the pause menu even if you hover over them, and no longer show over the pause menu.
  • Teleporters can no longer teleport out of the visible area.
  • Item sprites now correctly assign their positions when spawned, so they can have the sprite be off-center.
  • Items in the pause menu now correctly position their sprites like their in-game counterparts.
  • Item drop sprites now inherit the item sprite's scale.
  • Zenith's trail can no longer get stuck black if you hit him the same frame the trails are enabled.
  • Fixed Violet's swarmer spawn randomizer being weird. It now spawns the correct (random) number of swarmers.
  • When the first of the two Twins dies, bullets are no longer cleared.
  • Blocking a fire bullet/bomb with a shield will no longer spawn the fire in mid-air.
  • Fixed paperclips dropped by enemies getting stuck in the planet under specific circumstances.
  • Boss minions are now properly killed when the boss dies, along with any minion spawn eggs.
  • The combo bar is now filled when combo is paused.
  • Player spotlight now gets disabled on death.

[h2]Nuts n' Bolts[/h2]
Now, with a new bullet system comes brand new physics, so your bullets will be moving very differently from how they used to. This is because I've created an entirely new physics system for movement, and custom collision math optimized for huge numbers of bullets that all interact with very few objects. Both of these systems are tailor-made for the game, which means it's significantly faster than Unity's default physics systems, and only passes around the information we actually need. This also means that changing bullet movement is more fine-tunes - instead of Unity's detailed physics simulation for masses and forces, we just give bullets velocities and drags and let them move from just that.

With bullet rendering, Unity is really bad at it. In Unity, when you set an game object to enabled or disabled, Unity does a lot under the hood, which makes this action incredibly slow. For animated effects that track our bullets (of which there are quite a few), Unity needs to reassemble the animation every time, which makes it even slower. The new bullet system doesn't even use game objects for bullets, and instead draws them and their effects by directly making draw calls to the GPU using Unity's Graphics API, and making heavy use of instancing. There is also minimal cleanup for bullets when they're destroyed, as most of their underlying information is not removed, and is simply overwritten when a new bullet is created to take its place.

For the bullets in the system itself, there is now a fixed, defined difference between different kinds of bullets, but not at a per-bullet level; Rocket explosions contain all the same information as a charged shot from Railgun, Heckfire Bullets fires are fundamentally identical to Cursed Aura auras. Each bullet belongs to a 'manager', which handles everything for bullets that share a sprite or animation. The manager knows what the bullets it handles are, which means that pretty much any item that wants to affect a certain kind of bullet is free to do so simply by only applying to managers with specific characteristics. This dramatically improves performance, as items can restrict themselves to only what they want to affect. Heckfire Bullets is a great example: in the old system, it would look at every single bullet to try to spawn fires, which included the fires it makes itself, which can never make fires, so it spent a lot of time looking at bullets it can't operate on. Now, Heckfire Bullets specifically does not operate on the fires it makes, improving speed dramatically, and it creates this limitation with a single line of code, making it extremely easy for us (and any future modder) to implement these restrictions.

There's one last, really really significant change in regards to this bullet system: as much of it as possible has been multithreaded, which means that Paper Planet now uses all of your CPU instead of just 1 core. This, combined with Unity's Burst compiler (which compiles Unity Job code to native code, which is significantly faster), makes for most of the performance improvements. It also makes it a little bit of a headache to get used to the limitations, because there are now only specific times you can do stuff to bullets. If your game crashes or behaves oddly, please, send us your Player.log file, as it is most likely that we've missed something modifying bullets outside of safe times.

If you want to get more technical specifics, you can ask me directly on our Discord.

Demo Patch 13 Hotfix 2

- Made some unstackable items stackable.
- Removed reinforced core from the regular item pool.
- Buffed whole milk.
- Changed item spawning so seeds are more consistent regardless of choices.
- Nerfed beamer health.

Demo Patch 13 Hotfix 1

[h2]Bug Fixes[/h2]
  • Fixed Tyrant's Crown being very, very laggy.
  • Fixed fire bomb leaving its yellow aura behind.
  • Fixed the title screen missing its music.
  • Fixed Origami Clover's trigger chance being lower than it should've been.
  • Removed an additional old track that was missed the first time.