Unreal Engine 4 – Sorting by Arbitrary Properties

When creating the File Manager and Inventory screens for Waves² I found myself needing to sort lots of arrays of various types by largely arbitrary properties. I adapted this snippet to be able to sort arrays of either objects or structs by almost any UProperty within them. You’ll have to implement sorting by structures yourself but this took care of sorting tables full of strings or numerical values. Continue reading

Waves² – Items and Files

Disclaimer: This topic has nothing to do with Arcade (soon to be renamed to “Arena”).

In case the giant “Coming in Alpha 5” on the Inventory screen wasn’t a big clue I’m working on the Inventory and RPG parts of GRID for the next update.

I just today got the Shop fully functional and wanted to solicit some opinions on the bit that comes next.

The Marketplace

The Marketplace is where Items of all kinds are sold to aspiring Hackers. The primary Physical items are Hardware and Boosters and the Digital Items are Scripts and eBooks.

Physical Items must be delivered before they can be used while Digital items are added to your Purchased Files instantly.

Whenever you sell anything (be it physical or digital) you will instantly receive payment and the Item or File will be removed.

Continue reading

Alpha 4 Is Live (Patch Notes)

Leaderboards have been reset for all game modes.

Major Changes

  • Complete overhaul of enemy spawning AI.
  • Complete overhaul of GRID mode.
  • Dive Mode Added.
  • Chase Mode has been Redesigned.
  • Gauss Rifle Direct damage improved.
  • MALLARD Direct damage improved significantly.
  • Enemy balance has been adjusted.

Minor Updates

Too many to list. This update includes A LOT of small changes and I honestly can’t list all of them.

Spawning AI Overhaul

The spawning AI has changed significantly although I have attempted to keep the overall difficulty the same. The AI now combines different Tactics (a bit like Patterns) with different Enemies as if it is playing a Card game. It earns Mana as a result of the Player’s actions and by playing “easy” cards and then spends that Mana on “hard” cards.

This AI is also at the core of how the Administrator AI in the GRID works (see below).

The overall result is that Enemy types are no longer limited by the players level and the Ambushes are no longer limited by time. This should result in a faster ramp-up for good players with more ambushes occurring more frequently and in combinations previously not seen.

GRID Overhaul

The GRID mode as it existed previously is no more. Alpha 4 is a stepping stone to a complete overhaul of the mode into a complete Roguelike Campaign mode.

You are a Hacker working on behalf of a Benefactor whose goal is to gain Notoriety by infiltrating Networks, stealing Files and crashing Servers.

When you start a new game of the GRID you must choose a Difficulty, Character, benefactor and Rig (Currently only 1 of each is available). You can also change your starting Loadout using Items you have unlocked via Arcade modes.

You can have up to 8 GRID games in progress at a time and can load old games from the Game Manager screen.

On the main GRID Navigation screen you will see your hackers information on the left and The GRID on the right.

The layout of the Servers in the GRID is procedurally generated and there will be gaps where no Server exists. Your Hacker has a location and the Servers you can interact with are indicated by the red outline.

The AI installs ICE onto each Server that changes what kind of enemies you will encounter. Each Server additionally has a Mission to complete. Currently there are only 2 but this is set to expand during Beta.

Clicking on a Server will select it then clicking on it again will open the context menu. The top Icon is “Connect” and it will begin a “Run” on that Server. The bottom Icon is “Bypass” and will change your location to that Server assuming you have already completed it.


During a Run you will encounter Structures that look like large Towers. These are Firewalls and they prevent you from progressing to the next level. Destroying all the Firewalls in a level will open a Portal and sitting in the Portal for 3 seconds will transport you to the next Level.

Mission: Recon

During a Recon mission you will have to reach a specific Level and destroy all the Firewalls you encounter to open the Exit.

Mission: Data Theft

Depending on the Mission you are performing different Structures may appear such as a blue Database on the Data Theft Mission. Destroy this Structure and collect the File it drops to start a download from it. Once the Download is complete the Exit will open and you can Portal out of the Server with your prize.

Dive Mode

Dive Mode is an Arcade variant of the gameplay developed for the GRID. Similar to Rush you start with 60 seconds on the clock and lose 10 seconds each time you die. The only way to gain time is to destroy the Firewalls in each Level and Portal to the next Level.

Chase Mode

Chase Mode has undergone a redesign. Instead of the checkpoints resetting the timer to 5 seconds each Checkpoint now rewards you 2 seconds of additional time. This allows you to build up a reserve of time by moving between checkpoints quickly.

Alpha 4 – Soon. Also Gifs.

Assuming nothing terrible happens Alpha 4 drops next week.

I will be updating the Preview branch with an Alpha 4 RC hopefully tonight (Sunday the 12th of March) so those of you who enjoy finding crash bugs can go to town on it and do all the things I never thought to try.

Alpha 4 changes around game balance quite a bit so there will be a Leaderboard wipe to accompany it’s release.

It also looks more spiffy.

Continue reading

Waves² Alpha 4 Preview and Card Game AI

The “Unstable” branch is no more! Long Live the “Preview” branch!

Since Unstable was originally created for testing the Shipping build of the game (which is now the standard version everybody uses) it has been removed and replaced with a new branch called “Preview” which is going to be used to test upcoming major updates.

Anybody can use the Preview branch and there is no password required. Just be aware that things are far more likely to not work correctly/be balanced/be fun in this version.

To kick everything off the Preview branch has been updated with the first Alpha 4 Preview build.

After many weeks of work the Card Game AI system and Modular game modes tech is in place. From the point of view of the players you won’t see any obvious differences. What you do as a player hasn’t changed AT ALL. The main difference is in how content is authored and how enemies are spawned which I will go over below. Continue reading

Waves² Alpha 4 – What is it?

Alpha 3 has had it’s final patch today bringing the total number of Items up to 36 and thee total number of Item combinations to 46,656 (not counting the ways you can distribute the Upgrade points which I don’t know how to calculate but is immense).
That means I’ve started working on the Alpha 4 update today and wanted you all to know what’s going to be in store.

Now as a quick aside I’d like to mention that there is a backstory of a sort to Waves² it’s just never really been a prominent part of the game. The idea is that the game itself is an operating system used by hackers to navigate Cyberspace. That’s why enemies are called Bugs and Viruses and why every Arena that gets generated expresses it’s seed value as an IP address (that plus they are much shorter and easier to remember than 32bit integers).

Continue reading

Unreal Engine 4 & Merch


Firstly there is a new button up there in the menu called “Merch”, click this and it will take you to a store where you will be able to buy Squid In A Box merchandise like T-Shirts and mugs. Aside from buying the games buying some Merch is the best way you can help support me in developing new products. Right now there are 2 T-Shirt Designs available in mens and womens sizes.



Waves 2

Those that have been following the facebook page or my twitter will have noticed that over the last couple of months I’ve been hard at work porting Waves from the old Unreal Development Kit to the new Unreal Engine 4.

This is part of a project to bring you all a lovely shiny sequel to Waves (code named Waves 2: Wave Harder) in order to help fund Notorious (previously Waves: Arena Tactics).

Hexagons. Fahsahnds of em!

Week one. The Arena is built.

The port is the first step on the road to a sequel, UE4 only uses C++ and I haven’t used C++ in about 5 years and even then only sparingly. With the highly favorable royalty terms(5% vs 25% for UDK) of UE4 I couldn’t justify carrying on development of Notorious on the older engine but Notorious is such a large project I couldn’t afford to spend a year porting the (far more complex) code for that game when I can barely remember how to C++.


Week two. How many enemies can we get working at once?

So far about 80% of the gameplay code is ported over to the new engine but there is still lots left to go with all the non-gameplay code such as GUI, Steam integration, leaderboards etc.


Week three. Killing enemies is a thing.

Everything is getting something of a face lift as I implement it as the engine has subtle differences which makes things possible that I couldn’t do before like GPU accelerated particle effects.


Week four. The HUD is ported over.

There is also a fair bit of code from Notorious in here as I just found better ways of doing things while I was working on that game and it was silly not to take advantage of them. The Enemies now have multiple AI behaviors and can prioritize targets which makes the possibility of multiplayer/co-op a reality now.


Week I’m not sure, lets say seven. More enemies get ported over.

The actual game modes have been made easier to author as well with the horrible Kismet powered system I was using before being replaced with a Hierarchical behavior tree which allows the game to look at the game state and make decisions about what is more appropriate to spawn to keep the game fun. That last bit will likely be where 90% of my balancing time goes I’m sure.


Week probably eight. The self replicating Blooms that make combos work appear for the first time.

This project also lets me go back and fix a lot of the things I didn’t like about Waves like the slow friends leaderboards and the way that after a while you could chain bombs almost forever.


Yesterday! The last of the non-boss enemies is ported over.

This is just the porting stage though. This is so I can get used to using C++ again and have a code base to work off and develop an actual Sequel. Most of the old game modes will return; although Challenge will be replaced with a completely new mode inspired by the Adventure mode in Hyrule Warriors, but they will be tweaked quite a lot and the details will be different. There will be some new enemies as well as the old ones (The Evader is now 200% more annoying) and some new weapon options borrowed from Notorious.

Keep an eye on here and the Facebook page for updates as I will be making Alpha access for early adopters available before the end of the year and should have a short video update available next week.