Why build things from scratch? Because that's the only way real progress is made. Every impactful project started life as a small experiment. Plus, writing something from scratch turns theory into practice. You may think you know how a piece of technology works, but until you write it yourself, it won't really stick. There's no substitute for direct experience.
And let's face it, most of the software we use is basically the same as it was twenty or thirty years ago. Our "wheels" are terrible! They need to be reinvented!
These screenshots and videos were shared by jam participants in <b>#project-showcase</b> on our <ahref="{{ $discordInviteURL }}"target="_blank">Discord</a>. Join us and share what you're working on! <aclass="b"href="{{ .ShowcaseFeedUrl }}">See all ➜</a>
</p>
{{ else }}
<h2>Community showcase</h2>
<p>
These screenshots and videos were shared by jam participants in <b>#project-showcase</b> on our <ahref="https://discord.gg/hmn"target="_blank">Discord</a> during the jam. Join us and chat about your favorites!
SDF Atlas is an interactive editor for signed distance fields. Signed distance fields are commonly used to make beautiful implicit geometry in shaders, but editing them leaves a lot to be desired - editing shapes with shader code is not the most pleasant experience.
SDF Atlas gives you an interactive UI for playing with SDFs, including transformations like repetition and reflection that make SDFs such a popular choice for shader programmers. But it also goes a step further by creating an "atlas" format that allows for easy drawing of any shapes you create in the editor, without having to write all the shader code yourself.
</p>
<p>
This project was featured at Handmade Seattle in 2022.
The Orca prototype is "a launcher for WebAssembly applications". But in reality, it's more than that. It demonstrated the ability to use WebAssembly as the foundation for cross-platform applications while swapping out the entire web stack for something new. It's a taste of a new vision for the web.
The prototype version was such a success that we decided to turn it into a <ahref="https://orca-app.dev/"target="_blank">proper Handmade initiative</a>, and the author, Martin, has been working full-time on Orca since earlier this year - in fact, it's now available to use as a platform for this year's jam.
Bifold Text is an experimental code format, editor, and execution runtime that allows you to write debug print statements interleaved with your actual program. Rather than harm your program's legibility by spamming your code with logs, the editor can tuck your debug code out of the way, ready to pull out and edit at a moment's notice. It also includes new graphical features for debug prints, so you can have more than just a text file - you can have a rich visual history of your program's execution.
Netsim is a toy network in a box, designed for education. It simulates real network and routing protocols and allows you to visualize network properties like congestion control.
The jam prototype has fairly complete implementations of TCP and IPv4 running entirely within the browser. By implementing the network stack itself, it can tune everything to make visualizations clear and easy to understand. It also makes lots of pleasant noises as traffic flows through the network.
We owe the name “Wheel Reinvention Jam”, and its logo, to Casey Muratori. At the start of <ahref="https:?handmadehero.org">Handmade Hero</a>, literally in episode 1, a viewer asked the question: <ahref="https://guide.handmadehero.org/code/day001qa/#3410">“Why not use an engine? Why reinvent the wheel?”</a>
</p>
<p>
Casey’s answer deserves to be watched in its entirety, but part of it is shockingly relevant right now:
</p>
<blockquote>
<p>
If you start with an engine, then it changes what you’re learning from the fundamental truth of how to implement a game to someone else’s version of that. […] What you’re really learning is that engine. <strong>You haven’t learned how to make games, you’ve learned how to make games in Unity. Right? And if Unity were to disappear, for example, you would no longer know how to make a game at all.</strong> I’m not exaggerating this, that’s just the truth.
</p>
</blockquote>
<p>
We could not have planned this jam at a more opportune time. Unity <ahref="https://blog.unity.com/news/plan-pricing-and-packaging-updates">recently announced</a> a dramatic change to their pricing structure that leaves the future of many game studios in doubt.
</p>
<p>
What Casey said back in 2014, at the very inception of the Handmade community, has now come to pass. For many game developers, Unity is no longer an option. And just like Casey said, their very existence in the industry has now come into question. Will they be able to make games at all?
</p>
<p>
Casey’s reasoning holds as true today as it did then. The world needs engine programmers! Programmers who understand how engines work aren’t constrained by the limitations of the engine - they know what’s fundamentally possible and can work around constraints to achieve anything they want. But more than that, our current engines are not good enough! We need people making new engines, better tools, <em>better wheels</em>.
</p>
<p>
This is not just true for game engines. It’s true of the entire software industry. We need new video editors, new platform layers, new code editors, new databases, new networking protocols, new compilers, new typesetting systems, new presentation programs, new graphics APIs, new operating systems.
</p>
<p>
We will never make progress unless we reinvent the wheel.
Find a project idea that excites you! Join the conversation over on our <ahref="https://github.com/HandmadeNetwork/wishlist/discussions"target="_blank">Wishlist</a>, brainstorm ideas on <ahref="{{ $discordInviteURL }}"target="_blank">Discord</a>, or just invite some friends to jam with you.
to track your work. Then, build your program! Share your work in progress in #project-showcase on Discord, or directly from your project page. Posts on Discord can be tagged so they automatically appear here on the website.
<b>Your Handmade Network project is your submission.</b> Fill out the project description, making sure to explain the goals of the project and why you chose to build it. Also consider posting an update with video of your program in action!
<li>Any tech is allowed. Popular tech choices in the community are <ahref="https://www.raylib.com/">Raylib</a>, <ahref="https://www.libsdl.org/">SDL</a>, <ahref="https://github.com/ocornut/imgui">Dear ImGui</a>, and <ahref="https://github.com/rxi/microui">microui</a>. Or if you're feeling ambitious, you can even use our new app platform, <ahref="https://orca-app.dev/">Orca</a>!</li>
Explain the project's goals and why you chose to build it. Also share some closing thoughts - did it turn out how you hoped? What did you learn? If you continue the project, what will you do differently?
<b>Your description must contain multiple screenshots of your software in action.</b> You should ideally also share a project update with a demo video. We recommend Mārtiņš Možeiko's <ahref="https://wcap.handmade.network/"target="_blank">wcap</a> for recording desktop video on Windows. On Mac, just press ⌘-Option-5 and record a video, or use QuickTime.