Marketing & Communication: Round 01

I bet you are curious about my first steps in marketing and communication!
On my side I was nervous, because it is not my usual job — but an indie dev has many roles — so let us see how I did.


First I started to look around for similar games.

I tried to talk about Artillery Royale in their existing game communities. This did not work well. Those communities are already focused on another game and thus not interested in a newcomer. I even quickly look a bit spammy.

Then I switched to a second classic approach: influencers.

Problem is, I do not have an existing network (being my first time as an indie dev). So I started to build up connections with interesting people. This part was quite hard as much of my attempts stayed without response. But by taking the time to select the right people I had a few successes.

My final goal was to get the game streamed on Twitch, so potential players could see it running and get into it. I did not remember exactly how many streams I manage to get, probably 20 or so (and from my perspective it is a good score). But I found out that this did not convert.

Fact is, a twitch streamer, even having 5000 followers will only get a few viewers per stream, and even worse than that, those viewers are interested in the streamer person not in what he/she is streaming.

I also connected with people we call “content creators” — a concept that was new to me at the time — and they played, reviewed and made videos about Artillery Royale. But the people I could connect with do not have a big audience yet. So it fell flat.

This is no excuse but I would say I have two extra disadvantages: 1/ not being English native 2/ not being on the right timezone (while targeting the US), that makes the whole thing even harder.

A big thank you

I may have sounded a bit harsh by saying that none of my effort worked with content creators or streamer. But all the people that connected with me were really nice person. They may not have — yet — the audience to promote Artillery ROyale as I wanted, but it was a pleasure to meet them. Some of whom I really liked to talk with.

Thanks to these incredible people, even if sometime they just say “no”. It always helps.

Current Numbers

In an effort to be transparent, and show to other indie dev how it can be like, those are the number for the first 3 months (starting from zero):

  • Twitter followers: 109
  • Wishlists: 247
  • Sales: 8
  • Revenues (after steam commission — but before taxes): $73
  • Total players: 35

Of course this does not look good, but it has to start from somewhere!
I’m not giving up.

Next Step

I have other strategies to test, the first one is to look for a publisher who could help in the distribution of the game. I am starting to work in that direction.

The second strategy would be advertising, but this need a dedicated budget, and I already exceeded what I could afford for that project.

Ragdoll physics for the win

Ragdoll physics illustration

Ragdoll physics is fun to see in action. 
Ragdoll physics is NOT fun to implement in a full game. 

For sure, I wanted to have ragdoll physics in Artillery Royale.
It’s fun and goes well with the explosions and destructible map. 

As always I checked online for tutorials and I found many of them.
It seemed easy with unity: add a bunch of rigid bodies and capsule colliders linked with hinge joints and… voilà

But what if you already have some animations going on?
Using some anima2D inverse kinematic or similar?
Those tutorials fall short. 

So this is how I did, it’s not that hard but there is a lot of going on. 

But first, please enjoy the result

See the ragdoll physics in action, even pushing the opponent in the way

We have two states: Playing (using idle/run/jump animations), and Receiving damages (ragdoll part).

Playing: the animation (via animator) is active and your anima2D bones move. Great. 
Receiving damages (i.e.: from an explosion): 
– You stop the animation and disable anima2D.
– Save all bones local positions and rotations.
– Activate all your ragdoll related rigid bodies (that will activate the associated colliders etc).
– Add some force to the main bone’s rigid body and let the physics engine do the magic.
– When the main rigid body ends moving you deactivate all the ragdoll rigid bodies.
– Extrapolate the current bones positions/rotations back to their saved state.
– Eventually you restart the animation and you’re back to Playing state. 

OMG this is some intense coding but it works quite well!

A star pathfinding is easy!

A bot found a path to the player

If you are like me, you probably have the impostor syndrome. 
And let’s be honest, I’m not good at math and often it’s a hard problem for game dev.

Today I’m going to talk about A* also known as A star pathfinding.

At first, I thought I would not be able to do it myself, so I spent a lot of time looking for the right A* pre-made assets and I tried many.

Most were hard to understand and use, plus Artillery Royale does not use anything close to a grid and basic A* assets often presume that you have some kind of grid, so it was like trying to fit circles into squares.

Anyway, at some point I decided to learn about that A* algorithm to be able to understand a better those assets.

I thought it was only going to be for my developer culture because it would have been too hard for me to implement from scratch, but I realized it was really easy.

I read a bunch of blog posts and I decided to give it a go, using my own graph data.
And guess what? It worked like a charm.

The hard part was to find navigable segment on the map, here you can see the debug with pink segments that represent walkable path and blue segments that represent possible jumps.

Those are the resource I learned from:

To be honest, if you read this you will be able to get somewhere.

For me the hard part was not the A* algorithm but building a graph that represent the game. A* (in the examples I found) is often used for grid based game, but it can be used for any graph.

Now I have a working A* path finding for my AI and I’m really proud (except that I lose several days trying to figure out assets from other instead of trying to understand A*).

Lesson learn, it’s quite often better to dive a little deeper than the asset store and look at what is behind the scene. 

Note, it’s the second time I felt in this trap, when building the destructible map I started with an asset and in the end switched to my own code.

Building A Community

First, let me show you the official Artillery Royale logo!
If you ask me, it’s beautiful.

Made by Jean-Baptiste Dessaux, idea by Damien Balada


Now let’s talk about Artillery Royale community. If you follow the game you now that we have a discord server where people can get news and give feedbacks about the ongoing alpha:

Growing a community is hard, starting like me from nothing and nowhere — I don’t have any pre-existing network — I’m often wondering how I can get people look at the game and more than that, join the discussion.

On the game side, the technical base is working, know I’m going to iterate and add content. More weapons, more features etc. but what I’d love is to have player engaged in the process, so I’d know that this game will be enjoyed as much as I enjoy making it.

You will probably see me all around the Internet posting on Twitter, YouTube and other game related platforms. I don’t know how to do that, but I’ll report on that blog in a few months, hopefully with some results!


Right now I have some pleasant news, first Artillery Royale is coming soon on Steam (as a “Coming Soon” page) and because — or thanks to — the hard work I had to put in that store listing (Steam is asking a bunch of assets and other questions) I have a bunch of nice screenshots, banner, icon and… an official trailer!

It’s not one of my specialty + the game is alpha, so is the trailer, but still I’m proud of it

You can find me on YouTube too, I’m not yet sure of which channel I’ll choose, but I let you know! Follow and subscribe to everything, and we will see which platform wins.

Meanwhile, it’s Discord where all the news are aggregated, and where future player can take part in the development process!