Server Creation:Origin Story

From Citywars Savage
Revision as of 06:31, 6 December 2019 by Cws 01studio (talk | contribs) (→‎Fourth attempt)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

First attempt

In 2009 was the beginning of our first multiplayer server. There was a popular tv show here in Quebec called CallTv. The TV show was really crappy but its popularity was incredible. The concept was really simple. One animator would ask the viewers to call a number to answer a riddle. Every call would cost 1$, if you were lucky you would get the chance to give your answer live and gain the prise if your answer was right.

We made a better version of that tv show called WebParty where we were the animator on a live stream webcam and viewers instead of having to call they could directly answer from a flash mx application coded in actionscript. Contrary to the real tv show our show had no good answers. User would vote in real time and vote was compiled live. The users who voted the answer with the less vote would win. So you had to pick up the less voted answer to win.

That was the first truly multiplayer server we ever made. At that time we were really proud but Oh god it was unstable XD. We were aged 17-19 years old and we didn't really know what we were doing. We were also fairly new to programming. The game quickly gained in popularity but everytime the server reached 10 players online, the server would crumble under its own weight. We didn't know how to properly send packets at that time so every packet send was requesting new connection on the client. It was a real mess but we were young and full of dreams. So we decided to shut down the project.

Second attempt

Just after Webparty we rebuilt a new server from scratch. This one was a lot more optimised. This time the server would be used to create a game called Super Motherland. It was a Super Mario bros multiplayer but instead of playing as the hero (Mario or Luigi), you were the goomba or any other enemy in the game. Each characters had their own ability like the real game and you could custom them. We ripped off all the sprite of Super Mario World since at that time copyrights were not as big of a deal on the internet at the time and we built the game from scratch in actionscript. We recreated the 2d platform system of Super Mario World from snes and we built an in-game map editor so players could build inside the game. (Way before mario marker XD).

The storyline of the game was to give the player the terrible perspective of Mario killing everyone in the mushroom kingdom. Mario is just a maniac killing without remorse and needed to be stopped. So Bowser was the nice guy and all of mario friends characters were the evil ones that you had to defeat.

That server was a lot better than our first one from Webparty. But it was unable to sustain more than 30 players online without massive lag. Even with all the great improvements we had done with our new server we were asking a lot from it. Sending player locations in real time needed a lot more optimisations than what we were capable of. We tried really really hard fixing the server and trying to make it massively multiplayer but we were not able to figure out how to fix it. In 2009 sockets servers were not well documented on the internet like today.

Third attempt

Then came Minecraft. We had our own public multiplayer Minecraft server and really slowly new players joined from time to time. At first, we were still working on our own video game but slowly Minecraft started to take more and more space in our life. At a certain time we decided to spend all our time operating our new community. This was the beginning of a long adventure and the birth of Citywars Minecraft.

I will avoid all details of this chapter because there is a lot to talk about, but to simplify everything, this is where we learned how to truly do massively multiplayer servers. Minecraft was an excellent tool with an excellent community of developers. We were able to learn their protocols and understand how a real multiplayer server works. Then come special modded servers allowing even more concurent players and slowly our small public minecraft server passed from 1-10 players to 250+ concurrent players online.

At that time our Minecraft server became a full time business. With employee, salary and a marketing budget. The server was running on its own and we finally found some time for ourselves to try and experiment on our side. This is where we attempted our third massively multiplayer server. Learning from our precedent mistakes, instead of building the game first and then the multiplayer server we started by building the multiplayer server first to see if it could handle the amount of players desired.

There was this growing in popularity of the game development tool called Unity. Which we decided to give a try and see if it was worth our time. We built our own server and we also tried many different options trying to see if we could achieve our dreams.

On the right you can watch an old dev video reaching 100 fake online players (Stress test).

Sadly we don't have all the other solutions we tried. This is the only video we still have XD. 100 Hundred players was not bad but we know by experience that stress tests are nothing compared to real players with bad latency and bad connectivity. We always dreamed for something way bigger than that. So we decided that 100 players was not enough to start building our own video game and that we would need to gather more experience in networking before restarting a new video game project. So we continued on Minecraft instead and focused our energy to make the server better for our community.

Fourth attempt

In 2016 we were in a really difficult dilemma. Since our Minecraft server had more than 7 years of activity we had a really old and loyal community. There was this weird trend coming in the minecraft community where old players were simply now too old to play the game and would give their account to their younger brother/sister. The popularity of minecraft stayed almost the same but there was this weird shift in the age of player where mature and old players of 16-18 years old members were replaced by 6-10 years old. This had for effect to quickly change the type of popular Minecraft content. Old servers like ours that delivered more than +300 hours of gameplay were not appealing to young minecrafters who wanted to have quick and fast-paced gameplay instantly without any effort of grinding. At this moment mini-games in Minecraft servers became more and more popular very quickly.

Seeing this trend in-game, we tried to quickly change the server into a more easy and fast past environment. We developed at that time a gamemode called Vimon which was a lot more rpg and easy to play than the current one. We radically implemented this gamemode by transforming the main server into now an rpg game. Which was extremely appreciated from young generation, but was a hard and extreme change for our old community. People who took the time to give it a chance, really appreciated that new update. But a lot of our old school members saw that update as a way to replace them and didn't appreciate the sudden change.

So we were stuck in a difficult situation where for the survival of our server we had to push out our current users out of the server to make space for the new members, but we didn't want to lose our old members because we spent so many years together and they were to an extent like family.. We tried to do both during a time, but this was not going really well for us. Both were unhappy with the modification done on the server and everything was just a big compromise for both groups of users. We were slowly losing old members and because the server was not 100% fast-paced like other mini-game Minecraft servers it was really difficult to interest younger user. We tried many things to fix the situation without having to resolve to extreme measure like we try merging with a bigger association of Minecraft servers.

Also there was some sort of a monopoly of Minecraft servers slowly taking place. Were some Minecraft servers had become their own full commercial entity with investors and money. They were able to pay double the price for advertisement simply to ensure nobody would be able to compete with them slowly killing all the small servers in the same process. This is one of the reasons why we tried to merge our server to another bigger entity to protect ourselves from that menacing threat.

Then the nail in the coffin... Microsoft purchased Minecraft. We strongly opposed against the purchase of Minecraft by Microsoft. We knew Microsoft didn't want to push further Minecraft services like our server and Microsoft had the bad reputation of treating its recent acquired brands badly especially in video games. We didn't want Microsoft randomly shutting down our Minecraft server after we spent so many hours working +70hours a week to develop and create our community.

So we took the decision to stop operating our Minecraft server. It was a really really difficult decision. The advertising was costing more and more every year for a market slowly reducing. Our gameplay was not prepared for the new younger generation of minecrafters and it was really difficult to implement new content without causing fights with our community. The server was slowly becoming smaller and smaller every month at a point were it was difficult to get a salary from it. So we decided it was time to stop operating a Minecraft server and start a serious business. We kept the server open for the community but we stopped any further updates on the product.

With all the experience gathered from operating a Minecraft community we began to do contract work for local businessed with web applications. Like inventory management, online accounting tools, employment administration, project manager and the list goes on. We were truly impressed by how easy it was to make money from contracting. It was difficult to obtain the contract but once those contracts obtained they were easy money compared to all the work it was to operating a minecraft server.

Corporations were impressed by the quality of our work. We had been developing tools for gamer for more than 7 years. Gamers do care a lot for what you code and develop. If the quality is not good enough, you can be sure you will receive extreme and radical complaints from their part. Gamers will also find out all the little extra details you implement for them and will be really thankful for it. On the other hand corporations don't care much about your program, if you added some extra cool features to their application, they don't even bother to look at it. If everything works the way it was intended, it's good. Their employees will absolutely love those little details you added but they are not the one involved in the process of making the decision and most of the time their boss will never know about it. So it was a fairly new concept to us.

After a while we were truly missing operating a Minecraft community. We never made a lot of money with our Minecraft server. Most of the money made from operating the server was 75% invested back in the server primarily for marketing. We would get small salary just enough to pay the rent and allowing us to develop full time on Minecraft. Money was never the reason why we were doing this work.

After 2 years of leaving Minecraft we slowly in our spare time started to develop a new multiplayer server from scratch. This one was technically if we count from the start our fourth attempt. The big difference that time was our 7 years of experience in development and administration of minecraft community. We had 500 000 unique players that played on Citywars Savage. We now know exactly what can cause a server to lag and what to be cautious with while making one.

Step by step this new server was truly promising. In 2017 after months of testing with the server and its capacity, we developed a little game with unity called Infinite tile.

Infinite tile is technically the prototype version of Citywars Savage in its early development phase. It's purpose was to test and certify the solidity of our multiplayer server. After having all our test successful, we were satisfied enough of the good performance of the server to start thinking about maybe starting developing our very own video game. We knew it would be a long and difficult adventure, so we continued to gather money from our business of making web applications and in March 2018 we took the decision to officially start development of our first video game.

This was the beginning of a great adventure!