Kakapio
|
|
« on: September 27, 2016, 04:22:20 PM » |
|
Hey guys, So I've been working on a game for the past few months in Unity, and have gotten a decent bit done. I now feel that using Unity was a mistake, as it has way too many features that I don't need. On top of that, getting pixel-perfection is a royal pain in the ass. I've been looking at Monogame, but I think it might be a little too minimal for me (I'll still go to it if it's the only option left). I considered Duality, but it doesn't seem to have much in the way of a community. Getting questions answered would take at least a day on the forums.
I honestly feel like there's no 2D engines that could work for me. Are you guys aware of any others?
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #1 on: September 27, 2016, 04:52:17 PM » |
|
What is too minimal about monogame? Do you want an editor or just something a little higher level or do you want something that comes with a full blown editor?
|
|
|
Logged
|
|
|
|
rozza
|
|
« Reply #2 on: September 27, 2016, 11:31:10 PM » |
|
If you want to use something like MonoGame but also want an editor you could always look into integrating an existing external one like Tiled
|
|
|
Logged
|
|
|
|
starsrift
|
|
« Reply #3 on: September 28, 2016, 02:53:31 AM » |
|
I've found myself in the situation where underusing an engine has made me question why I'm using it.
I think a smarter question to ask is how to use the features of the engine to make your game better or to pop better. Unity has a fairly low bar as far as that goes.
If you're intent on downsizing, Allegro was super popular back in the days when I was in uni, it's pretty mature now I suppose.
|
|
|
Logged
|
"Vigorous writing is concise." - William Strunk, Jr. As is coding.
I take life with a grain of salt. And a slice of lime, plus a shot of tequila.
|
|
|
InfiniteStateMachine
|
|
« Reply #4 on: September 28, 2016, 05:40:47 AM » |
|
XNA/Monogame was Shawn Hargreaves next project after allegro. Now he's doing win2d
|
|
|
Logged
|
|
|
|
Resonator
|
|
« Reply #5 on: September 30, 2016, 12:00:57 AM » |
|
I agree that Unity has become a behemoth in their effort over many years to become the ubiquitous game engine. The knowledge domain is now enormous. However, most things you might want to do still can be made to work with little effort.
I worked out pixel perfect 2d in early Unity 4 for a project that didn't play out. It took a few weeks to nail it. Since Unity 4.6, pixel perfect 2d is much more convenient. I'd consider a short reach away. You're not "on rails" for a fully optimized 2d pipeline with Unity out of the box, but I'd still recommend it.
In my opinion, it's much better to face huge possibilities than do a bunch of work and discover that you've painted yourself into a corner.
-SCC
|
|
|
Logged
|
|
|
|
Ashedragon
|
|
« Reply #6 on: September 30, 2016, 08:29:01 PM » |
|
There's Otter2D if you want to try that out.
|
|
|
Logged
|
|
|
|
Kakapio
|
|
« Reply #7 on: October 01, 2016, 08:53:43 PM » |
|
Ok! So I've decided to move to Duality, and have started working on a short and simple platformer. All I can say is that it is MUCH better than Unity. I believe it also forces good coding practices on you, and it's component-based design is very nice :D
I highly recommend anyone using Unity for 2D to consider using Duality (The API is very similar, and it took very little time to grasp the engine's functionality).
The only disadvantage is a lack of documentation, but there is a highly active Discord chat along with a forum. There are also tutorials on the Github wiki that tell you how to do most things.
|
|
|
Logged
|
|
|
|
FathomSchmidt
Level 0
|
|
« Reply #8 on: October 04, 2016, 05:21:41 PM » |
|
Can I ask, what you don't like about Unity?
I admit I like trying new tech, but I often feel if I try too many different things I don't get much accomplished.
Duality does seem nice. What is the biggest pull for you?
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #9 on: October 04, 2016, 05:42:28 PM » |
|
Ovicior already covered this but one thing is Unity is sometimes regarded as an engine that forces bad habits. I've heard Duality praised a fair amount for being built in a way where you use C# idiomatically. The .NetRocks podcast had a guest who's name I can't recall come on and speak about the differences in Unity. I remember she had a lot of issues with things like fields needing to be public to be exposed to the editor.
Anecdotally I've seen people discriminate between c# programmers and c# programmers who are primarily only experienced with Unity.
Ovicior, please post back in the future about your experiences with Duality! I've heard a lot of good things but have never had the time to try something new.
EDIT: Was bored and went to the website and downloaded the package. Wow! This is really polished for a FOSS game engine. He's got his own dependency manager and central repository. It worked better than a lot of commercial solutions I've seen!
The help advisor panel is also amazing! I was trying to use the play button to check out the tilemap sample but couldnt control my character. I hovered over the panel and the advisor had a long description of what it does and pointed out that I probably was wondering why I couldnt control input and explained why that was as well as how to recitify the problem. Granted that's more of a tool design thing but still very impressive.
Looking forward to spending some time with this in 2019!
|
|
« Last Edit: October 04, 2016, 05:54:56 PM by InfiniteStateMachine »
|
Logged
|
|
|
|
rozza
|
|
« Reply #10 on: October 04, 2016, 07:54:34 PM » |
|
Yeah well aside from being perpetually stuck in .NET 3.5 land, if you learn C# just by reading the Unity docs and tutorials you will end up learning how to do everything the Unity way, which is very closely tied to their engine and component system. I have seen quite a few developers who just make everything MonoBehaviours or ScriptableObjects and don't really get how you would code outside of the frameworks Unity gives you.
That doesn't mean you can't use good coding practices in Unity though, you just have to know what you're doing.
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #11 on: October 04, 2016, 09:56:45 PM » |
|
It's been a long time since I've used unity. I'm sure a lot has changed. Is the public field exposure thing still an issue? Or can you use properties now?
|
|
|
Logged
|
|
|
|
oahda
|
|
« Reply #12 on: October 05, 2016, 12:07:47 AM » |
|
It's been a long time since I've used unity. I'm sure a lot has changed. Is the public field exposure thing still an issue? Or can you use properties now?
Properties work. There are also two attributes: [HideInInspector] hides public fields from the inspector, and [SerializeField] enables private fields in the inspector.
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #13 on: October 05, 2016, 09:44:42 AM » |
|
Cool. Why would you want to expose a private field to the inspector? For some edge case?
|
|
|
Logged
|
|
|
|
FathomSchmidt
Level 0
|
|
« Reply #14 on: October 05, 2016, 04:17:09 PM » |
|
Cool. Why would you want to expose a private field to the inspector? For some edge case? If the field is exposed, You can then change the field on the fly and test different values.
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #15 on: October 05, 2016, 04:42:25 PM » |
|
Why can't you do that with a property?
|
|
|
Logged
|
|
|
|
oahda
|
|
« Reply #16 on: October 06, 2016, 12:14:27 AM » |
|
Most of my inspector values are private because I want to modify them in the editor but I don't want other classes to have access to them.
Properties don't appear in the inspector. It would get tricky when they have specialised setters and getters that call other code that might not make sense when the game isn't running if they were called in the inspector.
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #17 on: October 06, 2016, 04:57:00 AM » |
|
Oh I thought you said properties did work a few posts back. Ok. Well I guess the ability to make them private is somewhat of an improvement. Still not ideal.
|
|
|
Logged
|
|
|
|
oahda
|
|
« Reply #18 on: October 06, 2016, 04:57:51 AM » |
|
Oh, I thought you were asking whether Unity C# has properties at all, since Unity C# is a bit wonky sometimes.
|
|
|
Logged
|
|
|
|
rozza
|
|
« Reply #19 on: October 06, 2016, 06:26:13 AM » |
|
I generally like to make all things that are intended to be set from the inspector private and use [SerializeField], just so it's easy to distinguish between something that's supposed to be set by a designer via the inspector and something that is meant to be accessible from other scripts. In addition, if I need to make a field that's set in the inspector accessible from other scripts I tend to keep it private/still use SerializeField and also create a property to access it rather than using a public field. That way seems a lot more resilient because it means interfaces for scripts aren't tied to the way each other are serialised in the scene, and it prevents them from messing with each other's internals.
|
|
|
Logged
|
|
|
|
|