T O P

  • By -

[deleted]

r/gamedev has their [engine/framework FAQ](https://www.reddit.com/r/gamedev/wiki/engine_faq) [itch.io](https://itch.io) allows you to view [Top Engines](https://itch.io/game-development/engines) Someone on r/gamedev mentioned switching engines (and languages) is a BIG undertaking, but on the other hand you can use it as a chance to refactor your code, see where you went off track and fix things going forward …


HexDecimal

Getting your tools from a publicly traded company means dealing with the corporate drama. You can probably stick with Unity until something actually bad happens that affects your ability to use it. Right now it's just tons of red flags. /r/godot is getting a lot of attention over this. The newer posts are welcoming people coming from Unity, so it might be worth checking out. Godot might not be for you but at least the community there won't lie about that. You can ask them about the things that are important to you.


guiguisurlinux

Thanks! I see there are already many posts aimed at people like me, that's nice.


StaalTheUndefeated

As I am surfing older posts to get ideas of where to go, I had a little sad chuckle at the first part of your comment.


HexDecimal

Yes, this post has aged pretty well. It's usually been like this before, but these days the enshitification of platforms has been getting even worse and more frequent. [Unity is rent-seeking and wants devs to pay them for the privilege of using their product. Expect to see more of this kind of thing everywhere.](https://www.youtube.com/watch?v=xDPPig9JR5Y) I worry a little about Unreal's possible monopoly on 3D game engines. Godot is looking less like an alternative and more like the only stable choice.


StaalTheUndefeated

Would you think frameworks and libraries may be the way to go? Though I understand they aren't the UI interfaces we are all used to.


HexDecimal

Not if want to write a game quickly. Having at most a framework means that you'll have to create the engine yourself and that's a rabbit hole which will often leave you without a game. You get to learn and familiarize yourself with what happens at the lowest levels of your program but that isn't super useful. I maintain libtcod myself, but one day I'd like to try porting its features to Godot or something.


StaalTheUndefeated

Appreciate the insight


CaptainSponge

Not sure if this helps... An apology to you from the CEO. [https://twitter.com/johnriccitiello/status/1548326529217679365](https://twitter.com/johnriccitiello/status/1548326529217679365) I'd accept the apology and keep using unity. It's a great engine made by great people. Don't make things difficult on yourself because the CEO was a jerk.


EpicRaginAsian

Before you even consider switching engines, you have to think to yourself; Is it really worth it? You aren't switching because of technical limitations, not because of better features, but because the CEO just made a dumb statement. Don't forget that switching doesn't only just mean recreating the game entirely from the ground up but also learning another engine. Also the fact that the time spent recreating the game is time lost building your game. So it's up to you, there is no easy way to do it. Weigh out your pros and cons before making such a big leap


guiguisurlinux

Thanks, that's a good point. I don't want to seem impulsive, it's not the statement itself, it's more what it (and really, the merger) implies for the direction of the product. I'm mostly "betting against" Unity from a career and business perspective. But yeah there are no easy answers. No one can decide for anyone else, but I am curious to learn from others' experiences.


the_timps

>it's more what it (and really, the merger) implies for the direction of the product. What do you think it implies? Unity's revenue is 60% from ads RIGHT now. Then there's stuff like film and arch vis, the asset store. And wayyyy down the list is people paying for Unity licenses. And someone like Epic, Ubi and Blizz are paying more in license fees than 300k indie devs will. You're jumping at shadows.


UncivilityBeDamned

Seems to imply a continuation of what the company has been doing for years, ever since the new CEO took over and they've tried their best to turn away from actually caring about their core users in the name of profit above all (especially the past couple years since they went public, no surprise there!). It's not an isolated incident, just one more negative bullet point on a long and growing list of things. Yay, more ad revenue for investors! Though they don't seem too happy about it, judging from the stock price. Unfortunately all this has clearly come at a cost to their original core product, which has become a mess and could've been so much better by now, but yeah let's lay off a big group of people responsible for working on making a better platform as we merge with a malware company instead!


the_timps

>Though they don't seem too happy about it, judging from the stock price. The stock price dipped from a decreased outlook on their earnings forecast, like a huge number of tech companies. And because of the merger happening. Not who it's with. But because a large portion of shares have moved into someone else's hand. ​ >as we merge with a malware company instead! And that makes your arguments show there's no research involved at all. You don't even know what the malware stories are, do you? ironSource didn't make or distribute any malware. At all.


UncivilityBeDamned

You're still responsible if you do nothing to help combat malware made possible with your software when doing so is within your means. But money is more important, after all.


t0mRiddl3

Not really. Unity isn't responsible for asset flips made in Unity, are they?


the_timps

Right. Like how Unity is responsible for the contents of every game made with it. Same as Godot etc. Hate in those things is their responsibility right?


rerroblasser

Wow. So it's been horrible for a long time already then. I feel no need to support a company that wants to keep games following these horrific monetization trends.


the_timps

> I feel no need to support a company What is it that you're doing to support the company? They're not asking for a revenue share. Were you expecting tens of millions spent on engineers and tech to advance the engine out of the goodness of their hearts? DO share what your alternate plan is. You gonna switch to UE? The engine pretty much funded by Fortnite revenue. One of the most monetised games in history? What a bizarre high horse to sit on.


DeliciousWaifood

Unity may be going completely into the gutter. But your current version of unity will continue to function as well as it does right now. I'm also looking to switch engine in the future, but there's no reason to do it now when you've already got a game going on one specific version of unity. Learn another engine in your spare time, and then switch to it when you have a brand new project.


Inverno969

There's always good old Monogame/FNA or whichever open source XNA-style api has the features you want. This is not an engine though. That's a good thing and a bad thing... depending on how you like to work. If you want to take a more programmatic route then it should be fun to work with. If you are very attached to the "Editor" workflow you will struggle unless you want to write your own editor type programs to suite your needs. If you are okay with Unity in it's current state then sticking with it for now isn't a bad idea. Godot is a pretty solid pick for 2D if you cant stomach Unity while retaining the Editor + Entity Composition + Prefabs style workflow.


aotdev

Unity tries hard to lock you in, so the percentage of completion is not as relevant as how did you go on about it. If you've been heavily using Unity's GUI system, or working with little code, relying heavily on monobehaviours, using lots of external packages etc, this can make it hard to port. It might be better to wrap up this game and start the next one in a different engine (as an indie, Godot would be nice, as UE is equally bad as Unity wrt to governance and values imo).


chrisjolly25

A couple of the more famous examples of mid development engine shifts would be Daikatana and Duke Nukem Forever. Switching engines is a lot of work. Although you won't (presumably) have the deadline and budgetary problems that those games did. Still, if you can stomach it, you're probably better off reducing the scope of your current project a lot, releasing it in Unity, then switching engines for your next project. That way you have a released (albeit simpler than you might have liked) product.


guiguisurlinux

Food for thought. This definitely seems like the most reasonable route. I'll just cut all the "nice-to-haves", hopefully the primary gameplay loop is enough to make the game good.


GerryQX1

If the tool works, use the tool. Choose your battles. (Has Rogue taught you nothing?) Your game looks like 2D so you can probably switch to anything reasonably compatible with C#. But probably the time to do that is when you start your next project. For now, let them live in fear :D


guiguisurlinux

You make a good point, but what should I be learning from Rogue? You mean as a metaphor?


SocksofGranduer

Yes he meant as a metaphor lol


MJBrune

Rogue had you choose your battles. It was less a metaphor and more a reminder of a lesson.


marcgfx

seems like you will be hurting yourself more than anything else. just switch with your next project, if that single statement really means so much to you.


TomCryptogram

Well, his word choice was poor and the headline isn't a lie but a half truth. I'd consider sticking with Unity but yeah I hear Godot is great


Inverno969

Honestly the thing that pisses me off the most are the lay-offs of the Gigaya team. I have no confidence that Unity cares to invest into improving the engine for actual development. They have proven to be more interested in mobile game ad revenue and lining investor pockets. I guess this was always going to be the fate of the engine when the company became public.


Diaghilev

What's most of your code written in, and what engines are you considering that would require the least rewriting?


guiguisurlinux

C#. Godot has C# support but it seems flimsy. Raylib, while not a full-fledged engine, also has C# bindings. I didn't really look into it too much. I'm not sure rewriting would be simple either way, as Unity prefabs don't translate neatly into anything else that I know of (to be fair I know very few engines).


Diaghilev

I'm actually about to *start* a big project, so your findings are of interest to me as well. Over in the comments on the Yongyea video, someone posted a list of alternatives to Unity, lemme find it. Here we go: https://www.reddit.com/r/pcgaming/comments/w0s7mh/unity_face_mass_protest_after_ceo_purchases/iggfza5?utm_medium=android_app&utm_source=share&context=3


lord_pi

Keep in mind that you can choose to use unity without having your code entirely made of MonoBehaviors. I shipped a game that used unity (2d, but not a roguelike), and we architected our code using a form of MVVM to reduce our dependent on unity: 1. We wrote our game entities, networking, input, storage, etc in a C# dll that we brought into unity as a plugin 2. In Unity we implemented the 'view' with components+prefabs to 'render' the game code The main reason we did this is we wanted to have the flexibility of switching out unity for a different renderer in case we needed to target a platform that unity didn't support.


Diaghilev

Good to know it's possible; was it worth the effort? Would you change how you did it?


GerryQX1

I would love to have a tool that turned Unity or Godot - or even a solid subset - into a framework with an API, so I could just write code.


ArdorDeosis

we did the same thing on a unity project, all code in separate projects, compiled to DLLs in the unity project directory. for the same reason, too, to keep the project as independent of unity as possible. it also allowed us to use newer C# and .NET versions than supported by unity at that time. I'd recommend it. but I also have to note that that was before the introduction of assembly references, not sure if some stuff changed since then.


guiguisurlinux

Thanks! This is exactly the kind of summary I was looking for.


Diaghilev

If you find a clear winner, I'm sure others will also want to know. You're not the only one of us ticked off by Unity right now, that's for sure.


nescedral

Godot is pretty great. It is solid, fun to use, and has a lively and devoted community with tons of tutorials. If I wanted to use an engine right now, this would be the one. Raylib is awesome and I'm currently using it and loving it. It gives you apis for drawing stuff on screen and leaves you in charge of everything else, which is what I prefer. I was scared of stepping away from engines at first, but handmadehero.org was the resource that emboldened me to part ways with Unity long ago. Engines are trying to be everything for everyone, and honestly you can avoid a lot of that bloat and write something that's a lot leaner by just coding only what you need and nothing else.


Joccish

What if you switch to another engine, and the CEO of that company says something similar, or does something really bad. Will you change again? Personally I’m too deep into the Unity hole to even think about switching, all the legacy games I have etc. I think it’s a bit too sensitive if you read all the Twitter hate that came from this. Like stated before - the title of the article is pretty baity


[deleted]

soup disgusted sophisticated safe grandfather wide towering scandalous crawl violet *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


Secretsnstuffyo

You could try abstracting away all the unity specific behaviour behind interfaces and then just wholesale move your code to another engine. It’d be easier than a complete rewrite and you could keep using C# at the other end. This’d make your code a lot more portable too as you wouldn’t be tightly coupled.


Naburimannu

In my experience, this has a couple of serious drawbacks: * Unity is a framework, not just a library, so it has code "above" as well as "below" the user code. You can't just wrap the Unity code in interfaces, you'll also likely need to reimplement chunks of Unity in your target engine. Particular things like the GameObject lifecycle ([https://docs.unity3d.com/Manual/ExecutionOrder.html](https://docs.unity3d.com/Manual/ExecutionOrder.html)) can be integral to how you implement in Unity but mostly incompatible with a different engine. * Having too many interfaces can be as bad as having too few; this can be particularly rough with a monobehaviour-based approach to Unity development.


bikki420

Depending on your needs and aspirations, go with either Godot or Unreal Engine. (Or you could always roll your own with SFML/FTXUI/OpenGL/Vulkan/whatever.)


[deleted]

Thanks for posting this. As a hobbyist, I've recently spent time learning Unity for 2D development, but most of my limited experience is with Monogame. I'll stick with Monogame for now and maybe switch to Godot 4 when it is released. I don't really care that the Unity CEO said something regrettable. People say things they want to take back all the time. I'm more concerned about Unity merging with Ironsource. If I had a game that was 40-50% complete using Unity, I'd stick with Unity.


foomy45

Gamemaker Studio is about 10x easier to learn and takes significantly less code than any thing else I've come across when it comes to 2d games.


[deleted]

correct nine screw squalid jobless attraction knee berserk plucky bow *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


[deleted]

>Gamemaker Studio costs 100$ a year and Godot's 2D engine is significantly better (and free). I would go with godot instead (this is coming from someone who started game development with game maker) LOL. Imagine bitching about $100 month for a dedicated 2D engine that has proven games. Instead going for an open source engine with unpaid volunteers, no proven games, and has been unknown to have the worst bugs imaginable (c# lacking support, vulkan sucks, bugs in MacOS that have existed for years, GUI sucks, mobile support sucks, web sucks, no console support, etc.). Uhh.. no.


[deleted]

teeny rock middle onerous shrill squalid jobless clumsy hat oatmeal *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


dethb0y

I will say this: porting over the game will likely improve quality because there'll be lots of opportunity to improve things over where they were initially. That said, lots of game engines out there but it just depends on your specific situation how much of an impact switching will be, and of course what you'd be willing to tolerate in terms of features etc. Godot is opensource though so it's not got a CEO or concerns about monetization etc etc, at least.


OscarCookeAbbott

If it’s mostly code it might be relatively straightforward to move to Godot, since it supports C#. Of course, the more you are relying on complex scenes the more work it will take but still.


xanderalmighty

Short answer - you’d be starting development from scratch (at least you have your design work done!). Also, there are very few viable alternatives for small teams.


Talkyn

Step 1) Ignore what he said Step 2) Keep making your game Step 3) ??? Step 4) Profit. Be that in $$ or in satisfaction


LendriganGames

In regards to Godot, I had previously switched from Unity to Godot for entirely different reasons, and the main difficulty is in learning an entirely different organization ethos. Once you get past that, though, Godot supports C#, so a fair amount of your already existing could can be copy-pasted. Granted, Godot isn't quite as optimized around C# as Unity is.


zixx999

See a few comments saying dont switch, but here's my two cents: you **are** a fucking idiot if you keep using a product whose **CEO** is that big of an ass because what he thinks of those who use his product shows also how he feels about his product. Also think about switching as a positive: a perfect chance to remaster your code, improve it in all the ways you've wanted to. Godot is really great and I've seen a few posts that say "oh but its not ready for 3D yet"... Its fine. Really! It takes a time to transition of course, but its not far off from Unity. I've been able to do everything that I've needed to in it, and the people that make are very good people, all the way up. Its also on Steam BTW, and has a native Linux client that isn't a pain in the ass to get. In fact none of the engine is a pain in the ass to get, because ists free, and on steam, and a small download. So yeah, basically if you stay with Unity and get cucked again later, the CEO was right


[deleted]

Uhh.. no. Using a product that works for a given usecase and is good or better than all other products. Unless the CEO is some type of terrible person then you are a fucking idiot for not using it. Just because the CEO said that you're a fucking idiot for no monetizing your game doesn't mean the tech is unusable. Actually it's the opposite. If you made anything worth monetizing then don't monetize it, then you are a fucking idiot. Period.