Tools & Resources
From Chilipedia
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, Notepad++ alternative | 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/ | |
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 parent's 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