Handmade Hero is an ongoing project by Casey Muratori to create a complete, professional-quality game accompanied by videos that explain every single line of its source code. The series began on November 17th, 2014, and is estimated to run for at least 600 episodes. Programming sessions are limited to one hour per weekday so it remains manageable for people who practice coding along with the series at home.
For more information, see the official website at https://handmadehero.org
raylib is a simple and easy-to-use library to enjoy videogames programming.
raylib project was originally developed for education, while I was working as a teacher, I needed a simple library to teach videogames development to young people with artistic profile, most of them had never written a single line of code. I decided to start with C because I consider very important to understand the roots of programming and how things really work in the background. I was looking for a simple C library for videogames programming but none in the market fit my needs and my teaching methodology, so, I decided to create my own: raylib.
raylib has been used with several thousand students to date with amazing results. They have learnt the basis of videogames programming with raylib, including the videogames working mechanisms: game life cycle, frame-time management, screens management, resources loading/unloading, variables updating, frame drawing, collisions detection and resolution, etc.
Thanks to the students continuous feedback, raylib has grown during this time with hundreds of improvements and additions; right now in raylib webpage there are more than 140 code examples to start with the library and more than 20 sample games to learn videogames programming.
raylib is free and open-source.
DOWNLOAD LATEST raylib RELEASE!
NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way. Are you ready to learn? Jump to the code examples!
A single-file handmade image viewer for Windows, written in C/C++.
Featured on the Handmade Network's Wheel Reinvention Jam.
Consider donating if you like this project
Homemade immediate mode UI, a custom D3D11 renderer, Windows Imaging Component, stb_image and libwebp for decoding, cute_files.h to manage directories on different platforms, FreeType for font loading, and easyexif for fetching image metadata.
BMP, GIF, ICO, JPEG, JPEG XR, PNG, TIFF, DDS, WEBP.
It also supports installed codecs for WIC, check Microsoft Store to get codecs like HEIF, RAW, or AVIF. Here:
AV1 Video Extension
HEVC Video Extensions
HEIF Image Extensions
Raw Image Extension
> CactusViewer.exe "path_to_file"
(make sure you write the full path of the file!).All dependencies are within the repo for your, my, and everyone's convenience. Using an MSVC 64 bit developer terminal:
b.bat
to build the project in debug mode, output in \bin
(the debug version expects the font file in src, so terminal calls need to have bin as the working directory to run).b.bat release
to build the project in release mode, output in \bin
Possible things to expand on:
wcap is simple and efficient screen recording utility for Windows 10.
It uses Windows.Graphics.Capture API available since Windows 10 version 1903, May 2019 Update (19H1) to capture contents of window or whole monitor. Captured texture is submitted to Media Foundation to encode video to mp4 file with hardware accelerated H264 codec. Using capture from compositor and hardware accelerated encoder allows it to consume very little CPU and memory.
Get latest binary here: wcap.exe (WARNING: Windows Defender or other AV software might report false positive detection)
Or get source code on github: https://github.com/mmozeiko/wcap
Ctrl + PrintScreen
to start recording current monitor (where mouse cursor currently is positioned)Ctrl + Win + PrintScreen
to start recording currently active windowCtrl + Shift + PrintScreen
to select & record fixed position area on current monitorMotivation
Programming is difficult.
Our squishy human brains struggle to simulate what the computer will do when it runs our code. As a result we make lots of errors, many of them small, requiring us to divert our attention from the main problem we're working on to fix minor implementation details. This both takes up time and makes us lose focus on the high-level design.
The computer is going to run our code anyway, so why not do so immediately to check what it does?
Tool Overview
WhiteBox runs the code as it is written, capturing details about the execution. It can then give you live feedback about the run, showing you how variables change over time and other details.
This is intended to improve the developer experience by helping you to understand your code faster, and consequently:
Tool Internals
WhiteBox is written in C and C++ with few external libraries:
Just about everything else is written from scratch, including:
Project Details
WhiteBox has most of the initial set of features implemented and is nearly ready for alpha release.
Supported languages: C (and a small subset of C++) Supported platforms: Windows x64, Linux x64 (tested on Ubuntu 20.04) Supported code editors: 4coder, Emacs, Notepad++, Sublime Text, Vim/Neovim, Visual Studio, VSCode, (plus workarounds that should work for most other editors)
Support for more of each of these is planned or currently in-development.
Project Links
The Odin programming language is designed with the intent of creating an alternative to C with the following goals:
Website: https://odin-lang.org/
Documentation:
User Libraries:
package main import "core:fmt" main :: proc() { program := "+ + * ๐ - /"; accumulator := 0; for token in program { switch token { case '+': accumulator += 1; case '-': accumulator -= 1; case '*': accumulator *= 2; case '/': accumulator /= 2; case '๐': accumulator *= accumulator; case: // Ignore everything else } } fmt.printf("The program \"%s\" calculates the value %d\n", program, accumulator); }
import "core:fmt"
main :: proc() { program := "+ + * ๐ - /"; accumulator := 0;
for token in program {
switch token {
case '+': accumulator += 1;
case '-': accumulator -= 1;
case '*': accumulator *= 2;
case '/': accumulator /= 2;
case '๐': accumulator *= accumulator;
case: // Ignore everything else
}
}
fmt.printf("The program \"%s\" calculates the value %d\n",
program, accumulator);
} [/code]
Demonstrations:
Climb huge mountains, impale hundreds of enemies, and solve tricky physics puzzles... all using only a spear. Pole-vault yourself to victory in this epic joust-'em-up adventure โ or face your friends in online co-op and PvP multiplayer!
When the king's army invaded Sir Happenlance's quaint countryside village he didn't think much of it - that is, until they broke into his home on shaky grounds and started a scuffle that ended in the tragic death of his wife. Now, Sir Happenlance has embarked on a quest to exact personal revenge on the king himself - and all who stand in his way. As an esteemed Knight of the Rotund Table, your trusty lance is now the only thing you can, well, trust.
Sir Happenlance started out as a challenge we set for ourselves to finish and ship a commercial game in (about) one month. It's written mostly from scratch in C++ using OpenGL and DXGI1.3 for graphics, but we do use Box2D for physics, ENet and Steamworks for networking, SoLoud for audio, and SDL2 as a platform layer. We also published some devlogs documenting our progress and explaining the design and technical decisions we make along the way!
Remember those old console racing games we grew up playing on the small CRT boxes? AV-Racer is a 2D top down retro style arcade racing game inspired in style by that nostalgia and in gameplay by the spirit of retro arcaders.
Convex screen, curved edges, scan-lines, RGB shift, static, and on/off TV effects are emulated to chase that feeling of childhood nostalgia in games.
Push will come to shove in this one. Paint the roads with tire tracks and cover your opponents with smoke as you battle for first in a fast paced circuit racing format. Learn the track and memorize the corners to nail your approach. Utilize going offtrack and cutting corners to your advantage and slide ahead the competition.
Race up to 10 drivers, against a challenging AI system. No rubber banding, no handicaps, no artificial boosts, learn the track, take corners right and you will get ahead.
Race at 14 different locations with 24 different track setups. Hand crafted tracks with corners inspired by famous tracks around the world. Look out for Easter Eggs!
Climb your way from the Junior league to the World Series in 5 car classes. Collect trophies in 5 different championships; Junior, Senior, Professional, Endurance, and World Championship. Progress in the career to unlock car classes and tracks to play in single player and split screen
Share the crazy action with a friend and compete locally in a Two-Player mode against each other or with AI, using the tracks an cars unlocked in Career.
These projects are submissions to the 2024 Learning Jam, which is happening right now! Learn more ยป
Many community members have projects of their own. Want to join them? Create your own.
The following projects were submissions to our most recent jam. Learn more ยป