Difference between revisions of "Tools & Resources"
From Chilipedia
(→Windows productivity apps) |
|||
(38 intermediate revisions by one other user not shown) | |||
Line 16: | Line 16: | ||
| 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;"|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 | ||
|} | |} | ||
− | |||
− | |||
− | |||
== Online compiling / testing / visualization == | == Online compiling / testing / visualization == | ||
Line 39: | Line 61: | ||
| style="width:20%;border:1px solid grey;"|Link | | style="width:20%;border:1px solid grey;"|Link | ||
| style="width:15%;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 54: | 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 == | ||
Line 71: | Line 100: | ||
| 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%;" | ||
Line 94: | Line 137: | ||
| style="border:1px solid grey;"| | | style="border:1px solid grey;"| | ||
|} | |} | ||
+ | |||
== Reference sites == | == Reference 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%;" | ||
Line 115: | Line 159: | ||
| 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;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 122: | Line 166: | ||
| style="border:1px solid grey;"|For those purists | | style="border:1px solid grey;"|For those purists | ||
|} | |} | ||
− | |||
− | |||
− | |||
== Literature (books, blogs, papers, written shit)== | == Literature (books, blogs, papers, written shit)== | ||
Line 140: | 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:#667;color:#c1c1c1;text-align:center;" | ||
+ | | style="width:35%;border:1px solid grey;text-align:left;"|C++ Primer, 5th Edition | ||
+ | | style="width:30%;border:1px solid grey;text-align:left;"|by Stanley B. Lippman et al | ||
+ | | style="width:20%;border:1px solid grey;text-align:left;"|http://www.charleshouserjr.com/Cplus2.pdf | ||
+ | | 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="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:35%;border:1px solid grey;text-align:left;"|C++ Core Guidelines | ||
Line 154: | Line 206: | ||
| 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++ | ||
|} | |} | ||
+ | |||
=== 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%;" | ||
Line 160: | Line 213: | ||
| style="width:30%;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="width:20%;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="width:15%;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%;" | ||
Line 199: | 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 === | ||
Line 217: | Line 304: | ||
|} | |} | ||
+ | == 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)
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/ | - |
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
- Blender Guru beginner series
ChiliWidsom
- "If you're building with warnings, you gotta re-evaluate your life choices" (I11hw)
- "Get your privates in order"