The past few months have been a whirlwind. We hosted two jams: the Visibility Jam and the Wheel Reinvention Jam, almost back to back, each with an associated recap show. (We’ll schedule them better next year!)
In between was Handmade Boston, which was a delight—I met so many wonderful people, some of whom even submitted projects for the jam. And throughout it all, we made a slew of website updates, including an overhaul to our Discord integration.
Finally, we have been working with Abner and his team recently to improve the Handmade Cities website. The Handmade Network community scoured the internet to put together this master spreadsheet of all Handmade Cities media since the first conference in 2019. Asaf has mapped out the full sitemap of Abner’s current site and has been working with Devon to prioritize and port the contents of the site to the new one. I’m very excited for the end result, but my excitement has been tempered by recent events—events which provide a stark reminder of why the Handmade ethos is so important.
Here’s the thing: Abner’s site currently runs on WordPress.
Those following the tech sphere will know that the WordPress ecosystem is on fire. Matt Mullenweg, director of the WordPress Foundation and CEO of Automattic, has decided to wage war against a WordPress hosting company called WP Engine. He has publicly called the company "a cancer to WordPress", blocked them from accessing core WordPress infrastructure, and even seized one of their popular plugins. All of this stems from an ostensible infringement on WordPress’s trademark, but the details make it look more like extortion than a trademark dispute.
This is not just drama. Nearly a tenth of Automattic’s employees have already resigned, and I expect more will follow. Mullenweg’s dick-measuring contest with DHH surely won’t help his case. (The post used to say "We’re now half a billion in revenue. Why are you still so small?") WordPress's executive director has resigned, as has most of the company's ecosystem division. What does this mean for the future development of WordPress, or the health of the developer ecosystem surrounding it? Time will tell, but it's a very bad sign for those who have built their businesses on the platform.
The situation is still developing, and information online is constantly being edited or deleted. By the time you read this article, you might need to look up some of the links on the Internet Archive.
Oh wait. That's under attack too.
Until recently, if you wanted to throw together a website, WordPress seemed like a sensible, stable choice. I've personally made multiple WordPress sites that have held up for years, if not decades. But thanks to one man, its future is now in jeopardy, and even the services that would act as a backup are disintegrating too.
This website, on the other hand, is proudly Handmade. The whole codebase is a single application written in Go. It statically links its dependencies. Our data is stored in a Postgres database on the same server. We use a few libraries here and there for syntax highlighting and Markdown rendering, but for the most part we just depend on the standard library HTTP server.
This very post can be authored in Markdown, previewed in real time, and published instantly. It has a full revision history, permalinks, the works. We have a project system, a shadowban system to combat spam, and a robust Discord integration that powers the amazing showcase feeds across the site. The previous admin team did a great job building the foundation, and Asaf and I have rebuilt, extended, and refined it over the past several years. Every link to handmade.network still works, and will always work, for as long as we are around to maintain this site, and when someday we hand this off to another team, they'll have one simple database full of well-organized content.
Was this site hard to build? Kind of. Certainly it took us months to rebuild it from scratch back in 2021, and we've poured many more months into its development since. But this entire site was built by a mere handful of devs in their spare time. It's just a database with posts, threads, and projects, and a bunch of CRUD pages for managing them. Nothing about it is very complicated.
But thanks to our efforts, we are safe. Nobody can take away our platform, because we built our platform. As long as we can connect a computer to the internet, we'll be able to keep this site online.
So with Handmade Seattle approaching, we have redoubled our efforts. Being self-sufficient isn't just about protecting ourselves from the Matt Mullenwegs of the world. It's about empowering others to sustain themselves too.
What we have learned from building the Handmade Network website enables us to build websites for others. Abner's will be the first, but as we spin up the Handmade Software Foundation, we expect to make many more, each specifically tailored to each author's needs. There's no reason for a website to be complicated—each one can be straightforward and simple. And if a project author decides they don't want our help any more? They can just take our code and run it themselves.
We hope this is a model for the whole Handmade community: a group of self-sufficient programmers working together to empower each other. By taking the responsibility on ourselves, we can build better software and share what we learn with the world.
The first step to building a new future for the software industry is to build tools for ourselves. This is why we do jams, this is why we do Unwind, this is why we do conferences. Handmade programmers need to lead the way by proving how much a few programmers can do, and how much better your software can be when you build it by hand.
See you all at Handmade Seattle in November.
-Ben
Been a bit since I've posted, but still making steady progress on my laser puzzle game. Added bidirectional mirrors this morning
fretboard preview on the tab editor/player (starts at 0) 🎶 showing off my own version of "css" but in ini, including colors, cut presets, editor options and element styles
&learningjam2024
Back on the PBR demo. Went off a tangent and implemented my own local "Shadertoy", so that I can use my preferred text editor without having to do additional copy-pasting. I've written a blog post about it.
https://unlitart.com/Blog/#PBR%20Demo%20WIP%20and%20Writing%20Offline%20Shadertoy
I've done so many boring backend plumbing things with &half-edge of late so the only visually interesting thing I have done is having implemented camera zoom :pensivebread:
Juicelutions continues. We've got camera shake on moose impact, better player character animations, grass rustling as the moose charges, and trees that shake when hit by the moose.
Little Guitar Tab player/editor im doing for transcribing my own stuff, the ones played are not mine tho 😛
The (almost) three month crunch is over, it's released!
The old (not so good) prototype has come from left image to right image.
Improvements include:
Get it here if you're into action puzzle games: https://store.steampowered.com/app/3137550/Halloween_Picket_Maze/
been experimenting with making a tabbed interface for &half-edge ! It's just the UI right now, but this is one of those things that would make it feel a lot more modern compared to the big established modeling tools, where every time you want to open a new model, you have to decide whether to save or discard whatever you already have open. tabs like this would let you work much more fluently in terms of UX, something I'm prioritizing a lot with this tool!
Taking a little break from the wasm debugger to integrate harfbuzz into &orca
Finally I've released my new website!
It was made using my own handmade static site generator, a project that has grown to the extent that I'm almost considering registering it.
More information can be found in the showcase, linked below. There's also a blog post.
https://unlitart.com/Tech/#Static%20Site%20Generator
https://unlitart.com
&meeseengine for the Gamecube, Wii, Dreamcast, and PC.
I've been mostly working on the engine's internals lately. The PC port gave me the debugging tools I needed to improve complex systems like the memory manager.
Added AV1 video encoding in &wcap
Supports 8-bit and 10-bit format main profiles.
AV1 is newer codec that in theory should allow smaller output file size for similar quality (or better quality for similar output file size). In practice the quality and availability depends on driver and h/w support. Probably fine on Nvidia, but not really recommended on AMD (worse quality than alternatives). Does not work on Qualcomm (GPU driver crashes). Windows provides no software fallback for encoding on CPU, must have h/w support to enable AV1.
Not showing off coding super powers today, but level design and marketing - and today got confirmation something is working.
Our game level 8 was too hard, but instead of changing it I replaced level 7 with a tutorial.
The problem players had was "can I do this movement?", where the answer is NO. With a bit of tutorializing, and a bit clearer UI (red areas linger on longer) it still wasn't obvious, but it is clearer than before.
I've been contacting YouTubers to cover the game for several weeks now and I'm looking at about 11 % "success rate". I must say that YouTube mostly showing me content creators with over 100 K subscribers is really hurting me as there's no way I can reach those with this game (and lack of previous success stories).
But with the latest YT contact I got confirmation that the level is passable, and also that demo playtime is around 30 minutes (which is about what I was aiming for) https://www.youtube.com/watch?v=DsHc7umek9w
Of course, game is 100 % coded by me, assets by better half. Only external stuff is the music, sound effects (excluding ghost sounds, that's me speaking to the mic) and font.
My blog post about alternatives to interpolation in fixed timestep simulations is finally out! Also It's on the HN front page rn :O And thanks to @poyepolomix for his help:)
https://jakubtomsu.github.io/posts/fixed_timestep_without_interpolation/
Here is the demo source code:
https://github.com/jakubtomsu/fixed-timestep-demo
&wcap now with native arm64 support!
All the same features as x64 build supported - screen/window/region capture, audio capture, process-local audio, h264/hevc/aac/flac, improved color conversion, etc... Everything running with the same small CPU and memory usage when encoding using GPU accelerated codec.
https://github.com/mmozeiko/wcap
iterated a little more on the &half-edge logo! I kinda like this one!
I'm working on a little jam project this week, using raylib and box2d v3
**procedural road textures! **
using noise functions along the UV plus an added touch of generated streaks at high curvatures using the spline second derivative and smoothening discontinuity (since it's not C2 continuous) with a rolling average before render, then using that to create tire streaks at corners
so the below uses no textures, it's all generated in the fragment shader
it's easier to see in this angle, interpolation of orientation along the spline track
Been a bit since I've posted, but still making steady progress on my laser puzzle game. Added bidirectional mirrors this morning
Updated the renderer to be a culling mesher instead of drawing each block every frame. Also I changed the hash function for the chunks to use murmur32 instead of crc32. You can see the stats for the chunk hash map on the screen, doing this I found out that the crc32 hash wasn't distributing the hash uniformly. I also implemented frustum culling of the world so only chunks that are in the camera frustum are actually generated.
I'm only at a render distance of 10 chunks so I think I still need to improve the performance if I want to reach something like 32 chunk render distance. I think that'll be changing the mesher to a greedy mesher, and speeding up the meshing code.
At the end of the video you can see where the world hasn't generated yet
&perspective-drawing Oh god, position becomes rotation in curvilinear. Also, implemented rudimentary curvilinear edge drawing.
fretboard preview on the tab editor/player (starts at 0) 🎶 showing off my own version of "css" but in ini, including colors, cut presets, editor options and element styles
#define foreach(i,z,N) for(auto i=z; i<N; i++) static int test(int* vals, int i, int count, int best){ if(i < 0){ return best; } int included = test(vals, i-1, count+1, use(vals[i], best); int excluded = test(vals, i-1, count+0, best); return select(included, excluded); }
$\forall \ \vec{v} \in V \ \exists \ \vec{v}^{-1} \in V \ (v + v^{-1} = \vec{0})$
Note, there isn't a markdown preview for adding random snippets from profile
let's hope I can delete this after pressing Save ;)
Shipped to iOS and Android 🎉 Used SDL3, SDL_mixer, and stb_image. Also added a leaderboard to the game.
https://apps.apple.com/us/app/candy-train-classic/id6587559761
https://play.google.com/store/apps/details?id=io.itch.ksylvestre.candytrain
here's one of the bigger projects i've been working on. there's an overarching future goal, but also work worth sharing right now. the overarching goal is to produce a native c port of sonic 1, such that it could be ported and hacked on like doom or the sm64 decomp. i consider it to be a culmination of my knowledge of this game and of emulation in general. to get there, i've created the work worth sharing right now: my own minimal mega drive emulator. while it's designed only to run this game, it has a couple interesting features:
- semi-hardware accelerated rendering. each layer is rendered in software by the emulated display processor, but composited on the gpu, which allows for applying certain shader effects to individual layers. for example, here i'm applying a blur shader to the background to make the foreground action stand out more
- support for "hooking" subroutines and replacing them with calls into a dll loaded at runtime. this is how i intend to make the c port happen; by gradually patching the game with code written in a higher-level language (which can be seen in the lower left). with a command line switch the emulator can verify the accuracy of every patch by running a "control" emulator without scripting side-by-side, and checking that registers and memory match after running every hook
&learningjam2024
Back on the PBR demo. Went off a tangent and implemented my own local "Shadertoy", so that I can use my preferred text editor without having to do additional copy-pasting. I've written a blog post about it.
https://unlitart.com/Blog/#PBR%20Demo%20WIP%20and%20Writing%20Offline%20Shadertoy
I've done so many boring backend plumbing things with &half-edge of late so the only visually interesting thing I have done is having implemented camera zoom :pensivebread:
Working on a puzzle game for the Playdate where you fill out a picture with "4-block" pieces. You can also rewind/undo with the crank!
The past few months have been a whirlwind. We hosted two jams: the Visibility Jam and the Wheel Reinvention Jam, almost back to back, each with an associated recap show. (We’ll schedule them better next year!)
In between was Handmade Boston, which was a delight—I met so many wonderful people, some of whom even submitted projects for the jam. And throughout it all, we made a slew of website updates, including an overhaul to our Discord integration.
Finally, we have been working with Abner and his team recently to improve the Handmade Cities website. The Handmade Network community scoured the internet to put together this master spreadsheet of all Handmade Cities media since the first conference in 2019. Asaf has mapped out the full sitemap of Abner’s current site and has been working with Devon to prioritize and port the contents of the site to the new one. I’m very excited for the end result, but my excitement has been tempered by recent events—events which provide a stark reminder of why the Handmade ethos is so important.
Here’s the thing: Abner’s site currently runs on WordPress.
Those following the tech sphere will know that the WordPress ecosystem is on fire. Matt Mullenweg, director of the WordPress Foundation and CEO of Automattic, has decided to wage war against a WordPress hosting company called WP Engine. He has publicly called the company "a cancer to WordPress", blocked them from accessing core WordPress infrastructure, and even seized one of their popular plugins. All of this stems from an ostensible infringement on WordPress’s trademark, but the details make it look more like extortion than a trademark dispute.
This is not just drama. Nearly a tenth of Automattic’s employees have already resigned, and I expect more will follow. Mullenweg’s dick-measuring contest with DHH surely won’t help his case. (The post used to say "We’re now half a billion in revenue. Why are you still so small?") WordPress's executive director has resigned, as has most of the company's ecosystem division. What does this mean for the future development of WordPress, or the health of the developer ecosystem surrounding it? Time will tell, but it's a very bad sign for those who have built their businesses on the platform.
The situation is still developing, and information online is constantly being edited or deleted. By the time you read this article, you might need to look up some of the links on the Internet Archive.
Oh wait. That's under attack too.
Until recently, if you wanted to throw together a website, WordPress seemed like a sensible, stable choice. I've personally made multiple WordPress sites that have held up for years, if not decades. But thanks to one man, its future is now in jeopardy, and even the services that would act as a backup are disintegrating too.
This website, on the other hand, is proudly Handmade. The whole codebase is a single application written in Go. It statically links its dependencies. Our data is stored in a Postgres database on the same server. We use a few libraries here and there for syntax highlighting and Markdown rendering, but for the most part we just depend on the standard library HTTP server.
This very post can be authored in Markdown, previewed in real time, and published instantly. It has a full revision history, permalinks, the works. We have a project system, a shadowban system to combat spam, and a robust Discord integration that powers the amazing showcase feeds across the site. The previous admin team did a great job building the foundation, and Asaf and I have rebuilt, extended, and refined it over the past several years. Every link to handmade.network still works, and will always work, for as long as we are around to maintain this site, and when someday we hand this off to another team, they'll have one simple database full of well-organized content.
Was this site hard to build? Kind of. Certainly it took us months to rebuild it from scratch back in 2021, and we've poured many more months into its development since. But this entire site was built by a mere handful of devs in their spare time. It's just a database with posts, threads, and projects, and a bunch of CRUD pages for managing them. Nothing about it is very complicated.
But thanks to our efforts, we are safe. Nobody can take away our platform, because we built our platform. As long as we can connect a computer to the internet, we'll be able to keep this site online.
So with Handmade Seattle approaching, we have redoubled our efforts. Being self-sufficient isn't just about protecting ourselves from the Matt Mullenwegs of the world. It's about empowering others to sustain themselves too.
What we have learned from building the Handmade Network website enables us to build websites for others. Abner's will be the first, but as we spin up the Handmade Software Foundation, we expect to make many more, each specifically tailored to each author's needs. There's no reason for a website to be complicated—each one can be straightforward and simple. And if a project author decides they don't want our help any more? They can just take our code and run it themselves.
We hope this is a model for the whole Handmade community: a group of self-sufficient programmers working together to empower each other. By taking the responsibility on ourselves, we can build better software and share what we learn with the world.
The first step to building a new future for the software industry is to build tools for ourselves. This is why we do jams, this is why we do Unwind, this is why we do conferences. Handmade programmers need to lead the way by proving how much a few programmers can do, and how much better your software can be when you build it by hand.
See you all at Handmade Seattle in November.
-Ben
Hey there, Handmade Network. Since you’re reading this on the website, you may have noticed that things look a little different around here. As I talked about in our last news post, we’ve been working for the last couple months to redesign the Handmade Network website. Today I’m pleased to finally roll it out!
The new site design comes courtesy of Jes Chuhta, a wonderful UX designer who we came to know through Handmade Boston and Handmade Seattle last year. The new website is designed to reflect the new shape of the Handmade Network as it has evolved over time. A quick summary of the changes:
In addition, the new design is actually much simpler to work with! Programmers, trust me, you have no idea how valuable it is to work with a good designer. Our HTML is so simple now, our CSS is so simple now, we have a third of the variables we used to have. It is so easy to slap designs together and they look good because they are consistent and aesthetically pleasing and please programmers listen to me please
Because we needed to get this announcement out, the website is still a work in progress. Several pages are still somewhat broken or need a little more attention. But we hope that you all enjoy the new foundations, and we look forward to expanding the site to highlight even more of the great work the Handmade Network community is doing.
That’s right, just two weeks! Our second annual Visibility Jam is coming up on July 19, two weekends from the time of this posting.
The topic of “visibility” is critical to Handmade goals. To understand our systems we have to see our systems. The underlying realities of computers cannot be known unless programmers like us go to the effort of building tools, visualizations, and editors. Making systems visible is the first step toward improving those systems.
I covered this in my talk from Handmade Seattle last year. We don’t need to be stuck forever with the towering pile of complexity that is modern systems. We can learn how systems work, tear down the layers, and build new systems that are just as nice to use but have a fraction of the complexity. If we are going to build a new kind of “high-level” software, we first have to understand the low levels, and the Visibility Jam is your opportunity to take that first step.
Plus, we’ve now made tons of improvements to projects on the website, so submission should be much more pleasant this year. There’s no better time to join the community and try jamming with us! Check out the jam page for more details.
Hello Handmade Network! 2024 has been great so far. Most notably, we held our first-ever Learning Jam in March, in which participants learn about a topic and share that knowledge with the rest of the community. We had great turnout for an experimental jam in its first year, and I’m excited to revisit it in the future.
But looking back, not everything we’ve done over the last couple years has been quite so successful. We’ve excitedly kicked off projects like our education initiative, Time Machine, even a 501c3 behind the scenes. Sadly, none of these have panned out. Making good educational resources with a Handmade flair is hard (really hard) and requires a huge time commitment from a rare type of person. Time Machine was a fun idea, but was never destined to succeed as a large community project. And the 501c3…we’ll save that for another time.
Community members did great work on these projects, and we learned a lot, but as time passed it became clear that we were neglecting the heart of the Handmade community: projects, and the people who author them.
Handmade software is literally the point of the Handmade Network. Communities that talk about programming are a dime a dozen. But Handmade software are different. It is so fast, so capable, so lightweight, so simple, that it shocks people with what modern computers are capable of.
At the end of the day, Handmade projects are what brings people to the community. This is not just me being nice; our Google Search analytics show that RemedyBG is by far the #1 source of traffic to handmade.network. #project-showcase is also the most popular channel on the Discord, and we frequently hear that it inspires people to dig deeper into their own projects. And ultimately, if we’re not making quality software, what’s the point?
So this year, we are 100% focused on projects. Our sole goal is to promote and boost the amazing work being done by the Handmade community. To that end:
As for our previous initiatives, we’ll be sunsetting them and archiving their content as necessary. Nothing will be lost except our time and our pride, but we’ll recover. 🙂
Before I close, a few key project updates:
Disk Voyager is coming along beautifully and already has dozens of very happy alpha users. He recently added a bookmarks / quick access panel, which I am very excited about. It will soon enter open alpha, so go to https://diskvoyager.com/ and sign up to make sure you get access.
Cactus Image Viewer has been receiving lots of quality updates recently, with more on the way, including a gallery of other images in the folder. You can download the latest version from GitHub.
Orca is on the cusp of another major release. Shaw and I rewrote the Python tooling in C to reduce dependencies, Reuben added a complete libc implementation (no more shim!), and Martin rewrote the vector graphics backend in WebGPU. Make sure to subscribe to the Orca newsletter to be notified when it releases.
And finally, Abner has started a Discord server for Handmade Cities. You can read more about his rationale in this blog post, but if you are interested in meetups or coworking with Handmade folks, I recommend you go join.
Looking forward to many more great things this year! We’re just getting started.
-Ben
I'm pleased to write this final news post of the year together with Abner Coimbre!
Dear Handmade Community,
Warm holiday greetings! Abner Coimbre and Ben Visness here, teaming up to announce that the Handmade Cities Matrix server will remain online permanently. In past years, it has been shut down at the end of conferences, but now it will remain active year-round!
This might surprise you, since most of you are probably already members of the (now rather large) Handmade Network Discord server. So why keep the Matrix server as well?
The Handmade movement has grown an incredible amount in the past several years. Importantly, it has grown both online and in the real world. Both domains are vital to the health of the larger Handmade community - but there are some critical differences between the two. Let's dive into it.
The Handmade Network (HMN) is the online hub for the Handmade movement. Led by Ben and his team, they run programming jams, Twitch shows, and online social gatherings. They provide a place for community members to discuss programming, learn from each other, and share what they're working on. The Handmade Network is also the home of Handmade projects, including the Orca initiative and Abner's own Terminal Click.
In essence, HMN is the online community - and it's accessible to everyone, including those who prefer to remain anonymous.
Handmade Cities (HMC) brings the Handmade movement into the physical realm. Headed by Abner and his own staff, HMC orchestrates tech conferences like Handmade Boston and Handmade Seattle, which are venues to present to the rest of the world our software and ideals. HMC also organizes monthly in-person meetups worldwide.
In essence, Handmade Cities is all about in-person events. HMC emphasizes real-world interactions; by its very nature, those who participate in these events can't be anonymous!
For several years now, Handmade Cities has used a Matrix server for discussions related to conferences and conference meetups. This server has always complemented the Handmade Network Discord server, rather than competing with it. And that is not going to change!
The HMN Discord remains open to all, while users on the HMC Matrix are tied to real individuals participating in Handmade events: ticket holders, local meetup members, and so on. The Discord is the hub for jams and other online events; the Matrix is the hub for meetups and other in-person events.
At the start of the Handmade movement was Handmade Hero, a Twitch series showing how to craft a video game from scratch. Casey Muratori, president of Molly Rocket, started it in November 2014 and quickly found great success, forming a huge community around its values that has lasted almost a decade.
So, what's become of our bouncy little friend? Casey's passions have expanded beyond this project, reflecting Molly Rocket's commitment to multiple initiatives. We're not privy to the specifics of Casey's plans with Handmade Hero, but this year, we collaborated directly with him to shape the opening blurbs for both Handmade Network and Handmade Cities:
handmade.network
:Originally inspired by Casey Muratori's Handmade Hero, we dig deep into our systems and learn how to do things from scratch. We're not satisfied by the latest popular language or the framework of the month. Instead we care about how computers actually work.
handmadecities.com
:Inspired by Handmade Hero
Like Handmade Hero by Molly Rocket we believe in breaking software down to the bare bones and building back an understanding of how it all really works.
While Molly Rocket, Handmade Network, and Handmade Cities share a spirit of mutual support, it's crucial to emphasize that we exist as separate entities, and are not formally affiliated. You might instead see us as independent stewards of the Handmade movement.
And at the end of the day, that's the way we like it. We each have our own expertise, our own experiences, our own goals, and ultimately our own businesses. We feel that we're at our best, and the Handmade movement is at its best, when we are run independently but collaborate at every opportunity.
We look forward to bringing you improved conferences, jams, meetups, shows, and projects in 2024. With our 10-year anniversary fast approaching (!) the future of Handmade shines brighter than ever. 😊
All the best,
Abner and Ben
With the Wheel Reinvention Jam just over a week away, we’re very pleased to finally release the Orca MVP to the community!
For those unfamiliar, Orca is our new cross-platform runtime for WebAssembly apps. It gives you a cross-platform app development system without all the baggage of browsers. It’s a long-term project with ambitious goals, but we are very excited to finally release an early MVP for the community to play with.
All the details can be found in the announcement post over on the Orca website. There you’ll find how to access the source code, the list of features and current limitations, and how to get help and provide feedback. If you’re interested and think it would be a good fit for your project, we’d love to have you try it out during the jam.
Our third annual Wheel Reinvention Jam is less than two weeks away! The Wheel Reinvention Jam is a week-long jam where we build software from scratch. Whether you want to clone an existing app for fun or build something wild and ambitious, this is your chance to try.
If you’ve never participated in a week-long jam before, don’t sweat the time commitment - you can participate with however much time you have. Whether you take days off of work or just participate on the weekend, we’re excited to see what you create!
The jam takes place from Monday September 25 to Sunday October 1. For all the details, visit https://handmade.network/jam.
We owe the name “Wheel Reinvention Jam”, and its logo, to Casey. At the start of Handmade Hero, literally in episode 1, a viewer asked the question: “Why not use an engine? Why reinvent the wheel?”
Casey’s answer deserves to be watched in its entirety, but part of it is shockingly relevant right now:
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. 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. I’m not exaggerating this, that’s just the truth.
We could not have planned our jam at a more opportune time. Unity recently announced a dramatic change to their pricing structure that leaves the future of many game studios in doubt.
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?
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, better wheels.
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.
We will never make progress unless we reinvent the wheel.
See you on September 25.
-Ben
August has already been a big month for the Handmade community! The biggest news, of course, was:
Handmade Boston was the first of two Handmade Cities conferences this year and the first ever held outside of Seattle. I have to say, despite it being the first conference in a new city, in a new venue, the event was a huge success. There were dozens of in-person attendees and hundreds more online, and six fantastic long-form talks. I’ve been working through the homework and thoroughly enjoying my time.
I also had the pleasure of meeting many people in person whom I had only ever met online. For many of them, Boston was the first Handmade conference they had ever attended. It warms my heart that so many people were willing to take a chance on this scrappy first-year conference.
Abner tells me he will be publishing a recap of the conference soon, so if you’d like to hear more from him (and buy your tickets to Handmade Seattle!) then head over to https://handmadecities.com/.
We’ve been hard at work on Orca, our new stack for cross-platform WebAssembly apps. Think of it like Handmade Electron - a runtime that lets you ship the same app on multiple platforms. Unlike Electron, however, we’re throwing away the worst parts of the web stack and keeping the best ones. We’re building all the systems from the ground up to make app development delightful while still giving you the same cross-platform benefits of the web. And we’re doing everything we can to give you freedom and flexibility, so you don’t have to use the parts you don’t need.
We intend for Orca to be completely free and open source. For now, the codebase is still private - but this will be changing soon! We’ve kept the codebase closed since the project is at such an early stage - everything is getting renamed, build tooling is changing, git submodules are being imported and everything is breaking as a result. But we’re stabilizing it as fast as we can, because of this goal:
Orca will be available for use during the Wheel Reinvention Jam in September. It will be very MVP, a “vertical slice” of all the functionality we eventually intend for Orca to have. It will also certainly have bugs. But it will have enough to give you a real taste of our vision for the project. If you’re interested, we’d love to have you give Orca a try.
For more information and updates, and to be notified when the codebase is open, make sure to visit https://orca-app.dev and sign up for the newsletter. It won’t be long until the next one, and in the meantime, you can listen to the latest episode of Allen Webster’s podcast, which is an interview with Martin about Orca: https://conversations.mr4th.com/2204443/13420302-orca-with-martin-fouilleul
As mentioned in previous newsletters, our third Wheel Reinvention Jam will be held from September 25 to October 1. Now is the time to start brainstorming project ideas! No idea is too big or too small. Whether you build a clone of another app for educational purposes, or you try to reinvent programming itself, you have a week to play with new ideas and stretch yourself as a programmer.
More details will be published next month. Stay tuned, start thinking of projects, and consider joining the Discord so you can find others to collaborate with.
Finally, I just wanted to highlight a few fun and noteworthy things that have happened in the community over the past month:
…we’ll be working hard on Orca, jams, education, and other projects I can’t wait to tell you about. This community is going stronger than ever, and I’m so glad to be a part of it!
-Ben
This newsletter brought to you by Ratatat.
Hello Handmade community! It’s been an exciting year for Handmade so far. Here’s what we’ve been up to:
And of course, Abner has expanded his conference efforts and is now hosting two Handmade conferences, one in Boston and one in Seattle. Handmade Boston is less than a month away, so check it out (and don’t forget there’s an online track!)
TL;DR: Orca and Time Machine have both kicked off, and our next Wheel Reinvention Jam is coming in September!
Orca has been in the works for a long time. Many of us were drawn to the Handmade community because we were dissatisfied with the bloated, complicated technologies available to us. The community has spent the last several years learning to make UIs, compilers, debuggers, platform layers - everything you’d need to make a compelling development platform. Now we’re finally putting it all together into something real.
Orca is a whole new stack for making cross-platform applications. It’s designed specifically for WebAssembly, so you can use whatever language you like instead of being stuck with JavaScript. It has a new state-of-the-art vector graphics renderer and we’re developing amazing UI tools that will blow the DOM out of the water. And above all we’re designing the platform to be well-layered - you don’t have to use the parts of Orca you don’t need, and most importantly, you don’t have to ship them to your users either.
The Orca initiative is led by Martin Fouilleul, known in the community by his handle forkingpaths. He originally prototyped Orca as his submission for last year’s Wheel Reinvention Jam, and we’re thrilled to give him the chance to develop his vision further. For more info about Orca, check out the announcement blog post, and subscribe to Orca’s own newsletter while you’re there!
When I attended Handmade Seattle 2019, I visited the (now-closed 😔) Living Computers Museum. I had the opportunity to play with a huge range of computers, from an ancient teletype to a Macintosh Classic to a NeXT cube. While I was playing with Kid Pix on that Macintosh Classic, I was struck by just how fun and responsive the program was, on hardware that pales in comparison to our computers today. How was it possible that a program like that could run so well…or that programs today could run so poorly?
Then in 2021, I found some old computers in our robotics team’s shop that had been in hibernation since 2015. I booted them up and found that they were a perfect time capsule of what we were working on at the time, with our old code still open and everything. And they ran great, with the start menu opening instantaneously (as it should) and programs launching quickly.
And then updates started running.
I watched this computer age five years in thirty minutes. Every Windows update and Chrome update bogged things down more and more. The 4GB of memory that was previously wide open was suddenly almost completely full. And it was slow. So slow.
This is why we’re doing Time Machine. We need more people to remember what it used to be like. And we in the Handmade community need to know exactly what has improved about computers over the past few decades, and what has not.
If you have an old computer or phone lying around, please consider taking a video of it and submitting it to the project! More details can be found on Time Machine’s website.
We’ll be hosting our third annual Wheel Reinvention Jam this September! This jam is an opportunity for you to try out a new project, start something ambitious, explore new ideas, or just learn to build something yourself. Unlike your typical weekend game jam, this jam takes place over a full week so you have ample time to explore a new problem space. (Last year I spent most of my week implementing a toy TCP stack. I do not recommend this.)
This year’s jam will take place from Monday, September 25 through Sunday, October 1. As always, you can participate for as much time as you have available - some people can only participate on the weekend, while others will take entire days off to focus on their jam project. We look forward to seeing what you all submit!
For a recap of last year’s jam, click here.
There are even more things we’re working on behind the scenes that I can’t wait to tell you about someday. Until then, we’ll see you around on Discord, and in Boston in August!
-Ben Visness
Hello, Handmade Network! We’ve got big plans for 2023 and it’s about time we shared them with you all. So let’s get into it!
Last year we launched a new education initiative. Our goal is to cover topics that no one else is covering. And we’re not just making material for beginners - we want to dive deep into each topic and provide a rich understanding that can only come from real experts in the domain.
You see, we’re taking a different approach from most programmer education. We recognize that there are tons of great resources on the internet for a variety of topics. But if you’re new to a particular domain, there’s still an important question: where do I start?
We want to be your guide. We’ll point you to the best books, the best articles, the best resources that will help you gain real understanding. We’ll teach you the jargon and give you the context you need to understand each piece. We’re not just teaching you, we’re equipping you with the knowledge to learn for yourself.
We launched the education initiative with a focus on three topics: networking, compilers, and time. The compiler series will come eventually, but this year we want to laser-focus on one topic: networking.
There is almost no good networking education out there in the world. If you want to learn about TCP, your best bet is an O’Reilly book, Wikipedia, or the RFCs. The space is dominated by Cisco and other companies with expensive certifications. The end result is that almost all programmers are dependent on the network stack, and use it every day, but no one actually knows how it works. This is insane.
We’ve already started the series with an article taking you all the way from HTTP down to the Ethernet protocol, visiting TCP and IP along the way. This year we’ll be expanding the series with two more articles covering NATs, firewalls, internet infrastructure, and many other networking topics that affect programmers every day. We’re very excited to dig into these topics with you!
The core of the Handmade philosophy is the idea that software has been getting worse faster than hardware is getting better. Despite the incredible advances in computer hardware, the user experience of computing today is worse than it was a decade or two ago.
We believe this. But many people don’t. So let’s prove it.
This summer we’ll be launching a project called Time Machine. We’ll be asking you, the community, to dig out your old devices and share video of yourself using them. We want to go back in time and remind ourselves what it was actually like to use these old devices. We’ll be tracking the specs of these devices too, so we have an idea of how computing resources were used.
We hope this will be a fun project for the community and will inspire you all to take advantage of the amazing hardware we have today. We’ll share more details later, but in the meantime, get your hands on some old devices!
Also, if you have installers for old versions of popular software, please ping us on Discord or contact us at [email protected]. When the project rolls around, we’d love to test out old versions of operating systems, browsers, office software, and anything else that represents the day-to-day experience of computing.
We have an ambitious technical project in the works. It brings together all aspects of the Handmade community, from low-level systems programming to forward-thinking developer experiences, all designed to give real users a computing experience hundreds of times better than what’s on the market today.
This project reaches far beyond what a single developer can do. It will only be possible through the concentrated effort of a talented community of low-level programmers, with a common goal, and an inherent desire to make things better. I believe we are that community!
I’m excited to share more this summer. Until then, be intrigued >:)
These are our new flagship initiatives for 2023, but of course we’re still going strong with events for the community. The Visibility Jam starts tomorrow, and we’re going to do our third Wheel Reinvention Jam this fall. Abner has expanded Handmade Seattle into a new initiative called Handmade Cities, with conferences in both Boston and Seattle this year. And we’re still doing weekly Discord coffee chats, real-life meetups, fishbowls on various topics, and more.
I’m so excited for what this year will bring! Now let’s go jam 😁
Handmade Network is different from other software development communities. We promote philosophies and projects that care deeply about software craftsmanship. We criticize common dogma within the software industry that has produced a computing world that is far too sluggish, too bloated, too poorly-designed, and too unwilling to change. We stand for a better computing world.
In the past 4 years, we've done some big things with Handmade Network. The community has grown dramatically, with thousands of (active!) users on the Discord server (where a bulk of Handmade communication happens). We started a podcast. We've had multiple Handmade-themed jams. We transformed the Handmade Network website into a larger repository of Handmade projects and showcase content, to serve as a bastion of Handmade ideas, and concretely demonstrate how Handmade can improve us as builders of software.
Back in 2018, Handmade Network began a new chapter. I took over for Abner Coimbre as the lead of Handmade Network. I was joined by Ben Visness and Asaf Gartner, and together we replaced the original Handmade Network admin team. At that time, Handmade Network had established itself as a large and self sustaining community. It was the new team's job to continue to foster the community, and to take it to new places. The original team was ready to move on to bigger and better things, and they entrusted the keys to the community with myself, Ben, and Asaf.
Today, Handmade Network begins another new chapter. I have decided to step down from my role as Handmade Network lead, with Ben Visness taking my place. Ben has been a great staff member since the beginning. He led an initiative to rewrite and dramatically change the Handmade Network website into what it is today (writing blogs is a lot easier now). He and Asaf are responsible for all of the technology that allows the Handmade Network website to collect amazing showcase material from the Discord server, allowing the website to serve as both personal and project content repositories (in addition to the functionality that the website offered before). Handmade Network would simply not be what it is without Ben, and I know that moving forward, he'll do an outstanding job of leading the community.
I love being a part of Handmade Network, and I will remain a member. It has been an incredible resource to have as I've grown up. I joined Handmade Network in high school as a young and naive programmer, and the community was instrumental in transforming me into a much more capable and responsible engineer. I've decided to step down because I believe that it will be best for both myself and the community. I have found myself preoccupied with work, life, and some of my other personal projects and initiatives. For this reason, I think it will be most productive - not only for me personally, but for the computing world - for me to give undivided attention to those things, and hand the reins over to Ben to ensure that Handmade Network can be given the time and attention it deserves. Ben will be a strong force in continuing to grow, foster, and shape the community, and increasing its impact as a force for change in software.
It has been a thrill being a staff member, and I can't wait to see what the community will do next. Let's all keep going. Let's continue to build new projects, publish new educational material, do new research, and rethink old assumptions. Through all of those efforts, we can change the computing world into something a little better than what it was before.
-Ryan
Hello everyone! Just dropping by to make three announcements of upcoming events and projects here on the network over the summer:
Our next fishbowl conversation will be happening on the Discord on May 28! If you've never joined us, a fishbowl is essentially a panel conversation held over text chat, where a select few participants can hold a focused long-form discussion on a specific topic. We're a big fan of this format because of the way it allows participants to write thoughtful, long-form answers that would be impossible in any other medium.
We've had fishbowls on the future of operating systems in the age of the Internet, the relationship between simplicity and performance, "configuration" and how to avoid it, and many other topics. This time we are excited to tackle a subject near and dear to all our hearts: object-oriented programming.
We hope for this to be the definitive community conversation about OOP, since it's such a frequent topic of conversation and such a confusing issue to discuss. If you'd like a preview of the topic or would like to contribute thoughts or resources, please check out the planning discussion over on GitHub.
The fishbowl will be held in the #fishbowl channel on Discord at noon CDT. To see the time in your local timezone, and be notified when the fishbowl starts, bookmark this whenisit page!
We've held two jams as a community in the past, and they have both been smashing successes. In particular, last year's Wheel Reinvention Jam produced tons of great projects and introduced us to lots of amazing community members. Naturally, we're going to do another jam this year!
We are still working out all the details, so a proper announcement and final dates are yet to come. But we will confirm that this year's jam is happening in August! Expect it to follow a similar format to prior years—so, one week, and working in teams is allowed and encouraged.
More soon. 🙂
This project is still in its early stages, but too exciting not to tease. Spearheaded by long-standing community member cloin, we are hard at work behind the scenes on a new kind of education initiative for programmers. This new initiative will subsume and replace the old library, which we know many people sorely miss, and will also hopefully live up to the dream of the old wiki and old education initiative.
We are very excited to share more about this project with you in the coming months. For now, if you're interested, nag us on Discord and maybe we'll drop a few more hints. 😉
These are just a few of the projects we have in the works for the coming year, and there is even more we'd like to be doing. We'd love to get more people involved in the following:
If you're interested in any of these, please reply to this post or hit us up on Discord!