No Stupid Questions
No such thing. Ask away!
!nostupidquestions is a community dedicated to being helpful and answering each others' questions on various topics.
The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:
Rules (interactive)
Rule 1- All posts must be legitimate questions. All post titles must include a question.
All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.
Rule 2- Your question subject cannot be illegal or NSFW material.
Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.
Rule 3- Do not seek mental, medical and professional help here.
Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.
Rule 4- No self promotion or upvote-farming of any kind.
That's it.
Rule 5- No baiting or sealioning or promoting an agenda.
Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.
Rule 6- Regarding META posts and joke questions.
Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.
On fridays, you are allowed to post meme and troll questions, on the condition that it's in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.
If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.
Rule 7- You can't intentionally annoy, mock, or harass other members.
If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.
Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.
Rule 8- All comments should try to stay relevant to their parent content.
Rule 9- Reposts from other platforms are not allowed.
Let everyone have their own content.
Rule 10- Majority of bots aren't allowed to participate here.
Credits
Our breathtaking icon was bestowed upon us by @Cevilia!
The greatest banner of all time: by @TheOneWithTheHair!
view the rest of the comments
I'd highly recommend you start with a game engine like Godot. Very few studios, let alone individuals, code games from the ground up. Besides having lots of functions and libraries specifically designed to do the math required for games, these engines will have lots of tools that will be useful for performing all kinds of game-related work.
If you're looking for a true challenge and really hate yourself, and you really want to go from scratch, you could write your own engine in C or C++. Again, this is a Bad Idea™.
How is Godot compared to Unity?
I'm on my language journey, and I've made stuff in Python, and I've also got some work in javascript and html. Eventually I'd like to learn C# as my main, working language so that I can make efficient windows apps and maybe hopefully create a game in Unity.
But if Godot is strong and it takes (practically) python, maybe I'll give that a go.
Godot and Unity are pretty comparable in my opinion. Unity is a bit more mature and a lot more popular, but Godot is my preferred engine because it is fully open source and has a node-tree/server based system that resonates with me. If you have experience with Python, then learning GDScript will be a breeze for you. Godot also supports C# from what I understand (and can even be used with other languages through something called GDExtension) but I don't have any experience with that stuff so I can't really say if it's good or not.
If you're looking for a job you will likely have an easier time with at least some Unity experience under your belt (because it's extremely common and popular with small and mid-sized studios still), but Godot jobs are becoming more common and Godot experience is both increasingly valuable and also somewhat easily transferable over to Unity, should you need to.
Honestly the biggest issue you're gonna run into when swapping into C# (or Java) is how truly object oriented they are.
Yes python has objects but it's not the same.
Personally I'd recommend starting with pure Java first and doing the basics like Pong, pinball, whack-a-mole before migrating fully into C# then try to add Unity.
Java is a lot easier to compile and you'll get to skip all the annoying C based compiler problems you'll get with C#
Thanks for the tips! Is it really that difficult to go straight to C#? I just don't see myself using Java in any of my own projects
(Sorry for the delayed response!)
That's a good question that I find a lot of newer programs ask. The short answer is yes because the Java runtime environment abstracts out all of the platform specific things you'll have to be aware of in C# to some extent. Long answer is you can probably figure it out with some extra struggle that's going to be C# specific.
I fully understand that Java is not supported in Unity and that you will probably not use Java once you figure that out however, Java is still useful as a learning tool. I think that people focus on specific language too much (ie c# vs java) when in reality they are 99% the same. I think it's more important to learn the data structure and logic behind object oriented programming over the specific nuances of a language. When to use an if/else vs a switch. When to for vs foreach. Abstract classes vs interfaces. These things are all the same amongst all object oriented languages and are the real things you should be focused on. Once you figure out how to do it on one language it's a 30 second Google to look up the key words for whatever language you want to swap to.
So in summary use Java for it's ease of compiling to learn (and there's a lot of good java tutorials online for this) then be amazed when you swap to C# and how much worse the compiler is lol.
Thanks for the response!
My main desire towards C# is that i'm 100% a microsoft guy. I've always used Windows OS. I've tinkered with MacOS and Linux but I just, I cut my teeth from when I was a child to well in adulthood with Microsoft and it just feels like a natural fit for me. So I'd like to have as my main language be the #1 supported language by Microsoft because I want to make Microsoft applications. I wouldn't necessarily call it a fanboy thing, it's just a comfort thing. I know my way around the OS like riding a bicycle
They focus on entirely different things.
Godot is small. I would've loved to have it in high school because I would've dumped it on a flashdrive and built games on whatever computer I had access to. Even on flashdrives from the early 2000s. You will feel weird installing it... because when you download it it's just a .exe and it just... runs. No "let's check for updates" no "let's create an account" no "hey can you answer this survey?" It just, goes from the moment you double click.
Godot is entirely open source. Which sounds like a meh reason if you're not an EFF warrior but is SERIOUSLY useful if you want to do weird stuff with a game engine. You gotta PAY if you wanna edit source code to Unity. On the other hand, you can just freely edit Godot. If you want to create a brand new tool within Godot's interface, the hoops you jump through are trivial. Hell, Godot's editor is actually a game built within Godot they're literally teaching you how to edit the editor as you're making games. Meaning if you wanna veer into the avant guard weird ass shit as a hobby. Godot is the better option.
The GDscript might sound like a detriment, but it really does trivialize a lot of game engine specific concepts and tasks. Meaning that once you start getting used to GDscript... you no longer have to worry about a lot of things because the language takes care of it for you.
Unity though, has a larger base. So importing assets are trivial, porting to consoles like the switch are vastly easier (so I've heard). If you're planning on going big... Unity will probably make your final steps easier.
As someone who went from Unity to Godot, the contrast between "I have a small problem in Unity and so now I have to go on some website to ask them to please implement some feature/fix alongside thousands of other posters" and "I have a small problem in Godot, so let me open up the source code and change a single function to work the way I want/need it to" is like night and day.
You don't need to change things about your engine often, but it's really nice to be able to when you do.
Not only that, sharing that fix is just so trivial. No trying to coordinate "you need to download 13.1.7.6 RC2 from Unity's main site"
Totally, and genuine fixes can be upstreamed and shared with literally everyone, too.
Wow! Godot sounds really strong! Here I'm sitting thinking it's just a novelty engine but it sounds like a really good option
Godot is a viable contender for sure. There have been a number of relatively popular and good games recently using Godot recently, like Dome Keeper, Brotato, Cassette Beasts, and Ex Zodiac, just off the top of my head.
Brotato is in Godot? nice.
This is the answer IMO. Godot is lightweight, easy to use, and free with fully open sourced communities. Check out GDQuest for tutorials. The best part is that Godot uses a programming language called GDscript which is based on Python. I've learned so much about programming best practices using Godot that it translates to my day job now when I need to use python. I cannot recommend it enough as a hobbyist.
As an additional point, Godot 4 just released and it is really giving Unity a run for it's money with features and capabilities.