Pokemon GO fans have been clamouring for one thing ever since the game first launched - actual trainer battles. And, at long last, Niantic has listened.

Yes, PvP battles are finally landing in the Pokemon collector, allowing you to pit your creatures against friends and strangers and see who has the strongest 'mons.

Yet despite having over two years to try and work out how to make battles work, it still feels like the new system could do with a little longer in the oven before it gets pushed worldwide.

Go big or go home

The core battle mechanic will be instantly familiar to Pokemon GO fans. Like in Gym Battles, you'll be tapping furiously to land attacks and build up your special meter before unleashing a big attack on your opponent.

This time around, not only will you be facing a real-life human, but you'll also each have a party of three Pokemon to do battle with, giving you the opportunity to switch around your team to play to their elemental advantages and such.

Your Pokemon can also now learn an extra charge move to use in battle, both in the new mode and in other kinds of battles, offering you some additional tactics to throw into play during fights.

Pokemon GO Trainer Battle Using A Shield

In another twist, you'll also be able to throw down a shield to prevent charge attacks from doing too much damage - but you'll only have a handful to use each battle.

It's a smart compromise on the typical Pokemon battle system, designed to accommodate the faster style of play offered by Pokemon GO - battles aren't supposed to last forever, and do eventually time out if they're going on too long.

But it still doesn't feel complete. Even with the knowledge that our preview builds weren't quite ready yet, we encountered incredible amounts of lag and general slowdown despite being sat right next to our opponents.

There was also plenty of visual bugs, dropped connections, and general confusion brought on by the build. And while this may have just been a preview, it's unclear if Niantic can fix these problems in time for a big launch in "early December".

Up close and personal

All that said, I have some bigger issues with how the battle system is designed. You can't battle just anyone online - you need to physically walk up to another player and scan their phone with yours to trigger a battle.

Niantic is doing this to encourage battles in local events and its own Pokemon GO Fest, which will naturally be filled with like-minded folks ready to battle.

And trainers don't appear on your map anywhere - your location data isn't shared with anyone else, so you're not going to be stalked or anything like that.

Pokemon GO Trainer Battle Special Moves

But it does raise a simple question - what's to stop someone you don't know asking you to battle, getting your phone within their reach, and making off with it?

As much as locally-created tournaments are likely run by people who already know each other, and larger tourneys will have their own security, it seems foolish to just assume that none of these people are incapable of theft.

And worse-case scenarios aside, having to be in close proximity to strangers at something like Pokemon GO Fest and asking them to battle is going to be hell on Earth for anxiety-sufferers and anyone who just straight up hates having other people in their personal space.

There is the option to play remotely with friends - though only with "best" or "ultra" friends - and you can always enjoy the new mode against AI opponents if real people are hard to come by.

Gone

But I can't help but feel a bit uneasy about the whole thing. There's clearly been a lot of thought put into how exactly battling with strangers should be handled, but the current system doesn't feel like the best route possible.

With some time and tweaking, trainer battles in Pokemon GO could be a thing of beauty, further increasing that feeling of really living in a world filled with critters ready to scrap on your order.

How long that will take is still to be seen, however. Pokemon GO's battle system is set to launch in early December - we think you may want to give it some time to iterate before you dive straight in, though.