Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411275 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 07:27:45 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)C# Engines To Move To From Unity?
Pages: [1] 2
Print
Author Topic: C# Engines To Move To From Unity?  (Read 4161 times)
Kakapio
Level 0
***



View Profile
« 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

What will you make?

Twitter
Scarlet Tower DevLog
InfiniteStateMachine
Level 10
*****



View Profile
« 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
Level 0
**



View Profile WWW
« 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  Ninja
Logged
starsrift
Level 10
*****


Apparently I am a ruiner of worlds. Ooops.


View Profile WWW
« 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
Level 10
*****



View Profile
« Reply #4 on: September 28, 2016, 05:40:47 AM »

XNA/Monogame was Shawn Hargreaves next project after allegro. Now he's doing win2d Sad
Logged

Resonator
Level 0
**



View Profile WWW
« 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

Check out my game Anew: The Distant Light
Ashedragon
Level 2
**



View Profile WWW
« Reply #6 on: September 30, 2016, 08:29:01 PM »

There's Otter2D if you want to try that out.
Logged

Kakapio
Level 0
***



View Profile
« 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

What will you make?

Twitter
Scarlet Tower DevLog
FathomSchmidt
Level 0
*


View Profile
« 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
Level 10
*****



View Profile
« 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
Level 0
**



View Profile WWW
« 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
Level 10
*****



View Profile
« 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
Level 10
*****



View Profile
« 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
Level 10
*****



View Profile
« 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
*


View Profile
« Reply #14 on: October 05, 2016, 04:17:09 PM »

Quote
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
Level 10
*****



View Profile
« Reply #15 on: October 05, 2016, 04:42:25 PM »

Why can't you do that with a property?
Logged

oahda
Level 10
*****



View Profile
« 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
Level 10
*****



View Profile
« 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
Level 10
*****



View Profile
« 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
Level 0
**



View Profile WWW
« 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
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic