-
-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add notice about C# support being limited to desktop platforms #671
Add notice about C# support being limited to desktop platforms #671
Conversation
I don't like this addition. This is not documentation, it's a marketing piece. It covers both major versions too. It's not meant to cover everything about these features. We can link to the documentation instead, that does so. |
If this is a marketing piece then what the site says without this change has become false / misleading marketing in Godot 4, since Godot 4 in fact does not have first class .NET support while .NET support isn't available on mobile and web. This is something a .NET C# developer absolutely needs to know up front when choosing whether to use Godot for their project or not. However, maybe the change could be smaller, like saying "Godot offers you first class support for the .NET platform on desktop" and stopping there? |
It's not false or misleading, because this is not talking specifically about Godot 4. The suggested bit on the home page is definitely out of place. The note on the features page can be added in some form, but again, this is not the place to make the distinction. You can use C# in Godot to export to other platforms, you just need to stick to Godot 3 right now. This is not an attempt at hiding something, mind you. It's just not the place to list all the details and nuances. Documentation is for that. This is not the purpose of this page, and you shouldn't make decisions about the engine based solely on the marketing spiel. |
I agree that this is something that users should know up front, as early as possible. If it only becomes apparent after digging into the documentation, then it creates the sense of, "Gee, I wonder what other gotchas they have hidden away?". Which ends up creating a negative impression rather than a transparent disclaimer up front. |
I think it's a good idea. |
I understand that this affects some of you personally, but we can't pick just one particular note like that and add it, and we definitely cannot start adding all of them. You should not be making decisions based on promotional and marketing materials, that's never going to lead to an informed decision. What we do desperately need is a page that compares Godot 3 to Godot 4 and gives you a good outline of how they fare in terms of feature parity. That's what helps you make an informed decision, and pick one, or neither. Not arbitrary notes like this. |
OK but that page should also say what the future of Godot 3 is planned to be. What support will it continue to receive, if any and for how long? Also, the site shouldn't just guide you right to downloading Godot 4 in that case. It should point out that this is an actual decision on the download page. |
Regardless, the "promotional and marketing material" should be accurate. If Godot supported .NET in 4, but it was something smaller (like only supporting NET 6 instead of NET 7), I would expect to find that when I dug deeper. However, I would not expect the absence of a full feature advertised prominently on the home page. Maybe there could be some sort of visual delineation, with LTS (Godot 3) having the .NET on mobile support, and cutting-edge (Godot 4) having other feature sets. Similar-ish to how the Node.js webpage shows the differences between their LTS and Latest releases. |
I disagree with your suggestion that decisions should not be made based on promotional and marketing materials. Established corporations like Apple Inc. include disclaimers on their marketing materials, and avoid making misleading claims. My disappointment stems from the fact that Godot's main page promotes the capability of game creation across platforms, including mobile, and highlights support for multiple languages, including C#. In reality, my experience has not reflected these claims. I began with Godot 3.5, designed a game, tested it on Android and iOS, and even spent time updating it to Godot 4 on macOS, only to find out that I couldn't compile it for mobile. I discovered this issue only after significant time and effort. It's misleading that there is a lack of mobile support in an official release of Godot ("4.0"). Also it is misleading that this support which was promised to be addressed in version 4.1, has been indefinitely postponed to an unspecified future version ("4.x"). I understand that Godot is an open-source project with its inherent challenges. But the primary issue is the resistance to updating the website to reflect the true current capabilities of Godot. Many users, myself included, might choose Godot based on its purported support for C# and mobile, only to find out too late that this is not the case. |
My resistance comes from the fact that you are focusing on a point that affects you the most, while there are certainly problems and limitations that would affect others. If we add a note for your issue, we might as well add it for others. And by the time we are finished, the notes would comprise 80% of the page. That's why pages in the documentation exist that explain in great detail what capabilities the engine has, what limitations it currently has, what some of the planned features are that address those limitations. Of course, there are going to be people who refuse to read the documentation before making important decisions, and that's our job to help them not shoot themselves in their feet, to a degree. So as I mentioned, we should do it with a page that compares Godot 3 and Godot 4, accessible before you download anything. Not a super specific note aimed at resolving a specific problem of a subset of users. |
Could you mention a few specific issues that fit this "problems and limitations" that are as important as being clear about what language Godot supports? Without a scripting language in Godot you have a static scene with no interactivity. It's an issue that specifically affects users who want to make interactive games. What you are describing sounds like you are after a perfect outcome, where you have a high quality page listing the detailed differences between Godot 3 and Godot 4. And that idea sounds great. But the problem here is that "great" is getting in the way of "good", which would be, a small note just telling developers that Godot 4 doesn't support c# on mobile. It's already causing frustration to the Godot user base, people are already porting games over to 4 and not able to actually ship them due to this. Also in terms of this being documented, where is this documented? I only found it on GitHub issues and no documentation has been linked. Please accept this with the greatest respect and in the spirit of robust discussion. |
Please, don't exaggerate. Godot supports C#, and it being limited to only some platforms out of all supported by Godot is not the same as not having a scripting language at all. As far as platform support issues go a similar problem is with web exports in general, which don't work in all browsers or require additional server configuration which is not always possible on third-party distribution platforms or shared hosting platforms. Compared to Godot 3 which works pretty much everywhere.
Platforms supported when you use C# are listed here. We can make it more obvious and explicitly mention that some platforms are amiss. We aren't trying to hide it, so it's an easy fix to make. Also, this page is linked from the Features page. But we can always make that link more obvious.
Well, we prefer creating proper solutions to making temporary fixes. In fact the need for what I'm describing has been stated and is on the agenda since the release of Godot 4.0. We are just missing free hands to implement it. To be clear, extending the note on the Features page is a fine part of this PR. Adding a note to the home page is not. Simply because it would be the only not in there, so to a random reader it would look like it's the most important thing to note. When it's no more important than some of other limitations that Godot 4 currently has. On the Features page we already have other notes, so that's fine for the time being. |
I don't think this follows. Dropping support for C# on mobile and web platforms isn't just some minor bug. |
@BenMcLean I didn't say it was a minor bug. I said there were other equally important limitations, which affect other users which are not yourself. |
What are those? And is the web site directly saying those limitations aren't there like it is in this case? |
In all fairness, the proposed changes only add critical information to already existing sections of the page, that are specifically about C#. |
Well, add me to the list of misled unfortunates as well. I started my project on 3.5 just before 4 was released, and so tested all the different features (including .NET android exports) I needed for my project in 3.5 and happily jumped in. A month later 4 was released, and read the blog posts, articles, videos etc. raving about the new version and no where did I see any hint of not supporting mobile exports for the .NET flavor, absolutely nowhere. And I had no reason to doubt, never have I seen such a major feature being removed from a major release in any of the other products that I have used. So I decided to upgrade to 4 as I was early in my project and better use the latest from early on so less pain of upgrading later, right? Not quite! Few months in when it was time to focus on the mobile version of my project, I couldn't understand why the android templates didn't work at all. After searching across multiple resouces, I found about this missing support from a Reddit post, it was not even in the Godot docs. I was dissapointed, but read somewhere that it will soon be added, so had my hopes with 4.1, and I was midway my project. Now after 4.1, I read that it may not be ready until .NET 8, with an ETA of 6 months to a year or more, really? This is such an important feature/selling point of the engine and yet the info is not readily available, this is definitely misleading. I love using Godot and settled for it primarily because of .NET and the mobile/multi-platform support, and its beyond me how someone could remove such a major feature from a major version release, and also fail to properly communicate about it. Fair enough, it may be a complex piece and it is a community driven product, but you are misleading the same community with poor communication / misleading marketing and so risk alienating them. I am at a hard place now, if I should even continue not knowing when .NET mobile support would be added, if ever. |
I understand your disappointment since I have made the same mistake. Maybe I was too naive but I never expected this feature to be completely absent from the latest version of the engine. |
Both the release blog post for 4.0 and the dedicated article about the state of .NET ahead of the release explicitly tell that mobile and web are not currently supported. Of course, I understand that we share a ton of information and it's not difficult to miss things. But I don't think your statement here is fair. |
Fair enough, perhaps I missed those or misread, it is a small section / single line in the massive sea of text. In general context, you don't notice such fine prints if you are not actively looking for it. And I was perhaps oblivious to the idea that such a key feature would be gone for such a long time. In retrospective, I should have paid close attention, but hey, I was very new to the engine, taking in a lot of information learning the product. I am not fingerpointing or bashing anyone as it is a free product. But I do want to reiterate the topic of this thread that it is definitely misleading to a new untrained eye who may not know where to look. |
@XorZy thank you, that is definitely hopeful. I will check it out. |
As discussed with the production team, this PR will be merged as is.
While we reiterate that we did explicitly told users that the state of .NET in terms of mobile and web support was distinct of 3.x in terms of support, we agree that we should be more proactive to advise users of that unfortunate, but temporary situation. |
Thanks! |
Just yesterday, I composed a comment detailing a story very similar to yours. I started developing my game with Godot 3.5, then upgraded to the Godot 4 alpha around version 10 or so, as I needed some features and bug fixes that were only in 4. I realized that mobile support for C# was missing but expected it to be part of the official release. Then it was announced that "not all features will be included in version 4, some will come in 4.1," which later turned into "actually, when we say '4.1', we mean '4.x'". This significant feature was first postponed to a minor release, and now it seems to have been postponed indefinitely. I didn't post my comment because Godot is an open-source project that I'm not paying for, and therefore, I felt it was a bit unfair to complain. However, seeing other users sharing their experiences, I've come to realize that it's important for the development team to understand these issues in order to better manage similar situations in the future. Therefore, I've decided to share my story as well, with the hope that it will contribute to the continuous improvement of Godot. Regarding this statement:
I should make it clear that it wasn't mentioned in any document/marketing material/non-marketing material/any-material-of-any-kind material that Google has access to. At some point someone said something in Reddit and then the above blog post I mentioned was posted. So it's not the case that "there are people who refuse to do the professional act and shoot themselves in their feet" here, it's you who shot us in our feet by refusing to communicate professionally and giving a clutter-free front page more priority than informative messages in the front page of the product. Yes, it's painful when someone shoots you in the foot, and it's even more hurtful when they refuse to take responsibility and instead imply that you were the one who pulled the trigger. Despite these frustrations, we appreciate your work on this impressive open-source project, and we're grateful for the opportunity to use it without having to pay. We still have a lot of love for Godot :-) |
@sassanh We share all the information that we have when it is available to us. During the alpha stage of Godot 4.0 the exact composition of features for the release was very unclear and we couldn't make any promises. You admit yourself that you interpreted lack of information in a certain way, and while it is understandable why you'd do that, that doesn't erase the fact that we simply have had nothing to say on the matter and promised nothing at that point. I fully admit that at some point the communication about future releases of the engine got carried away. With both our help and misconceptions from external parties. We did use "4.1" freely to indicate "a future version" because at the time all the points of reference that we had for minor releases indicated that it would take many months to create, likely a year. Just like it happened with 3.2, 3.3, 3.4, 3.5, and now 3.6. However, we reevaluated the approach and decided to go for shorter, more stable and predictable dev cycles, to benefit both contributors and their mental health, and users and their expectations. When this decision was made, we immediately communicated about it. Regarding C# specifically, we have covered every aspect of the state of the platform and development plans in a dedicated article. That's way more than a note hidden on the home page. While that article is being optimistic about support for mobile and web possibly coming soon, it doesn't make any concrete promises. At the time there was a bit more hope, but reality proves to be more difficult. This is not something we share a lot, but the reality is that C# development is currently driven mostly by volunteers, not paid contributors. We can't really force them to do more work than they are willing, and if they have doubts and concerns, we'd lean towards treading slowly. I understand that a lot of developers out here aren't being close to the development of Godot, no matter how open we make it. There is no shame in that, of course, you're out here making your games and apps, not watching a reality show. However, it's painfully obvious a lot of the time that many developers are only experienced dealing with companies and corporations, entities which aren't easy to get a hold of, which are secretive by their nature, which don't always communicate things. But we do. If we don't say something that's not because we're keeping our cards close to the chest. It's because we don't have anything concrete to say. And as you can see, the moment we make any semi-optimistic statement, you tend to treat it as an unbreakable promise and get disappointed if we don't manage to keep it. Which means that we tend to share the information only when we are mostly certain that it would be correct. Which in an open-source development is pretty much only true in the very last minute. Which means we have no roadmap, only aspirations and priorities. So I'd appreciate a bit more understanding on your part as well. We aren't hiding the information, we are trying not to mislead you. Which applies both to the situations where features may or may not be dropped between major releases, and to the situations where we need to implement something but have no exact deadline. |
The change is merged now so we're beating a dead horse but I did have some questions.
This is true, but it's also extremely long and easily missed. The article is very long and detailed about C#, but the article itself has limited bang for buck if people aren't reading it and appropriately gleaning the lack of C# support from it. As we can see from this issue and the discussion around it, the way the messaging was handled made it not easy for people to work out that C# was not supported out of the gate on mobile platforms. A note on a homepage is not hidden, in fact, it's the opposite of that. People immediately know what to expect from reading it. That note on the homepage will do a better job of showing the state of C# on mobile than the article did, regardless of the length or detail of that article. At the end of the day, we're ultimately owed nothing using a free, open-source library like Godot, and I'm really impressed that I can kick around a topic like this on the issue tracker and not only not be told to go and fly a kite, but also have the will of the users' be considered to such an extent that changes like these get merged in despite some initial pushback. I think that's a good thing to see, and the community is good, and the relationship between the community and the development team is good. |
I can't fault anyone for not wanting to read a long article. But if you don't read the article that covers something that is very important to you, and a well-structured article at that, with sections and quick navigation for your convenience, — it's not really on us if you miss some crucial piece of information. In this case the information was not a sidenote, it was a dedicated section appropriately titled "Mobile and web support". Even if this wasn't the case or if you really find the article intimidating, you can always use page search and see if there is anything related to "mobile" or "web" in it. Bottom line is, you can't argue at the same time that we are misleading and not talking about important changes, and that we are talking too much about them. It doesn't work this way.
A note on the homepage is only useful to new users. While complaints here are from users who have migrated from Godot 3. For existing users we have news and we have documentation. I do not expect existing users to check if the home page has been updated with something that is relevant to them. Considering the page is barebone as is, and doesn't go into any detail about anything. Why would anyone check if a note has appeared on it? So I very much doubt it will make any difference. But if it makes you at peace, then sure, whatever, we merged it. |
There are probably a couple of issues. The article itself is not easy to find, as demonstrated by people's comments here about nothing on the Godot page or in Google about C# on mobile. Plus, it's from February, so how should people know what Godot has in it today? They can't sit there and read article after article to try to form a composite knowledge of what Godot currently has. The second issue is that the article mixes improvements and upgrades with C# not being available on mobile, and that only appears most way through the article. I suppose the main thing is that, intuitively, your garden variety Godot developer would not expect C# to be dropped on mobile, and that a future re-implementation is planned. But again, the main thing is, developers coming to Godot today were not finding the article from February and being informed. That probably has more to do with how Godot surfaces this information and gets the word out. But that will continue to change as Godot continues to evolve and improve, no doubt. Also, I really want to stress, in no way, and at no time did I think anyone was misleading anyone else. I think it'd be a real kick in the teeth for people to improve Godot on a volunteer basis, release it for free, and then get accused of intentionally misleading other people. It's just a simple breakdown of communication, something that I have been responsible for with projects I have worked on. Thanks for putting up with my musings on this issue 😀 |
We can always go to the "good ole days" of Godot 3.x where for the longest time we had a scary warning right as you launch the editor that it is not production ready. And all the damage it did for years, even long after C# support in Godot 3 became production ready. Otherwise, I don't see what else we can do. We post news and spread them on all social media. Of course we cannot expect everyone to read any of the official communication, but there is very little we can do if people don't listen to what we have to say. Yes, the article is from February. It was published specifically to prepare people ahead of the 4.0 stable release. To learn if it's still true today you can open documentation where at least the features page talks about C# supporting only desktop platforms. We should probably add a more direct note to here and here as well. But people posting in this thread for some reason think that a note on the home page is better than improved documentation. |
i also waited Godot 4 supports C# to Android, too. Honestly, it was amazing. I am impressed by the strong bond between the Godot developers and the community and that there are many people who having same opnion. (RedworkDE's Post, Export tip were helpful.) Thanks for sharing issue. |
It is a typical usage pattern for someone to be going quite a long ways on their project using only PC builds before trying to export for Android for the first time. A normal dev would just believe what the home page said, "If you're an experienced C# user, Godot offers you first-class support for the .NET platform." and might do a lot of coding in C# before they first try to export for Android. They might only then run across the article on support for C# on Android and realize far too late that they'll have to waste a ton of time backporting everything from Godot 4 to Godot 3 in order to export to Android. They shouldn't have to deal with that. They should have this information up-front that C# support for Android is only in Godot 3 and not have this misleading claim of "first class support" when it isn't true in Godot 4. (or at least not yet) |
By the way, I don't want to be critical of the Godot devs for effectively dropping C# support on Android temporarily so that they could get Godot 4 out the door. I understand there are solid technical reasons behind this decision. I'm only bemoaning how this hasn't been communicated effectively. |
Preview