Improving the battle-system in Pokemon

The problem with PP

I mentioned in my previous post that I don’t consider the PP-system in Pokemon a very good system.
It’s a means to limit the use of stronger moves, but it’s not very effective at that and it mostly just causes annoyance.
Or to quote myself from my previous post: For battles that matter, you generally make sure to have full PP before battle, effectively making PP irrelevant, as you’ll rarely run out of PP for any move within a single battle (except rarely for some specific powerful moves that have only 5 maxPP). Outside of these battles, it just feels annoying when you have to heal at a pokecenter when you’re pokemon are in full health, just because a move ran out of PP.

Not only that, but it’s (what I think is) the reason Pokemon doesn’t use a move-learning/remembering system like Ni no Kuni.
You might argue that not having the current PP-system wouldn’t necessary mean that Pokemon would switch to the Ni no Kuni system, but I really think they would, as it seems like they (=Nintendo/GameFreak) are already trying to make it more like that.
For one, they added Move Relearners, which are NPCs that can make your pokemon relearn all the moves they could learn at a lower level.
And they made TMs be reusable, which is a terrible decision IMO, as it causes more pokemon to know the same moves, decreasing variety.
These are both attempts to make it more like the Ni no Kuni system, but they’re not as good as just being able to choose the moves at any given time outside of battle. (and they should revert the TM change)


So I propose the following system to replace the PP system:
Instead of having PP per move, every move has a cooldown, of either 0, 1, 2 or 3 turns.
Moves with a 0 turn-cooldown, can effectively be used every turn, moves with a 1 turn-cooldown every other turn, etc.
Making the maximum 3 turns will ensure that there’s always atleast 1 move that can be done (if you have 4 moves).
In general, moves that currently have high maxPP, would get a low cooldown, and moves with low maxPP, would get a high cooldown.

For example:

Pokemon PP Moves

A pokemon with it’s moves and their respective PP

Pokemon Cooldown Moves

Would become this when using the cooldown system

My idea is to have these cooldowns be reset outside of battle, so all battles start with all moves usable, but switched out pokemon would leave their cooldowns as they are. (So a pokemon has to be in battle for their moves’ cooldowns to reset.) Though I suppose switched in pokemon should have their cooldowns be lowered by 1, seeing as the player already loses a turn switching that pokemon in.

I made a beautiful mockup showing how it would work in battle:

pokemon cooldown moves

The cooldown system in action (opponent’s actions aren’t depicted).
Note that dig is a 2-turn move

I think this system could be a better way to make player’s think about what moves to use, and can cause battles to be more strategically interesting. All without causing the annoyance and hindrance of PP.

Improving the moves-system in Pokemon

I don’t know why, but I recently got in the pokemon-mood again. That is, in the mood of thinking about ideas to improve the pokemon games.

One thing I have thought often, is that I think it would be better if they made pokemon learn more than just 4 moves.
I don’t mean they should have more than 4 moves at their disposal in battle, but the player should be able to pick the pokemon’s 4 battle-moves, out of a list of all the moves this pokemon has learned, outside of battle. Like Ni no Kuni did.

Now it isn’t like this in pokemon, and I’m sure the reason isn’t because the people at Game Freak / Nintendo have never thought about it. (And even if they hadn’t, Ni no Kuni happened)
For a long time I’ve wondered what that reason could be, as IMO, the Ni no Kuni moves-system is better in every way.
But I think I finally realized what the reason is, and it’s as small as it is stupid;
it’s because of the Power Points.

See Power Points, or PP, is pokemon’s version of mana or MP or whatever you want to call it, but instead of there being 1 mana pool per creature, it’s per move.
The use of mana-cost is generally to have some way of limiting the player’s use of strong abilities, preventing the player from using only his strongest move(s) without thinking.
In pokemon this is no different, by having stronger moves have less max PP, they intend to have the player use these sparingly, only when he needs to.

The reason Ni no Kuni can have their moves-system, and why pokemon can’t (at first glance at least), is because in Ni no Kuni moves don’t have PP, but simply use the character’s mana-pool. Switching moves outside of battle has no effect on the mana pool, so there’s no problem. But if the pokemon games would allow this, player’s could just switch moves that ran out of PP with other moves, drastically postponing running out of PP.

Now one might say that isn’t necessarily a bad thing.
For one, the current PP system isn’t a very good system to be honest, it’s mostly just annoying; For battles that matter, you generally make sure to have full PP before battle, effectively making PP irrelevant, as you’ll rarely run out of PP for any move within a single battle (except rarely for some specific powerfull moves that have only 5 maxPP). Outside of these battles, it just feels annoying when you have to heal at a pokecenter when you’re pokemon are in full health, just because a move ran out of PP.
Another thing is that it would still stimulate players to use lots of different moves, rather than using the same old all the time.

But if there’s one thing the different pokemon games have taught me about Game Freak / Nintendo, it’s that they don’t like to make “drastic” changes to their winning formula if they don’t have to.

So I propose a simple solution that allows the Ni no Kuni moves-system, without it ‘breaking’ the PP system.
And that is to simply take over the PP amount of the old move, when switching it for an other move, in relation to their maxPP.
For example: I have a charmeleon that has the move ’ember’ with 10 PP of its 25 maxPP set as 1 of his 4 battle moves, and I want to switch it for ‘flamethrower’ which has 15 maxPP. Doing so will result in having ‘flamethrower’ with 6/15 PP. As 10 out of 22 PP is equal to 40%, and 6 out of 15 PP is also 40%:
10 / 25 = 0.4
0.4 x 15 = 6

That way the PP system isn’t undermined when switching moves.

Now if you’re wondering “but what when the result isn’t an integer?”
Then we have to get technical:
The solution is to store a floating point number internally, rather than an integer, for the moves current PP. But to the player we display this number floored to an integer. We then consider a move out of PP whenever it’s lower than 1.

And there we have it, a clean solution to the PP issue.
(Oh god, PP issue, I just noticed how that sounds)

At least that’s what I thought, until I realized that this system could be easily abused to make a move replenish PP, by switching it out, and then switching it back in for an other move, completely undermining the PP system.

Sigh, so much for a non-“drastic” solution.
I add the “” because I personally don’t find any of these changes to be drastic, but I feel Nintendo probably would.

Anyway, my point was simply that I think the Ni no Kuni system would be favorable over the current system, it just may need a small workaround for the pp system.
They could just use a mana pool like most other jrpgs use, but I have another idea, albeit just as drastic (or even more so), but I’m saving that for an other post.

The problem with the random encounters in Pokemon

I loved Pokemon blue and gold back in the day, but haven’t really played any Pokemon games ever since. I’ve had briefly tried some of the newer ones, but they couldn’t spark my interest for the lack of innovation (And that’s the main problem with the Pokemon games really, they’re all essentially the same game).

Now recently I borrowed Pokemon Black from someone, and while it wasn’t as bad as I feared, I’m reminded of all the things it could have been but isn’t.

The issue

Now there are tons of things to comment on, but writing it all down would take forever, so I’m just gonna talk about what I think is the biggest issue (or at least one of).
Namely the random encounters.
The thing about it is that while it’s the main thing you do in the game, I’m pretty sure that on average a player spends more than 50% of the time in a random encounter, nobody likes doing it.
It just so extremely tedious and annoying.

I have often thought (as have others) the main reason for this is just the very nature of turn based combat, that they’re just outdated. But gym battles and other “boss”-battles have showed me that that isn’t necessarily the case.
These turn-based battles can be fun and exciting, mostly when challenging, but just not when encountering the same pokemon for the 10th time in a couple of steps.

So the main thing that needs to be changed, is how we experience these random encounters.

But before thinking of concrete ideas to improve random encounters, we first have to understand their purpose.

why does Pokemon have random encounters? or jrpgs in general?


I would say the purpose of random encounters in jrpgs is to provide a way of having continues obstacles for the player while traversing the world. And (generally) the main way for the player’s character(s) to develop and become stronger.

Now let’s not mistake obstacles for challenges. random encounters generally aren’t there to provide a real challenge to the player, at least definitely not in Pokemon.
And there’s a good reason for that, a game needs to alternate the difficulty, having every battle be challenging could possibly be worse than having no battle be challenging. So having the random encounters in general not be challenging is probably the best idea. (That way important battles can be)

An important difference between random encounters and fixed battles, is that the former isn’t linked to the progression through the campaign/story, but only to the players own speed and interest in discovering the world, it provides a freer kind of obstacles basically.

But Pokemon specifically has another purpose for random encounters, namely to introduce the player to new pokemon and allow him to capture them and expand/alter his team.

Now i would argue that Pokemon already has something else to provide continues obstacles, and as the main way to gain experience (points), namely npc trainers, littered over the world as an obstacle in the player’s path.
There are so many of them that there really isn’t much point in having random encounters for this purpose, especially since they aren’t challenging to begin with, they’re just obstacles, so the only purpose remaining is for the user to encounter and capture new pokemon.
But this can be done differently, and more importantly, way less tedious.


Removing the “obstacle”-purpose, allows for some changes to the random encounters:

First of, skip the long battle-intro. I can understand a battle intro for important fights, but not for random encounters, it is quite literally a complete waste of time.
Also, allow the player to run from battle immediately.

To make the battles less tedious, it could also be a good idea to differentiate them more from trainer battles, by changing the battle mechanic a little. For example, by having your turns have a time limit, making the wild pokemon attack if you wait to long. (Which would fit perfectly with the lore, as wild pokemon don’t have to follow the rules of trainer battles)

And that brings me to my main suggestion to improve random encounters:
Since the DS, the games have always been on 2 screens, but let’s be honest here, it doesn’t really need to have the battle menu take up an entire screen.
This got me thinking, for random encounters, we could have the game world on 1 screen, while the other screen shows the battle. This way the player can keep walking when encountering a wild pokemon, and run away from battles by actually walking away.
The wild pokemon could be shown on the world screen as well, and having it go out of screen would be equal to successfully running away.
The battle could have time-based turns, so if you don’t get away fast enough your pokemon can still get hit.


Anyway, you might not agree with my solution for the random encounters, but I really think everyone should agree that they need to change.

I know I’m kinda simplifying everything in this post here, but I feel my statement still holds true.

Worn Edges

Worn Edges

WORN EDGES is a tool I created in 2013 that allows the user to generate a worn look (amongst other things) for their props. It is written as a Unity3D editor extension (as such it only works within unity).
I wrote a small post on it when it was early in development, you can see it here.

Tori, before and after using the WORN EDGES tool

It works by generating a lot of different maps, which get combined into a single “combined map”, which details the level of wornness for each pixel of the texture. This combined map is in turn used to alter the original, clean, texture.

a simple example of the principle
a simple example of the principle

The tool can create a lot of different maps:

  • 3d, 2d and 1d noise map
  • sharpness map
  • ambient occlusion map
  • directional occlusion map
  • angle falloff map
  • distance map
  • wood map
  • mask map

How these maps are created and combined is fully customizable, to create the effect the user desires.
As such, it can create more than just a worn edges look (see screenshot below).
tikis with different maps

In general, for just a worn edges look, only the 3d noise, ambient occlusion and sharpness maps are used. The other maps are generally for more specific effects (see screenshot above).

The models this tool is used on should have a clean UV layout, without overlapping triangles (although symmetrical or otherwise identical geometry can often share uv-space without a problem). But it can also bake everything to a 2nd set of UVs, for example the auto-generated lightmap UVs (that is often used in Unity3D). As such you can actually also use this to bake multiple textures with overlapping UVs into a single texture that uses these 2nd UVs.

wooden - worn edges
ball_variations 2_ballDevelopment
worn (edges) (worn) edges

It’s available on the Unity Asset Store.

Here’s a relatively recent (at the time of writing) demonstration movie:

and here’s an older demonstration (a bit outdated, but still relevant):
(Unfortunately though, it is kind of slow)

Golden Circle Level

The GoldenCircle Level is the newest for the Tacx Trainer Software Virtual Reality (see my previous post on this software here). It’s the biggest yet, containing more than 40 km of road, in a region of 4 x 4 km.

The level has an oriental theme, and consists of extremely varied Chinese and Japanese scenery.

I created the full Golden Circle Level, the bulk of the work was done in Spring and Summer of 2014.

GoldenCircle GoldenCircle
GoldenCircle GoldenCircle
GoldenCircle GoldenCircle GoldenCircle
GoldenCircle GoldenCircle GoldenCircle

More screenshots can be found on Flickr.



SNOWIFY is a tool I created early 2013 that allows the user to generate thick packs of snow on any prop.
For when a simple snow shader isn’t enough.

It started of as a hobby project; I had just had to make a snow level for work (more precisely, a snowed version of an existing level), for which I had created a couple of simple snow shaders (using the angle of the surface normal to determine snowiness).
But when making that level, I found that in some cases it would have looked better if the snow had a volume, rather than being flat.
So afterwards I came up with an idea to create snow meshes based on the mesh of the object it was resting on, and started working on a tool to do that in my spare time.

Since I nowadays work primarily in the Unity3D engine, I made this tool for use in Unity.

houses with snow

The tool allows for complete control over the snow’s thickness, angle, direction, material, smoothness, and various other settings.
The snow meshes are also automatically unwrapped and textured.

jeep with snow

It’s available on the Unity Asset Store.



Snowify was used by Hinterland Studios for the creation of their game “The Long Dark”:
(it’s being listed as one of their favorite packages from the Unity Asset Store)

Projection Correction

Some time ago I had to take a bunch of screenshots of the TTS VR for advertising purposes.
They needed a lot of screenshot for various formats (web banners, magazines, …),
so they tend to recrop the screenshots I send them a lot, depending on the need and space,
because of that I have to add some extra space outside of the actual screenshots, which I simply do by increasing the fov of the camera I render the screenshots with.

The thing is though, that the higher the fov, the more perspective distortion you get away from the center.
(a logical result for a projection of a 3d space onto flat plane)
This isn’t essentially a bad thing though, it’s actually correct, if the image is viewed from straight in front of the center, and at the right distance, so it’s looked at with the same angular size as the image was made (the fov).

The problem, is that these screenshots sometimes get cropped in extreme ways, by which I mean, far to one side, moving focus away from the center.
This causes the image to look strange, as the content is skewed and stretched.

So I decided to make something to counter that.

I figured that if the 2d space that was projected on was a spherical shell instead of a flat plane, there would be no distortion.
A spherical shell however can not be mapped to a flat plane without distortion (obviously, just look at maps of the earth),
but, a cylindrical shell totally can.

So, using math and logic (whoo) I created a post effect that manipulates the image as if it was projected on a cylinder (with either a horizontal or a vertical axis), and then unfolded.

This way it can make sure there is no distortion either horizontally, or vertically, depending on whether the image is in landscape or portrait.
Because of this, you can move focus in this direction (horizontal or vertical), without it looking off.
A side effect of this is that you can easily stitch together screenshots made by rotating around the cylinder-axis.

rendered with projection correctionAn extreme example, the horizontal fov is more than 200 degrees, this isn’t even possible with normal rendering (only <180 degrees).


There are a few setbacks however,
firstly, unlike normally (projecting on a flat plane), not all straight lines (in 3D) are straight in the image, some are curved,
secondly, a lot of space is wasted in the image (the black parts), because of the extra cylinder-mapping, which means you have to render at a higher resolution for the same detail.
and lastly (and definately least), there is no filtering done in the cylinder-mapping, so the result can be a bit jaggy (and moreso the bigger the fov is).

I also made a second mode, which is a bit simpler and less extreme,
as it only streches 1 of the axes, just so proportions look correcter. This one is actually more difficult to explain, just look at the pictures.


I’ve made this post effect available for free on the Unity Asset Store:

It requires a Unity Pro license in order to work though.