Who am I?
I am Wolo, the main scripter of the Roblox RTS game [( ✦ ) [RUSSIA] Conquest: Napoleonic Wars] ([RUSSIA] Conquest: Napoleonic Wars [Pre-Alpha] - Roblox) and ( ✦ ) Ages Of Iron 2: Punic Wars [Early Alpha]. I have been interested in RTS from 13. Over 2+ years of experience in Roblox scripting and 3+ years as freelancer.
I also have a short video about my experience as a Roblox RTS developer: My experience as a Roblox RTS games developer - YouTube
---------------------------------------------------------------------------------------------------
Introduction: What is a RTS game?
Real-time-strategy (RTS) games; where players fight simultaneously rather than taking turns.
You probably already know about this genre, as it was once very popular due to games like Age of Empires or Starcraft. Games where you command your troops in real-time while using any strategy you have prepared, making the name “real-time-strategy”. This is different from games like Civilization, where players need to take turns from time to time.
The genre has lost a lot of popularity in recent years, became a niche genre. It is not completely dead; games like the remaster of Age of Empires 2 Definitive Edition are proof of it, but it is far from being mainstream.
Examples of RTS games in Roblox
There are not a lot of RTS games in Roblox, but there are some, some more popular than others.
It is important to know about other RTS games in Roblox if you want to make your own, because you can learn by looking, playing the other games and noticing their mistakes to not repeat them.
The Conquerors 3 - made by BrokenBone (@Alkan)
The oldest RTS game in Roblox. Not as popular as it once was, but still one of the best and most active RTS. Sure its old and it shows, but if you can deal with it, it can give u nice moments playing it.
Mini empires - made by the group VIREAL (its owner is @Avallachi)
Roblox modern RTS with a modern military theme. Probably the best RTS in Roblox currently; actually surprised me when I played it.
Conquest: Napoleonic Wars - made by @devvrs and @WoloPoints (me)
The RTS I am the main scripter of. You command your troops in a napoleonic era battle against the other team, 25vs25 players.
Important mentions
- Spearhead (has not released yet, but its the most awaited RTS game in Roblox yet)
- Ages of Iron
- Medieval RTS
Guide info
Guide difficulty level: it is not especially hard to understand. You will need to know the concepts of client and server and basic things about game dev as the different roles. If you do not know about this, understanding this post may be difficult.
Important words to understand
Players = clients
Scripting = programming
Transferring data = using remote events to communicate server / client
FPS = Frame per second
UI = user interface
---------------------------------------------------------------------------------------------------
What you need to consider before starting the development of your own RTS
Popularity
This is something you have to remember before starting the development of your own RTS game. It would be a very unique case if it reaches over 1000 CCU in the current times. The Conquerors 3, Mini Empires, Conquest, none of them ever reaches 1000.
RTS games are also rare in Roblox, that means that you can choose one theme to develop one and probably have no other games to compete against directly aside from other RTS games. Homewer, considering it is not mainstream, you will most probably not get a lot of players and your income will not be much. Remember, RTS games became a niche, and in Roblox they are even more unknown.
Making a RTS game is hard, even more if you do it completely alone
As any other game type, you can go on and try to do it alone, but from my own experience… it will be specially hard to do so. Making maps, scripts, UI, skins (if you wanna monetize with skins), balancing units, tech trees if your game idea includes it, 3D models, marketing, optimization, sound effects, music, setting up the Discord server…
You can do it alone, but it will be extremely time-consuming and, except if you are a prodigy, a lot of things will be very amateur. You may think about “what if I hire other people?”. That leads us to the next sub-selection:
RTS games can get really expensive to develop, even more if you want the game to be 100% professional
Think about it: how much does a scripter cost to hire? A 3d modeler? The UI designer?
There is a reason why there is no 100% professional quality RTS games in Roblox. You get limited income at most from making a game of that genre in Roblox, and hiring the necessary people to do it is very, very expensive.
Lets imagine you want to hire people for everything about the game development. Now, lets imagine they all agree to very cheap prices (you will not find a professional at all at this range, only people starting):
- 1 GFX for the game page = 100 robux
- 1 video (edited) = 300 robux
- 1 unit model = 100 robux
- 5 hours of scripting work every day = 70 robux
- 1 UI = 200 robux
- 1 song = 500 robux
- 1 map = 300 robux
I am not including every role, but lets make a simple calculation with that. Lets say that we want 3 GFX images, 1 video, 12 units models, 2 songs, and 3 maps. Now, lets say we also estimate the game will have 3 months of development and will have 6 UIs. We have that
Scripter payment
3 (months) * 30 = 90 days
70 * (5 * 90) = 31500 robux
UI designer payment
6 * 200 = 1200 robux
- 3 GFX = 300 robux
- 1 video (edited) = 300 robux
- 12 units models = 1200 robux
- 2 songs = 1000 robux
- 3 maps = 900 robux
The total is 36400 robux. Not something someone without money and without any previous game that generate income can afford. Remember, this is the theorical scenario where you find people willing to work for very low wages / prices. Even if you manage to find developers like that, they will most likely be far from being professionals.
You will probably need to be okay with hiring a 3D modeler, scripter, UI designer and the builder for the maps and no other developer (music dev, for example). Even then, it will not be cheap.
““What about getting voluntary developers to work with me?””
That can work; but it will be far from professional. If you decide you are okay with it, it will not be easy, I have rarely seen any team based on 100% volunteer work succeed. For RTS games this is more complicated: they are complex, and harder the work, more likely your team members will leave, why?
Because motivation does not last forever.
Promising payment after game release is also risky. Nothing secures your game will be succesful.
Not a lot of competitors, but as other Roblox games, its hard to get it to be known.
I repeat; RTS games are niche, not mainstream. In Roblox, it is even more niche. Unless you have a community that already knows you, getting your game to be played will be really hard.
RTS games are not money makers
They will not get you to be millionaire. At most, you will get some income from time to time, but do not expect to buy a lamborghini with what it`ll generate. This has become even worse with a recent Roblox update that changed the way Roblox pays by active spenders playing your game; Creator Rewards is Live
Before, a good part of the income generated by RTS games was because of premium payouts; the longer an active spender plays, the more Roblox would pay. RTS games matches usually last long and RTS games were really benefitted by the previous system. Homewer, this was changed because of the Creator Rewards update. At most, you will get 5 robux per active spender that plays your game for some minutes, IF your game is one of the first 3 the user plays in the whole day.
Does not matter if the player spends 2 hours in a match or just joins to get a daily reward; you will get the same for each user, and it sucks, yeah.
We have the testimony of The Conquerors 3 creator, (@Alkan), that in one of my previous posts (that was sadly flagged) declared:
Using his game as example, we can certainly say that Creator Rewards replacing Premium Payouts were a huge hit for RTS games developers.
---------------------------------------------------------------------------------------------------
Considered all the things mentioned above: now, plan the development and try to make your game known.
Consistent art-style
Try to make your game art style consistent. This is something a lot of indie developers failt at. A game can have bad graphics; but the art style can compensate it.
For example, Company of Heroes 1 does not have top graphics, but the art-style compensates it greatly, sames as Age of Empires 2 Definitive Edition.
Your game can have RTX type graphics; but if the art style is incosistent, then it will be ugly. Do not make low-poly trees and environment objects and your units completely detailed, for example. The art style needs to be consistent across all the game stuff. If you are the one who make the art and you are not a professional, you can try drawing with a certain art style, to put an example; the conquerors 3 default characters are not beatiful, but they do the job just fine.
If your game looks like the graphics were made by a kid, then try to make it look like it was intentional, not because you could not do anything better.
Please make a tasks list, organize it and make a document
This is something very important; please, make it clear both for yourself and your team if you have one. Make it clear what tasks need to be done, what tasks are assigned to everyone and also a document to explain what the game will be about.
Again, this is important. You and the members of your team need to know what is pending to be done and what will be next; this will improve the efficiency of the development work and will help to keep track of what is done.
There are a lot of websites to do this. My one I think is the most popular is Trello, but you can search for alternatives. You do not need to make all the tasks assigned like some kind of university essay, but you have to make them with enough detail that it will be understandable.
(Example of a Trello page, specifically one of the roadmap of Cold War - Roblox)
Try to make your game known before release
Preferably, do not wait until the game release for marketing. Try to get it known before it releases, preferably some months ago its completed. The most succesful example of this in Roblox is the famous game in development Spearhead. ROBLOX SPEARHEAD Devlog | Game Overhaul - YouTube.
You can also try other things like publishing small posts in Twitter, but your game will have to be graphically appealing for that. No one will want to see how you made a block being able to be selected and moved in a baseplate scenario..
This does not guarantee your game will be very popular, but you can get some people interested in playing your game in advance.
(example of a developer marketing his game in Twitter)
Make a Discord server and make dev blogs constantly
This will keep anyone interested in your project seeing the game advancing, and will basically maintain the hype, and it also has the chance to get even more future players in.
I do not recommend youtube for this purpose, except if you are aiming at a professional level and you have someone working for that. Making youtube videos is very time-consuming, and making dev-blogs in Discord or other forums is way quicker.
Making a Discord server also makes you able to establish a community before game-release, where they can not only talk about life matters and your game. but also organize competitions and clans, if your game allows it.
(example of a dev-blog post in a Discord server)
Try to make your game idea compatible with competitions
When planning your game idea, try to make it so making a clan and participating in competitive matches is possible. Seriously, this can really maintain your community alive and also may attract new players. This is something seen in The Conquerors 3 and Conquest Napoleonic Wars.
---------------------------------------------------------------------------------------------------
The game development started: essential tips
Roblox assigned servers to your game will not be especially strong; do not make them do too much work (scripting)
This is something you may have heard about before, but Roblox servers are not superman. You should try to make it only store and manage essential data; units combat, movement, loading the map…
You do not need to have the server have the units 3D models, you do not need it to have explosion particles, the server should only know numbers and text, and simulate everything with it, to finally replicate and send the necessary data to the players.
A player unit has hit another one generating an explosion: what should be done!?
- The server calculates which units got hit and what should be done it, for example, reducing their health.
- The server sends the data to the player / clients for three things:
- Generate the explosion particles
- Reproduce the sound
- Change the affected units health
- etc
A player has clicked and unit and wants to move it, what should be done!?
- The server check if the unit exists / is alive, if so, it marks a new goal position and start moving the unit (this would be changing the location based on whatever things as collision and speed and things like that) until it reaches a final destination
- Everytime the unit moves in the server, it sends data to the clients / players for their devices to move the models to the new unit location
Do not send too much data to the client / viceversa!
Sending too much data to clients lags the game for everyone. Preferably, reduce the data size with buffer | Documentation - Roblox Creator Hub
Pathfinding and collision
Prefer to use the most performant options you find suitable for your game. They will need to run on the server constantly, so it better be quick. You can try things like calculating the path only one time, but you would have to consider things like recalculating the path when something gets in the way and that type of scenarios.
(image taken from FastFlow | Fast flowfield generation for performant swarm pathfinding, a pathfinding module)
Micro-optimization
Preferably, you should make your code as good as possible. Micro-optimizaitons most of the cases are not completely necessary, but if you find them to be, please first check what is really requiring resources a lot, and if you still wanna do micro-optimizations, try to maintain your code as readable as possible after applying them. It will help in the long-run
Only do things when necessary
You do not need to things 60 times a second in the server. For example, you can move units 10 times per second, and make the client smooth with lerping (tutorial in the “useful tutorials” section). If none of the units attack more than 2 times a second, you can calculate units attack stuff 3 times a second or 2. This will save A LOT of performance impact.
Calculating units movement 60 times a second is A LOT more than doing it 10 times a second!
Find the best balance between smoothness and performance. In my game, Conquest Napoleonic Wars, we calculate units movement 10 times a second and units attack 2 times a second. You can even reduce this further if you manage to do it only specific times with events!
3D modeling or texture; level of detail
More polygons and higher quality textures means more device resources used. Only use the quality level you need, for example:
If your RTS is alright with the first one, there is no need to upgrade it to be 4K.
Make the controls as good as you can and make as many settings as your players need (scripting)
A very important part about RTS games is them having good controls. RTS players will absolutely hate a game that does not offer them good controls to manage their units.
A good part of this is keybinds. You can have keybinds to select all the units, deselect all units, enable / disable their range indicator, etc. It all depends on the game. Get game testers and ask them for controls feedback!
Settings are also a very important thing. Let your players reduce the graphics quality! Some of them will absolutely thank you for that. You can also try to make the keybinds customizable, that also really helps.
Improve your game; make it easier to understand, listen to feedback and play with your game testers (general)
Very, very important. Your game needs to be able to be as easy to understand as possible. A lot of players will leave a RTS game if they dont understand how to play it, so this is essential to maintain new players interested in your game. Listen to what they say, listen to what is complicated for them, and try to improve it.
LISTEN to what ur testers say. Do not dismiss it as “skill-issue” or things like that. The feedback will help you to improve your game further; graphics, balancing, whatever. It is also a good recommendation to play with your testers. There are a lot of things you will not notice when developing, but will when you actually play with real people.
Be a good leader, in case you are working with a team (teamwork)
I already talked about organizing tasks; but you also have to be a good leader. Treat your teammates with respect, pay them in time, do not annoy them too much, if they have something important in real life understand them… this is not really that complicated
Do not assign work without being sure!
I have seen this happening in some projects. Please, plan the work you are gonna assign being 100% sure it will be used. I have seen projects assigning work to 3D modelers to just leave it and request another thing. Sure, this may help the 3D modeler income depending if they work on commision or not, but this will slowdown the project.
Use parallel LUAU (scripting)
Parallel luau lets you divide work between multiple threads for the CPU, reducing the processing time.
I will not lie, it is complicated and time-consuming to implement it correctly and you will probably have headaches, and Roblox parallel processing is also kinda bad, but the rewards are usually worth it and provide a faster and smoother experience, but…
Be careful about sending too much data to the threads!
Sending too much data to different threads has a huge impact in performance, making it even worse than without parallel luau. Actor:SendMessage() taking too much time - #15 by WoloPoints
Use buffers to compress your data and optimize it to the point where parallel luau will make a good / positive difference. You can also try using bit32, but be aware, its a pain to use if you have no experience.
Make units balanced!
A balanced gameplay provides diversity; a RTS where one unit dominates over every other one is a game that gets boring easily; Players want to see different strategies, not the same one over and over again.
Balance your maps
RTS players hate to start a match in a map where they are likely to lose due to map disadvantage, due to the other team having the resources closer or whatever.
Give different maps!
Playing the same 1-2 maps constantly also gets boring. Make new maps for your players constantly!
Make them fun and listen to testers feedback
You will not want to have your builder work on a map for weeks or months just for it to not be played, right?
Plan everything, listen to feedback, improve until it is good enough, or you will get dissapointed when it releases.
Do not make the game P2W
P2W means “Pay-To-Win:”. Be it adding special skins that give you bonuses, new units that are extremely strong, some kind of advantage over other players, etc, etc.
Sell skins, ask for donations, but do not make it p2w. Players absolutely hate that. Would you like to play a RTS game where you are likely to lose, not because your rival is better, but because he bough a golden unit? No? Yeah, neither do I.
A good example of generating income with your RTS is The Conquerors 3, look at the store:
No P2W, just skins.
In general, try to make your game playable in as many devices as possible
Mobile users, PC users, console users with keyboard and mouse… The more people can play your game, the better the CCU amount will be and more income you will get.
Also remember to make the UI easy to understand!
Nobody likes to play the game with a UI hard to understand or just very ugly.
Hiring Developers in general
You can use websites like Fiverr or join Discord servers, or just use the Roblox devforum to find and hire developers for your game. Be careful, some may try to scam you. Make sure to only hire developers that have a reputation built already.
(SUMMARY)
- Do not add P2W, sell skins instead.
- Make the controls nice to use
- Focus on balancing your game
- Optimize your game reducing the amount of things it does every second
- Use Parallel LUAU if possible
- Dont use too much bandwith
- Listen to feedback and make your game easy to understand
- Make the game UI easy to understand and at least decent (visual quality)
- Hire only really trustworthy developers
End of the guide and links to useful tutorials
Preferably, if you decide to make your own RTS, go for a small scale and low-poly style. Trust me, going with complex ideas and realistic graphics will make you crash-out. Sure, the guide could have had a lot more of optimization techniques and details to take in mind, but this general guide should be enough to whoever is willing to start in the RTS game development world.
I would like to thank u for reaching this part. If you wish to support me, you can do so by joining this game and donating: Wolo - Donation Place - Roblox
Here are links to guides that you may find very useful in the development process of your game:
OPTIMIZATION
Real world building and scripting optimization for Roblox - Resources / Roblox Staff - Developer Forum | Roblox - (credits to @MrChickenRocket)
Optimizing Unit Targeting in Roblox with a Swarm Module - Resources / Roblox Staff - Developer Forum | Roblox - (credits to @imagineerrx, this tutorial has especially helped me in my games!)
How we reduced bandwidth usage by 60x in Astro Force (Roblox RTS) - Resources / Community Resources - Developer Forum | Roblox - From the creators of Astro Force (credits to @Atrazine, your tutorial was really helpful for my game, thanks! )
[ADVANCED] Binary in Luau: Tutorial on Basic Computer Logic & Bit32 - Resources / Community Tutorials - Developer Forum | Roblox - (credits to @doytnr)
Ways to move your parts with 0 lag. (List of good and bad methods) - Resources / Community Resources - Developer Forum | Roblox - (credits to @Wizzthepixelcat, your tutorial was also really useful in my case! Thank you for your investigation)
How to use Parallel Luau - Resources / Community Tutorials - Developer Forum | Roblox - (credits to @CoderHusk)
Pathfinding
FastFlow | Fast flowfield generation for performant swarm pathfinding - Resources / Community Resources - Developer Forum | Roblox - (credits to @bob_factory)
UI
Introduction - TopbarPlus v3 - (credits to @ForeverHD your module was really helpful!)
UI Design Guide - Resources / Community Tutorials - Developer Forum | Roblox - (credits to @globalzumo)
UI Design Starter Guide - Resources / Community Tutorials - Developer Forum | Roblox - (credits to @EmeraldSlash, This one is aimed mostly to UI properties in Roblox Studio)
3D modeling
Modeling 101 in Blender (Box Modeling) - Resources / Roblox Staff - Developer Forum | Roblox - (credits to @SCHLEEMPH)
Players data
ProfileStore - Save your player data easy (DataStore Module) - Resources / Community Resources - Developer Forum | Roblox - (credits to @loleris, remember, profile store does not work for global leaderboards, only for single player data, reason because its named PROFILEStore)
Other
WorldRoot | Documentation - Roblox Creator Hub
buffer | Documentation - Roblox Creator Hub
PVInstance | Documentation - Roblox Creator Hub













