The problem with starting game development, when you don’t have any idea what is possible and what is not you tend to get AAA / Hollywood Big Budget ideas for games.
A novice will probably have a game idea that looks like this:
Or this:
Or this:
But game development and Unity has massive restrictions on what is possible, so should we have a limits of Unity thread?
No.
Those are not really Unity or tech limitations, they are developer limitations. Moreover if one is a noob, and knows almost nothing about game dev, trying to explain to them the limits or complexity of something they have no context is pointless. The old Twain quote: “Never try to teach a pig to sing. It wastes your time and annoys the pig.” applies in many ways. They have so little understanding that explanation simply makes no sense.
Discussing limitations of a tool (especially with noobs) isn’t practical. A single developer (and a new one in particular) is going to encounter and be blocked by their own limitations (time, skill, knowledge, etc…) long before they will hit any real tool limitations. And time and knowledge will get them past most limitations.
The idea is also a pretty negative spin. Presenting what can be done given certain situations is a more positive approach rather than starting with what can’t be done.
The getting started section is for people who are starting with Unity to ask (usually relatively basic) questions, which seems to be working fine. Try being less concerned with what other people might do. If they want to get in over their heads—and there’s no particular evidence for that in the first place, just something you came up with—that’s not your business.
Not just the noobs but helping all developers understand and learn about the limitations of game development. The quicker we can get people up to speed on the limitations the quicker they can work within them creating great games.
Limitations and constraints are part of the business of game development the quicker and easier it is for developers and designers to understand and find the limits the quicker they will be able to make great games.
IMHO Unity should embrace and present it’s limitations to all developers. Cars have a max speed, acceleration and load that they display openly. Shouldn’t game engines/platforms have similar metrics.
Also in the 80’s very limited computers were released to smart game developers and some of those developers found ways to circumvent the limitations. Could this enable smart developers to explore the and push back the limits of Unity?
There are no hard limits in unity or other tool for that matter. Photoshop has no limits on the content you can create. Skill, knowledge and experience are the only real limits. There are always ways to achieve what you want with those 3 things.
Also to echo @Eric5h5 , it’s not for unity or anyone to worry about everyone’s goals. Unity is a tool to enable, not restrict.
Not to mention it’s a total non-problem to begin with. I thought maybe the getting started section had been overrun with MMO wannabes while I wasn’t looking or something, but nope, it’s just standard questions and things seem to be working nicely. No need for anyone to invent drama where none exists.
No
Any thing that you could even deem an engine limitation is gonna be outside of the accessibility of those in the getting started section anyway
Not saying theyre stupid, but they arent there yet
Haven’t you found that when you are working on a game you hit limitations that impact performance, and those limitations impact the design of your game.
Or if you have not experience this are you not pushing what is possible with Unity?
Or do you approach game development as an iterative process, building up gradually and monitoring performance?
Or are you a Guru game developer who knows all the tricks of the trade and can reach into your bag of tricks and perform minor miracles of game design and optimisation when needed?
Assuming a 60fps desired frame rate:
Q: How many characters can my game have in Unity on PC/ IOS / Android?
Q: How large can my levels be in Unity on PC / IOS / Android?
Q: How large an RTS space battle can I have in volume and number of Units?
Q: How large a navmesh can Unity have and how many navmesh agents on PC / IOS / Android?
Q: How many particles can have in Unity, with and without physics?
Q: How many moving physical objects can Unity handle on PC / IOS / Android?
Just to get the ball rolling, can you answer any of the above?
Hint: You can’t answer but you should be able to point them to a simple Unity test harnesses, or help them write scripts that let them find out?
IMHO if we took the approach from the outset that game development is all about finite resources and limitations, we only have so many clock cycles on our CPU’s, shader cores on our GPU’s, RAM available and 16.6 or less milliseconds to render a frame, game development is the art of using those limited resources combined with Unity’s inherent limitations to make the best games we can.
And as I have pointed out previously Moore’s Law is slowing down as it approaches fundamental physical limitations. We all need to start working within the limits of our technology, as the next jump in hardware performance will probably take longer to arrive than the last.
What if the Tutorials added a performance optimisation tutorial, where they just get people to take the basic tutorials but push them to the Max and teach them how to optimise for performance using the profiler and appropriate approaches?
pre optimizing is something that should only be done if you already know what you are doing. I don’t think it’s a good idea to burden newbies with that. And even then, trying to find problems before you have any, might sound good in theory, but is actually an endless endeavour of trying to solve problems that are not even affecting you yet (or you don’t know yet).
If you want to help newbies, it might be better to make a post about “How to solve problems yourself” with hints and tricks about HOW to use unity performance utility tool and how to test games stability and how to find out what you need for your game and how to test for those specific problems etc. (Like, do I need 1000 physically interactible objects in my scene? and then test what does it do within a new scene to run that? are there maybe other physics solutions that I could use instead of unitys system that are less performance heavy? IF it is a problem) Things like, if I have a specific game element that is very performance heavy, how can I balance that with the rest of the game to stay at 60fps? etc.
You do bring up valid questions, things that game devs might be interested in, but I doubt it will do anything good to “restrict” the beginner forums corner, when this is the place to actually ask such questions.
I don’t think it’s possible to identify hard limits of what Unity can do. That’s the problem. Yes, it’s possible to simulate an infinite world in Unity, with tricks, but it’d most likely perform like crap, without the appropriate hardware.
It’s actually the target hardware that is the limit. That’s what all AAA game projects start with first. Identify your consumer’s target system requirements, do your best to develop to that, and if there’s a feature that requires breaking those requirements, engineering has a meeting with leadership and decides whether or not the feature is worth changing those requirements for.
EDIT:
I sort of wanted to give an analogy of packing clothes in a suitcase, but I’m not sure if it’s the best analogy. Suppose all of your consumers’ system’s resources are represented by the space in the suitcase, and socks, underwear, clothes for cold weather, clothes for hot weather, pajamas, electronics, toiletries, jackets, hats, shoes, all had to be fit inside of it. Depending on what you want out of your trip you will pack the suitcase differently, allocating more resources to one or another. That means you can have extremes. If you have n resources for models, doesn’t mean you have those resources for animation, AI, game logic, etc. And some consumers may have bigger suitcases, others may have smaller suitcases. It’s the responsibility of the developer to decide which suitcase size is best for their consumers for the type of vacation they are providing to them.
I agree with this. Like one simple thing I can think of is, if you are experiencing slow performance, how do you investigate where it is? First, take some guesses in where it might be. Usually it’s something you changed recently. Try backing out or commenting code little by little in reverse, until you notice that the performance has improved. If you can’t find anything, then try using the profiler (go to link on how to use the profiler). Or, use a poor man’s profiler, and add stopwatches in key segments of the code, where you think looks suspicious, and observe how long each segment takes to compute.
Choose the right containers for the operations that you are performing. Like, are you adding/removing data a lot in a collection? Are you sorting? Are you searching? Are you resizing the container frequently? Under specific operations, different containers perform better or worse.
Isn’t there already a page of best practices for Unity? Let alone programming? Maybe this just needs to be compiled in a place that’s more visible? Is this the sort of stuff that’s not obvious to beginners?
I’m not saying there aren’t limitations, don’t get me wrong
But no one in the learn section is going to be affected by them, they’re learning, not making the next World of Warcraft (Even if they think they are )
[quote=“Arowx, post:13, topic: 627158, username:Arowx”]
Haven’t you found that when you are working on a game you hit limitations that impact performance,
[/quote]Of course.
No. My responsibility is to solve the issue so that it doesn’t impact design. Changing design because of lack of skill is a flawed process.
Yes? No? Not Really? It’s a pointless question. Why would anyone care about pushing unity? I make games, not just dinking around with toys. By our very nature we are always pushing the limits of platform, visual fidelity, knowledge and game mechanics. Sometimes Unity has challenges, but they aren’t common, we solve them and move on. I’m a game developer, Unity is a tool. I wouldn’t be doing what do if was gated by a what one tool could or could not do. We do push the limits of the platform constantly. Unity (or whatever tool) is almost never the problem.
Game development is an iterative process. Performance is always monitored. There is no “or” about it. When challenges arise you solve them. If you are solving technical problems by changing the design, you’re doing it wrong. Design should change to solve design problems.
Yea, pretty much. Though not every area, we have folks in other disciplines that are more knowledgeable than I about their realms. But optimization of graphic assets, visuals, (and visual solutions) animation, Unity, tools and pipeline are my area of expertise. But it is not “tricks”, it is knowledge, creative application. I am exceptional at it. I regularly provide master classes and presentations on those topics. (One this week in fact, on editor tool performance).
They are not real questions. Nor ones that a competent game developer would ask. Those are random noob questions rarely asked by people who don’t have enough knowledge to know better.
For example the first one properly should be: “What do I need to do to meet the goal of having x characters in x environment with these [insert a ton of other relevant feature info].” Then you build. Things may come up along the way, you just solve them.
[quote=“Arowx, post:13, topic: 627158, username:Arowx”]
Hint: You can’t answer but you should be able to point them to a simple Unity test harnesses, or help them write scripts that let them find out?
[/quote]Random Tools/tests outside the context of your actual game are complete waste of time.
Game developers understand there are platform time and design and other constraints. (You are basically suggesting that airplanes should have wings). But you have listed all the wrong ones, those things don’t translate into “how many random whatevers I can have on screen”, by a long shot. Sure there are hardware specs, but the useful info ends there. There are hundreds of thousands steps from there to final game. You really need to stop worrying about others, and projecting your random/hypothetical concerns to others. Also, you keep mentioning about “Unity limitations”, yet haven’t mentioned a single one.
[quote=“Arowx, post:13, topic: 627158, username:Arowx”]
We all need to start working within the limits of our technology, as the next jump in hardware performance will probably take longer to arrive than the last.
[/quote]You need to stop worrying about “we”, worry about you. Work under your own limitations of abilities, knowledge and perceived limitation, no need to drag others down. You constantly moan and complain about he limits of hardware, unity etc… and how Unity needs to do this or that… How’s that working out for you? You realize that thousands of other developers don’t face the same limitations? You really need to stop speaking for others.(especially nonexistent ones) The whole concept of this thread (convince new users that they should adopt your skill limits) is detrimental.
I would also point out that these are the sorts of limits that beginners should know about. The other limit I can recall off the bat is power-of-two texture sizes. Either way both of those limitations aren’t specific to Unity, and are usually mentioned within the first few pages of any beginner programming or graphics text.