Spilling our trade secrets! Narrow one updates 🏹


Here we go, another itch blog post. 

It's been a while, almost 100 days ago since our last blog post. So we definitely have some things to talk about, we'll even be spilling our trade secrets about server management. So let's go!


🎉  First of all, Narrow.one has been out for over 2 years now. 2 years! When we started the small 1 map, 1 type of weather, 1 bow, no animations, no customisation, demo. We weren’t expecting the game to be such a success. 
It's been 2 awesome years, thanks for playing everyone!

narrowone_stats


Desert update

Do you remember that special time in March, when there was a fierce battle between a new snow or desert map? Well, desert won and so we started working on that. 

snow or desert?

A few months passed, but we finally finished the map. We're very happy with how the map turned out. We were trying to get a nice balance of an open desert feeling, and yet have some places to hide with a chance of close-quarters battles. The flag location is the highest point of the map and visible from spawn, this should help with orientation. We wanted to have some tunnels inside of the flag rock, so you can perform some sneaky stealing. We weren’t completely happy with the look of the rocks in tombs anymore. We wanted the rocks to look more stylized. The shape of the rocks should be easier to read, and have less visual noise like the rocks in tombs.

shot desert map 1

The path through the middle is faster but more dangerous. You'll have the highest chance of running into the enemy here.

shot desert map 2

The map also required some custom code.  As a wise old blind man once said, cacti can be pricks. And so we made some custom colliders for the cacti. They will damage the player when touched. 

We might go back in older maps and add them to pointy parts someday. 

ouch that hurts

The edge of the map also required some new code. We didn't want to have a sharp edge because it would ruin the feeling of an endless desert. So surrounding the level with hard colliders and a visual obstacles wasn't an option this time. So we added a sandstorm effect. Now when you walk too far away from the center of the map, you’ll reach the limit and it will  color the edges of your screen. You can quickly run back, to cancel out the effect. Otherwise, you'll die. R.I.P.

sand storm

New gear

What is an update without new gear, i don't know. Because we have new gear for you. This is also a big reason why the update took so long, i believe we added over 40 items in total. 4 complete clothing sets, a bunch of separate headwear, 2 new arrows, 2 bow skins for every bow, and 5 new melee weapons. After every gear update it's nice to see the variety of avatars grow. More possibilities, more unique looks. 

new gear

Okay, now let's get serious...

Super serious...


Narrow One server management, spilling our trade secrets

A lot is happening behind the scenes when you join a new game. And since I recently made some improvements to how the matchmaking system finds players similar to you, I figured I'd take the opportunity to talk a bit about how all of this works.

Servers!
First of all, low and behold! Our server management panel 🙌

Servers

On this page we get a quick overview of all the servers that are currently active, starting up, or shutting down. Narrow One runs on a handful of DigitalOcean servers. We picked their cheapest server type, which is only $4/month per server, but this also means that they aren't very powerful. So they won't be able host more than about 200 players at once.

For this reason, we have a small application that monitors the amount of players in a server, and then boots up a new server whenever one reaches more than 200 players.

Similarly, when a server drops below a 100 players, it will be shut down. This way there will always be enough servers for the amount of players, but we won't have to pay for unnecessary servers with no players in them.

Each grey block represents a single server, so there are currently 9 servers online, which seems about right for the 1023 players that are currently online.

If we expand one of the server blocks, we get an overview of all the games currently being hosted on that server.

Every game shows a few stats like the amount of players, which map is active, the current score, and how long the game has been running.

The small bar graph shows the Elo rating of each player. The Elo system is commonly used in chess, but also in a lot of other games to rank players based on their skill level. It plays a major part in making sure you end up in games with similarly skilled players. So let's talk a bit about that!

The Elo rating system
The Elo rating system uses some fairly straightforward math to figure out how skilled a player is. This Wikipedia article explains in great detail how exactly it works, but the gist of it is that at the end of each game, the winning team gains a few points, and the losing team loses a few points.

New players always start with an Elo rating of 0, so what we end up with is a nice distribution of Elo ratings, where a negative rating means you have a lower skill than the average player, and a positive rating means you have more skill than the average player.

What you see above is a graph of players that joined in the last few minutes and their Elo rating, many players have a rating of 0, that's because a large portion of joining players is playing the game for the first time.

Now that we have an estimate of how skilled a player is, we can make sure similarly skilled players end up in the same games, so let's do it!

Matchmaking
First things first, the skill level of a player is not the only thing that needs to control in which game you end up, there are a few more factors:

  • Which map the player has currently downloaded, or if they have played a map recently. Ideally players don't end up in the same map twice in a row.
  • The current location of the player, connecting to a server on the other side of the globe means a higher ping, so if there's a location close to the player it should take priority.
  • How many players are already in a game, if the game is full, no one should join it at all, and if a game is empty, it should take priority over one that is almost full.
  • How many flags have already been captured, if the game is close to finishing, no new players should be added since they might end up seeing the victory/defeat screen right after joining.

These are a lot of factors that need to be taken into account, and it's not always possible to meet all of these. But we can make a best-effort attempt!

To do this, every game is given a score every time you join. Servers that are close to you receive 20 points, games with a similar Elo rating receive 50, and so on. Each requirement assigns a bunch of points to a game depending on how good of a match that game is. And what you end up with is one single game with the highest score, that is the game that will be joined.

Pre-join groups
This system works pretty well for your first game, and serves to fill up empty spaces from players that left their team behind. But ideally, we don't want to be joining games that are already running all the time. It would be better if we could group a bunch of players together, and then make them join all at the same time.

Fortunately, not all players leave after a single game, so right after a game ends and you see the victory/defeat screen, the matchmaking system starts to collect groups of players so that similar players all end up in the same game. These pre-join groups look something like this:

Every row represents a single player or a squad. The background color of rows indicates which group they belong to. As you can see, each group usually contains a list of players of about the same region and Elo rating.

But how exactly does it find out which players belong to the same group? We can use the scoring system from before, but computers are not fast enough to compare every player in the system with every other player and then instantly come up with an answer for the best groups of players. So we'll have to come up with something better.

The trading game
Instead the matchmaking system just randomly spreads the joining players around a bunch of groups. And then every few times a second it tries to improve the groups by trading players between them. This works a little something like this.

  • A pre-join group tries to pick the worst-fitting player from its own list of players.
  • It then goes to every other group, and proposes a trade, basically saying: "Hey, I got this terrible player, but maybe you can find a use for it. It's all yours if you give me something in return."
  • The other group then goes searching for a player that it can give in return. It asks itself "Ok, *if* I were to get this player, then what player would be the least fitting that I can give away".
  • Once all counter offers have been collected from the other groups, the first group picks the best offer and makes the trade.

This process then repeats for all the other groups as well. And we just keep on running this about twice a second or so. And eventually, all players end up in a group with fitting players.

Leaving mid game
This whole pre-join group trading thingey is still pretty useless when the majority of players leave mid-game. Which unfortunately, about 70% of all players seem to be doing.

To solve this we plan on discouraging this behaviour a bit more. For instance, we'd like players to automatically join the most recent game when reloading the page. Or we could also award a participation bonus for players that play games until the end.

Finally, we could even punish players for leaving early by taking away coins, but there are legitimate reasons for leaving games so we'd prefer to try out other things first.

Do you like this kind of writing? Then we have the perfect page for you,


Patreon 

We recently started a Patreon, this is a place where we share sneak peeks, behind-the-scenes, funny content. and detailed explanations of technical parts. We would really really really love it, if you would become a Patreon of us. There are more benefits for Patreons, like a direct chat channel with us in our Discord, and special features in some of our games. As i'm writing this, we are working on something something. If you are curious what it is, please consider joining: Pelican Party Patreon


Stats 2.0

In our discord (which you can join here if you fancy: Pelican Party Discord ) at the Most commonly requested features section, arrow skins were ranked one of the highest. It sounded like an interesting addition to the game to us. 

Besides that it was frequently mentioned that players feel like bow skins were a waste of coins, because they were purely aesthetic. And they would prefer them to have stats, (just like the armors under the gear section of the shop). So with this in mind, it seemed to be the best timing to combine this with the addition of arrows with stats, because the stats all influence each other. 

After a long brainstorm, and shoving stats around (see sketch below, and yes you are dealing with professionals), we ended up with this:

sketch stats

Gear: Damage protection, movement speed, and health regen time
Bow skins: zoom, arrow damage, loading speed
Arrows: arrow damage, stun, and fly speed
Melee: attack speed, melee reach, melee damage


New stats explanation 

Health regen speedThis stat will lower the amount of time you have to wait before health starts regenerating after taking damage. It will also increase the speed at which it regenerates.
Arrow travel speedThis stat will influence the speed of your arrow. The arrow will travel faster but it won't change the arc of its flight.
Arrow loading speedThis stat will influence the rate of fire of your bow. 
Arrow stun enemyEnemy hit with an arrow with this stat will slow down for a short period. 
Melee strengthThis stat increases the amount of damage a melee hit does.
Melee reachThis stat increases the reach of the melee weapon.
Melee speedThis stat lowers the time between melee swings.

Bloodlust stat

BloodLust

We added a new stat called Bloodlust. Bloodlust will give you a health bonus after every kill. The more items you wear that have the bloodlust stat, the large the amount of added health. Only the fearless items have bloodlust. We added bloodlust because it was always confusing if fearless items were actually better or not. And now they clearly have an advantage over the other gear. But we preferred to give fearless items a separate stat because it's easier for balancing the game. We don't want it to be too strong, just a small incentive for players to save up for the fearless pieces or a reward for the players that already bought it. 


Arrow skinsarrow types

And now....it is possible to customize your arrow. We have a wide selection of 24 arrows for you to choose from at this moment. Every bow in your selection can have a different arrow equipped, so find one that matches the bow. Personally I like using +5 stun with the sniper bow. After hitting the enemy with the first arrow they completely lose momentum, I can't hide easily to recover health. Now you can easily finish them off with a second shot. 


Who wants to play a round of random arrow roulette? Take a screenshot, and what ever arrow you land on you have to use to kill Jesper in a round of narrow one. Good luck 🏹 

more arrow types

It's astonishing how many things can be fantasy arrows once you start working on arrow skins. From a wooden stick, a piece of a fence, or a fork attached to a stick. Guess what arrow was inspired by airbnb curtain rod decoration.

curtainRod

Because we updated the arrow skin system, it's now easier for us to add more seasonal types of arrows, like what we've been doing around Christmas with the candy canes. Think about the possibilities, shooting carrot arrows on easter, bone arrows on Halloween, and heart shape arrows on valentines Day. 

Let us know if you want to see a special type of arrow or have any great ideas for seasonal arrows.


Shop feedback improvements

ShopHover

The stats of items are no longer a vague guess. You can now clearly see what stat an item will give you, and if it suits your playing style. Simply by hovering over an item with your cursor. Also, we are pretty proud of the popping out and fading effect of the items in the shop. 😊 

ShopStatsOverlay

In the old version of the shop, the player didn't really get any feedback about the overall stats. You can now hover your cursor over your character and it shows your total list of stats. At this time it will probably not fit on your screen, because it's quite a big shopping list. But we have plans to improve this,  future plans™.


Crosshair

You can now personalise your crosshair. Go to settings > crosshair and give it a nice color!

It's possible to change things like, shape, color, outline color, and accuracy offset. It's nice to see the different crosshairs from players whenever they share gameplay or screenshots. 

crosshair types


Seasonal content 

It's been a while, but first, of April, we did another April Fools joke. This year we included a big overpowered arrow-shooting machine gun. Turning the game into a big mess for a day. And for easter, we include an easter egg hunt summoning a giant bunny telling you not to touch its eggs. We hope you enjoyed our little seasonal jokes, it sometimes feels like a waste of time because it disappears so quickly, just after a few days. But it might give the game a fresh feeling. Please let us know if you enjoy this kind of content. 


New game

The Pelican team was out of the narrow one realm for a little more than a month. We developed a new game, you might have tried it, if not please do. Play our new game here Raccoon Retail. We got a few concerned messages, worrying if this would be the end of narrow one updates. But no don't worry's. We will not abandon this game, it's too much fun to work on. More updates coming soon. 



Map selection

You can now select a map in private squad, yes it's a big thing.



I guess that's it for now!

Thanks for reading! Pelican Party OUT!




p.s.
I want to leave you with our favourite typo, Damamge Protection, it's great.

Damamge Protection

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 20 of 36 · Next page · Last page
(1 edit)

Hi Pelican Party,

Why am i getting banned 24/7 ?

if u want to check out my stuff or anything related to find out, just reply pls pls

is the devlog still updating

Deleted 67 days ago
Deleted 67 days ago

The only reasons i leave the game are:

  • Chores
  • High ping
  • Meleespammers
  • Bow spammers

And don't even bother with spawnkillers and hackers by this point

(-1)

it’s possible to hack this game?

don’t do it👌

Is it possible though? I think I might have done it before, when you jump into the water between a couple rocks in a a specific spot in halls, you don’t die but you’re stuck IN the water and it’s super glitchy. Then it kicks you out.

it is but don’t do it

i promise i won’t

it is but pls dont do it 

"bow spammers" 💀💀

uhhhhhh pelican u have bilibili account right? and is it u operate account by urselves  or u got someone help u(the Chinese in ur vid like title is....very 接地气...)

I don’t think they do…

when will u release the new map

(+2)

Can there be a leaderboard for kill/death, kills, wins, and games

(+1)

i love the game itself btw

hello tanks for reading this comment

Hi, is this game going to stay in the style of just playing classic capturing or our creator actually thinking of adding other changes to the game. I would think that a great example would be death match. I think we can change the style of the game but keep the difficulty to get fearless. Therefore the game can eb challenging and fun to play.

this comment is posted because there are currently too many people quitting this game.

ow 😢

(1 edit)

da mom gay protection

thats how i read it

(+2)

volcano map

That sounds like a great idea

(+3)

M8M6 IS BACKKKKK

Thanks Pelican Party, for this amazing game! I have played this since the beginning and it makes me so happy to see how far it came. I am so happy there will be more updates, too! Thanks again!

Awsome, Awsome, Awsome!

Do more next time! Great improvement!We all love ur game,don’t listen to all those negative comments!:3 Well,I’ve been playing since the game released a little while after that and I can see that it has a GREAT BIG improvement!Thanks for creating this game,if not,I’ll be bored to death !😂 

It's really good! All those maps, weapons...
I especially liked the Temple map and the Continuing Crossbow
What about having a mythical map that features mythical realms? I'd suggest a Realm of the Dead with castles, boats, bridges, and a desert-like sea below (which kills you when you enter), particularly for the next Halloween.
And, just as someone commented before, the April Fool's event should last for 48 hours. It was really fun, that big machine gun!

ive been playing since towers was released (but ill pretend ive been playing for 2 years) and i gotta say this has been an awesome 2 years. Games only getting bigger and interacting with you and the community is fun. i would like to see more of your work on narrow one and some fo your other games in the future :) (ps. add seasonal content to the equippable items catalouge if youve watched the ads already please)

The P.S. got me laughing so hard 😂. Anyway, thank you so much for the detailed blog, as usual. little late in seeing this, but defiantly loved reading this and the previous blog!! 

(4 edits) (+1)

Thank you pelican party for your investment.

It's really nice to see developers revealing secrets about their games. 

Thanks also for the desert fruit, it was a real pleasure to find it even if it was hard! 😤 😅

I love this game and a lot of my friends irl also think it's cool.

But for example, for the April fools, the events should last 48 hours to let the players enjoy. 

But you will withdraw money from the player who leave the game in the middle, sometimes my wifi really sucks and my game crashes for no reason... 😑

Can you make a store between players on the games? ( as kirka.io and formerly surviv.io) Buying and selling coins between players... I have plenty of armor pieces for 30K. I'd love to sell some of them... Plzzzz

Can you show us your favorite skin? 

( we would love to play more with you Jurgen and Jesper 😋) 

HAPPY! 🥳

(1 edit)

Now, give us the source code and make it open source /jk .

I'd like if all April fools maps and guns(or bows) are playable forever, as I missed almost every April Fools update :(

 Also, are you using WebGl or the WebGPU thingy that just launched for the game engine, or is it a custom engine?

Pelican Party,

We love your updates for special occasions, such as Christmas or April Fools. On a serious note, it would definitely benefit both parties, you and players, to have more game modes.

(+1)

Thank you for all the backbreaking dedication to keep your “weird little arrow game” entertaing to us.

Too early, but what will the new map be?

(+1)

Awesome devlog and devs!!!!

Viewing most recent comments 1 to 20 of 36 · Next page · Last page