Handmade Network»Blog
Abner Coimbre
Since these are the early days of Handmade Network, I want to explain where we want to be headed.

Public Beta

It's been one month since the Handmade Dev Team made this site public in order to get feedback. The praise has been great, but so has the amount of bug reports and feature requests. After careful review, we don't anticipate moving from beta to stable release until mid-June. If you're new, the bug list is here, and to submit feedback, go here. We also have major plans to do significant design improvements with the help of developers who just so happen to be professional designers (more on who they are on future updates). For expert people to volunteer their time suggests Handmade Network has some appeal. Which leads me to our next item.

What Handmade Network (HMN) is About

HMN wants to be the de-facto home for caring programmers. That is to say, programmers who are dedicated to learn and share. Programmers who test and re-test, and who try all possibilities themselves. For those who ask all questions and put the given answers to the test until they feel they have real data on which path is the best or simplest one to meet their goals. Goal(s) could be optimal performance, exceedingly pleasant UX, easy-to-deploy builds or easy-to-configure libraries. Programmers who develop metrics that, to their understanding, meet these goals. Programmers who know to test their approaches against these metrics and—you guessed it—redo everything if necessary. Programmers who don't settle for the first answer given by a search engine because they don't know if, out of all the known solutions, that that's the right one for them. Their project is less about a job and feels more like a handmade endeavor.

Anywhere else, developing software is either a greedy business or some strongly-held ideal from the early 90's. Those who host their software here, though, are interested in providing the best possible game or application through very personal metrics, and they do so for the sake of what that program provides as an end-result. The software is not self-conscious, it just is whatever the programmer made it to be.

If you are that kind of programmer, we'll go out of our way to give you a platform, version control tools, forums, blogs, chat system, and all the support necessary to make your project a success.

To summarize,

  • If you want to make a game as fast as posible to make some money, try a gamedev subreddit.

  • If you want to make a game that attempts to be the best in some specific axis, and you're willing to do the research and engage with a community of hard workers to make it happen, you're welcome with open arms (whether you're a beginner or not).

  • Notice I'm not narrowing "handmade" to good performance because, although obviously encouraged, there are too many dimensions to programming and not everyone values the same thing. In fact, the projects on the site right now are already heavily focused on improving very different aspects to software.

    Everything I've said is a little vague on purpose as to allow as much diversity of content as we can (e.g. different languages, platforms, software genre, etc.) What we won't accept is someone who is not mindful or wants the easy way out while developing.

    Handmade Dev Foundation

    This "software craft mall" has resonated with kindred spirits, and people will crave caring applications as software becomes even more commonplace or bloated. This is why I am working on founding Handmade Dev: an independent organization established as a 501(c)(3) non-profit. Handmade Network is a non-profit project and the crowning jewel of Handmade Dev, but I see the Handmade Dev Foundation pursuing other initiatives such as educational outreach some years down the line.

    What We're Looking For

    We're looking for more projects to add, and the method is to currently e-mail me at [email protected]. This week I'll provide a simpler way to do this, and after the end of our public beta we'll actually have an automated system here on the site. Regardless, myself or staff will always review the submitted project and it's possible that it'll be rejected. This is to prevent HMN from becoming a GitHub repository. We want to have handmade projects with an individual or team behind it. It can't be anonymous, and they must be programming something uniquely their own.

    We're also looking for volunteers and moderators in the future, because we don't want assholes. I am OK with being the asshole that kicks out other assholes to keep the nice guys happy, but notice that nice != softy. Negative feedback from a nice member on your specific project is potentially more useful than a feel-good lie.

    Anyway, e-mail me if you want to support the site somehow!


    Speaking of support, the simplest way you can help us is by pledging on Patreon. A dollar helps us upgrade our services or make development go faster.. I provide any monthly leftovers to the staff as a "Thank You" for their work, so the more money that comes our way, the more compensation I can provide to those making this site a reality.


    Thanks for reading! And thanks for supporting us, truly.
    Abner Coimbre

    Server: irc.handmade.network
    Port: 7777 (SSL) or 7666 (Plain Text)

    The server now supports cloaking, and will do so automatically when you connect so your IP address will not be visible to non-admins.

    Where programs expect an IRC url, use:

    You can also copy/paste this into Firefox's address bar.

    Using a Web Client

    You can access HMN via the Kiwi IRC web client via this url: https://kiwiirc.com/nextclient/#i...irc.handmade.network:7777/#random

    There is also another web client hosted by insofaras available at https://hmnirc.party with history playback.

    Common Channels

    #dev — programming talk / questions
    #hmn — questions / concerns relating to the website or other hmn services
    #hero — concerning Handmade Hero
    #streams — automated twitch stream notifications
    #random — main social channel

    ...and more (inquire within)

    Join them with /join <name>, e.g. /join #hero

    1. Keep topics related to the #channel you are in. Randomly arguing the finer points of Salsa music on #dev would break this rule.
    2. Programmers are known to curse and engage in flame wars. This is fine in channels like #random, but it's to be kept at a minimum elsewhere.
    3. Comply with channel operators. They will time out or ban users who are visibly out of line, at their discretion and interpretation of what that means in context.

    In the end, we want a toxic-free server with caring programmers helping each other.

    Simplified History

    IRC stands for Internet Relay Chat (RFC 1459), and it's a protocol designed to dictate to a programmer the rules of how to exchange messages between clients and a server in an organized way—this is known as the client/server networking model. If you were to write a C program that implements the server rules of the IRC protocol, and then you run that program, you've made an IRC server. All you'd need is to similarly write a client that implements the client rules of the IRC protocol, and provide that source (or compiled build) to users and have them run each client as they connect to the server through a valid port number. If the client you programmed allows users to write a message through a supplied interface (e.g. typing on the command-line), the server will broadcast it to all connected clients. Chat services such as Slack have relied on an IRC backend before implementing their own. Twitch chat still uses IRC. It's the simplest, oldest, and most well-known form of real-time communication method across the Web. There's more involved, such as the concept of channels, operators, and queries, but that's the general gist of this chat mechanism.

    Per tradition, people ask "Are you on IRC?" instead of "Do you use a chat system that implements the IRC protocol?" to simplify the conversation.

    Installing HexChat Client

    1. Download HexChat
    2. Select HexChat -> Network List from the top menu.
    3. Select Add from the dialog box. Type in handmade.network or some such memorable name.
    4. Change the value of newserver/6667 to irc.handmade.network/7777
    5. Make sure the "Use SSL for all the servers on this network" is checked for secure communication.
    6. Have a nickname and optionally a second choice if the first is taken (See note below as we explain how to register your nickname so it isn't taken away).
    7. If you have a registered nickname, select NickServ (/MSG NickServ + password) from the Login method field. Input your password.
    8. Close and hit Connect.

    NOTE: If you want to register your own nickname, after you've connected to the IRC type in

    /msg NickServ register YourPassword [email protected]s

    Installing Weechat Client (via Matt Mascarenhas)

    Handmade.Network IRC on WeeChat:

    WeeChat is an ncurses-based IRC client, available for Linux, Unix, BSD, GNU Hurd, Mac OS X and Windows (cygwin). This short guide assumes you have installed WeeChat and the CA certificates – on Arch Linux: pacman -S weechat ca-certificates – launched WeeChat and have your typing fingers poised to get yourself into the Handmade.Network IRC.

    To add the secured (SSL) Handmade.Network IRC server to WeeChat, autoconnect to the server upon launching WeeChat and autojoin the #dev, #hero, #hmn and #random channels upon connecting to the server, run the following command:
    /server add HMN irc.handmade.network/7777 -autoconnect -autojoin=#dev,#hero,#hmn,#random -ssl

    To set your nicks and username for Handmade.Network, run the following commands replacing YourPreferred*:
    /set irc.server.HMN.nicks "YourPreferredNick"

    /set irc.server.HMN.username "YourPreferredUsername"

    To use /secure (see /help secure for more information) to store your password, run the following command replacing YourPreferredPassword:
    /secure set HMN YourPreferredPassword

    And finally to use this secured password to automatically identify with nickserv upon connecting to the server, run the following replacing YourPreferredUsername:
    /set irc.server.HMN.command "/msg nickserv identify YourPreferredUsername ${sec.data.HMN}"

    /set irc.server.HMN.password "${sec.data.HMN}"

    With all of this set – and I apologise that it couldn't be a one-liner – you should be able to invoke /connect HMN and so find yourself joined to #dev, #hero, #hmn and #random. To then navigate between these buffers, press Alt+1 (where 1 is a single-digit number) or Alt+j [release] 10 (where 10 is a double-digit number) corresponding to the buffer number of the channel you want. If this is your first encounter with WeeChat then you will want to install buffers.pl at the very least, to make navigating between buffers more pleasant:
    /script install buffers.pl

    If you're enjoying WeeChat so far, stay tuned for a walkthrough of my setup, to give you some ideas for making a really pleasant IRC environment.
    Andrew Chronister
    Greetings! We're proud to present the v1.0 release of Handmade Network to the public!

    Handmade Network is the home for dozens of projects that were inspired directly or indirectly by Handmade Hero. Some eschew libraries, while others are themselves libraries written in a simple an conscientious style. Some are released products, others are in early alpha, and some are just beginning to materialize.

    For each, we provide the option to have their own self-contained forums and blog, so they can share news about development and interact with the people using their software directly. Membership is site wide, so anyone who has an account here can post on any project. Additionally, we've inherited the Handmade Hero forums and all the accounts on it, so anyone who had an account on the old forums can log in anywhere on handmade.network with their old account credentials.
    (Note: a registration page for new members will be going up in the next day or two. If you didn't have an account on the HMH forums, keep your eyes peeled for that).

    This website has been a labor of love by our small team of staff -- Jeroen and I have been working around the clock to bring everything together. However, we have undoubtedly overlooked some things. Please report any bugs you find or features you wish existed, and we'll do our best to address them as soon as we can.

    We'll be working hard over the next few weeks to bring in all the features that we weren't able to add before launch, so keep checking back here as we blog about the challenges we faced while building the site and where we're going from here!

    Enjoy the site, and happy coding!
    -- Andrew