Quite a well done concise C intro..... one other thing is about increment prefix and postfix; ++i; i++; ++i; // would increment 'i' right a way // i++; // would increment 'i' not now but on the next line of code // I'm a bit rusty with my C but might play around with it and raylib in the near future.
i'm enjoying your videos a lot. I'm learning about raylib and C in a very fluid and dinamic way. Newer books of C points to the use of macros pointing to EXIT_SUCCESS and EXIT_FAILURE instead of "0" and "1" respectively. I think it's just aesthetic but can be useful if treated like bools. Thanks for the videos.
hello! First of all, thank you for talking about C, a language I'm interested in but I find it hard to find anything other than the standard videos that don't teach you much beyond what you can read anywhere else. It's always nice to see someone who really uses the language talking about it. Compliments aside, here goes the question: I am interested in learning C so I can create my own accessibility tools on Unix systems (Mac and Linux). Could you advise me on which way to go? What patch should I follow? I started studying programming not long ago (two months) with Python, and being a nosy customer, arrived at C,, but there is so much history behind it that I have a hard time deciding what to focus on. Thanks for the attention and keep it going!
Unix systems can have very small differences and the best way to work with them in C is to stick as closely to the standard as possible. To make decent tools, you'll probably need to make a bunch of system calls and that's unfortunately one of the higher complexity topics, especially when you must avoid non-standard techniques. For the time being, much of what will be on my channel will be related very specifically to gaming and I don't see myself building a C course in-depth enough to really get to some of the most important topics for what you're after. When I was learning this stuff in school, Jacob Sorber and CodeVaults videos helped alot to fill in any gaps I had. Hopefully they will be able to provide more clarity than I can in such a short time 😅
The only thing that confuses me to the point of me not wanting to use C, is how can we insert an element into an array? Like for instance shooting bullets or an ECS
ECS from what I gather is pretty much not possible here. At least not in the flexibility you get working in an editor like Unreal. C game development is pretty much always going to be procedural, so those kinds of designs won't be able to come through. Of course, that doesn't mean you can't make those games, you just can't make them THAT way. In C, it's possible to build a data structure like a Linked List and have a dynamically sized array that you can easily add and remove from, but the implementation can be difficult to grasp and linked lists don't have the most amazing performance when we need to iterate over the whole list, which we'd need to do every frame to add the bullets velocity to their position and check collision. There's other ways we can do it without fancy stuff though, and the trick to C is finding out if you can do it without the fancy stuff of newer languages. Consider this, instead of a Bullet array, have a Bullet pointer array. Give it a max size like 255, and then you have an array of 255 pointers. Then whenever you need to add a bullet, just iterate till you find a null pointer and put it at that index, when you need to remove a bullet just set the array to null at that index, and when you need to update the bullets just skip indices that are null in the array. I will certainly end up doing this in an upcoming demo so come back for that if you wanna learn more!
@@andrewhamelcodes712 thank you! I will try and use C a little more I've just been really discouraged lately because Lua really spoils you, but raylib and opengl are really fun to use (i don't like using raylib binding or opengl bindings to other language's i'd rather use the language it's actually made for)
I do have a question? I noticed in video the C standard library has memory management functionality? Interesting as I thought C didn't have memory management? You always hear about that when thinking of using the "C" language. Watch out, "You'll have to manage the memory yourself.
This is exactly what it means: in C you manage your memory yourself, while in high level languages it's usually done by the language itself via something called "Garbage Collector"
Quite a well done concise C intro..... one other thing is about increment prefix and postfix; ++i; i++;
++i; // would increment 'i' right a way //
i++; // would increment 'i' not now but on the next line of code //
I'm a bit rusty with my C but might play around with it and raylib in the near future.
Thank you Andrew, your videos are extremely useful! 👍✌
Good overview.
i'm enjoying your videos a lot. I'm learning about raylib and C in a very fluid and dinamic way.
Newer books of C points to the use of macros pointing to EXIT_SUCCESS and EXIT_FAILURE instead of "0" and "1"
respectively. I think it's just aesthetic but can be useful if treated like bools.
Thanks for the videos.
Merci Super vidéo !! :)
hello! First of all, thank you for talking about C, a language I'm interested in but I find it hard to find anything other than the standard videos that don't teach you much beyond what you can read anywhere else. It's always nice to see someone who really uses the language talking about it.
Compliments aside, here goes the question:
I am interested in learning C so I can create my own accessibility tools on Unix systems (Mac and Linux). Could you advise me on which way to go? What patch should I follow?
I started studying programming not long ago (two months) with Python, and being a nosy customer, arrived at C,, but there is so much history behind it that I have a hard time deciding what to focus on.
Thanks for the attention and keep it going!
Unix systems can have very small differences and the best way to work with them in C is to stick as closely to the standard as possible. To make decent tools, you'll probably need to make a bunch of system calls and that's unfortunately one of the higher complexity topics, especially when you must avoid non-standard techniques.
For the time being, much of what will be on my channel will be related very specifically to gaming and I don't see myself building a C course in-depth enough to really get to some of the most important topics for what you're after. When I was learning this stuff in school, Jacob Sorber and CodeVaults videos helped alot to fill in any gaps I had. Hopefully they will be able to provide more clarity than I can in such a short time 😅
The only thing that confuses me to the point of me not wanting to use C, is how can we insert an element into an array? Like for instance shooting bullets or an ECS
ECS from what I gather is pretty much not possible here. At least not in the flexibility you get working in an editor like Unreal. C game development is pretty much always going to be procedural, so those kinds of designs won't be able to come through. Of course, that doesn't mean you can't make those games, you just can't make them THAT way. In C, it's possible to build a data structure like a Linked List and have a dynamically sized array that you can easily add and remove from, but the implementation can be difficult to grasp and linked lists don't have the most amazing performance when we need to iterate over the whole list, which we'd need to do every frame to add the bullets velocity to their position and check collision. There's other ways we can do it without fancy stuff though, and the trick to C is finding out if you can do it without the fancy stuff of newer languages. Consider this, instead of a Bullet array, have a Bullet pointer array. Give it a max size like 255, and then you have an array of 255 pointers. Then whenever you need to add a bullet, just iterate till you find a null pointer and put it at that index, when you need to remove a bullet just set the array to null at that index, and when you need to update the bullets just skip indices that are null in the array. I will certainly end up doing this in an upcoming demo so come back for that if you wanna learn more!
@@andrewhamelcodes712 thank you! I will try and use C a little more I've just been really discouraged lately because Lua really spoils you, but raylib and opengl are really fun to use (i don't like using raylib binding or opengl bindings to other language's i'd rather use the language it's actually made for)
I do have a question? I noticed in video the C standard library has memory management functionality? Interesting as I thought C didn't have memory management? You always hear about that when thinking of using the "C" language. Watch out, "You'll have to manage the memory yourself.
This is exactly what it means: in C you manage your memory yourself, while in high level languages it's usually done by the language itself via something called "Garbage Collector"
I second what @jeffersonsa4200 wrote. Loving the vids! Keep them coming.