Difference between revisions of "Tools & Resources"

From Chilipedia
Jump to: navigation, search
(Windows productivity apps)
(43 intermediate revisions by one other user not shown)
Line 8: Line 8:
 
{| class="wikitable" 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:20%;border:1px solid grey;"|Name
+
| style="width:35%;border:1px solid grey;"|Name
| style="width:40%;border:1px solid grey;"|Description
+
| 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:30%;border:1px solid grey;"|What's so great?
+
| 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;"|bl
+
| 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;"|ble
+
| 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;"|blah
+
| 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;"|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, Notepad++ alternative
 +
| 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
 
|}
 
|}
  
Line 32: Line 57:
 
{| class="wikitable" 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:20%;border:1px solid grey;"|Name
+
| style="width:35%;border:1px solid grey;"|Name
| style="width:40%;border:1px solid grey;"|Description
+
| 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:30%;border:1px solid grey;"|What's so great?
+
| 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;"|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 51: Line 81:
 
| style="border:1px solid grey;text-align:left;"|https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
 
| 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;"|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 ==
 
 
=== Game tooling / engines ===
 
=== Game tooling / engines ===
 
 
{| class="wikitable" 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:20%;border:1px solid grey;"|Name
+
| style="width:35%;border:1px solid grey;"|Name
| style="width:40%;border:1px solid grey;"|Description
+
| 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:30%;border:1px solid grey;"|What's so great?
+
| 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;"|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%;"
 
{| 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;"
Line 79: Line 124:
 
| style="width:15%;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%;"
 
{| 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;"|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
Line 98: Line 141:
 
{| class="wikitable" 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:20%;border:1px solid grey;"|Name
+
| style="width:35%;border:1px solid grey;"|Name
| style="width:40%;border:1px solid grey;"|Description
+
| 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:30%;border:1px solid grey;"|What's so great?
+
| 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;"|Best of the best
+
| 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;"|More accessible
+
| 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, but cocky culture
+
| 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;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;"|ISOcpp
Line 125: Line 168:
  
 
== Literature (books, blogs, papers, written shit)==
 
== Literature (books, blogs, papers, written shit)==
 
 
 
 
=== Programming Fundamentals ===
 
=== Programming Fundamentals ===
 
{| class="wikitable" 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:20%;border:1px solid grey;"|Name
+
| style="width:35%;border:1px solid grey;"|Name
| style="width:40%;border:1px solid grey;"|Description
+
| 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:30%;border:1px solid grey;"|What's so great?
+
| 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 141: Line 181:
 
| 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 ===
 
{| class="wikitable" 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:#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;"
| 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/CppCoreGuidelines
+
| 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;"|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="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++
Line 160: Line 209:
 
=== C++ Peculiarities ===
 
=== C++ Peculiarities ===
 
{| class="wikitable" 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:#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;"
| style="border:1px solid grey;text-align:left;"|Exploring std::string
+
| style="width:35%;border:1px solid grey;text-align:left;"|Exploring std::string
| style="border:1px solid grey;text-align:left;"|Nice blog that looks under the hood
+
| style="width:30%;border:1px solid grey;text-align:left;"|Nice blog that looks under the hood
| style="border:1px solid grey;text-align:left;"|https://shaharmike.com/cpp/std-string/
+
| style="width:20%;border:1px solid grey;text-align:left;"|https://shaharmike.com/cpp/std-string/
| style="border:1px solid grey;"|
+
| 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 ===
 
{| class="wikitable" 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:#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;"
| 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;"|https://thebookofshaders.com (pdf can be generated)
+
| style="width:20%;border:1px solid grey;text-align:left;"|https://thebookofshaders.com (pdf can be generated)
| 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;"|Tricks of the 3D Game Programming Gurus
 
| style="border:1px solid grey;text-align:left;"|Tricks of the 3D Game Programming Gurus
Line 206: Line 267:
 
| 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;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 ===
 
{| class="wikitable" 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:#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;"
| 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 ===
 
=== AI ===
 
{| class="wikitable" 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:#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;"
| style="border:1px solid grey;text-align:left;"|Paradigms of Artificial Intelligence Programming
+
| style="width:35%;border:1px solid grey;text-align:left;"|Paradigms of Artificial Intelligence Programming
| style="border:1px solid grey;text-align:left;"|by Peter Norvig
+
| style="width:30%;border:1px solid grey;text-align:left;"|by Peter Norvig
| style="border:1px solid grey;text-align:left;"|https://github.com/norvig/paip-lisp
+
| style="width:20%;border:1px solid grey;text-align:left;"|https://github.com/norvig/paip-lisp
| style="border:1px solid grey;"|Standard work, gotta love common lisp!
+
| style="width:15%;border:1px solid grey;"|Standard work, gotta love common lisp!
 
|}
 
|}
  
== Crazy shit in C++ ==
+
== Other good shit ==
 +
* Blender Guru [https://youtu.be/TPrnSACiTJ4 beginner series]
 +
 
 +
== ChiliWidsom ==
 +
* "If you're building with warnings, you gotta re-evaluate your life choices" (I11hw)
 +
* "Get your privates in order"

Revision as of 11:51, 22 September 2019

Useful Tools & Resources (WORK IN PROGRESS)

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/ -
Pyxel Edit Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt https://pyxeledit.com/ AP tip
Vim Source code editor, Notepad++ alternative https://www.vim.org/download.php Will make you shit bricks real good

Online compiling / testing / visualization

Name Description Link What's so great?
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/
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

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

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/

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
C++ Core Guidelines by Bjarne Stroustrup, Herb Sutter http://isocpp.github.io/CppCoreGuidelines Pure discipline, by the masters themselves
Programming Abstractions in C++ by Eric S. Roberts (2012), Stanford CS106B Google using filetype:pdf Solid and well thought through intro to C++

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
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

Paradigms of Artificial Intelligence Programming by Peter Norvig https://github.com/norvig/paip-lisp Standard work, gotta love common lisp!

Other good shit

ChiliWidsom

  • "If you're building with warnings, you gotta re-evaluate your life choices" (I11hw)
  • "Get your privates in order"