i'm new to coding and need tips
category: code [glöplog]
finally decided to stop watching demos and create my own thing. The catch is that i'm a dumb teen who's only exposure to coding was playing around with shapes in cables.gl. Where should i start, what language i need to learn first and what stuff i should do or avoid doing?
If you have literally zero programming experience, https://hello.processing.org/ is a great intro to just getting stuff on screen for giggles.
Above that, it really depends on how serious you want to take things, because in 2024 you can go all the way from something as high-level as Javascript + Three.JS, to all the way down to something like C++ + Direct3D 12; they all have very different difficulty curves and different pacings in returns of investment, although they all generally follow the principle of "making cool things is hard, making even cooler things is even harder", so in the end YMMV.
Above that, it really depends on how serious you want to take things, because in 2024 you can go all the way from something as high-level as Javascript + Three.JS, to all the way down to something like C++ + Direct3D 12; they all have very different difficulty curves and different pacings in returns of investment, although they all generally follow the principle of "making cool things is hard, making even cooler things is even harder", so in the end YMMV.
cables.gl is good start already. you can code your own modules in javascript if cables is not doing what you want it to do, and you can also embed GLSL shaders with your own shader code in it. so i would start with javascript and GLSL if i were you and if you later have any serious interest in engine / render code you can then learn the more low level languages and APIs that make it possible to do things faster native (outside the browser).
Another good start is teaching yourself a bit of linear algebra, linear transformations, ways to represent them (matrices, rotors instead of quaternions), maybe a bit of projective geometry concepts (for perspective projections). It wouldn't hurt to also study a bit of functional analysis (to understand SDFs) and topology. The rest is pretty much APIs for which I would recommend using AI tools (copilot etc...) to assist you in coding.
Quote:
Another good start is teaching yourself a bit of linear algebra, linear transformations, ways to represent them (matrices, rotors instead of quaternions), maybe a bit of projective geometry concepts (for perspective projections). It wouldn't hurt to also study a bit of functional analysis (to understand SDFs) and topology. The rest is pretty much APIs for which I would recommend using AI tools (copilot etc...) to assist you in coding.
thank you for the reply, will try
Quote:
Another good start is teaching yourself a bit of linear algebra, linear transformations, ways to represent them (matrices, rotors instead of quaternions), maybe a bit of projective geometry concepts (for perspective projections). It wouldn't hurt to also study a bit of functional analysis (to understand SDFs) and topology. The rest is pretty much APIs for which I would recommend using AI tools (copilot etc...) to assist you in coding.
low quality b8
A word of warning, if you want to learn quickly: Don't ever think about using AI tools to help with coding, like Copilot, until you've learned how to program and, above all, how to debug code on your own.
Start slow if you wanna learn fast.
Start slow if you wanna learn fast.
Quote:
low quality b8
man....
Quote:
A word of warning, if you want to learn quickly: Don't ever think about using AI tools to help with coding, like Copilot, until you've learned how to program and, above all, how to debug code on your own.
Start slow if you wanna learn fast.
got it but is it fine if i use some chatGPT on the theoretical part?
Cables.gl is already a good start. It gets you results without too much of a headache, and you can then expand on that by writing your own ops if need be. Naturally it's not the same thing as writing everything on your own, but it's also a way less daunting way to get started making demos.
If you're not already on the cables discord server, i suggest joining.
If you're not already on the cables discord server, i suggest joining.
Yes its fine to ask chatGPT to explain things. You can get a second opinion. Just note that it may be wrong sometimes.
In any case, start with something simple and sane. processing, cables are good places to start. Maybe pico-8 too.
In any case, start with something simple and sane. processing, cables are good places to start. Maybe pico-8 too.
picotron is the new pico8!
Also download existing sources and play around. like on shadertoy.
- If you want to learn how CPUs and GPUs work: Learn C/C++ and some APIs.
- If you want to produce results quickly based on tinkering without caring much about the nitty gritty details: Don't learn C/C++, use something else (JS, processing, cables, unity, unreal, etc.). Still you'll need to learn a little bit about GPU/shader concepts (uniforms/constants at least).
- If you want to produce results quickly based on tinkering without caring much about the nitty gritty details: Don't learn C/C++, use something else (JS, processing, cables, unity, unreal, etc.). Still you'll need to learn a little bit about GPU/shader concepts (uniforms/constants at least).
Regarding math: Unless you are in the a-game business of demo making you'll mostly need sin/cos, lerp and basic vector/matrix math knowledge. Any classic graphics book from the 90s that you'll find in your local public library (or pdf warez site) will get you covered on that regard.
Quote:
got it but is it fine if i use some chatGPT on the theoretical part?
I wouldn't trust something that can't tell the number of "R"-s in "strawberry" to teach you anything correctly.
Ok, so I will take the bait.
LLMs are not (yet) good at counting or logical reasoning, like you say, but really good in finding patterns and associations. You may even say superior to any human in it. And that's all you need for your API related question. Say you ask "How to initialize FBO in OpenGL?" (just try it), you will get comprehensive info and then you can ask follow up questions to understand some quirks. Even provide your code examples and ask what's wrong with them, why you get this compiler error etc...so you save time and don't have to bother fellow humans. Also, this isn't anything copyrighted - it's just frickin' API that thousands of people exercise every day, nothing creative about it, so why not?
LLMs are not (yet) good at counting or logical reasoning, like you say, but really good in finding patterns and associations. You may even say superior to any human in it. And that's all you need for your API related question. Say you ask "How to initialize FBO in OpenGL?" (just try it), you will get comprehensive info and then you can ask follow up questions to understand some quirks. Even provide your code examples and ask what's wrong with them, why you get this compiler error etc...so you save time and don't have to bother fellow humans. Also, this isn't anything copyrighted - it's just frickin' API that thousands of people exercise every day, nothing creative about it, so why not?
I wanted to learn programming since I was in middleschool and got books'n'shit, but I never got properly into it until i started in higher education. (Now I have diagnosed ADHD so motivation and learning-structure was even more of a challenge for my dumber younger self)
I would try to find some online course work package, that sorta...game-ify your progress.
Maybe something like brilliant on the side as well to give you a handle on the concepts.
And since getting and understanding how the tools works(ide, compilers, enviroments, libraries) is a complex hurdle in of itself.
I would recommend start with C#, Microsofts VisualCode integrates that pretty readily.
There is a lot of resource at https://dotnet.microsoft.com/en-us/learn/csharp as well.
But regardless of lanuguage and tools get a structured course set, a quick one to begin with and complete it. That's what we should be looking for here.
I would try to find some online course work package, that sorta...game-ify your progress.
Maybe something like brilliant on the side as well to give you a handle on the concepts.
And since getting and understanding how the tools works(ide, compilers, enviroments, libraries) is a complex hurdle in of itself.
I would recommend start with C#, Microsofts VisualCode integrates that pretty readily.
There is a lot of resource at https://dotnet.microsoft.com/en-us/learn/csharp as well.
But regardless of lanuguage and tools get a structured course set, a quick one to begin with and complete it. That's what we should be looking for here.
Do the exercises in Tiny Code Christmas and you're halfway there https://tcc.lovebyte.party/
Fantasy consoles (TIC-80, pico8 etc.) are not the worst choice if you insist on coding (and not cables), but don't want to go into the deep sad place of "I just wanted this C++ example from the internet to compile and yet here we still are"
Fantasy consoles (TIC-80, pico8 etc.) are not the worst choice if you insist on coding (and not cables), but don't want to go into the deep sad place of "I just wanted this C++ example from the internet to compile and yet here we still are"