Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(5 edits) (+2)

Before I explain, I just want to say - I'm just sharing how awesome Unity is, you've chosen a good engine for this project.

So, the tutorials and manual are all written for easiest path, because this is where someone new to Unity will start.  It's true - Unity team has put a lot of work into the GameObject side of things to make it easy to use. 

But when you have a lot of experience with different engines, you start to ask questions like "How do I just draw to the screen myself?" and you look for the lowest level functionality to do that.  There are multiple reasons to sidestep the high level "easy to use" stuff - performance being one, and avoiding the problems or limitations that come with such high level systems.

So you begin browsing the API for the answers, instead of starting with the manual.  Simple engine will not give you these answers. But I can tell you, Unity's API for generating your own meshes and textures straight from code is the best of any engine I've ever used.  

I see multiple cranky posts on the Unity forums about problems with the high level part of the new InputSystem (because it's new), which I have completely sidestepped and got on with the rest of my game by taking the more lower level route (because I don't need the high level stuff) - and still get the benefit of the unified gamepad system, where, say, "left thumbstick" will always be "left thumbstick" no matter what controller the user is using  on any system - Playstation 3/4, Wii, Nintendo Switch, random USB controllers on desktop, etc. etc. and I can track individual gamepads which the old InputSystem doesn't do.

The amazing thing about Unity is it's the most incredible balance between ease of use and power, for both new developers and old developers.  For contrast, try getting into mesh generation in UE4, yeah you can do it, but it's not nearly as fun, and even UE4 devs say the back end API is not sensible at all!

So to answer your question "Why use Unity if you're skipping GameObjects?" - because Unity provides so much more over other engines than just GameObjects. I'm porting my game over from Godot and re-creating it in Unity purely to get Unity's multi-platform support, because I want to release on the consoles (Nintendo Switch, Playstation, Xbox).  Unity has the best multiplatform support of any engine out there.  It's pretty much one-click, so long as you also check the download box for the relevant platform in Unity hub.  This is something you can easily do for your Star Wars game - you can upload a build for Linux and Mac!

Thanks for the detailed response! You're giving me very dangerous ideas.

(1 edit)

Just remember, with great power comes great responsibility!  You have to release your resources manually or you'll get memory leaks! So without GameObjects, you do things like "mymesh = new Mesh()" and then when your ship is destroyed, you need to call "Mesh.Destroy(mymesh)"  Fortunately Unity has an AWESOME built in profiler to catch this very sort of problem!

And no problem - consider my time spent writing as my "donation" to see Tiny X-Wing continue to be developed further... ;)

P.S. There's no need to be a "low level purist" either - you can do as much low or high level to get your game done in the best way possible.

This won't be developed any further since it already served its purpose as a technology test bed. I'm already working on a game. I can't work on two!

Ah that's cool :) Looking forward to your next game!