1. Nova Drift
  2. News

Nova Drift News

A Deep Dive Into The Soon-To-Be-Released Enemies 2.0 Update

Our next major update, releasing on January 18th, represents the first part of "Enemies 2.0", Nova Drift's largest ever overhaul. Enemies 2.0 will be rolled out in several parts, the first of which focuses on enemy encounters. The update is currently being tested on the Beta Branch, if you'd like to give it a try. We've created special channels on the Discord server for you to discuss the changes and submit feedback. Please keep in mind that the update is not finished and we've still got a lot of work to do, especially on difficulty tuning!

To access the BETA branch on Steam: Right click the game in your Library and go to PROPERTIES, switch to the BETAS tab, and choose the "beta" branch. You might also have to exit Steam and restart it to force the update.

Nothing is set in stone for these updates, but things may go a bit like this:

[h3]Enemies 2.0, Part 1:[/h3] (Launching Jan 18th)
  • Dynamic waves overhaul
  • Enemy formations
  • 6 new enemies & boss overhaul (Station Omega)
  • Battlefield zoom


[h3]Enemies 2.0, Part 2:[/h3]
  • 5 alternate bosses
  • Boss Rush challenge mode
  • Draft challenge mode


[h3]Enemies 2.0, Part 3:[/h3]
  • More new enemies
  • More classic boss overhauls
  • Further refinements to dynamic waves


And as usual, these updates will also contain a whole lot of new stuff to play with, balance changes, quality of life changes, localizations, and other surprises.

[h2]What are DYNAMIC WAVES?[/h2]
Long story short, we've ripped out all of the enemy waves you're used to and replaced them with a system that procedurally generates them. Some people have expressed interest in exactly how they work, so let's break it down!

[h3]Step 1: Choosing The Enemy[/h3]
The first thing the script does is decide which enemy to spawn by picking from a weighted list. Some enemies are a lot more common than others. Some enemies don't have a weight until you've reached a high enough wave to encounter them.



Note that "waveInfo" is outputting exactly what the spawner is doing to both the debug console and the in-game wave log, which is accessible with cheats. This will really help us balance these huge changes during the beta.

It's getting all of this spawn data from a different script where many parameters are defined for the enemies, enemy spawn types, enemy entrances, and enemy formations.



Each enemy has a defined set of ways it can spawn, enemies it prefers to be paired with, and followers it's capable of supporting in formations.

[h3]Step 2: Choosing Spawn Type[/h3]
Next, the spawner must look up the different types of spawns that are valid for the selected enemy types and, again, choose one by weight (some spawns are more common than others). Spawn types determine the position and order enemies spawn in, whether they have followers, and if they do, how the followers behave.



Spawn types include: standard, arc, centered, fleet, pincer, v formation, v formation pincer, spiral, spiral double, spiral triple, box, cascading pincer, cascading pincer opposing, cascading fleet, cascading adjacent, cascading edges, formation: orbit, formation: flank, formation: rank and file, formation: trail, formation: protect, formation: support

[h3]Step 3: Choosing the Enemy Entrance[/h3]
Some enemies can enter the battlefield via a portal or by emerging from the background. This time the entrance is selected randomly from the choices.



[h3]Step 4: Determining Enemy Quantity[/h3]
A lot of factors determine how many enemies should be spawned. First, the script uses triangular distribution to get a base value from a low, mean, and high value derived from the spawn info. Then, it adds some random factor and scales it based on how far the player has progressed. Next it determines if this is going to be a paired wave. Paired waves mean that two dynamic spawns are happening at once, each with reduced enemy quantity.



Paired waves are usually inherently more difficult, so the two waves add up to 85% of the original quantity. (52.5% quantity for the first wave and 32.5% quantity for the paired wave).

Later, in step 6, it'll multiply quantity yet again based on which spawn type is being used.



Spawn types with a high quantity multiplier tend to be easier, distributed gradually, or more infrequent.

Certain enemy types either always repeat (like Saucers) or sometimes repeat (such as Interceptors or Shredder Mines). As the players reach higher waves, these waves are able to repeat more times. There is also a function here that determines how long the delay should be between a repeating wave. This is useful in some spawn types, too, like the spiral spawn.



[h3]Step 5: Enemy Followers[/h3]
One of the most exciting features of Enemies 2.0 are enemy formations.



There's more: Protect (stay between the player and the leader) and Support (cower behind the leader).

To make a formation, enemy follower quantity is first determined using the same method as the leader quantities. Followers may also have the ability to cascade their actions. For instance, if a formation spawns with a leader orbited by 8 Wardens, they might fire one at a time, slightly offset, instead of firing all at once. This makes things a bit more interesting. Also, followers might decide to break off from their leader, one at a time. The values that drive those behaviors are defined here, too.



Formation break off is especially interesting with the new kamikaze unit, the Hammerhead!

[h3]Step 6: Creating Enemy Spawners[/h3]
First, some default values are defined for the enemy spawner to use, many of which are overwritten by the unique needs of each spawn type. Now the script has generated all the variables it needs to tell the spawnEnemies() script what to do! A switch statement contains the spawn conditions for every spawn type that may have previously been selected.



This is code for 3 of the 22 different spawn types.

[h3]The Enemy Spawner[/h3]
The enemy spawner objects are responsible for a lot, too, but covering how those work could be a whole separate blog post. In short, they do the following:

  • Determine, based on what was spawned and how many things were spawned, how much time should be added to the clock before the next wave automatically advances
  • Stores an array of all enemies to spawn, coordinates where they should spawn, and determines their rarity (meaning the enemy could upgrade to elite or champion)
  • Handles creating portals, warnings, etc
  • Sets timers to create the enemy objects at the correct time and place
  • Creates and arranges the enemy's followers, if any
  • Repeat for incremental or repeating spawns, as needed
  • And, finally, silently self destructs and experiences unending peace in the great beyond


But the Dynamic Waves script isn't finished yet...

[h3]Step 7: Creating Paired Waves (And Friends)[/h3]
Almost done. Now, the script sees if a Cherub (a new support enemy) wave is paired with the wave (at no extra charge!). This is something that happens very rarely. Next, paired spawns are handled. If it was determined earlier that the wave would be a paired one, it runs the dynamicWaves script again, this time with instructions to create that specific enemy wave with reduced quantity (and with formations excluded).



[h3]SO! What's Left To Do On The Update?[/h3]
While procedurally generated waves do add massive variety to Nova Drift, I ultimately decided that I did not want to have every possible wave (except bosses) be this unpredictable. There are some particularly mean or wacky things (like the above example) that are much better handled as "mostly curated" waves. I'd like to create a system that takes an array of such handcrafted waves and scales them based on a few simple variables like wave progression. The player would encounter these waves at wave multiples of 5 or 10, instead of Dynamic Waves, when the player is not facing bosses.

Also a bunch of other new stuff is coming that needs wrapping up...







[h3]Thanks For Reading[/h3]
It's been very interesting and extremely challenging crafting this system with the enormous help of our resident "Code Elf", Ultraken. It pulled me wayyy out of my comfort zone, it took half a year to create all the related assets, and I learned an almost overwhelming amount. When I started Nova Drift 7 years ago I was coming from an art background and was barely able to code, relying mostly on Game Maker's "drag 'n drop" functions and forum-copy-pasta. I feel like I've come a long way, this may be the first time I wasn't entirely embarrassed to show the "guts" of our game. Thanks for reading the blog and being a part of that journey with me. I'd also like to thank the other coders on our Discord that were able to provide feedback and guidance.

[h3]Want to help Nova Drift grow?[/h3]
Steam reviews really help! As a tiny operation, Nova Drift relies on its quality and reputation to sell, and reviews also encourage the Steam algorithms to show the game to more people. Please do take a moment to fill out a short review, even if it's only a few words. It just might make a big difference.

Best wishes,

Chimeric

- Upcoming Content in 2021 -



Hello players new and old,

It's time to give some brand new peeks at what's coming up for Nova Drift in 2021. The full details on everything can be found at Chimeric's Blog, but here's a pretty comprehensive review in case you want to keep your experience fully in-Steam...

Quick note - the Nova Drift OST is currently 55% off for the next week!

Enemies 2.0 Progress


[h2]Battlefield Zoom[/h2]

One of the more common complaints about Nova Drift is dying to late-game confusion. Player feedback indicated that things were feeling cramped as waves get into the several hundreds the screen begins to fill and with bullets and explosions. Also, the more tactical enemy formations that we wanted to create required more room to work correctly. We needed a way to control the battlefield size. To mitigate these concerns we added camera zoom functionality allowing us to pan out and view a larger battlefield. In future versions, the game will gradually zoom out as waves advance, or zoom way out for certain big encounters. We also added shiny new parallaxing starfields.

[previewyoutube][/previewyoutube]

[h2]Boss Overhauls[/h2]

In order to make the zoom changes super-noticeable we revamped Station Omega. It was made 70% larger, much bulkier, and more visually interesting. We also gave all of its visual effects a once-over and added some new ones. It's more or less the same fight, but now it is easier to access its vulnerable nodes. Most bosses will similarly receive a revision before we're done and a few will receive drastic overhauls.



[h2]New Enemies[/h2]

Most bosses and many enemies will be overhauled over the course of the Enemies 2.0 updates. Additionally, many brand new enemies and alternate boss encounters will be introduced. Here's a preview of some of them:





[h2]Enemy Formations[/h2]



The backbone of enemies 2.0, enemy formations allow us to assign enemies certain behaviors while their leader exists. Currently there are 6 formations:

  • Trail - Enemies follow their leader in a line
  • Orbit - Enemies orbit their leaders in an ellipse
  • Flank - Enemies flank their leaders at a certain angle
  • Rank and File - Enemies line up rank and file behind their leader
  • Support - Enemies focus on healing and supporting their leader instead of nearby allies
  • Protect - Enemies will place themselves between you and their leader


Discord Upgraded! Come Hang


We've got quite an active discord with a very chill and inclusive community. The dev team is also pretty active there. We recently upgraded the server to level 2 and opened some new channels like #ask-the-devs and #feedback. The latter allows you to submit feedback to a bot that lets players upvote or downvote the suggestion. I'm also quite proud of the #game-dev-help channel, which is a space for current and aspiring developers to learn and collaborate. So... come chat with us!

Finally, please consider leaving a review if you haven't yet - it always helps the game reach new players, which is nice!

Thanks for reading,

- MIles @ Pixeljam / Jeffrey @ Chimeric

SPEEDRUN CONTEST RESULTS

Thanks to everyone for their entries! Here are the official winners... please note that a single person can't win in multiple categories:

WILD META FIRST PLACE: FlashBPanther - 7.46.28 - https://www.twitch.tv/videos/1013064284
NORMAL MODE FIRST PLACE: ngi_ery - 7.35.24 - https://youtu.be/RLCcTWqS7IY

SECOND PLACE (Wild meta): Batotsu El del Mostacho - 8.16.02 - https://www.twitch.tv/videos/1009362772
THIRD PLACE (Wild meta): Idiotica - 9.21.22 - https://www.twitch.tv/videos/1004714155

SECOND PLACE (Normal mode): Ge - 8.03.27 - https://www.youtube.com/watch?v=ZSfnB7rq60Q&t=3s
THIRD PLACE (Normal mode): Shadow Sovereign - 8.15.04 - https://www.youtube.com/watch?v=xdMU-bncF8k&ab_channel=BrandonBurnett

Special Mentions:

Massive Damage Award - Idiotica - https://www.twitch.tv/videos/1004714155
iPhone 15 Award (aka tallest screen) - UDTakeover - https://drive.google.com/file/d/1Vle1ru431G0OOxRWkJEfxahOwWVrCZwI/view?usp=sharing
Pacficist Award - Epileptix - https://youtu.be/pWk6bQcimXs

I'll DM everyone with their prizes. Ping me if you don't get yours...

SPEEDRUN CONTEST STARTS TODAY!

Hello everyone! While Jeffrey (Chimeric) decompresses from the incredible task of moving his entire life and family halfway across the planet, I will be helming the next major event, which will be described right after a brief message that Nova Drift is currently 40% off for the next 13 days, and the soundtrack is 50% off as well. This is a great time to get both things as a bundle for that buddy that enjoys both novas and drifting: https://store.steampowered.com/bundle/12177/Nova_Drift_Game__Soundtrack/

Now onto the main event:

[h2]Nova Drift Speed Run Contest: SERAPH KILL[/h2]

Duration:
Submissions will be accepted between now and May 11th, 2021, 12:00 PM EST.

Submission Rules:
- Time must taken using the built-in Speedrun Mode timer.
- Submissions must be accompanied by video, with your time visible.
- Videos must contain the loadout screen, the full gameplay, and the end game screen. High resolution is preferred, but not required. Feel free to compress the video in order to make upload and download speeds more reasonable.
- Recording must have game sound and no substantial area of the screen blocked.
- Time starts on the first frame the player is visible and stops when the wave 100 Seraph is destroyed. Your time selecting upgrades also counts!
- No mods or game altering software may be used.
- Links to your video may posted in the #contests-submissions channel on Discord (https://discord.gg/Zp2MkPJ) or in the newly created Contest Submission Steam discussion: . You can chat about the contest in #contests-chat on Discord.

Game Rules:
-The wave 100 Seraph must be destroyed.
-In the rare instance that the Seraph is damaged by a singularity or comet, the run will be considered invalid.
-All Challenge Modes must be unlocked and turned on. Practice Game Mode must be disabled.
-If you enable Wild Metamorphosis, your submission will be entered into the WILD META contest, else you will be entered into the NORMAL contest.

Prizes (for both contests):
5 Nova Drift and Nova Drift OST keys to give to your buddies, plus public recognition!
And if you want it: The Pixeljam Complete game bundle (Itch.io key)

Other prizes will be given to second and third place, plus perhaps bonuses for extra creative speedrunning solutions :)

FAQ:
Q) Loadout screen?
A) The game over screen that shows all the mods that created your build.

Q) How to turn on the timer?
A) In the game settings screen

Q) After I beat Seraph should I just kill my player?
A) Probably, unless you want the video to be way longer :slight_smile:

Q) Can I upload the video to youtube or other similar platform?
A) Sure, just send us the link to the youtube video. However you want to host and share the video with us is fine.

Q) Can I submit multiple videos as I do better and better?
A) Yes!

Q) Will the timer keep going after I beat Seraph?
A) Yes, but the sub-timers will show the final time to beat Seraph, and that's the time we'll use.

Good luck! Now get runnin'...

- Version 0.31.19: SYZYGY UPDATE Is Live -

Hello all,

We're excited to finally launch the latest major update to Nova Drift, titled SYZYGY, which we assure you is a real word.

[previewyoutube][/previewyoutube]

View the PATCH NOTES for the full details of the new features and changes, but here are the highlights:

  • Speedrun Mode has been added to the Settings menu. While this is toggled, you'll always see your game time and wave. Additionally, the game will display your splits for each boss you defeat and submit to the new leaderboard once Seraph is defeated (wave 100).
  • 2 new music tracks have been added: Parallelism (in normal mode) and its remix Parallelism (Freed) (in Wild Meta mode)
  • Added a unique animation and sound effect for player death that scales in intensity as your level (for that run) increases. This is powered the shiny brand new Visual FX Engine that will be used in other parts of the game in future updates.
  • Major reworks for Singular Strike, Warp Shield, Salvo & Vortex.
  • Over 100 balance adjustments and bug fixes!


April 13 UPDATE: Hotfix V. 0.31.20 is now live, fixing several construct-related crashes.

This is also an update to keep you busy while you wait for the first round of enemy improvements and additions. With this update, we have switched to the new enemy "engine" in preparation for those changes, so there may be some growing pains to iron out. Let us know if anything is amiss in the bugs discussion or on Discord.

As usual, please leave a review for the game if you have not yet: https://store.steampowered.com/recommended/recommendgame/858210/ - this helps a lot with getting the game in front of new players.

With this update complete, we are now prepared to focus fully on the Enemies 2.0 updates we discussed in previous posts. To be released over many small incremental updates, Enemies 2.0 will bring new enemies, fresh enemy behaviors and formations, enemy support roles, alternate bosses, new power ups, secrets, and reworks to existing enemy content, both mechanical and visual. Beyond raising the bar on enemies, the overhaul aims to improve Nova Drift's variety, scaling, and fairness, while emphasizing tactical gameplay, improving build versatility, and reducing general chaos and confusion. It's a Nova Drift renaissance!

Enjoy the update, and take care :)

-Miles @ Pixeljam