Hacker News new | ask | show | jobs
by chilmers 960 days ago
I love how level creation for games like Doom and Quake has developed into these small, independent scenes, with a rich community history and a real sense of taste and refinement in how they approach designing for these games. In the same way that "pixel art" has evolved from a necessity driven by the limits of early hardware, through early attempts to recreate a "retro" look, to the point where it is a well-developed aesthetic that is used as an informed choice.

It might sound a bit pretentious, but it really feels like the video games have begun to reach a point of maturity akin to older forms of art, where people are no longer fumbling around in the dark so much, or chasing the technological zeitgeist. Instead creators are consciously embracing and exploring different limitations and aesthetics, in the same way a painter might use different types of paint, with all these diverse styles and scenes, which are at once independent yet also informed by each other.

7 comments

I agree, it's great to see people rummaging through old game engines to find the "right medium to express their thought", the way one might rummage through a pile of art supplies.

The only thing I personally think is a shame, is that the structure of interactive experience inherently lends itself to collage — to a potential for different "scenes" made from entirely distinct "media" — but that it's prohibitively difficult currently to (seamlessly) weave together different game engines into one game art project; especially when some of those engines aren't open-source engines, but only exist in the form of old games that are usually turned into art through ROM-hacking.

An artist should be able to have me walk through a door in an RPG Maker game end up playing a Quake level! And then, upon killing a certain enemy, be suddenly in a bossfight in a SMW ROMhack! And then, upon succeeding or failing in the boss fight, I should be able to either end up in their custom Unreal-engine-coded finale, or back in the RPG Maker "space" from before! All without loading times or futzing with the display settings!

I've been working on a "solution" to this "problem of artistic collage" — a runtime that supports custom (i.e. zero-installed from the internet on demand by a game) sandboxed cores wrapped in realtime-per-frame in-memory-state import/export logic, where "a game" is actually a set of sub-game modules, with each module being expressed in terms of its own core, and having either a plain API call (for open engines) or a RetroAchievements-like memory-watch rule, to trigger state-transitions over to other modules.

I know about the developer who, instead of building their game, decides to build a game engine. But that appears to have not been enough for you - this appears to be a game meta-engine! :)

It sounds like quite a technical achievement to accomplish that, but it also sounds like it would fill only a very tiny niche of developers who actually want this and are willing to build assets in entirely different engines just so they can transition to different aesthetics during the game.

Not to knock on the idea though - it would certainly be very cool to see. Curious if you have any other use-cases in mind for such a technology?

> Curious if you have any other use-cases in mind for such a technology?

Yes. In fact, the collage thing is the secondary pie-in-the-sky non-MVP use-case.

The primary use-case: a Mario Maker-like UX for playing cloud-hosted ROMhacks, where each ROMhack's game engine has been carefully cut down so that the experience is of just playing a level in isolation, with some state (e.g. life counter) managed by the runtime and passed in/out of the running core; where, just like in Mario Maker, the UX takes over between executions of the "per-level simulation", and so it's the UX, not the game, that determines whether you retry on death; and that determines what happens next when you "complete" a given level. So it can do various things like run you through playlists of experiences, shuffle a filtered set of all experiences, etc.

That "cutting down" of ROMs into game engines would be automatic/generalized, and would involve the classic techniques of "program-slicing", applied to the domain-specific tooling of emulation: input-movie control-path tracing + memory-watch rules for where the "boundaries" of the sub-engine in the game are, followed by unreachable-code and data elimination; then base memory-state capture to kick off the game at a given point + overlay-state synthesis to control what it looks like when it kicks off. Jumping control "out of bounds" ends the emulation, with memory rules to then determine whether that constituted a "win" or a "game over."

Also, the base "game engine" ROMs would have all IP "assets" (art, music, etc) removed / factored out; these would instead ship as [modder-provided] "game asset" packs, of which there could be multiple used in a single game project, and which would synthesized into ROM memory-bank files at publication time.

End-user supplies base-game ROM images locally; client synthesizes "game engines" from these ROM images. Or clean-room reversed "game engines" can be distributed, given that they're an alternative compilation from the reversed source, that doesn't contain any of the original game's assets — those all being wholesale replaced by the mod! — and so (I believe) don't violate copyright. In which case, the end user having the original ROM image available, only unlocks the ability to (potentially) "change the asset theme" of the game from its custom one, back to the original game's IP assets.

The core user-story, would be sitting there with a controller in hand, continuously consuming free-to-play "experiences", presented to them through playlists / recommendations / shuffle. (Game jams would be playlists!)

But there'd also be a store — for buying experiences that artists want to charge for, yes†; but also for buying asset packs, or for licensing the use of "engines" that others have put their hard work into developing, since the same UI that lets you play the games, is also the UI for publishing the games. (I'm not sure if I want to get involved with it being a UI for developing games, though. Maybe for the multi-module stuff; but I'm more expecting tooling like GB Studio and Lunar Magic to step in on the development side, allowing export to a package format that you'd use to publish on this thing.)

† (Paid experiences could have "demo versions" that show up in the free-to-play shuffle; where at all times while playing the demo, there'd be a little unobtrusive UI element that could take you to the store page for the paid version of the experience.)

You could add whatever "game engines" you want to this platform — as these aren't just limited to being ROMs, but rather can also contain a "native layer" (I'm currently thinking a PPAPI executable, even though it failed in its original browser use-case.) Engines can be designed "on top of" other engines; all the extracted-from-game-ROM game engines would actually be running on top of a set of native emulation-core engines that ship with the runtime. But "RPGMaker-compatible runner" is an engine. Love2D is an engine. RenPy is an engine. StepMania is an engine. The early Win32 GameMaker engines are engines. The Macromedia Flash projector is an engine. Etc. You can publish experiences with these, too; and there would be porting tools to take finished projects from these runtimes and shift them onto the platform.

And, perhaps less obviously, big third parties (e.g. Adobe, Unity) could publish pay-to-license engines on the platform, where you could design your more domain-constrained engine to run on top of their engine, and the whole licensing/royalties aspect would be handled automatically.

---

One of the key things I actually want from this project, is to "commodify" these other engines, in the way that MAME/RetroArch/etc "commodify" emulators into cores. I want to "containerize" all the old Flash games, old visual novels, RPG Maker 95 projects, etc. such that you could just pick-up-and-play them the same way you can pick-up-and-play a ROM on a modern multi-core emulator. And with all the same modern niceties, e.g. cloud-based save-states, super-resolution, etc.

The other, perhaps less obvious trick here, is that you can slice up the actual original games themselves — the ones whose game engines are the basis of the mods — and allow the bits and pieces of these original titles to be listed as these same kind of bite-sized "experiences" on the platform — but where these "experiences" are only accessible to owners of the original game (i.e. to people who have the ROM image locally, or maybe who have bought the game from its IP owner(!) through the platform; or who can prove they have paid some other licensing fee to the IP owner, e.g. by SSO-binding an account of that IP owner's platform that proves they have access to a subscription tier that comes with leased licenses for those titles.) Sometimes I just want to re-play a particular small section or mini-game from one of my favorite old games. This platform would treat that section/mini-game as its own addressable resource that I can navigate to and play.

The fact that's not just a link to your design docs is a massive ADHD signifier ;-)
You're right; but also, I had actually never put any of this to paper before; it was mostly just shower thoughts. The GP comment prompted me to actually make a lot of these whimsies concrete and coherent, while I had a moment between things at work, and a good reason to do so. The design docs will cite this comment thread! :)
> walk through a door in an RPG Maker game end up playing a Quake level! And then, upon killing a certain enemy, be suddenly in a bossfight in a SMW ROMhack!

I just learned about this [1] yesterday but seems to be the first data point I've seen regarding something like you describe. Very cool to see, and it definitely blew my mind that things like this are now being developed.

[1] https://archipelago.gg/

    a well-developed aesthetic that is used as an informed choice
Wow! I love the way you phrased this, and your post in general. It put into words something I had struggled to express.

For too long, pixel art and other "dead" technologies like Q1 mapmaking were largely treated solely as kitchsy "retro" or "nostalgic" aesthetics and not worthy of study, refinement, and enjoyment in their own rights.

Personally i'm of the opinion that if you can point at a game and say "that looks like a XYZ game" where XYZ is some period-specific identification then that itself makes XYZ a visual style.

E.g. "that looks like a PS1 game" or "that looks like a 90s game" or "that looks like a DOS game". And that includes "that looks like a PS3/X360 game" too, even if it is probably too soon for many to accept that :-P

Huh, an interesting conclusion to me is that I'm another decade or so there will probably be nostalgic artwork recreating the HDR, brown, grimy vibes of late aughts action games
oh god. oh... oh no.

well, i think you're right.

> feels like the video games have begun to reach a point of maturity akin to older forms of art

in the art world, that usually means a revolution or 'new wave' is nearby

i thought 'cruelty squad' and its ilk were the harbingers of the 'new game'... but yea it seems harder to build that kind of devoted community if you don't release your own editor

The medium continues to grow within the purview of the original communities.

Quake hasn't enjoyed _as much_ change as Doom, with source-faithful engines like Quakespasm being standard and the likes of Darkplaces being niche. However, the Doom community both embraces faithful ports like prBoom, Crispy, and Chocolate Doom; and carries at its centre the wonderful GZDoom engine.

GZDoom zigs where every other game engine zags. Rather than moving away from BSP into static meshes, and other standard "modern" shifts, GZDoom embraces the fundamentals that make it mod-friendly. It maintains BSP at its core, and while it supports voxels and meshes it remains 2D-focused. What it adds is all the trappings that make it attractive to rapid iteration: good scripting, a toolkit of predefined events, and tools with excellent asset importation and management.

If I imagine where Quake would go, if it were to follow GZDoom's model, I imagine it would lean into Quakeworld's client/server architecture, the QVM, realtime vis, static lighting, and so forth. Particularly the static lighting; which is something I find modern engines tend to treat as a performance feature and not an aesthetic feature.

Both Quake and Doom, but moreso Doom, have unrealistic lighting; with overly sharp and unnatural transitions. When playing modern games everything is softer, the shadows are more natural, the scenes are realistic; but they lose that harsh aesthetic that gave rise to the horror of Doom and Quake. The shadows aren't just dim, they're black, and who knows what they hold.

Anyhow, I digress.

> It maintains BSP at its core, and while it supports voxels and meshes it remains 2D-focused. What it adds is all the trappings that make it attractive to rapid iteration: good scripting, a toolkit of predefined events, and tools with excellent asset importation and management.

Well, it also expands the world format too, so one can do full 3D maps. In fact one of the games with great vertical level design i've played recently is Hands of Necromancy which is made with GZDoom.

Wasn't Cruelty Squad built with the Quake level editor? It runs on Godot, but apparently uses a plugin called Qodot which lets it use Quake levels directly.
ah that's awesome! I saw the Godot part and didn't think it would have borrowed from Quake, maybe there's hope...
I've been enjoying more mods than new games recently. When devs make something for pure love instead of money the results tend to be good. Eg.

- Stalker GAMMA

- RLCraft

- Ashes 2063 series (A dooom total conversion mod)

- Quake Arcane Dimensions

- Kerbal space program realism overhaul

- Krastorio

- Morrowind refined

- Portal reloaded

I agree. At one point pixel art or lowpoly 3D was the best you could do. Now it's an aesthetic choice. I'm actually using raycasting (ala wolfenstein 3D/rise of the triad) for a hobby project because I think there's still interesting things you can do in it that haven't been explored.
Well said!

I think video games are their own art form, now, with indie studios making beauties like Noita and AAA behemoth bottegas crafting entire worlds with every little corner containing art to explore should you take the time to walk, like the London depicted in Watch Dogs: Legion.

If only more companies had the courage and vision to make their games fully-moddable, thus transforming and extending their lives, like ID Software, Bethesda, and Bohemia Interactive have done.

If you haven't seen it yet, I highly recommend checking out the story of MyHouse.wad: https://www.youtube.com/watch?v=5wAo54DHDY0

If you want to go in spoiler free, I'd recommend downloading the WAD and playing it through blind. But if you don't have the time for that, there's a ton of great youtube videos that covered the topic.