Handmade Network»Blog
Ryan Fleury
Hello, everyone!

I hope everyone is doing well! It has been another busy month in the Network, and I've got some exciting stories to share.

New Podcast Episode

First things first: We've been hard at work on more podcast episodes.

This month, we released the 14th episode, in which Demetri Spanos, artificial intelligence expert, PhD recipient, and former university professor, joins us to discuss a frequently-discussed subject on the Handmade Network: computer science and software engineering education (particularly in universities).

Demetri and I discussed the perceived problems in university computer science (and related) programs, how big of problems they are, what is being done about them, and what we might try to do about them in the future. It was a fascinating conversation, and I'm so excited to share it with everyone. I hope you enjoy the episode. Check it out here.

Handmade Seattle 2021

Handmade Seattle, the Handmade conference being put on by Handmade Network co-founder Abner Coimbre, is now going strong on its third year. I've had the privilege of attending every year thus far, and it remains one of my personal primary annual highlights.

This year, it'll be a hybrid event, meaning you can attend remotely, or in-person. Early bird tickets have sold out, so you'll need to purchase regular tickets now.

I really hope you can make it, and I hope to see you all there!

Education Fishbowl Discussion

On the Handmade Network Discord, we will semi-frequently host text-based fishbowl discussions, which involve a small group of participants (that can change over the course of a conversation) directly focusing on a particular topic. This month, we plan on discussing how software development is taught (tying in nicely to the previously-released podcast episode mentioned above).

There is a lot of interest in the discussion topic, and we're looking for more participants before scheduling. Please respond to the GitHub topic if you'd like to join, we'd love to have you in the conversation!

Mr4thDimention's YouTube Series

Allen Webster (Mr4thDimention) is the creator of 4coder. He's also a long-time, well-known community member on Handmade Network. He recently started sharing videos documenting his approach to structuring a codebase, and some of the problems involved.

I can speak from experience, both from working with Allen and working with 4coder, that I've learned so much, just by looking at the lessons he's learned in structuring codebases, and re-evaluating some basic assumptions in how I do things. I've dramatically improved as a programmer because of this.

You can improve too if you check out his videos! Here is the first one:

Wrapping Up

That's going to be all for now. Keep it up, Handmade Network! You all continue to amaze us, and drive us towards a much better place in computing, with the work you're doing.

Best wishes,
Ben Visness
Hey everyone! This is the first post in a new monthly series where we highlight some of the amazing projects being worked on around the network, and share some updates from those projects' creators.

What you see here is just a small portion of what gets shared in #project-showcase on the Discord. For each project we're highlighting this month, we have a few words from the project's creator and resources so that you can find out more.

This update was entirely made possible by Cedric on the Discord, who had the idea to do a community newsletter like this in the first place, and who did all the legwork of reaching out to project creators and getting their updates. A huge thanks to Cedric for kicking this thing off!

C3 (by Christoffer Lernö)

C3 is a new language being developed by Christoffer Lernö as a more modern replacement for C. It's been in steady development for a long time, and here's what he's been up to this month:

For C3, generic modules and parallelized codegen were the focus of the last month or so.
Final code generation is now done on multiple threads by default on Linux and MacOS.
Most of the coding was refactorings to enable the generic modules.
I think the most work was doing those refactorings and once I had everything set up for the generic modules it was pretty easy. It required implementing function name and constant name aliases.
This was probably the biggest feature I had left to do for C3 as well. I have things left to implement, but nothing this size.

You can find out more about C3 at its Handmade Network project page, or from the official website.

Dungeons (by The Sandvich Maker)

As a side project, I am making a roguelike, working title "Dungeons". It's an avenue for me to explore with gameplay programming in a straight forward way, with a lot of freedom in gameplay exploration. It is a 0 dependencies project, entirely from scratch, using software rendering for graphics, written in C-like C++. I am architecting the platform layer to be reusable for my future projects, and I'm already putting it to work to also make my own handmade text editor!

It's been really fun seeing this game take shape over the past month. Check out Sandvich's profile to see more and to keep track of the game's progress.

Progfix's hybrid CAD program

This is a project that I personally think is very cool:

Frustrated with the lack of interconnection between CAD environments and spreadsheets in existing software (I work in BIM / structural engineering) I decided to make my own software and connect those two elements into one program.
CAD elements properties can be accessed and manipulated in the spreadsheet. Manipulating CAD elements in the CAD view recalculates spreadsheets immediately. Potential usages are getting cost-, energy-, calculations immediately while modeling or generating models from data.
Last month I worked on:
Communication between „interactions“ (a state machine) and the different UI elements
Implementing first CAD primitives
Palette manager
All is done in C with OpenGL and a few header-only libraries.

Stefan has been regularly working on this project over on his Twitch channel, so go give him a follow and check it out! Warning: He sometimes plays incredibly saxy music.

ai (by bumbread)

bumbread has been making a personal programming language to have fun and to motivate his own education. Here's what he had to say about it:

my language ai is a simple language with primitive support for object orientation, with primary focus on simplicity, communication with C libraries and adding few syntax sugars over C. If ever get to creating an operating system I will use ai in the project :D
The language is effectively a statically-typed scripting language, since it doesn't require the code to be contained within procedures.
A weird mix of C, Pyhon and Go heh.. :D
As of now, I'm working on writing a robust parser. The langauge is just starting, and there isn't much to show. However I'm planning writing a custom backend with an optimizer

It always makes me happy to see people building things like this just for fun and learning. Check out bumbread's profile to see more.

Oliver's RPG

For several months now Oliver has been sharing screenshots and video of the RPG he's been working on, and it's really starting to take shape. Here's his quick description:

The game is a 2d/3d rpg set in the fantasy world of Illoway. As the heir to the throne you must collect the 7 dragon heart stones to bring peace back to the realm.
It will have a mixture of puzzles, quests, dungons, and conversations that will hopefully be fun and unique.
It's written in C using SDL and OpenGL. I want to experiment with 3d graphics techniques in the 2.5d world. Things like shadow maps, bloom and lighting.

I recommend scrolling back through the screenshots shared on Oliver's profile; it's fun to see how the game has changed over time!

Other news

We had our seventh fishbowl conversation yesterday on the Discord! For those who aren't familiar, a fishbowl is a focused, moderated discussion with limited participants - like a panel discussion, but over text. The topic was "The relationship between simplicity and performance", and there was some really interesting discussion and insights. You can read the whole thing here.

That's all for now, but we'll be back again next month with a new set of projects to show off! Thanks as always for being such a wonderful and inspiring community.
Ben Visness
Hello everyone! It's been a busy couple months around the network and we've got lots of exciting news to share.

The podcast is back!

After a bit of a hiatus, the Handmade Network Podcast is back! We're now publishing new episodes on a monthly basis, with each new episode coming out around the first of each month.

Our latest episode is an interview with Cancel, most widely known for Ripcord, an alternative Discord and Slack client that is written directly for native platforms. We're so excited and honored to have Cancel as a guest, so give the full interview a listen!

As always, you can subscribe to the podcast on Apple Podcasts, Google Podcasts, Spotify, or directly to the feed via your favorite podcast app.

Handmade Seattle 2021

We are very excited to share that Handmade Seattle is returning for its third year! After one event in person and another event online, the conference will this year be a hybrid of the two, streaming live from the Seattle Center.

Abner is working incredibly hard to make sure that both in-person and online attendees get a rich conference experience. As with last year, all attendees will get access to a private chat server for the duration of the conference, and this year, all Q&A questions will be asked through the chat. I personally am very excited about this—not only will speakers be able to pick the questions they find most valuable, but it puts online and in-person attendees on equal footing, and makes sure I don't have to hear someone's life story before they ask a question 😅

Early bird tickets for both tracks (with a 20% discount) go on sale May 15th. As always, Abner takes no corporate sponsorships for this conference and remains truly independent. This conference is a labor of love, and I strongly encourage you to support Abner and help the conference grow.

You can read Abner's full announcement post for more details—and don't forget to subscribe to the newsletter!

(Also, if you have a mature project you're willing to speak about, or any project you'd like to demo, consider reaching out to Abner about a speaker or demo slot at the conference!)

Around the network

Lots of wonderful things have been happening that I'd love for you to check out:

  • Abner was interviewed on Zig Showtime, where he introduced the Zig community to the Handmade community, and dug into his history as a programmer, his time at Thekla, his personal values, and what he's working on now. Watch the whole thing here.

    And speaking of Zig Showtime...

  • The host of Zig Showtime, Loris Cro, gave us a nice shout-out in this wonderful article about the state of open-source, and software in general. Loris has also been at several of our weekly coffee chats on Discord, and always brings a fresh perspective to the community.

    And speaking of weekly coffee chats...

  • We are doing weekly coffee chats on Discord! Grab your hot beverage of choice and join us for an hour or two (or three?) of random conversation. Right now the schedule is Thursdays and Saturdays at 10am PDT (5pm UTC), but for up-to-date times, follow the announcements channel on Discord.

    And speaking of Miblo... 👀

  • You may be familiar with Miblo, the founding community member who tirelessly maintains the Handmade Hero annotated episode guide. What you may not know is that he is now offering his video annotation services for any videos you want!

    Miblo's annotations elevate Handmade Hero from a great video series to an invaluable resource on game development, and now he can do the same for you. Go on, hire him.

    And speaking of wonderful people and projects...

  • Ramón Santamaría of Raylib has received the Google Open Source Peer Bonus Award again this year! You can read the announcement post here. It's wonderful to see handmade projects getting this level of recognition, and Ray is a very deserving recipient.

    Also, if you haven't seen Ray's talk from last year's Handmade Seattle, check it out!

And finally, some housekeeping

We've been wanting for a long time to make the network's website open-source. Not only would we love for the community to be able to contribute, but we want the network website to be a shining example of how web development can be done - no bulky frameworks, no crazy abstractions, just good simple server design.

Unfortunately, the old codebase has some issues that prevent us from open-sourcing just yet. But we're well into a cleanup and rewrite effort that should leave us in a great spot for future development.

We have big plans for the website, some of which you've seen in the recent community showcase integration. This is a significant step toward making those plans a reality. To follow along with this effort, follow me on Twitch.

Until next time!

Thank you all for being such a wonderful community. See you around the website and Discord, and I'll see you again in the next news post!
Ryan Fleury
Well, it's certainly been a while! This is of course not a unique occurrence for me, really, but alas, I have come back to say hello and share some Handmade news!

The latter half of 2020 of course was a crazy year for everyone. It is often regarded as a time where nearly everything went wrong, but we can't forget to look at the positives as well. For Handmade Network in particular, we had a number of exciting moments...

HMS2020 (link)

...the first of which being the second annual Handmade Seattle conference, Handmade Seattle 2020, hosted by Handmade Network founder Abner Coimbre. This conference started in 2019 with an in-person conference, but Abner worked extremely hard to make a virtual equivalent in 2020 a reality, despite the ongoing circumstances. Abner's efforts were successful, and we were gifted yet another incredible conference.

Many Handmade Network projects, Handmade-adjacent projects, or Handmade Network project owners made their appearance on the HMS2020 stage, like WhiteBox, raylib,
Ginger Bill (creator of Odin), and a number of others. Instead of just duplicating the list for you, though, I highly recommend you check out the conference website which has annotated recordings and resources for all of the presentations.

Thank you for another amazing conference Abner!

New Podcast Episodes (link)

While I am not great at keeping up with news posts, I am slightly less terrible at keeping up with doing podcast episodes. Since the last time I wrote to you all, we've produced another 11 podcast episodes with brilliant people, many of which are also Handmade Network project woners. You may recognize them, you may not, but all of the conversations were extremely interesting for me, and I hope they will be for you too.

A few personal highlights for me were:

1. A fascinating conversation on the fundamental assumptions of our programming tools, with Allen Webster.

2. A discussion of Odin with its creator, Ginger Bill.

3. Digging into Handmade Network projectSilverNode with one of its creators, Martijn Courteaux.

4. Chatting about Handmade project funding that doesn't interfere with quality and vision, with Andrew Kelley (creator of Zig) and returning guest Allen Webster.

The list of course is not exhaustive, but is just a glimpse into a few of the things I got the chance to speak about on the podcast. To get a full look, check out the podcast episodes here.

New Projects

Since I last wrote, we've welcomed a number of new projects to the Network as well. Here's a list:

SilverNode: a RAW image editor delivering high performance, artificial intelligence guided editing, and an elegant workflow.

WhiteBox: a software tool for showing you how your code behaves as you write it. Humans are not good at simulating code in their head. Let the computer do what it does best.

BEdit: Binary files can be a pain to debug. You usually have to create custom tools just to dump it to a structured ASCII format that you can read and inspect. This tool will help you debug, create and edit binary files in a more structured way than a hex editor.

Syzygy: an enigmatic game focused on the ability of morphing at will a square world into triangles and hexagons. Changing shapes to hinder foes or create new paths, the player will explore a nonlinear world of ideas filled with 80+ puzzles, looking for a way out.

Light Tracer Render: Light Tracer Render is the tool to produce photorealistic renderings interactively, in both desktop Web browser and standalone Windows application. Based on a physically-correct unbiased ray tracing engine working on any graphics card, both discrete NVIDIA/AMD GPUs and Intel iGPUs.

DFPSR: David Piuva's Software Renderer is a static C++ library for graphics and user interfaces. You don't need to install OpenGL or any third party media layer. Replace all of that with one static library that calls the system directly and actually works. No more missing drivers, complex extension wranglers, feature flags, awkward legacy limitations, closed proprietary features, driver bugs, blue-screen crashes, shader dialects, random funky colors, failed pixel alignments, incompatible screen resolutions... This library takes the safe route and still gets more than enough performance for most needs.

miniglut: MiniGLUT is a subset of GLUT (or more precisely a subset of FreeGLUT) implemented in a single C source file, without any non-essential dependencies, not even the C library. You can use MiniGLUT by simply dropping two files: miniglut.h and miniglut.c into your project source tree, or by building MiniGLUT as a static library and linking with it.

Cute Asset Pipeline: Cute Asset Pipeline is a tool for transforming raw PSD files into a PNG texture atlas. Cute Asset Pipeline also allows you to manage metadata about your game assets, such as animations and tags. It comes with a GUI for easily managing your assets as well as a CLI program to make exporting inside build steps a breeze.

msf_gif.h: I often found myself wanting to be able to recording gifs straight out of a game or other application, but existing tools and libraries are severly lacking in a number of ways for that use case, so I wrote this library to solve the problem once and for all.

MPlay3 - MP3 Music Player: MPlay3 is a music player that lists and plays all .mp3 files in a given folder. It lists all Genres, Artists, Albums and Songs in four different columns. If one or multiple entries in a column are selected all subsequent columns will be adjusted to only display the entries corresponding to the selected ones.

C3: C3 is a systems language based on C. It tries to be an evolution of C, improving on what C can't easily change for legacy reasons while retaining its syntax and feel.

Pepper Editor: Pepper is an experiment of mine to simplify code editing from the terminal. It’s mission is to be a minimal and fast code editor with an orthogonal set of both editing and navigation features.

Sir Happenlance and the Spear of Density: As an esteemed Knight of the Rotund Table, your trusty lance is the only thing you can, well, trust. Use it to impale your enemies, knock arrows out of the sky, and fling yourself to victory. Fight your friends, or fight alongside them, in online versus or co-op multiplayer.

Meta Assembly Language: Meta assembly language aims to provide the developer flexibility to adjust every step of the compilation process. Tokenization, parsing, type checking, optimizations, instruction generation, and binary output should be accessible and augmentable.

Community Showcase Highlights

As Ben told you last time, the website is now featuring an integration with the #project-showcase server on the Discord server. This is a place where community members can post showcases of their projects and what they've been working on, and Ben and Asaf worked very hard on getting that same content visible on the home page of the website and user profiles, while I stood by and did nothing. What I can do, however, is share a few great highlights that I don't think you should miss.

Community member TheSandvichMaker has not been making sandviches, but he has been making some incredible progress with his ray tracing renderer. Here's a quick preview:

Martijn Courteaux showed off some color modification preset settings in SilverNode. Running in real-time, as always! Check it out here.

Phillip Trudeau gave us a sneak peak into the progress that has been made on Sir Happenlance and the Spear of Density.

Of course, that's not an exhaustive list... There are far too many awesome posts to check out for me to list them all off to you here, those are just a few ones that I liked. To check out all of them, go to handmade.network/showcase!

That's all for now. Talk to you again soon!
Ben Visness
We are excited to announce a new integration with the network's Discord server! On our home page you'll see a new Community Showcase section - this new feature shows off the latest work shared in the server's #project-showcase channel, where community members share what they're working on. The showcase is an especially vibrant and special part of the community, and we're excited to bring some of that energy to the website.

To share your own work, all you need to do is link your Discord and Handmade Network accounts. There's only a couple steps:
  1. Link your Discord account via the Discord tab in your profile settings. (If you haven't joined our Discord yet - do that!)
  2. Ensure that "Automatically capture everything I post in #project-showcase" is checked, and save your profile settings.

In addition, if you have previous work shared in #project-showcase, you can click "Create snippets from all of my #project-showcase posts" to automatically share all your past work. We highly recommend this option, since many of you have been sharing amazing work for years, and that work deserves to be shown off!

Once your account is linked, you'll see your showcase posts highlighted on our home page and on your user profile. In the future, we plan to show these snippets in even more places across the site.

This update is just one small step toward a new vision for the Handmade Network website. We want to see the website become a hub of activity, bridging the many channels where our community lives and works. We will always have forums, and we'll always have projects, but we want to make sure great work is being highlighted no matter where it happens. Expect more integrations in the future, and more features designed to show off our amazing community.

(Finally, some technical details for those curious. When designing this integration, we wanted to respect people's privacy and make sure no one shares more content than they meant to. To that end, this integration is disabled by default for users who had previously linked a Discord account, but active by default for everyone else. We also never save the contents of any Discord message unless the author of that message has a linked Discord account.)

If you have any feedback or ideas about the Discord integration or the community showcase, feel free to reach out to us either here on the forums or in #network-meta on Discord, where we're likely more responsive.