AndrewNR

Programming Resources

Apr 21st, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.87 KB | None | 0 0
  1. 8-14-19 UPDATE:
  2. I'm pretty certain that i'm going to be starting a wordpress soon to post all my programming ideas to. As most of my tweets are multiple threads worth of information. Having one spot to compile it all would be really good!
  3. プログラミングの掲載も日本語するんだ
  4.  
  5. OLD UPDATE: Hello there!
  6. I've been programming since May of 2018. I'm entirely self taught up to this point in time.
  7. I have compiled a list of resources that have helped me in the past. Some things are randomly added due to me solving a problem that was quite huge for me at the time. But I hope that this list helps someone!
  8. If you have questions, you can @ me on twitter (@AndrewNReinke)!
  9. Thank you~
  10.  
  11. Books-
  12. http://www.openglsuperbible.com/
  13. The OpenGL superbible is something I use quite often. It gives the best overview of the OpenGL pipeline. It also demonstrates a ton of different graphic techniques that you can use. I'm not a fan of their framework, but the explanations of their techniques are done in such a way that isn't tied to their framework. Like, they write about the concept more and the major of code snippets are in the shader language or they'll show the glbinds in c code.
  14. After reading this book / while programming in OpenGL. I'd also reccomend that you read the offical khronos specification on your version of OpenGL. It's easy to search. Literally search for "OpenGL version N.N specification" And you'll find it.
  15. 7-22-19 NOTE: this book ONLY OFFERS GRAPHIC CONCEPTS WHEN REALLY APPLIED!!!!
  16. If you want to have a good conceptual understanding of GPUS, check out this handmade hero video ( https://hero.handmade.network/episode/code/day236/#1743 )
  17.  
  18. Skeletal animation-
  19. https://docs.google.com/viewer?url=http%3A%2F%2Fwww-scf.usc.edu%2F~gamedev%2Fanimation.ppt
  20. -Concept only, no code.
  21.  
  22. Quaternions-
  23. http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/
  24. https://www.youtube.com/watch?v=fKIss4EV6ME&t=0s
  25. -I wanted to note here that you really need to just put the quaternions into practice to fully understand them. Just like anything else.
  26.  
  27. C programming-
  28. https://hero.handmade.network/episode/intro-to-c
  29. -Handmade Hero is really good in general if you're looking to learn game programming. In most cases, you just have to watch the first bit of a Handmade Hero video to learn about the concept of x. The intro to c videos are the best I have found when learning how to program c. Most anything else will start taking you down the road of std::things. The problem with std:: stuff I've found is that they're either too generic for a nontrivial program to seriously use (i.e loss of performance). Or they flat out try to do something you should do yourself. Like fileio (use your os's file io stuff and write code that checks what os you're on so it can do file io / os stuff for x os).
  30.  
  31. Color Math-
  32. This article helped me a ton when learning color math.
  33. http://www.laurenscorijn.com/articles/colormath-basics
  34.  
  35. RNG-
  36. This paper on PCG was written very well. I think it's one of the best RNG ideas out there.
  37. http://www.pcg-random.org/pdf/hmc-cs-2014-0905.pdf
  38.  
  39. Converting Pixel Space Value to Window Space in OpenGL-
  40. I don't even know if I typed the name of this correctly. But here's an example of what I mean.
  41. If you had a mouseclick somewhere in your window. And you get the pixel that was clicked on. But you wanted to get that spot but in window coordinates. Check this link- https://www.khronos.org/opengl/wiki/Compute_eye_space_from_window_space
  42. So in my case, I clicked somewhere in the upper left of my window(345, 120). I wanted to display some UI element there.
  43. Using the math specifically under the "From gl_FragCoord" section. I got my UI to display properly!
  44.  
  45. Other Math-
  46. I just wanted to say that if you're curious on what math you'll need to use while programming. You should in my opinion just jump right in and start learning whatever you need to learn to overcome a problem. Or at least that's what I've been doing for the past year now. And it's worked really well. However, I would recommend watching this Handmade Hero video so you're somewhat exposed to a good deal of math concepts so you can have some direction unto what may solve your current issue.
  47. https://www.youtube.com/watch?v=WN3_d_QcJZE&t=0s
  48. Oh also, understand that a vector represents a direction (from the origin) and a magnitude (the length of the vector). And that a vector with a length of 1 is a unit vector. And how insanely useful unit vectors are. With that basic knowledge alone (especially unit vectors) you can devise a good amount of game systems. Like how to have an hp value that continually expands while still having an hp bar graphic element represent your current hp percentage.
  49. -One other huge math element that is an amazing tool is Voronoid diagrams. Especially when you're dealing with collision. But this geometric side of math could be used to eliminate things in space geometrically, so you could come up with some pretty neat game ideas using this!
  50.  
  51. -My personal general advice
  52. If you want this! Please read on.
  53. 7-22-19 update: Don't wait to do anything with programming. Or anything in life. Remember that the world moves with or without you no matter what the time of day is.
  54. That being said. You still have to eat, sleep, and rest some everyday. But those things should be planned out such that you don't let them take over your day. Having an optimal body means you can do your best daily. And nothing that contributes to the world can be done within a day. Movies and cartoons will tell you otherwise. But in reality, it's a constant push through any number of days, weeks, months, and even years.
  55. With that knowledge, I think anyone can be a good productive programmer. But to be a good one, one must question their hardware.
  56. If you don't know how the thing you're actively programming works (CPU, GPU). Can you call yourself a programmer?
  57. If you can't go under the hood of your engine and confidently solve a problem. Can you call yourself a programmer?
  58. If you're not in the state to do the two above things, don't feel bad. What you should do instead is act upon your insufficiencies and learn how that works. So you can be confident.
  59. Ultimately, the best skill you can have with programming is to know how to do the low level things and be able to maintain your abilities while in a "free fall". Or atleast, that's what I beleive and have been actively practicing for over a year now. Day in, day out (except for Wednesdays!). And through doing this, I've seen this reality. I hope these words might have helped someone.
Add Comment
Please, Sign In to add comment