Rise of the Robots X: Alpha digest

Good day Strategist,

I am Calixte, the creator of Rise of the Robots X. Today I am going to extensively describe how this game went from an idea on paper to a fully functional prototype (The “Alpha”).

IRL I am a "Digital Consultant". I applied my knowledge on “how to manage a project and prove value of a product” to my game to continuously check that it is worth persevering in creating it, trough the classic milestones of "MVP - ALPHA - BETA".

Day 0 [Programmer humor] - Dug up the 10-year old game design docs and brainstormed with my brother (My girlfriend took the picture saying “You might be at the dawn of something”)

What is Rise of the Robots X (RoRx) ?

The main objective of RoRx is to merge RTS and collectible card games, but removing the main burdens of both: The slow and boring turn-base for the CCG and the requirement of exceptional Action Per Minutes skills to succeed in the RTS. Thus opening the eSports to more people: "Your army, your destiny".

What differentiate you as a player in RoRx are your ability to take the right decisions, anticipate moves, build a coherent army and strategy.

A bit of context

The idea of RoRx did not come out of nowhere. It started 20 years ago when I played a lot Magic the Gathering and wanted to create my own collectible card game. Long story short, it evolved a lot and ended up in being a video game project. 10 years ago I tried to raise funds in the most traditional ways to hire an indie studio to bring this project to life but failed to do so and since, nothing happened.

In 2019, COVID hit hard and confinement started here in France. I sheltered with my brother and told him that we were going to have a LOT of free time to be productive and finally advance our projects OR download World of Warcraft Burning crusade to play on a private server and do some 2v2 arenas to waste our precious time in characters that will end being forgotten. If I am here, it is because we made the right choice, of course, and downloaded WoW. We played for months as Warrior and Drood but at some point we were bored, and that is where everything started. We downloaded Wrath of the Lich King and played on another private server. And it went, from unconfinement to confinement, until this day where I could not stand wasting my free time to get a nice trinket for my Warrior in TOC25 (The one with Arpen, you know), and decided to unearth my life project.

November 15th of 2020 - Starting point

Here below are what I started with:

  • A complete game design of more or less 700 pages I made so the game only had to be developed as it was made on paper

  • "Rise of the Robots X - Renaissance" A book I wrote around the RoRx universe (The first one of what I want to be a series) for the Lore and artistic foundations

  • Advanced skills in Excel VBA (No knowledge in any other form of code, but I did some nice software-like Excel sheets + databases)

  • A vision of why this game is special and how it will differentiate from other games (Its Key Selling Point and list of things I wanted to confirm to check that it was a worth it game)

  • A big brainstorm session with my brother to challenge the game as it was done on paper 10 years ago to update it to the new “META” of video games, we changed some core rules and wrote a few hints on how to build the economy.

  • My brother took over the Game Design to help me focusing on coding.

  • A very supportive girlfriend that played the role of a rough QA

Phase 1: Learning Unity

This is a question I often see on Reddit and forums. So here are my two cents, I learned everything to begin with Unity on https://learn.unity.com/. I have done the Unity basics and Junior Programmer pathways, plus deep dived into anything I did not fully understand by watching related videos (Singletons, Scriptable objects...).

It took me around 3 weeks of deep involvement and taking notes, thoroughly doing every exercise until perfectly done and understood. I seldom came back there to watch some videos about issues I encountered during the MVP development.

I started working on my game only when I felt like I had the required knowledge. I did not feel the need to do a "quick and dirty" own project to apply my learnings. The pathways are very well done and entertaining. It was a pleasure to learn this way. Every step you are required to code and apply everything in a sample project. And amazingly enough, it is FREE content.

My Unity Learn experience was great, tons of projects to play around and learn the basics

December 2020 - Phase 2: The MVP

What a lot of people do wrong is going full-steam ahead in building their dream game the way they imagine it. It is true for any kind of product, and this is wrong. You first need to check the value of your product, confirm that what you think has value or interest actually has, by confronting your product to users.

My main concern was identifying my KSP (Key Selling Points), why RoRx and not another game? And that is what I came up with, to be checked in an MVP:

  • Round system: Players select actions at the same time and THEN they are revealed.

  • Combats between Robots are not pre-determined and have a random factor on which players can influence or decide to take the risk.

  • Players can conquer Infrastructures on the map to improve their progression in the game and add a tactical need of being in an arena

  • Players play using "Cards" on a hexagonal-tiles arena

That's it. That is what I wanted to try with my MVP to check that the core value of RoRx was entertaining and promising.

RoRx MVP - If your MVP looks better than that, you might be doing too much :D

I had only one issue: Players selecting actions at the same time would require to have some kind of networking, and is was way too early for me to learn and develop this. So I made the choice the make the MVP as a standalone. Players had to select their actions and then not look at the screen while other players were selecting theirs. Then everyone would look at the "Revelation". It was cumbersome, but somewhat fun, and the only downside was that the "waiting time" aspect was not removed, but every other KSP were tested.

It took me around 1.5 month to develop the MVP. I used:

With my girlfriend and brother we tested the MVP a lot, as soon as possible, I created a 3FFA mode so we could play together. We changed a lot of the rules to reduce hassles and frustration.

As examples:

  • Initially players needed to leave a Robot on an Infrastructure to get its benefits. We changed them to be conquerable, and players now only need to let a Robot on their tile until the next Round to control them until it is conquered by someone else

  • If a Robot attack failed, it inflicted no damage whatsoever which was very frustrating, we mitigated this into a better system

  • Robots ranges in general were too large, so we lowered it

When the MVP was stable and rules were better, we tested it with friends and family (Around 8 persons) to grasp their raw feedback. Overall, the MVP confirmed that RoRx concept was a niche and that KSPs were valid. Even if long, games were entertaining, we had hours long debates on cards, gameplay, rules and games debriefs on why one has lost / win.

I kept 1 obsession along: Bringing down the games length. I wanted to reach 10 to 20 minutes per game. But with the MVP, it was impossible to test this.

MVP Late stage - I added a "pre-UI" to build up player's army before entering the game. It looks like a 90’ game!

January 2020 - Phase 3 - Pre-Alpha: The networking

I was very afraid of starting the networking. Mainly because at this time Unity was known to be not MMO friendly, and because I knew that it was a complete new coding knowledge. I wanted to improve the MVP, add some more details etc. You know, the classic “Stay in your comfort zone as much as possible” stance. But under the pressure of my brother and girlfriend, I started to plan for the "pre-Alpha": RoRx with networking. There was no point in delaying more working on this essential milestone.

I benchmarked the different solutions (Photon, MLAPI, Mirror) and selected Mirror. https://mirror-networking.com/. Looking backward with my current knowledge, this has been the BEST decision for this project. Mirror is easy to use, learn and strongly backed-up by the community. I never encountered any bug (that was not because of me) and the connectivity is perfectly stable.

I learned Mirror with this Udemy course: https://www.udemy.com/course/unity-multiplayer/ made by Dapper Dino https://www.youtube.com/c/DapperDinoCodingTutorials which I thank so much for his insightful tutorials on Youtube also, bravo.

There is 95% (Subjectively) less content to learn Networking than Unity by itself. It is where the tough part begins.

Pre-Alpha - Improved the look for 5$ on Unity Asset store (Tiles), still getting this 90’ game look!

I started training in January. It took me a week to learn Mirror and, surprisingly enough, 2 weeks to bring the game playable in LAN. Starting was hard, very hard, sooooo hard. I looked for help many times on Reddit and Fiverr (Paid help) to avoid wasting days on something someone could help in seconds. I found no one.

So, using the Mirror Discord support and solving bugs baby steps by baby steps, we finally played our first RoRx game in LAN in February. Part of why I was quick to implement networking is because I built the MVP code with a server-side and client-Side code in mind, I just had to actually implement it using Mirror.

If I recall correctly, I was on the edge of giving up twice. And there I have to thanks my wonderful girlfriend who trusted me and believed in RoRx as a great game. She pushed and motivated me all along.

Keep your hopes high, as much as the challenge is hard. And even if its cold out there!

It was an amazing feeling to play with friends at home and also remote from their own home! We could thoroughly try RoRx. Every player could build his army by selecting cards in a catalog, so the army "customization" started as MVP.

We learned a lot about the game and made it evolve to fit my obsession of reducing the average game length. We came to the conclusion that 3FFA had to be a fun mode and could not become a ranked mode due to the dynamics.

The pre-Alpha UI - Lot of placeholders but you could customize your Robots! Started to feel like an online game. This was NOT cheat-proof.

February 2021 - Phase 4: The Alpha: Back-end + dedicated servers implementation + cheat prevention

This was by far the toughest milestone I went through. I knew it. But same as Phase 3, my brother and girlfriend pushed me to implement a back-end to be able to create accounts, have an inventory of cards, buy bundles, rank up in Merit etc.

I looked around for the different back-end providers with Unity pluggins and decided to use https://playfab.com/ which comes in handy with a very large free usage for testing + 750 hours of virtual machine per month totally free. I found only 1 training on Udemy (In french) https://www.udemy.com/course/developper-des-jeux-connectes-au-cloud-avec-unity-playfab/ and for the rest I had to rely on documentation, lol.

Twin Eclipse - Meteorology Mastery - Most of the RoRx illustrations inspire from the Lore, here the Twin Suns of the planet.

So here comes the struggles: I had to learn how to use APIs, manage servers, data bases, Docker for local testing and Windows Powershell commands (had no experience with this). I took 2 weeks of vacations to deep dive into this.

I have to say that I was on the verge of quitting at least 4 or 5 times because it was so hard and I could not find anything more than the documentation and PlayFab community forum. But I insisted, tried and retried many times, focusing on the very baby steps I made to run the servers locally and remotely, each very small progress was for me an hint that I wasn't stuck, and that is just what counted. But, of course, on top of this, my girlfriend was supportive and that meant the world to me.

Once again I tried to find paid help on Reddit or Fiverr and failed to find anyone. It was just me, my keyboard and Google.

Well, after my two weeks vacations we celebrated the first RoRx game on dedicated servers, using our own accounts. The Alpha was on its way to be finished with the complete game loop, PvP ranks, Matchmaking, first type of bundles and a first MVP of the game's economy. Around March 2021 RoRx, my dream game, was becoming real, but still very ugly!

Alpha - The first login screen. Everyone having his own account felt incredible!

For those who could be interested, herebelow are my feedbacks on using PlayFab, for the others, you can skip:

  1. If you are not a newbie, PlayFab is very complete to handle your game's backend. Prices are correct and the Unity plugin is very well done. I had few issues with it.

  2. Documentation is average, but there are a lot of step by step tutorials that can help integrating it. As I was a complete newcomer to the back-end management it was tough to me, but anyone with a minimum of experience would have onboarded quickly.

  3. The player accounts and data management is very nice and straightforward.

  4. APIs are reliable, never had any breakdown.

  5. Dedicated multiplayer server is hard to implement at the begining, especially for newbies like me. There are few "built-in" example project you can rely on to use for your project. But once you have wrapped your head around it, man it works so well. I mean, you don't have to manage anything but start the Virtual Machines with a set up and then every game will be started and shut down automatically in combination with the Matchmaking service.

  6. The Matchmaking is straightforward. Nothing to say, easy to implement and manage, starts the servers for any match and push details to Clients.

  7. The "Shop" and item management is mature and complete.

  8. PlayFab offers a "Cloudscript" service written in JavaScript to run scripts in the cloud and avoid having to start a server for just a cheat-proof feature, which is very nice, when you know how to code in JS. Which I don't ah ah.

  9. The customer service is amazing and savvy, 100% would recommend.

  10. Main downside is that PlayFab does not allow real-time chat in-between every player of the game. It has "Playfab Party" that allows group of players to be formed and exchange voice or text data, but this is limited when it comes to friend management (Online status, entered game, group invite...). So you have to use another solution, see hereafter.

  11. Overall, I know that I am not yet using 100% of PlayFab and never encountered a true limitation to what I wanted to do with my game.

When your friend is testing your game but you still have to manage your main work at the same time.

March 2021 - Phase 5: The first competition participation + First investment

Late march / early April I wanted to start onboarding players to test the game on a larger scale and gather thorough feedbacks but I felt uncomfortable with the game's look.

Fortunately, I came across a French indie game competition: https://www.lagamecup.com/. I instantly knew that we were complete outsiders because of our gameplay and ambitions (they promote eco-friendly / artistic / social games, not heavy-eSport-MMO-RTS) but this was a kick in the butt and a good reason to start investing in the project.

I benchmarked UI Designers, illustrators and translators on https://www.fiverr.com/ to take care of the stuff I could not do myself (The UI sprites, illustrations and book translation to English). It took a lot of dedication to find the most suited sellers but ultimately I got the right team to work on the project.

Herebelow my tips when using Fiverr:

  1. Always benchmark your sellers. Do not rely on their marketing. Select multiple ones and ask them the same deliverable with the same guidelines. It will cost you but you will learn a lot about their workflow and will end up with a reliable partner to develop your game. Take the time to do this, there are amazing sellers on Fiverr, you need to dig a little.

  2. Provide accurate guidelines and content to your sellers to have them understand as much as possible your expectations. They are working on multiple projects at the same time, they have close to no knowledge of your game, take the time to teach them.

  3. Be nice to your sellers. Sounds obvious but seems like a lot of Buyers are mean, so be mindful on how you treat your sellers, it is not because you are paying them that you can misbehave. Take the time to give feedback to your sellers, negative or positive. This will build your reputation. Also, when benchmarking, always take time to message sellers you did not select and explain them why and how they can improve.

The late-Alpha In-Game UI. Same layout with better sprites.

I found my musician on Reddit and I am fond of him. This guy just do amazing music and SFX. He implemented the Wwise sound engine in the project (https://www.audiokinetic.com/fr/products/wwise/) which revealed to be very handy and easy to use. As a programmer I do not have to care about music mixing and so on, I just fire the sounds and music when required, that's it.

With the competition approaching, I dedicated a lot of my time to manage the growing team and deliverables implementation. I spent around 7 000€ to bring the game from a complete prototype look & feel to a good Alpha version (With Music and some SFX).

We organized two evenings with 10 to 15 players to test the game and prepared questionnaires to strip any feedback we could get from them. The tests were a success and we got very interesting feedback on how to improve the game, the gameplay, the user experience and we confirmed the KSPs we wanted to verify with real players.

These two evenings were a milestone for us, players were fond of the game and we got no negative feedback, even when challenging them on giving their worst impression. This was a good hint that we were on the right track.

The Late Alpha reworked Army UI - Overall same layout but with way better sprites.

We also did a crazy professional presentation video for the competition (French and subtitled, you can use auto-translate to English for an average experience ah ah):

My brother getting prepared for the competition presentation video's stunt

The actual stunt on stage!

We made a plan to develop the Beta feature using the competition reward over a year (+ Winner can start a crowdfunding campaign on a French crowdfunding website) and made a detailed project presentation document.

The indoor "Les tutos" scene

But we were not selected to proceed to the finals. That's life.

I was stuck a bit because there was a list of features to be developed that required advanced knowledge and I wanted to onboard an experienced Dev / Tech lead to start taking over the coding. We tried to find one on LinkedIn using the free 30-days trial for the premium access, after multiple interviews we could not find a perfect fit.

Me, looking for plan B after being rejected from the indie dev competition final

So here we are, with Plan A that failed, summer time and a live Alpha. One of the interviewed tech lead had a very interesting idea I wanted to implement: Manage every action of the player when logged in using a "Lobby server" instead of only relying on API calls that did not allow complex coding such as triggering cheat-proof events for Achievements.

Until then, players connected using PlayFab authentication token, and made API calls to change their Army, buy cards etc... But were actually connected to a server only after Matchmaking placed them in a game.

This “Lobby server” idea unlocked everything for me to implement the last Alpha functionalities that were missing to test a fully functional RoRx prototype:

  • Change the bundles

  • Head-quarter (passive income)

  • Social features (friends, groups, chat)

  • Achievements and ranks

  • Group and cheat-proof matchmaking

  • Daily quests + missions (over 500!)

August 2021 - Phase 6: The late-Alpha

Due to summer vacations I decided to pause the Alpha, thanked players that helped us and started working on the late-Alpha. The first step was to implement a Lobby server to manage every connected player.

Mirror is not optimal for Lobby servers but still, it can manage 500-1000 connections on a single server, then you would need to implement some kind of load balancing logic which is not a big deal.

However, I wanted to implement right away a scalable solution and the only thing that I missed was the ability to exchange data between players (PlayFab does not allow this in real-time and in an efficient fashion) and using the Server as a relay would fail if players were connected on a different Lobby server. Hence I benchmarked Chat solutions with Unity plugins and went for PubNub (https://unity.chat/). This external solution would allow me to exchange any kind of data between my players to enable chat, online status tracking and group invites.

Here below PubNub feedbacks:

  1. The Unity plugin seems a bit "new" and has some weird issues, but support is reactive.

  2. The product comes in with a Free tier until 500 Monthly users which is more than enough to test your game.

  3. Documentation is very well done, but unfortunately sometime has inaccurate examples that do not work with Unity C#.

  4. It took me a bit of time to implement PubNub but in the end it is working fine. I am still having some issues but it works, and at this point that is all that counts for me.

  5. Main issue is that the Unity plugin is only Client-side. Authorization APIs need to be "raw called" using Unity Web Requests. I requested them to add this in their plugin since they though Unity was only Client side for whatever reason.

Late-Alpha - Hired someone to model tiles (not final version) and buildings, blending between tiles still to be done.

It took me a two months of work to implement all the late-Alpha features but, apart from PubNub, it was straightforward, I already had the knowledge required to code cheat-proof stuff using a Mirror-based server.

As modeling and animating 3D Robots is way too expensive, we found a middle-ground by using the Robots illustration facing the camera and an hexagonal base to show owner's color. The rendering still has to be polished but did the job.

The late Alpha was completed in December 2021 with the latest features and implementation of the cards illustrations + 3D models and implement VFX.

Late-Alpha: The final UI look

Late-Alpha: The final in-game look

January 2022 - The next steps

If RoRx was a standalone, I could have released it for everyone. But it’s not. It’s a MMO near RTS / 4X with a competitive ambition, and this challenge comes with extra care and skills required.

The whole MVP into Alpha process brought me a lot about the project. Its gameplay and economy have evolved a lot, up to a point I am satisfied with it and I find no more “pain points” to be removed.

I now have to complete the team with at least two persons: A CTO (Chief Technical Officer) and an AD (Artistic Director) because I can humbly say that even if the Alpha works, it is not scalable nor flexible and “testable” enough. The good thing, and overall what matters the most, is that I now have a fully functional prototype to showcase people and convince them to join the project.

I wrote this article back in January 2022 and I am posting it in September 2023. I can then add some elements. It took me a bit more than 1 year to find the right persons. I knew that without these profiles in the team, RoRx could not succeed, and that is why I put the project on hold until I got them. We now have all the skills required to build the final version of RoRx and have set the roadmap: The closed Beta will happen in June 2024!

Miscellaneous

I will just dump here some various facts that might already answer few questions you would have:

  • I managed my work (home office) and this project by waking up early (5-6h) and working until late (21-22h) with a 12-14h break, every day, no exception.

  • A main factor that allowed me to code RoRx Alpha this fast is because the game by itself is "simple". It is a board game with a lot of cosmetic features around to make it enjoyable (missions, PvP rank, fun modes...) I spent more time coding "cosmetic" features than the core game because once this latter was done, I only needed to make the game more interesting for players and to keep them playing. Due to limited budget, I also chose not to go for premium graphics such as 3D models and animations, I kept it simple.

  • The tough lesson is that the deeper you go in becoming a "full-stack" game dev, the less tutorial content you can find on internet. It requires discipline and motivation to persevere when you are alone with Unity and that you cannot make it work the way you want.

  • I learned a lot by solving bugs. Spending hours on something and finding the issue helps learning a lot, not only the "bug", you are also learning a lot on other stuff while searching for a solution. I found myself "appreciating" bug solving because it was an opportunity to deep dive into my code and how it works.

  • I focused a lot on getting the Best Practices from the industry, reading articles and watching videos about this. I stick to it as much as possible to make my code maintainable. If I had to give only 1 advice it would be it: Learn the best practices and apply them.

  • If anything in your gameplay is frustrating, change it. I found myself a lot of time being frustrated by something in the gameplay for a while until we just decided to solve it during a brainstorm session as it came as an evidence.

  • I had an extraordinary chance to not be alone in this adventure. My girlfriend and my brother were of an absolute help and I do not think I would have been capable of making RoRx without them. Would it be thanks to the hours of debates and brainstorming sessions we did or because they did the housekeeping to let me focus on the dev, I am so much grateful of them.

  • Total investment to develop the Alpha is around 30 000€. (I chose to buy my dream project instead of a car and kept my 23 years old one!)

  • And last but not the least: Stay mindful of your limitations, rally the right persons to your team. I wanted to quit my main job to dedicate myself 100% to RoRx, I hesitated a lot. But I had to admit that my skills as a "gamedev” and “tech lead” were far from enough to achieve the vision I had for the project. Be patient. It took me longer to build the right team than developing the Alpha.

Keep your hopes high, as much as the challenge is hard.

Calixte

Previous
Previous

February Schedule

Next
Next

Rise of the Robots X starts its final stretch to the Beta release