Devlog #38 – Ball bounce game (server stuff)

some blog stats for this month

So last month I have wrote about how I started new game, which is a ball bouncing PvP/PvE game, last month there was only main parts of the gameplay done, but this whole month was spent making servers for the game and database, so everything is stored in database on the profile person creates with his ‘google’ account sign-in.

Servers

Only ‘issue’ per se is the networking code, as I never worked on it solo, never built servers, only the gameplay block. I’ve searched for what programming language I want to use as I’m solo-dev and want to make the process as easy for myself as I can. The final decision was between java and nodejs, considered java for few days but the whole structure of building server on java is too big of a time investment. Went with nodejs.

Authentication

Authentication server is pretty simple, dumb server, which does only one thing, makes the account or sign-ins the account if there is account created with the google account you have selected, one callback that is received from google, and pretty much it.

Master Server

Master server is used for managing player stuff, all the database transactions etc. I have went with ORM of nodejs prisma.io which is pretty neat, made the process a bit easier then writing all the queries by hand.
At the moment the master server also handles matchmaking, which wont be the case later on, as I have made very scuffed matchmaking, which is not efficient and slow. But the principle will be the same:
You win games in multiplayer arena’s, you gain trophies, the better you do the more you gain, the worse you do the more you lose trophies, once certain threshold of trophies is passed you will be moved to a different arena, of which you wont be able to downgrade, so all games are arena locked.

Push Server

Push server is used for live events/interactions, ex: friend requests, live messaging etc. At the moment I have only used push server for sending information to a player to which server he should connect.

What has been done

So with all these servers, came features that been implemented into the game, all the screenshots will look like shit because the UI is only rectangles and texts, as I wanted to focus on back-end stuff first so I know what is needed to be made for the interface, so make more fluid process.

Equiping/Upgrading your characters

Talked about it last week, so that characters can be upgraded/leveled-up, requirements for it are some gold coins and you need to have certain amount of cards of that character. Upgrade can improve all the main stats, but also abilities and power stats too.
Here is a little preview of upgrading character:

Also you can equip your character to one of 3 possible slots:

PvE campaign

As I was talking about it previous month, there will be a PvE campaign available, which will reward players for completing the singleplayer roadmap, you will gain some account exp and some gold coins and also that way you will unlock new characters (as all characters will be locked until some point of the campaign mission when you unlock it).
There are different difficulties, higher difficulties are unlocked only when yo have beaten game on lower difficulty, higher difficulty increases rewards amount, simple preview of the main menu to give better understanding:

Treasure Missions

What I always wanted to incorporate into my games, is some kind of IDLE/AFK stuff, that you are not obligated to play the game to progress, you will be able to progress even offline, so here is where treasure missions come into play. You can send your character to a mission for some time and they then comeback with certain rewards, more characters sent increases the amount of rewards will be brought back – but character slots for treasure missions are locked per certain account level.

Lootboxes

So, lootboxes will be the only way to actually get character cards – which are needed to upgrade characters, but lootboxes can be acquired for playing so no need to pay for it (unless you want to support the development of the game). There is a simple animation when opening lootboxes, rewards are selected randomly, each lootbox have different types of rewards, some might have common cards, some rare, some epic.

Little preview:

  • You can get lootbox from playing PvP games (arenas)
  • You can open lootboxes for free (need to wait certain amount of time)
  • You can insta open received lootboxes from PvP games, by spending diamonds
  • You can insta open lootboxes that you dont even have from the shop (which is more expensive then just getting it from arena and then spending money to insta open them)

There are different ways to get stuff in the game, wanting to make it fair for everyone.

Activity Log

You can watch all your previous arena matches history, with good amount of detail:

Weekly Tournaments

There will be automatic weekly tournaments, the players with most wins in a week gets some rewards:

With this also came another little system: Inbox, which will be used to send the rewards for players, so when you win you get a message to your inbox, with a button to claim the rewards (ignore the button now, as it is just white and not visible).
Also inbox can be used for sending announcements etc.

With that there also came Coupons, so the inbox message you receive for the tournament is actually a coupon code, which is detected in back-end of client and it makes a button, which automatically claims the coupon.
Coupons have a lot of settings, you can lock it for certain players, you can lock it for certain amount of uses, you can lock it for certain amount of time and much more, so with this there might be also come some contests in community discord server which will have coupon codes as rewards.

Daily Rewards

There is always nice to have some daily reward system in place to award the most loyal players, so I have made a simple daily reward system:
When you come back to a game, a dialog is shown, then it proceeds with an animation for a ‘lucky wheel’ there are 3 possible rewards and you are selected a random one – also you can claim them all by watching a video ad.

Shop

Probably took most amount of time of all the features I have been making, as I have remade the structure for shop listings few times now, each time always forgot something or didnt notice the problem that would appear by the way I was doing it. But I think I resolved it, and there shouldnt be any problems moving forward.

Shop has different sections, coins, diamonds, lootboxes, but it also has daily deals section that only includes deals for you specific, no one has the same deals, each day unique deals are made for the player, so you can buy some character cards that way.

Shop also has special offers, which are for $$$ but they have much more value per $ then buying everything individually, you are also shown how much you will save for using that deal instead of buying everything separately, so expect some special offers for different occasions etc.

Little preview of shop:

Whats Next ?

The next thing would be making all the art assets for the game, ui and in-game, then making all the contents: campaign levels, characters etc. Which should take about a month or two, and lastly would be just testing and tweaking everything.