What are considered "advanced" mechanics/features?

So I guess “basic” features would include things like a basic movement controller, typical game mechanics like walk, jump, shoot etc.

But what would be considered “advanced” features/mechanics? I’m talking about the kinda stuff that might cause people’s efforts to slow down to a crawl because they are struggling to figure out how to implement their ideas. Or is Unity flexible enough that this rarely happens?

You can make almost anything you want. Some prominent games made on Unity are:

  • Hearthstone
  • Cuphead
  • Cities: Skylines
  • Rick and Morty: Virtual Rick-ality

In terms of But “what would be considered “advanced” features/mechanics?”

  • Using the network transport layer to build your own custom multiplayer system
  • Replacing the entire render system with your own custom pipeline.
  • Open world asset/chunk streaming

I’ve always thought one of the really weird things about Unity is their reluctance to “show us what it can do”. All you have to do is look at the Adam demo or some of the other stuff they have put out to see that you can get AAA quality graphic wise.

The catch-22 is that not many AAA titles are built with Unity because those studios tend to either use their own engine or go with Unreal… and Unity (for whatever reason) seem to be disinterested in showcasing their engine like Epic Games.

I think that is partially because Unity covers a wider scope (Architecture Design, Car Manufacturers etc) and I think that is where a lot of their big clients come from, so we have not really seen a lot of examples of what Unity is truly capable of in the hands of it’s own engineers (look at Epic and fortnite, gears of war…)

Unity isn’t “flexible enough that this rarely happens?” The reason “people’s efforts to slow down to a crawl because they are struggling to figure out how to implement their ideas” is because:

  • They lack the experience (technical or otherwise) to implement their idea
  • They don’t know “how” to learn. There are a lot of people who are content to just copy/paste code and do the bare minimum.

Unity has few limitations as an engine… it’s normally people that are the issue. Some concepts are just hard to learn or take a long time to implement due to complexity. It’s like someone asking “how good are F1 cars for racing?” Well, turns out they are really good. But you can’t just hop in one and expect to not die without some kind of previous experience/learning curve.

When people crash cars we don’t say “this car is terrible for what it was built for” we say “this person was being irresponsible and didn’t use the vehicle properly/take proper care”.

Same for engines (imo). A lot of them are very similar although Unity is only now switching to ECS which no doubt will be a difficult curve for a lot of people.

1 Like

This paragraph appears to be assuming that the reason they would struggle to figure out how to implement their idea is due to the game engine not being flexible enough, but in my experience on the forums and with my own projects it’s much more a case of the individual not having any idea of how to approach the problem.

3 Likes

I should point out that I used the Doom/Quake engines for years for creating mods. There were plenty of limitations in regards to what you could or couldn’t do. This is true even now despite all the fancy extra features from source ports. I’ve got limited experience working with Unity.

You could make a basic mobile game, or you could use Unity to essentially remake fortnite… or any other AAA game (how good it would be might differ depending on the team quality etc).

Unity exists in sort of a weird space of “be everything to everyone” and it’s not something I really like to be honest. One of the downsides is that it might take significant effort to do something like a AAA MMO or a FPS shooter, or a game like Sea of Thieves because you have to do everything yourself.

  • can you make a walk-through house demo for a real estate agency? yep.
  • use unity for films? yep
  • use unity to provide simulations to companies for training/demo purposes? yep
  • use unity to build internal services (like a JIRA clone) ? yep.
  • Mobile games… browser games? you can technically make a website and push it to the web (no idea why you would though)

There is a certain beauty to that as Unity becomes a blank canvas… but stuff like writing your own render engine/pipeline is hard. Honestly, take a few minutes to just create a “basic” render pipeline that renders a cube with a solid material and you will see how deep you can customize.

I like to think of it like buying shoes. Some engines offer “off the shelf” solutions, or you can customise a limited amount of “pre set” templates. other engines (Unity, CryEngine, Unreal, Godot) take an approach closer to

“Hey we have these general purpose shoes you can wear right now… or you can build your own shoe from a set of templates with custom options, or you can go into the backroom and select your own materials, cut your own stuff, stitch it together, make your own shoelaces and put it all together using our equipment”

Except Unity also say “hey not into shoes? That’s cool did you know you can also build cars in our second garage?” where they cater to so many different sectors.

1 Like

Yes, but these were limitations imposed by the developer whereas modern game engines are only truly held back by the hardware they run off of and even then it’s almost always just at a performance penalty rather than straight up impossible.

We are making AI that make intelligent and strategic correct decisions. Each component isnt that advanced, but together it’s a huge system.

Another part that have taken time is some of our VR interactions, like this bomb, more so since we need to network everything :smile:

1 Like

One bottleneck easy to hit is realistic graphics rendering with large sets, streaming content, etc.

With some of the assets on store a lot can be achieved but when you run into issues it can be deep engine specific stuff that requires really knowledgeable specialist to solve.

I really hope this will get better as the new pipelines evolve. It’s hard with the built in pipeline to maintain framerate on larger scenes atleast for us in VR. And everything is manual like clustering lightmap tags etc. A dream would be something like nanite, just drag in asset after asset in the world and the engine takes care of evrything from streaming to batching. :slight_smile: