Hacker News new | past | comments | ask | show | jobs | submit login

> Check out Yegge's post about the universal design pattern as applied to gamedev.

You mean this one?


Yeah! It looks like your URL 404's though.


All of it is pretty interesting, but it's sort of unreasonable to say "Here, read this tome." You can skip to the Wyvern section for the important bit. Gamedevs will be particularly interested, because the question of "How do I enable people to write games in the most flexible way?" is one of the great unsolved problems in gamedev. There's just no good way to do it. Every engine has tradeoffs, but circa 2016 these tradeoffs are anachronistic. A modern engine should be written mostly in the scripting language that it provides. Most of the codebase that would otherwise be C++ code should be script. This can be done with almost no performance penalty. So the only question left, once you decide to really do this, is how do you design it?

I think Emacs' design is the answer. Almost all of the core ideas can be incorporated into a modern game engine, provided that it's built from scratch.

Few people have the skills or the inclination to pull this off, which is why it hasn't happened yet. But I suspect anyone who does this will end up with thousands of users who love making things in it. As with Emacs.

I'm interested in this idea. What aspect of emacs design makes it unique? What are the "core ideas" you mention?

I think that emacs's core idea is a small core (pun intended) of functionality written in a high-speed language (C in emacs's case), entirely orchestrated and glued together in a high-productivity dynamic language (elisp).

Emacs really isn't a scriptable editor: it's an editor written in a 'scripting' language atop a relatively small set of primitives which happen to be useful for editing. But it's also an email client written in that same language, and a version-control interface, and a web browser, and a news client, and a Tetris game, and and and …

> Yeah! It looks like your URL 404's though.

Ok. Yeah, I accidentally deleted an #\l from "html" :(.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact