Difference between revisions of "Tools & Resources"
From Chilipedia
(→3D Computer Graphics) |
(→ChiliWisdom) |
||
(112 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
== Windows productivity apps == | == Windows productivity apps == | ||
− | {| class="" style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
|- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | |- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | ||
− | | style="width: | + | | style="width:35%;border:1px solid grey;"|Name |
− | | style="width: | + | | style="width:30%;border:1px solid grey;"|Description |
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
− | | style="width: | + | | style="width:15%;border:1px solid grey;"|What's so great? |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|FrHed | | style="border:1px solid grey;text-align:left;"|FrHed | ||
| style="border:1px solid grey;text-align:left;"|Versatile binary file / hex editor | | style="border:1px solid grey;text-align:left;"|Versatile binary file / hex editor | ||
| style="border:1px solid grey;text-align:left;"|https://sourceforge.net/projects/frhed/ | | style="border:1px solid grey;text-align:left;"|https://sourceforge.net/projects/frhed/ | ||
− | | style="border:1px solid grey;"| | + | | style="border:1px solid grey;"| |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|HxD | ||
+ | | style="border:1px solid grey;text-align:left;"|Good freeware hex and disk editor | ||
+ | | style="border:1px solid grey;text-align:left;"|https://mh-nexus.de/en/hxd/ | ||
+ | | style="border:1px solid grey;"|Slidytip | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|ShareX | | style="border:1px solid grey;text-align:left;"|ShareX | ||
| style="border:1px solid grey;text-align:left;"|Screen capture / file sharing | | style="border:1px solid grey;text-align:left;"|Screen capture / file sharing | ||
| style="border:1px solid grey;text-align:left;"|https://getsharex.com/ | | style="border:1px solid grey;text-align:left;"|https://getsharex.com/ | ||
− | | style="border:1px solid grey;"| | + | | style="border:1px solid grey;"| |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|Notepad++ | | style="border:1px solid grey;text-align:left;"|Notepad++ | ||
| style="border:1px solid grey;text-align:left;"|Source code editor and Notepad replacement | | style="border:1px solid grey;text-align:left;"|Source code editor and Notepad replacement | ||
| style="border:1px solid grey;text-align:left;"|https://notepad-plus-plus.org/ | | style="border:1px solid grey;text-align:left;"|https://notepad-plus-plus.org/ | ||
− | | style="border:1px solid grey;"| | + | | style="border:1px solid grey;"| |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Codeshare | ||
+ | | style="border:1px solid grey;text-align:left;"|Handy tool to share code snippets | ||
+ | | style="border:1px solid grey;text-align:left;"|https://codeshare.io/ | ||
+ | | style="border:1px solid grey;"|Self destructs in 24 hrs | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Gimp | ||
+ | | style="border:1px solid grey;text-align:left;"|Cross-platform image editor (GNU/Linux,OS X,Windows,... | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.gimp.org/ | ||
+ | | style="border:1px solid grey;"|- | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Krita | ||
+ | | style="border:1px solid grey;text-align:left;"|Open source painting program | ||
+ | | style="border:1px solid grey;text-align:left;"|https://krita.org/ | ||
+ | | style="border:1px solid grey;"|AP tip | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Pyxel Edit | ||
+ | | style="border:1px solid grey;text-align:left;"|Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt | ||
+ | | style="border:1px solid grey;text-align:left;"|https://pyxeledit.com/ | ||
+ | | style="border:1px solid grey;"|AP tip | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Vim | ||
+ | | style="border:1px solid grey;text-align:left;"|Source code editor, the real shit | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.vim.org/download.php | ||
+ | | style="border:1px solid grey;"|Will make you shit bricks real good | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Sublimle Text | ||
+ | | style="border:1px solid grey;text-align:left;"|Text editor for code, markup and prose | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.sublimetext.com/ | ||
+ | | style="border:1px solid grey;"|Very versatile | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Audacity Audio | ||
+ | | style="border:1px solid grey;text-align:left;"|Digital multi-track audio grabbing/recording/editing | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.audacityteam.org | ||
+ | | style="border:1px solid grey;"|Open source, dev in C/C++ | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Tiled | ||
+ | | style="border:1px solid grey;text-align:left;"|Flexible tiled map editor | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.mapeditor.org/ | ||
+ | | style="border:1px solid grey;"| | ||
|} | |} | ||
− | == Online compiling / testing == | + | == Online compiling / testing / visualization == |
− | {| class="" style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
|- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | |- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | ||
− | | style="width: | + | | style="width:35%;border:1px solid grey;"|Name |
− | | style="width: | + | | style="width:30%;border:1px solid grey;"|Description |
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
− | | style="width: | + | | style="width:15%;border:1px solid grey;"|What's so great? |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Godbolt's Compiler Explorer | ||
+ | | style="border:1px solid grey;text-align:left;"|by Matt Godbolt | ||
+ | | style="border:1px solid grey;text-align:left;"|https://godbolt.org/ | ||
+ | | style="border:1px solid grey;"|Analyze and compare the way C++ code compiles across different compilers | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|Ideone | | style="border:1px solid grey;text-align:left;"|Ideone | ||
Line 46: | Line 96: | ||
| style="border:1px solid grey;text-align:left;"|https://wandbox.org/ | | style="border:1px solid grey;text-align:left;"|https://wandbox.org/ | ||
| style="border:1px solid grey;"| | | style="border:1px solid grey;"| | ||
− | + | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |
+ | | style="border:1px solid grey;text-align:left;"|REPL it | ||
+ | | style="border:1px solid grey;text-align:left;"|In-browser IDE, 50+ languages | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.repl.it | ||
+ | | style="border:1px solid grey;"| | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Data structure and algorithm visualization | ||
+ | | style="border:1px solid grey;text-align:left;"|USFCA / CS / David Galles | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.cs.usfca.edu/~galles/visualization/Algorithms.html | ||
+ | | style="border:1px solid grey;"|see it and you'll understand | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Active GitHub Forks | ||
+ | | style="border:1px solid grey;text-align:left;"|See who forked (&last committed) out of date GitHub libs/projects | ||
+ | | style="border:1px solid grey;text-align:left;"|https://techgaun.github.io/active-forks/index.html | ||
+ | | style="border:1px solid grey;"| | ||
|} | |} | ||
== C++ Libraries == | == C++ Libraries == | ||
+ | === Library / package managers === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|vcpkg | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|For Windows, Linux, MacOS. Once installed, provides easy include access to many libraries | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://github.com/microsoft/vcpkg | ||
+ | | style="width:15%;border:1px solid grey;"|Chili has a vid showing the installation for Visual Studio | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|NuGet | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|(NuGet Packet Manager is included with Visual Studio >= 2017) | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://nuget.org | ||
+ | | style="width:15%;border:1px solid grey;"|Chili has a vid showing its use in Visual Studio | ||
+ | |} | ||
=== Game tooling / engines === | === Game tooling / engines === | ||
− | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | |
− | {| style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | |
|- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | |- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | ||
− | | style="width: | + | | style="width:35%;border:1px solid grey;"|Name |
− | | style="width: | + | | style="width:30%;border:1px solid grey;"|Description |
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
− | | style="width: | + | | style="width:15%;border:1px solid grey;"|What's so great? |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|SFML | | style="border:1px solid grey;text-align:left;"|SFML | ||
| style="border:1px solid grey;text-align:left;"|Simple and Fast Multimedia Library | | style="border:1px solid grey;text-align:left;"|Simple and Fast Multimedia Library | ||
| style="border:1px solid grey;text-align:left;"|https://www.sfml-dev.org/ | | style="border:1px solid grey;text-align:left;"|https://www.sfml-dev.org/ | ||
− | | style="border:1px solid grey;"|Easy to use, good functionality | + | | style="border:1px solid grey;"|Easy to use, good functionality. Chili grabs it in Intermediate 25 (I25) |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Eigen | ||
+ | | style="border:1px solid grey;text-align:left;"|C++ template library for linear algebra | ||
+ | | style="border:1px solid grey;text-align:left;"|http://eigen.tuxfamily.org/ | ||
+ | | style="border:1px solid grey;"|chilitip | ||
+ | |} | ||
+ | === Productivity === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|nlohmann/json | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|JSON for modern C++ | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://github.com/nlohmann/json | ||
+ | | style="width:15%;border:1px solid grey;"|Look & feel of an STL container (single header file) | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|pugixml | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|Simple XML parser for C++ with XPath support | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://pugixml.org/ | ||
+ | | style="width:15%;border:1px solid grey;"| | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|fmtlib | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|Open-source formatting library | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://fmt.dev/latest/index.html | ||
+ | | style="width:15%;border:1px solid grey;"|fast/easy, Slidytip | ||
|} | |} | ||
=== AI/ML === | === AI/ML === | ||
− | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | |
− | {| style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
− | | style="border:1px solid grey;text-align:left;"|DLib | + | | style="width:35%;border:1px solid grey;text-align:left;"|DLib |
− | | style="border:1px solid grey;text-align:left;"|C++ toolkit containing machine learning algorithms | + | | style="width:30%;border:1px solid grey;text-align:left;"|C++ toolkit containing machine learning algorithms |
− | | style="border:1px solid grey;text-align:left;"|http://dlib.net/ | + | | style="width:20%;border:1px solid grey;text-align:left;"|http://dlib.net/ |
− | | style="border:1px solid grey;"| | + | | style="width:15%;border:1px solid grey;"| |
|} | |} | ||
− | |||
=== Categorized / aggregation sites === | === Categorized / aggregation sites === | ||
− | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | |
− | {| style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
− | | style="border:1px solid grey;text-align:left;"|cppreference libraries | + | | style="width:35%;border:1px solid grey;text-align:left;"|cppreference libraries |
− | | style="border:1px solid grey;text-align:left;"|As suggested by cppreference users | + | | style="width:30%;border:1px solid grey;text-align:left;"|As suggested by cppreference users |
− | | style="border:1px solid grey;text-align:left;"|https://en.cppreference.com/w/cpp/links/libs | + | | style="width:20%;border:1px solid grey;text-align:left;"|https://en.cppreference.com/w/cpp/links/libs |
− | | style="border:1px solid grey;"| | + | | style="width:15%;border:1px solid grey;"| |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|boost C++ libraries | | style="border:1px solid grey;text-align:left;"|boost C++ libraries | ||
| style="border:1px solid grey;text-align:left;"|boost your shit | | style="border:1px solid grey;text-align:left;"|boost your shit | ||
| style="border:1px solid grey;text-align:left;"|https://www.boost.org/doc/libs/ | | style="border:1px solid grey;text-align:left;"|https://www.boost.org/doc/libs/ | ||
+ | | style="border:1px solid grey;"| | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Lucid Index | ||
+ | | style="border:1px solid grey;text-align:left;"|Searchable list of useful libraries (self hosted) | ||
+ | | style="border:1px solid grey;text-align:left;"|https://lucidindex.com/cpp/browse | ||
| style="border:1px solid grey;"| | | style="border:1px solid grey;"| | ||
|} | |} | ||
== Reference sites == | == Reference sites == | ||
− | {| style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
|- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | |- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | ||
− | | style="width: | + | | style="width:35%;border:1px solid grey;"|Name |
− | | style="width: | + | | style="width:30%;border:1px solid grey;"|Description |
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
− | | style="width: | + | | style="width:15%;border:1px solid grey;"|What's so great? |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|cppreference.com | | style="border:1px solid grey;text-align:left;"|cppreference.com | ||
| style="border:1px solid grey;text-align:left;"|Most comprehensve reference site | | style="border:1px solid grey;text-align:left;"|Most comprehensve reference site | ||
| style="border:1px solid grey;text-align:left;"|https://en.cppreference.com | | style="border:1px solid grey;text-align:left;"|https://en.cppreference.com | ||
− | | style="border:1px solid grey;"| | + | | style="border:1px solid grey;"|Hardccore |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|cplusplus.com | | style="border:1px solid grey;text-align:left;"|cplusplus.com | ||
| style="border:1px solid grey;text-align:left;"|Good reference site | | style="border:1px solid grey;text-align:left;"|Good reference site | ||
| style="border:1px solid grey;text-align:left;"|http://www.cplusplus.com | | style="border:1px solid grey;text-align:left;"|http://www.cplusplus.com | ||
− | | style="border:1px solid grey;"| | + | | style="border:1px solid grey;"|Softcore |
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|Stack Overflow | | style="border:1px solid grey;text-align:left;"|Stack Overflow | ||
| style="border:1px solid grey;text-align:left;"|Good reference site | | style="border:1px solid grey;text-align:left;"|Good reference site | ||
| style="border:1px solid grey;text-align:left;"|https://stackexchange.com/sites# | | style="border:1px solid grey;text-align:left;"|https://stackexchange.com/sites# | ||
− | | style="border:1px solid grey;"|Very active community | + | | style="border:1px solid grey;"|Very active community |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|ISOcpp | ||
+ | | style="border:1px solid grey;text-align:left;"|The home of standard C++ | ||
+ | | style="border:1px solid grey;text-align:left;"|https://isocpp.org/ | ||
+ | | style="border:1px solid grey;"|For those purists | ||
|} | |} | ||
== Literature (books, blogs, papers, written shit)== | == Literature (books, blogs, papers, written shit)== | ||
− | |||
− | |||
− | |||
=== Programming Fundamentals === | === Programming Fundamentals === | ||
− | {| style="border:1px solid grey;border-collapse:collapse;width:100%;" | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
|- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | |- style="border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;" | ||
− | | style="width: | + | | style="width:35%;border:1px solid grey;"|Name |
− | | style="width: | + | | style="width:30%;border:1px solid grey;"|Description |
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
− | | style="width: | + | | style="width:15%;border:1px solid grey;"|What's so great? |
|- style="border:1px solid grey;background-color:#ddf;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#ddf;color:#c1c1c1;text-align:center;" | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
Line 142: | Line 235: | ||
| style="border:1px solid grey;text-align:left;"|https://web.mit.edu/alexmv/6.037/sicp.pdf | | style="border:1px solid grey;text-align:left;"|https://web.mit.edu/alexmv/6.037/sicp.pdf | ||
| style="border:1px solid grey;"|Just a classic | | style="border:1px solid grey;"|Just a classic | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Clean Code | ||
+ | | style="border:1px solid grey;text-align:left;"|by Robert C. Martin (14th ed. 2015), Prentice Hall | ||
+ | | style="border:1px solid grey;text-align:left;"|https://ptgmedia.pearsoncmg.com/images/9780132350884/samplepages/9780132350884.pdf | ||
+ | | style="border:1px solid grey;"|Sample chapter, then just buy it | ||
|} | |} | ||
=== C++ Fundamentals === | === C++ Fundamentals === | ||
− | {| style="border:1px solid grey;border-collapse:collapse;width:100% | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
− | | style="border:1px solid grey;text-align:left;"|C++ Core Guidelines | + | | style="width:35%;border:1px solid grey;text-align:left;"|C++ Primer, 5th Edition |
− | | style="border:1px solid grey;text-align:left;"|by Bjarne Stroustrup, Herb Sutter | + | | style="width:30%;border:1px solid grey;text-align:left;"|by Stanley B. Lippman et al |
− | | style="border:1px solid grey;text-align:left;"|http://isocpp.github.io | + | | style="width:20%;border:1px solid grey;text-align:left;"|http://www.charleshouserjr.com/Cplus2.pdf |
− | | style="border:1px solid grey;"|Pure discipline, by the masters themselves | + | | style="width:15%;border:1px solid grey;"|Standard work, rewritten for C++11. Approachable for beginners |
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Learn C++ | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Alex | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://www.learncpp.com/ | ||
+ | | style="width:15%;border:1px solid grey;"|Good solid intro, very well done | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|C++ Core Guidelines | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Bjarne Stroustrup, Herb Sutter | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|http://isocpp.github.io/CppCoreGuidelines | ||
+ | | style="width:15%;border:1px solid grey;"|Pure discipline, by the masters themselves | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|C++ Weekly | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Jason Turner | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://www.youtube.com/user/lefticus1 | ||
+ | | style="width:15%;border:1px solid grey;"|Hard core but very good | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|C++ Templates: The Complete Guide (2nd Edition) | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by David Vandevoorde et al | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"| | ||
+ | | style="width:15%;border:1px solid grey;"|Cybotip | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
| style="border:1px solid grey;text-align:left;"|Programming Abstractions in C++ | | style="border:1px solid grey;text-align:left;"|Programming Abstractions in C++ | ||
| style="border:1px solid grey;text-align:left;"|by Eric S. Roberts (2012), Stanford CS106B | | style="border:1px solid grey;text-align:left;"|by Eric S. Roberts (2012), Stanford CS106B | ||
| style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | | style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | ||
− | | style="border:1px solid grey;"|Solid and well thought through intro to C++ | + | | style="border:1px solid grey;"|Solid and well thought through intro to C++. Excellent for understanding all fundamentals of data structures (incl. more advanced like graph, trees) and algorithms |
+ | |} | ||
+ | |||
+ | === C++ Peculiarities === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Exploring std::string | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|Nice blog that looks under the hood | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://shaharmike.com/cpp/std-string/ | ||
+ | | style="width:15%;border:1px solid grey;"|a tip from Slidy | ||
+ | |} | ||
+ | |||
+ | === Game programming === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Game Programming Patterns | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Robert Nystrom | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://gameprogrammingpatterns.com | ||
+ | | style="width:15%;border:1px solid grey;"|Contains lots of different coding patterns and describes them in detail | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Game Engine Architecture | ||
+ | | style="border:1px solid grey;text-align:left;"|by Jason Gregory (3rd ed. 2018) | ||
+ | | style="border:1px solid grey;text-align:left;"|https://www.gameenginebook.com/ | ||
+ | | style="border:1px solid grey;"|Talks about various components that make up a game engine and how they tie together | ||
|} | |} | ||
=== 3D Computer Graphics === | === 3D Computer Graphics === | ||
− | {| style="border:1px solid grey;border-collapse:collapse;width:100% | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
− | | style="border:1px solid grey;text-align:left;"|The Book of Shaders | + | | style="width:35%;border:1px solid grey;text-align:left;"|The Book of Shaders |
− | | style="border:1px solid grey;text-align:left;"|by Patricio Gonzalez Vivo and Jen Lowe | + | | style="width:30%;border:1px solid grey;text-align:left;"|by Patricio Gonzalez Vivo and Jen Lowe |
− | | style="border:1px solid grey;text-align:left;"|www. | + | | style="width:20%;border:1px solid grey;text-align:left;"|https://thebookofshaders.com (pdf can be generated) |
+ | | style="width:15%;border:1px solid grey;"| | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Tricks of the 3D Game Programming Gurus | ||
+ | | style="border:1px solid grey;text-align:left;"|by André LaMothe, 2003 | ||
+ | | style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | ||
+ | | style="border:1px solid grey;"|lagout | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Mathematics for 3D Game Programming and Computer Graphics | ||
+ | | style="border:1px solid grey;text-align:left;"|by Eric Lengyel (3rd ed.) | ||
+ | | style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | ||
+ | | style="border:1px solid grey;"|Need those math skills | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide | ||
+ | | style="border:1px solid grey;text-align:left;"|by James M. Van Verth, Lars M. Bishop (2nd ed.) | ||
+ | | style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | ||
+ | | style="border:1px solid grey;"|Math yo | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Vector Math for 3D Computer Graphics Tutorial | ||
+ | | style="border:1px solid grey;text-align:left;"|by Bradley Kjell | ||
+ | | style="border:1px solid grey;text-align:left;"|https://chortle.ccsu.edu/vectorlessons/vectorindex.html | ||
+ | | style="border:1px solid grey;"|Demon liked it | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Computing Euler angles from a rotation matrix | ||
+ | | style="border:1px solid grey;text-align:left;"|by Gregory G. Slabaugh | ||
+ | | style="border:1px solid grey;text-align:left;"|http://www.gregslabaugh.net/publications/euler.pdf | ||
+ | | style="border:1px solid grey;"|Chilitip | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Coordinate geometry in 3D space | ||
+ | | style="border:1px solid grey;text-align:left;"|by Nabla Ltd. | ||
+ | | style="border:1px solid grey;text-align:left;"|http://www.nabla.hr/CG-CoGeometryContA.htm | ||
+ | | style="border:1px solid grey;"|BhayanakMoth tip | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|D3D/OpenGL tutorial: A trip through the Graphics Pipeline | ||
+ | | style="border:1px solid grey;text-align:left;"|by Fabian Giesen | ||
+ | | style="border:1px solid grey;text-align:left;"|https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ | ||
| style="border:1px solid grey;"| | | style="border:1px solid grey;"| | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Learn OpenGL | ||
+ | | style="border:1px solid grey;text-align:left;"|by Joey de Vries | ||
+ | | style="border:1px solid grey;text-align:left;"|http://learnopengl.com | ||
+ | | style="border:1px solid grey;"|Specific to OpenGL but well written and presented (Slidy) | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="border:1px solid grey;text-align:left;"|Real-time Rendering | ||
+ | | style="border:1px solid grey;text-align:left;"|by Tomas Akenine-Möller et al (4th ed. 2018) | ||
+ | | style="border:1px solid grey;text-align:left;"|http://www.realtimerendering.com | ||
+ | | style="border:1px solid grey;"|Good reference for learning about a wide variety of topics/techniques used in real-time rendering (Slidy) | ||
|} | |} | ||
+ | === DirectX === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|DirectX Developer Blog | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by msft | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://devblogs.microsoft.com/directx/ | ||
+ | | style="width:15%;border:1px solid grey;"| | ||
+ | |} | ||
=== Operating systems === | === Operating systems === | ||
− | {| style="border:1px solid grey;border-collapse:collapse;width:100% | + | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
− | | style="border:1px solid grey;text-align:left;"|Modern Operating Systems | + | | style="width:35%;border:1px solid grey;text-align:left;"|Modern Operating Systems |
− | | style="border:1px solid grey;text-align:left;"|by Andrew S. Tanenbaum & Herbert Bos (4th ed. 2015) | + | | style="width:30%;border:1px solid grey;text-align:left;"|by Andrew S. Tanenbaum & Herbert Bos (4th ed. 2015) |
− | | style="border:1px solid grey;text-align:left;"|Google using filetype:pdf | + | | style="width:20%;border:1px solid grey;text-align:left;"|Google using filetype:pdf |
− | | style="border:1px solid grey;"|Standard work | + | | style="width:15%;border:1px solid grey;"|Standard work |
|} | |} | ||
+ | === AI / ML / DL === | ||
+ | {| class="wikitable" style="border:1px solid grey;border-collapse:collapse;width:100%;" | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Paradigms of Artificial Intelligence Programming | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Peter Norvig | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|https://github.com/norvig/paip-lisp | ||
+ | | style="width:15%;border:1px solid grey;"|Standard work, gotta love common lisp! | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Artificial Intelligence: A Modern Approach | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Stuart Russell & Peter Norvig (Pearson Edu Ltd 3rd edition) | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|http://aima.cs.berkeley.edu/ | ||
+ | | style="width:15%;border:1px solid grey;"|Standard work | ||
+ | |- style="border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|Deep Learning | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Goodfellow, Bengio and Courville (MIT Press 2016) | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|http://www.deeplearningbook.org | ||
+ | | style="width:15%;border:1px solid grey;"|Solid intro into machine learning / deep learning | ||
+ | |} | ||
+ | |||
+ | == Other good shit == | ||
+ | * Blender Guru [https://youtu.be/TPrnSACiTJ4 beginner series] | ||
− | == | + | == ChiliWisdom == |
+ | * "If you're building with warnings, you gotta re-evaluate your life choices" (Int.11.hw) | ||
+ | * "Get your privates in order" | ||
+ | * "For those of you who live in weird places that don't have Orios, I feel sorry for you. They look like this, and they are fucking delicious with milk." (Beg.10) | ||
+ | * "Everything on a computer is a motherfucking number" (Hugs.11) | ||
+ | * "Don't turn yourself into a pretzel trying to fit all the STL components together to do everything in a single statement" (Int.16.hw) | ||
+ | * "You can't touch your parents' privates. Don't do it, it's weird" (Int.17.1 on inheritance) | ||
+ | * “If you have someone’s address, you can fuck with them. Just ask any Twitch streamer” (Int.2 on pointers, tx DownUp) | ||
+ | * "What do you think you gotta use? Say it with me... std::move()" | ||
+ | * "With <code>noexcept</code>, the STL will now use your move constructor for great justice" (Int.22 on exceptions) | ||
+ | * "At the end of this, I'm gonna have a vector of pointers to stationary poos and then over that range I can just randomly select an index and use that pointer to do something with that poo" (STD Gems [Copy/Filter] on std::copy_if) | ||
+ | * "Unordered map is the college girl of associative containers; I keep getting older and older, they just stay the same age" (Int.24.2 on constant time performance) | ||
+ | * "The other way to identify the mechanism of failure is the 'Bust Your Ass' method" (Advanced 3.2hw, talking about debugging strategies) | ||
+ | * "SFML is a tool for babies" [because it uses degrees] (Advanced 4.1, going on a rant against the sexagesimal number system) | ||
+ | * Chili's well researched but rejected proposal for an STL addition can be found [https://youtu.be/4EZVTNHmojc?t=223 here] | ||
+ | * "It is working very sexily, powered under the hood by the matrix representation of transformations" (Adv.5.2) | ||
+ | * "Today, we are going to confront the crazy self mumbler. We might get ourselves stabbed in the spleen. But a man's gotta do what a man's gotta do" (3D Fundamentals 10, on fixing texture wiggling) | ||
+ | * "Just ignore the children. That's how you solve most of life's problems as an adult", talking about child contours while playing about with OpenCV (SlideFucker3000, patreon only content) |
Latest revision as of 05:15, 13 July 2020
Useful Tools & Resources (WORK IN PROGRESS)
Contents
How to contribute
These are all links to external and publicly available sources, no guarantees / responsibility inferred. If there are resources you like and would like to recommend, post them on the Discord and mention r_vdw.
Windows productivity apps
Name | Description | Link | What's so great? |
FrHed | Versatile binary file / hex editor | https://sourceforge.net/projects/frhed/ | |
HxD | Good freeware hex and disk editor | https://mh-nexus.de/en/hxd/ | Slidytip |
ShareX | Screen capture / file sharing | https://getsharex.com/ | |
Notepad++ | Source code editor and Notepad replacement | https://notepad-plus-plus.org/ | |
Codeshare | Handy tool to share code snippets | https://codeshare.io/ | Self destructs in 24 hrs |
Gimp | Cross-platform image editor (GNU/Linux,OS X,Windows,... | https://www.gimp.org/ | - |
Krita | Open source painting program | https://krita.org/ | AP tip |
Pyxel Edit | Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt | https://pyxeledit.com/ | AP tip |
Vim | Source code editor, the real shit | https://www.vim.org/download.php | Will make you shit bricks real good |
Sublimle Text | Text editor for code, markup and prose | https://www.sublimetext.com/ | Very versatile |
Audacity Audio | Digital multi-track audio grabbing/recording/editing | https://www.audacityteam.org | Open source, dev in C/C++ |
Tiled | Flexible tiled map editor | https://www.mapeditor.org/ |
Online compiling / testing / visualization
Name | Description | Link | What's so great? |
Godbolt's Compiler Explorer | by Matt Godbolt | https://godbolt.org/ | Analyze and compare the way C++ code compiles across different compilers |
Ideone | Online compiler and debugger (~60 languages) | http://www.ideone.com | |
Wandbox | Online compilation service | https://wandbox.org/ | |
REPL it | In-browser IDE, 50+ languages | https://www.repl.it | |
Data structure and algorithm visualization | USFCA / CS / David Galles | https://www.cs.usfca.edu/~galles/visualization/Algorithms.html | see it and you'll understand |
Active GitHub Forks | See who forked (&last committed) out of date GitHub libs/projects | https://techgaun.github.io/active-forks/index.html |
C++ Libraries
Library / package managers
vcpkg | For Windows, Linux, MacOS. Once installed, provides easy include access to many libraries | https://github.com/microsoft/vcpkg | Chili has a vid showing the installation for Visual Studio |
NuGet | (NuGet Packet Manager is included with Visual Studio >= 2017) | https://nuget.org | Chili has a vid showing its use in Visual Studio |
Game tooling / engines
Name | Description | Link | What's so great? |
SFML | Simple and Fast Multimedia Library | https://www.sfml-dev.org/ | Easy to use, good functionality. Chili grabs it in Intermediate 25 (I25) |
Eigen | C++ template library for linear algebra | http://eigen.tuxfamily.org/ | chilitip |
Productivity
nlohmann/json | JSON for modern C++ | https://github.com/nlohmann/json | Look & feel of an STL container (single header file) |
pugixml | Simple XML parser for C++ with XPath support | https://pugixml.org/ | |
fmtlib | Open-source formatting library | https://fmt.dev/latest/index.html | fast/easy, Slidytip |
AI/ML
DLib | C++ toolkit containing machine learning algorithms | http://dlib.net/ |
Categorized / aggregation sites
cppreference libraries | As suggested by cppreference users | https://en.cppreference.com/w/cpp/links/libs | |
boost C++ libraries | boost your shit | https://www.boost.org/doc/libs/ | |
Lucid Index | Searchable list of useful libraries (self hosted) | https://lucidindex.com/cpp/browse |
Reference sites
Name | Description | Link | What's so great? |
cppreference.com | Most comprehensve reference site | https://en.cppreference.com | Hardccore |
cplusplus.com | Good reference site | http://www.cplusplus.com | Softcore |
Stack Overflow | Good reference site | https://stackexchange.com/sites# | Very active community |
ISOcpp | The home of standard C++ | https://isocpp.org/ | For those purists |
Literature (books, blogs, papers, written shit)
Programming Fundamentals
Name | Description | Link | What's so great? |
Structure and Interpretation of Computer Programs | by Harold Abelson et al. (2nd ed. 1996), MIT Press | https://web.mit.edu/alexmv/6.037/sicp.pdf | Just a classic |
Clean Code | by Robert C. Martin (14th ed. 2015), Prentice Hall | https://ptgmedia.pearsoncmg.com/images/9780132350884/samplepages/9780132350884.pdf | Sample chapter, then just buy it |
C++ Fundamentals
C++ Primer, 5th Edition | by Stanley B. Lippman et al | http://www.charleshouserjr.com/Cplus2.pdf | Standard work, rewritten for C++11. Approachable for beginners |
Learn C++ | by Alex | https://www.learncpp.com/ | Good solid intro, very well done |
C++ Core Guidelines | by Bjarne Stroustrup, Herb Sutter | http://isocpp.github.io/CppCoreGuidelines | Pure discipline, by the masters themselves |
C++ Weekly | by Jason Turner | https://www.youtube.com/user/lefticus1 | Hard core but very good |
C++ Templates: The Complete Guide (2nd Edition) | by David Vandevoorde et al | Cybotip | |
Programming Abstractions in C++ | by Eric S. Roberts (2012), Stanford CS106B | Google using filetype:pdf | Solid and well thought through intro to C++. Excellent for understanding all fundamentals of data structures (incl. more advanced like graph, trees) and algorithms |
C++ Peculiarities
Exploring std::string | Nice blog that looks under the hood | https://shaharmike.com/cpp/std-string/ | a tip from Slidy |
Game programming
Game Programming Patterns | by Robert Nystrom | https://gameprogrammingpatterns.com | Contains lots of different coding patterns and describes them in detail |
Game Engine Architecture | by Jason Gregory (3rd ed. 2018) | https://www.gameenginebook.com/ | Talks about various components that make up a game engine and how they tie together |
3D Computer Graphics
The Book of Shaders | by Patricio Gonzalez Vivo and Jen Lowe | https://thebookofshaders.com (pdf can be generated) | |
Tricks of the 3D Game Programming Gurus | by André LaMothe, 2003 | Google using filetype:pdf | lagout |
Mathematics for 3D Game Programming and Computer Graphics | by Eric Lengyel (3rd ed.) | Google using filetype:pdf | Need those math skills |
Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide | by James M. Van Verth, Lars M. Bishop (2nd ed.) | Google using filetype:pdf | Math yo |
Vector Math for 3D Computer Graphics Tutorial | by Bradley Kjell | https://chortle.ccsu.edu/vectorlessons/vectorindex.html | Demon liked it |
Computing Euler angles from a rotation matrix | by Gregory G. Slabaugh | http://www.gregslabaugh.net/publications/euler.pdf | Chilitip |
Coordinate geometry in 3D space | by Nabla Ltd. | http://www.nabla.hr/CG-CoGeometryContA.htm | BhayanakMoth tip |
D3D/OpenGL tutorial: A trip through the Graphics Pipeline | by Fabian Giesen | https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ | |
Learn OpenGL | by Joey de Vries | http://learnopengl.com | Specific to OpenGL but well written and presented (Slidy) |
Real-time Rendering | by Tomas Akenine-Möller et al (4th ed. 2018) | http://www.realtimerendering.com | Good reference for learning about a wide variety of topics/techniques used in real-time rendering (Slidy) |
DirectX
DirectX Developer Blog | by msft | https://devblogs.microsoft.com/directx/ |
Operating systems
Modern Operating Systems | by Andrew S. Tanenbaum & Herbert Bos (4th ed. 2015) | Google using filetype:pdf | Standard work |
AI / ML / DL
Paradigms of Artificial Intelligence Programming | by Peter Norvig | https://github.com/norvig/paip-lisp | Standard work, gotta love common lisp! |
Artificial Intelligence: A Modern Approach | by Stuart Russell & Peter Norvig (Pearson Edu Ltd 3rd edition) | http://aima.cs.berkeley.edu/ | Standard work |
Deep Learning | by Goodfellow, Bengio and Courville (MIT Press 2016) | http://www.deeplearningbook.org | Solid intro into machine learning / deep learning |
Other good shit
- Blender Guru beginner series
ChiliWisdom
- "If you're building with warnings, you gotta re-evaluate your life choices" (Int.11.hw)
- "Get your privates in order"
- "For those of you who live in weird places that don't have Orios, I feel sorry for you. They look like this, and they are fucking delicious with milk." (Beg.10)
- "Everything on a computer is a motherfucking number" (Hugs.11)
- "Don't turn yourself into a pretzel trying to fit all the STL components together to do everything in a single statement" (Int.16.hw)
- "You can't touch your parents' privates. Don't do it, it's weird" (Int.17.1 on inheritance)
- “If you have someone’s address, you can fuck with them. Just ask any Twitch streamer” (Int.2 on pointers, tx DownUp)
- "What do you think you gotta use? Say it with me... std::move()"
- "With
noexcept
, the STL will now use your move constructor for great justice" (Int.22 on exceptions) - "At the end of this, I'm gonna have a vector of pointers to stationary poos and then over that range I can just randomly select an index and use that pointer to do something with that poo" (STD Gems [Copy/Filter] on std::copy_if)
- "Unordered map is the college girl of associative containers; I keep getting older and older, they just stay the same age" (Int.24.2 on constant time performance)
- "The other way to identify the mechanism of failure is the 'Bust Your Ass' method" (Advanced 3.2hw, talking about debugging strategies)
- "SFML is a tool for babies" [because it uses degrees] (Advanced 4.1, going on a rant against the sexagesimal number system)
- Chili's well researched but rejected proposal for an STL addition can be found here
- "It is working very sexily, powered under the hood by the matrix representation of transformations" (Adv.5.2)
- "Today, we are going to confront the crazy self mumbler. We might get ourselves stabbed in the spleen. But a man's gotta do what a man's gotta do" (3D Fundamentals 10, on fixing texture wiggling)
- "Just ignore the children. That's how you solve most of life's problems as an adult", talking about child contours while playing about with OpenCV (SlideFucker3000, patreon only content)