Hi, here from PI Labs YouTube channel. Nice project buddy. Hope you release linux binaries , also x86 ones so we can emulate them with box86 on rpi4. Unity does not support linux ARM for now.
I wouldn't say it's contrary to the way Unity works - Unity provides some nice stuff to get things done quickly, but also allows you to forgo it all and do things more directly. There's no issue at all with dropping a dummy object in the scene, assigning it a script called "Main.cs" and just take over from there. No problem with using C# System library to read and write files, and no problem drawing things without GameObjects by using Graphics.DrawMesh. It's how I build my 2D games (eg. HopSquash! on Steam)
So glad you're doing this though, it's always been a dream of mine to make a low poly Star Wars game, but it would have to be for free and I have never been able to justify the time. Looking forward to trying it out.
Everything you describes is exactly contrary to how it's meant to be used. Yes you can, but that's not how you're supposed to. If it was, then all the Unity tutorials, documentation, and features would be working towards that kind of workflow and they absolutely do not. The whole point of having an Editor is so that you don't have to do what you're describing.
I have to wonder, if you're going to such an extreme as to not even use GameObjects, why you would use Unity at all and not a simpler engine, or write your own?
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!
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.
I'm realizing now that the game doesn't actually have any mouse controls outside of the spectator camera. I didn't put any effort into making the controls work nicely since that wasn't the point of this. In theory a basic joystick should also work, or you can play with just the keyboard and arrow keys.
← Return to game
Comments
Log in with itch.io to leave a comment.
Bro, you're the best! Your ''tiny combat area'' is simple, but really cool
excellent, well done ! and thanks
hello Why485 cant wait to play the game! excpecially after playing tiny combat arena/flight model games, keep up the great work!
EDIT: mouse aim could be nice
Hi Why485 cool game bro... cant wait to mess around in it
Hi, here from PI Labs YouTube channel. Nice project buddy. Hope you release linux binaries , also x86 ones so we can emulate them with box86 on rpi4. Unity does not support linux ARM for now.
This was built in x86.
thats great, but no linux binaries whatsoever :(
I wouldn't say it's contrary to the way Unity works - Unity provides some nice stuff to get things done quickly, but also allows you to forgo it all and do things more directly. There's no issue at all with dropping a dummy object in the scene, assigning it a script called "Main.cs" and just take over from there. No problem with using C# System library to read and write files, and no problem drawing things without GameObjects by using Graphics.DrawMesh. It's how I build my 2D games (eg. HopSquash! on Steam)
So glad you're doing this though, it's always been a dream of mine to make a low poly Star Wars game, but it would have to be for free and I have never been able to justify the time. Looking forward to trying it out.
Everything you describes is exactly contrary to how it's meant to be used. Yes you can, but that's not how you're supposed to. If it was, then all the Unity tutorials, documentation, and features would be working towards that kind of workflow and they absolutely do not. The whole point of having an Editor is so that you don't have to do what you're describing.
I have to wonder, if you're going to such an extreme as to not even use GameObjects, why you would use Unity at all and not a simpler engine, or write your own?
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.
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!
Very interesting, but it raises the question: Will Tiny Combat Arena have gamepad support?
Yes. I do most of my testing with a gamepad.
Not sure how to get it controlled with keyboard / mouse, please?
I'm realizing now that the game doesn't actually have any mouse controls outside of the spectator camera. I didn't put any effort into making the controls work nicely since that wasn't the point of this. In theory a basic joystick should also work, or you can play with just the keyboard and arrow keys.
So good, so nostalgyc. Love this
sick
Awesome
Really fun to play even though its very basic, though I wish you could fly the X-wing to blast away some TIE Fighters.