Issue 0x05 - \n\r\n\r
So… it’s March apparently.
Time flies, huh?
To kick things off, GuildMUD is moving along slowly, but surely—special thanks to TMCG member @rogersm for kicking so much ass on it lately. If you’d like to contribute, please feel free to open an issue or a pull request on GitHub. Prior knowledge of the C programming language is not required, just a willingness to learn something new!
In other news, I am planning on dropping a small Code Jam (witty name to be determined) in the next newsletter. While the actual specifics are still being worked out, I am on the hunt for an interesting prize or two to award the winner(s) of said jam. If you have any ideas (or would like be a sponsor), please let me know by responding to this email or pinging me on Slack. Also, participation will be limited to TMCG members, so if you’d like to take part please join us on Slack!
And, finally, I’m always on the look out for new content for this newsletter. If you have something interesting to share with the community, or would like to write an article for our official blog, please message me on Slack or respond directly to this email. I would love to hear from you!
That’s it! Happy March everybody!
Off the Cliff ep4: A Moving Experience
Movement in MUDs is not something people thought about all that much. There was the occasional full-coordinate based system, but mostly it was a lot of “north” and “enter door” back in the 1990s…
Theft, Waste, and Puzzles: How I Design
I hoard information but I don’t see the point in keeping it from others, so I’m going to elucidate a bit on the grand secret of my design process. I try to get this sort of thing out in dev blogs and…
> open source
Automerge is a JSON-like data structure that can be modified concurrently by different users, and merged again automatically.
You can’t go a day in TMCG without a conversation about Entity-Component-Systems. Slime is an ECS library for Elm that provides an easy way to build a full game, using common Entity-Component-System architecture.
SLIME—not that one ☝️—is the Superior Lisp Interaction Mode for Emacs. SLIME extends Emacs with support for interactive programming in Common Lisp (another common topic around TMCG).
Inspired by a thought experiment at TMCG, Hide is a quick project by TMCG member @kazan that can be used to find messages hidden in text indentation.
Created by TMCG member @sean.o, Axolemma is a tool for procedurally generating RanvierMUD areas.
Don’t ever let anybody tell you that your text editor has to be ugly. While there are a lot of bells and whistles that can be added, the typeface is one of the first things worth tuning. Iosevka is a slender typeface designed for code, from code.
A second contender in the “awesome typeface for coders” category, Hack is another popular typeface designed for source code.
Convert ASCII diagram scribbles into happy little SVGs. I have no more words for this one. It’s just straight awesome.
> oedit tests
Automatic Visual Diffing with Puppeteer
This is a novel approach to testing that takes a screenshot of a web application and compares it to the expected response. There may not be much practical value in it, but damn if it isn’t interesting!
Realizing Quality Improvement through Test Driven Development
Written exactly 10 years ago, this is a fascinating study about the effects of TDD on quality and efficiency. Spoiler alert: TDD decreases defects and developer efficiency.
The Ethics of Test-Drive Development: A Thread
TMCG member @trevoke is… wildly bullish about test-driven development (rightfully so, in my personal opinion). Here is an interesting Twitter thread about the ethics and professionality of TDD.
> train int
The OSDev Wiki
Look… there’s no practical reason to create your own operating system. But since when did we care about practicality? The OSDev Wiki is the authoritative source for accomplishing exactly that task (something I am currently trying and failing at myself).
The goal of the “Rails Hurts” project is to discuss the problems of good software design avoiding academic terminology as much as possible. It’s not for Rails Ninjas, Rockstars, and other characters who are completely comfortable with “The Rails Way.”
The Cost of Forsaking C
The C programming language is not trendy. The most recent edition of the canonical C text (the excitingly named The C Programming Language) was published in 1988. This article makes some great points about the practicality of learning C, the most interesting of which is that C helps you think like a computer.
Three Ways to Think About Value
This is an interesting article about measuring and quantifying value in a product development environment. I know. It’s not technically about software development, but as so many of us are professional developers there is some interesting information here.
> quaff elixir
So, I drank the proverbial Kool-Aid and am slowly learning Elixir. The fact that it is syntactically similar to Ruby helps a bunch, but what helps even more is this site. It lays everything out in a way that I personally love to learn.
An exploration into a stand-alone library for Plug applications to easily adopt WebSockets.
What's all this fuss about Erlang?
What’s all the fuss about Erlang? In this website exclusive, Joe Armstrong tells us.
Computational parallel flows on top of GenStage
The Lasp Programming System
Lasp is a programming system for building large-scale, eventually consistent, distributed applications. Lasp provides a comprehensive approach through layered components addressing the problems of cluster membership, data synchronization, message ordering, and consistency management.
Shape Up With Elixir Protocols
In Elixir all functions are namespaced. That means when you write a function, they have to be defined inside of a module. This is good because it means we can easily define the same function, but implement it differently for different modules.
> cast 'inspiration'
On Set Design
This is a great article about set design in tabletop gaming. It offers unique methods for describing rooms and loot in a way that encourages speed, flexibility, and creativity, allowing for constant engagement with players.
A Sandbox to Play In
Game design is, by far, one of the most exciting aspects of MUD development, and it all starts with the game world. The current “accepted best definition” of a game universe for persistent worlds is “sandbox.” This means a malleable environment with lots of toys which players can then use to make whatever they want to out of the environment–as much as the game allows, at any rate.
Designing Side Quests? Study These 7 Games
Side quests can make or break your game. Here, notable developers suggest some games that do side quests notably well, and Chris Avellone offers guidelines.
Alas, all good things must come to an end.
The MUD Coders Guild is a community for people with a passion for creating text-based games. Join us on Slack!