Hi,
I want to make a RTS-4X game (RT4X?), and I’m trying to figure if Unity is even the right choice of an engine for such a project.
Unity seems to be really geared toward other kind of games. 1 avatar, a previously set environment, etc.
So let me describe the parts of my idea that seems to collide with the way Unity does things, and hopefully mode experienced people here will be able to tell me if I should choose another engine (and maybe even which engine).
The map is created randomly at the beginning of each game.
A HUGE map is possible - hopefully 2k stars (and remember that stars have planets around them, then there are asteroids, etc.).
Zooming the camera out changes the way the game is drawn - zoom out enough and only stars and ship icons are shown, zoom in to see planets, ships and other details.
Units are not focused about managing themselves. To some extent they do, but above that there is an AI (or the player) that manage them.
MANYunits and objects in the game. The vast majority is not seen on the screen at the same time.
Perhaps (probably) Unity can do all that, but can it do it well? I don’t want to find that I need to work around features that are geared toward different style of games and in fact losing one of a ready-made engine biggest advantages.
(If you’re about to give me advice about starting a less ambitious project - please don’t. I’ll probably start with smaller things, but I don’t want to spend time learning to work with Unity when it is not the right choice for the big goal)
I just started working on an RTS 4X(or turn based, haven’t decided) for fun too. And although I’m not a super advanced programmer or Unity expert I can tell you this.
1, 3, and 4 are pretty easy and straightforward(although complexity is a factor), however 2 and 5 are were you’re going to start running into some problems, Unity can do all of that but your going to need to do some major optimization to get it good. Another engine would probably be better for a kind of game like this, but I’m using Unity because I’m comfortable with it and will miss some of it’s features.
Try some things that would be in your RTS with Unity to really see if it’s the right choice.
It’s not really geared toward any kind of game. It’s a generic framework, where it runs the kind of game that you program it to run.
It doesn’t have anything like this actually. If you’re talking about the included demo, well, that’s just a demo for one specific project. There’s no reason your game has to be anything like that. It might be better if you looked at the game list on Unity’s site for some more examples. See also Endless Space, which isn’t RTS, but is 4X.
Such as? There are no magic engines that do all the work of a custom RTS or strategy game for you; all of the challenges that you find in Unity will exist on every engine. At its most basic it comes down to “have some arrays of objects, and perform operations on some elements of the arrays depending on various conditions”, but I guess that applies to a lot of games.
Of course Unity can do all that. Everything you listed is easy enough to write build in Unity, (or any engine). They aren’t engine specific questions, they are all limited only by the developer.
I am guessing you aren’t really asking if Unity is capable, but rather are there starter kits/tutorials/templates/existing projects that you can start with and just tweak variables. Check out the assetstore under complete projects :Unity Asset Store - The Best Assets for Game Making so see if there is anything that will fit your needs.
I saw that Endless Space was made in Unity, and it was an encouraging discovery. But as I said there is a difference between “Can do it” and “Really helps you do it”.
Maybe its just the example projects, but Unity seems to really help if you want to make games with a set environment, simple enemies without an overmind behind them, and a limited amount of things on a level.
I just put a player asset on a plain, give it a provided script and bam - I can walk around on the plain.
Also, from a first look, it appears that everything in a scene is practically rendered and is just hidden from the camera, and it seemed like something that will burden a computer on huge maps.
So there might be a different engine out there that is more helpful for RTS style.
Well, all that was to make sure my first question is really understood correctly.
However, given that Unity IS the right choice (and do point otherwise if its not true), I will be grateful for any advice, asset, toolkit or tutorial that can help with creating a 4X RTS.
I know what you mean about how many tutorials focus on set environments, I had the same initial confusion. However it really is very easy to problematically place all your game objects. In fact, it seems to me many Unity games work this way for various reasons. My game places everything problematically, and although I’m not working with anywhere near the number of objects you propose, the principle is the same. I would imagine that you won’t pre-create everything and just hide it, as you say that won’t be efficient, but instead you will create (or better still, get from an object pool) the objects you need as they come into view.
As everyone else says, its all doable. Best of luck with your 4X RTS!
If they also made a project which was ping pong, would you say it only seems to help with ping pong games?
You can’t expect them to have everything done for you and if it’s not then assume it doesn’t help with that, if you expect that from your engines then you’re doomed for failure and mediocrity.
No, I don’t really want to repeat what has been said a few times about this subject but look around the forums and you’ll see the cases where something is hidden vs not. You’re probably just viewing stuff with your scene camera and coming to the idea that it doesn’t hide stuff but it doesn’t hide stuff in that view for debugging purposes. Static batching dynamic batching are some buzzwords you want to use in your search.
Unity “can” be the right choice with RTS, but you’re going to need to know how to script. If you expect the engine to hold your hand all the way, then this probably isn’t the right choice for you.