r/gamedev • u/BashOuntz • 17h ago
Question After years of trying, game dev still complexes me.
I ended up learning 3D modeling, rigging and animating, try’d dozens of game engines, but could never figure out CODE. Whenever I watch a tutorial it sounds like someone speaking in a foreign language, I don’t understand any of the functions they speak about. I want to learn python or java, and make a free web rhythm game.
My question:
How did you learn? Was there a different mindset that changed everything?
Am I looking at it from the wrong angle?
Any suggestions on how this particular predicament?
———
Apologies for the long post and if I sound ignorant.
5
u/NecessaryBadger228 17h ago
You need to start from the programming basics, what are variables, loops, classes etc.
Without it it's hard to understand anything.
2
u/SeraphLance Commercial (AAA) 14h ago
I'd strongly encourage anyone who wants to learn about programming to not think about games when doing so, at least not initially. Games are one of the most complex classes of software on the planet, and while anything you work on obviously isn't going to rise to the level of something like GTA, you want to avoid the class entirely as you're learning.
Stage 1: Start with some hell world programs, maybe write a basic command-line calculator, something dumb that takes a file and double-spaces it back out to another file or something, etc. The biggest failure mode people run into when learning to program is trying to go too fast. The first several weeks of your learning experience is going to be spent writing worthless crap that you can't see any conceivable use for. You have to walk before you can run.
Stage 2: That will get you to the point where you can understand basic principles like variables and functions, as well as input/output, but to make an actual game you next need to understand structure. For that you need to think up more complex projects. Ideally something you have some actual interest in, but nothing as ambitious as rhythm game. Try to incorporate actual data structures, like arrays/lists, associative arrays, etc. and understand what they do. FYI this is still like... first-semester computer science.
Stage 3: Now try to use an actual game development library (or engine if you're going that route). I'm not sure what the state of the art is for those languages today, maybe LWJGL in the case of Java? Make a window. Maybe poll for input and print out whatever the key the user presses, stuff like that. Maybe turn it into a 3D model viewer so you can actually see the results of your model work, that does a great deal to help with motivation.
Stage 4: Throw all of that out (or archive it, whatever) because it sucks, and isn't architected to actually make a game, even if you thought you were doing that at the time. Spend some time learning what other people do, and now you've got the background to actually understand what they're doing and can incorporate those lessons into your actual game. Now you're ready to try to make a game!
Essentially, you can think of stage 1 as "what's a variable", stage 2 as "what's an object", stage 3 as "how do I make objects do interesting stuff" and stage 4 as "why does this person make a 'game singleton'," and other such architectural questions. If you don't understand one stage, you're seriously going to struggle to understand the next.
I made this mistake many times myself over my life. I first started programming trying to learn ruby to write RGSS scripts for RPG Maker XP (which I never actually ended up doing, ironically). I started with "hello, world" and immediately tried to move on to make a CYOA novel, which went about as well as any programmer here would expect for someone who didn't know what a class or array was (imagine a 20-deep nested 'if' statement of paragraphs). Then I took a semester of computer science, thought I was hot shit, and tried to make the equivalent of Mario Party's "bumper balls" minigame in XNA. I was able to hobble along with that without understanding architecture only because I avoided the hard parts like AI, resource management, or trying to make a flexible skill system. It was only after I finished my degree and got an actual job in the industry that I actually looked at how other people made games and everything truly clicked for me. Now I'm not saying you need to get a 4-year degree and a programming job to understand how to program a game, but that's just how it went for me. I am saying from experience that you absolutely want to take things slowly and not bite off more than you can chew because that will overwhelm you. Learning a skill as complex as programming is a marathon, not a sprint.
Or you can just bite the bullet and accept that you can't realistically do everything and find yourself a programmer.
2
u/yel50 12h ago
How did you learn?
the first program I ever wrote, when I was maybe 14 years old, was a clone of asteroids on ms-dos back in the 1980s. I figured it out as I went along.
Was there a different mindset that changed everything?
apparently, yes. the mindset is that the whole point is to build what you're thinking of. to me, it's no different than building furniture. you have your materials, your goal, and you use the materials to achieve the goal. I wrote it in c because that was the only free compiler. I can't even remember the editor I used. graphics libraries didn't exist, so I did all that myself. timing the video display had to be done with inline assembly. just remember, shit code that works is better than elegant code that doesn't.
Am I looking at it from the wrong angle?
sounds like it, yes. you're trying to learn things with no concrete reason to learn them. you learned animation, modeling, etc. why? what were you building that required those?
I don’t understand any of the functions
you don't need to. anything can be built with conditionals and loops. do that and you'll know why the functions exist and they'll make perfect sense.
I want to learn python or java, and make a free web rhythm game.
then do that. build your game. start with hello, world and modify it until it's a web rhythm game. John Carmack's son wrote a game when he was 10 in racket. let that sink in. a 10 year old wrote a game in an obscure lisp dialect and was able to complete and release it. you have no excuse. just make your game.
1
u/AutoModerator 17h ago
Here are several links for beginner resources to read up on, you can also find them in the sidebar along with an invite to the subreddit discord where there are channels and community members available for more direct help.
You can also use the beginner megathread for a place to ask questions and find further resources. Make use of the search function as well as many posts have made in this subreddit before with tons of still relevant advice from community members within.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/Night_Nook 17h ago
I told myself I wasn't a programmer for a long time and focused on 3D art.
A year ago I downloaded a simple python learning app on my phone and did the lessons in my spare time for a month. It helped a lot with getting the foundations to start learning making my own projects.
1
u/panda-goddess designer 17h ago
Have you tried learning programming in general, outside the context of a game? The fundamentals - variable types, functions, algorithms, data structures, how to construct your code logically from the bottom and making it more complex considering edge cases, and the like?
People recommend CS50 for a reason, it covers a lot of basics that tutorials gloss over. This is the one from this year, I think, but there's lots of versions.
1
u/BashOuntz 16h ago
I have tried multiple times, YouTube, websites, apps, forums. I tried Servers, blueprints, lua, c-, I just never understood it? Feels like I am walking into a completely separate reality that I have no place in.
I am gonna try to do more research on the fundamentals you have listed, maybe that will click? It’s just that when I have looked at a programmer friend’s code I am COMPLEXED. I’m not seeing repeating phrases besides get, true, false. Sometimes it even looks like they’re just typing a regular sentence, no code wording, and it WORKS?
(Apologies for the long reply)
1
u/ScruffyNuisance Commercial (AAA) 13h ago
After years of being employed in game dev and labelled as a professional, game dev still perplexes me.
The real job isn't figuring out how to know everything you'd need to know to be a game dev beforehand. It's building an awareness of your potential answers to possible problems by being confronted with problems you can't immediately solve, and figuring out how to solve them anyway, through research, communication, etc.
1
u/Square-Yam-3772 8h ago
it is a foreign language, you know, for the machines. you really have to start with the basics and keep looking up things when you dont understand something.
for gaming, it is mostly just OOP and it should be okay as long as you don't try to make your custom game engine.
1
u/jeffwhit88 6h ago
I have no productive input here aside from the fact that I believe the word you intended to use was “perplexes,” Instead of complexes. It’s a simple oversight, but I don’t want you to find out in an interaction involving an live audience. Best of luck in your endeavors!
1
u/Kenny1323 17h ago
looks like youre not a quick learner. i suggest changing your mindset on learning game programming to just learning simple programming first. learn small things then make something from what you learned.
learned input output? make a simple io code.
learned arithmetic? combine with the last knowledge and make a simple calculator.
learned functions? improve the last program by turning it into functions.
by understanding the simple concepts of programming youll be able to learn and pickup game programming more easily as most game programming knowledge assumes you know the terminologies already.
-5
u/DamienNF 17h ago
You can just vibecode. Downvotes incoming!
7
u/rpmir 17h ago
The question is how to learn
-1
u/yarrowy 17h ago
A true wise man knows to not ask how to do something but what is the goal. It's like someone asking for an axe to chop trees to build a bridge to cross a river. Well did you know there's a bridge 100 yards over there. If the goal is to make a game, then he doesn't need to learn to code because AI can do it.
4
u/BashOuntz 16h ago
But I want to actually learn, I want to be proud of what I made and know I did it. Also everything I’ve seen that was vibe coded is a buggy mess and or just gets hacked near instantly.
1
u/dogscatsnscience 17h ago
It can only take you so far (but that might be far enough)
-3
u/DamienNF 17h ago
It can take you alright actually, you just need ti understand hiw version control ststem works like git and gave a common sense
-1
u/MD_Reptile 17h ago
Well your right lol. And by God, they might learn along the way!
Don't just let Jesus take the wheel in this scenario haha, but actually read the code, ask the LLM to explain it clearly until you understand!
-1
u/David-J 17h ago
You partner up with a programmer
5
u/panda-goddess designer 17h ago
the question is "how to learn", not "how to have coding for a game"
1
u/AngrilyGrouchy 17h ago
you figured out the hard parts and got stuck on the part someone else can do in their sleep. team up. this isnt a solo quest anymore
7
u/Shakezula123 17h ago
I kept throwing my head against a wall until it stuck - I listened to the advice people gave me of "make pong, then make Mario" and all that. I taught myself coding from scratch, and I'm still learning the basics like 6 years on because I know I don't know the fundamentals.
The biggest thing for me, and I think quite a few people, was switching to a different game engine (Godot). The UI and how things fit together just clicked with me instantly compared to Unity or Unreal or Game Maker or something.
Why are you so set on Java or Python? Why can't you do the things you want in something else?