Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Game engines as an art form (medium.com/hajimehoshi)
194 points by hajimehoshi on Dec 29, 2021 | hide | past | favorite | 51 comments


> If you had asked me why I’d been so dedicated to developing the same game engine for so long, I probably wouldn’t have had a very good answer for you until somewhat recently. Perhaps I would have cracked a joke about game engine development being a basic human need for me, right up there with food, water, and oxygen, but obviously we all know that’s not a real answer.

I was exactly this person for a long time. I took a lot of pride in the fact that I wrote my engines from scratch when everyone else was using Unity. When people asked what drove me, I would joke that I had a disease. I had to make games. After getting some counseling and getting married, I've realized that game development is a great coping mechanism to help you feel safe and in control. You are the master of your own universe. For some reason it also helps you feel worthy, like you've accomplished something.

I'm not saying gamedev is bad, but I think a lot of people unknowingly use it to self-medicate.


> I've realized that game development is a great coping mechanism to help you feel safe and in control. You are the master of your own universe. For some reason it also helps you feel worthy, like you've accomplished something.

> I'm not saying gamedev is bad, but I think a lot of people unknowingly use it to self-medicate.

Great insight - IMHO, among the most valuable people can have in life. Of course it is not particular to games or development; it's the motivation for many of us doing many things. Some go to the bar and pick up sex partners - or get in fights, some fix up their homes or cars, some knit, some run marathons, some make FOSS, some do drugs, some bully other people or abuse their pets, some play Call of Duty, etc.

I think the trick is to realize what you are doing - coping, feeling some control, etc,. - accepting that it's a good, healthy instinct, and finding a good healthy way to do it. Art is a great outlet, serial sex partners - usually not so much (not judging, just observing).

The fundamental metric is not to get stuck on 'do I feel better while I'm doing it' but to choose based on, 'do I feel better after I do it' and also, 'is the world slightly better after I do it?'.


Am I missing something on the sex partner comment? Courting consenting adults for fun and pleasure may be done safely and it's a fine creative outlet. For example those on PrEP need to undergo tests four times a year (for HIV and all common STIs) if they want to keep the pill. That's excellent sexual health care if you ask me.


> That's excellent sexual health care if you ask me.

I am talking about emotional health, not physical.

> Courting consenting adults for fun and pleasure may be done safely and it's a fine creative outlet.

Most things can be healthy or not; we are not talking about the actions but, again, the emotions. Cleaning your kitchen can be a healthy outlet; doing it because of OCD seems probably unhealthy. Very generally speaking, serial sexual partners to satisfy needs for control, mastery, security, etc. seems like not the most emotionally healthy solution. (It has nothing to do with sex in particular nor with some puritanical view of it.)


> I've realized that game development is a great coping mechanism to help you feel safe and in control. You are the master of your own universe.

This is THE reason I started programming when I was 11 years old! I was always dreaming of this universe that I would create. I even tried to make an RPG game using Game Maker. I stopped when, after a couple of weeks, I had a barely working fighting system and nothing else. I learned that games are huge!

Later, while I was in university, I implemented four gamedev frameworks. Every time I decided I was done, I would develop a small game with it and I always found something I didn't like. A few months later I would start from scratch having learned something new and trying to find a solution to what I hadn't liked. At some point I realized I enjoyed better writing the framework than the actual game.

Funnily enough, I never went into game dev professionally. Although I still implement libraries that nobody, other than me, uses from scratch in my free time.


Haha. Similar for me. I spent months and month writing a 2D 360° scrolling game engine in x86 assembler, and a level builder. I drew all the sprites and tiles, labored over animation, parallax, collision detection, multichannel audio and optimized the bejeezus out of it so it ran as efficiently as possible on my 486.

Turns out I don't like designing games, I built just enough level to test everything, got bored and started all over again... haha.


I realized - in the midst of a professional career that had a dry spell - that I do enjoy some parts of game design, but the type of game I should design should not be too heavy on overt rules, stats, and systems, and instead work on the intuitive and holistic parts.

I had to learn what was enjoyable about it by first burning out on what I didn't. This is a form of artistic journey that spans all mediums. Games often have many layers. If you don't really know why you're adding a certain layer, like a level design, or cutscenes, it instantly turns into a morale crusher that can spiral into ever-increasing scope(by way of "it's not good yet, add more"). And it's easy to fall into that with vague justifiers like "every game is better with more stuff" or "I spent time on it so I'm gonna use it". Eliminating contradictory elements removes morale crushers, but can leave the game barebones and underdesigned. The solution to that is to inject themes and principles that suggest the specific possibilities. Then you are simply including the elements that cohere to principle, which quickly "develops" the game out of the tech demo stage. In the blink of an eye it can go from nothing to a great game, if the groundwork was set up well.

Of course, most games are products, and products need product features, which take things away from the artistic goal. But if you can build it small enough, it can be a hobby :)


Are you me?

I spent much of my childhood working on a tabletop RPG with my brother. Then decades later working on and off on various gamedev projects.

I used to beat myself up for never finishing anything. Only with therapy over the past couple of years did it finally click for me that many times these projects were escapes. The point was not to finish them so that the were a safe place I could retreat to when my life felt uncontrolled and chaotic.

I was absolutely using it unknowingly to self-medicate. I still do so—I literally just took a break from hacking on my fantasy console project to check HN—but I'm a lot more mindful of my motivations now. It's OK to want some escapism now and then. Certainly with the pandemic, it's entirely reasonably to want a space where one feels they have some control because we sure as shit don't have control over COVID.

But I try to make sure I'm not using it as an unhealthy way to avoid chaos that I should be tackling.


I'm doing this right now on my language platform.

On one hand, I'm inventing a new way to build online experiences (games, social apps, collaborative apps, small/medium business)

On the other hand, I have no customers

I have 100% code coverage for many of the packages.

I'm building my own gossip failure detector right now using some blockchain ideas so I can gossip really-really quickly at an exceptional low rate.

All this madness started because I was building an online board game.

Fortunately, I've retired from big tech and can afford a few years to indulge myself.

Check it out: http://www.adama-lang.org/


I think that applies to making anything completely by yourself, a DAW, a drawing app, a house. The only problem I'm facing is: I keep going deeper and deeper in making tools and never made a game since (game engine -> programming language -> OS), tbh I am a bit jealous to see people already using Unity making cool effects, where I would have to spend weeks learning the maths and engineering behind those


> After getting some counseling and getting married, I've realized that game development is a great coping mechanism to help you feel safe and in control. You are the master of your own universe. For some reason it also helps you feel worthy, like you've accomplished something.

> I'm not saying gamedev is bad, but I think a lot of people unknowingly use it to self-medicate.

This goes for any form of art: writing, painting, music, filmmaking, etc.


Reading this whilst waiting for Unity to finish importing.. yeah. It's my holiday, and a piece of me can comfortably think that I'm improving my skills, making something that might one-day sell for a bit of money, but realistically just cheers me up to make something pretty.

I guess you gotta ask yourself if it matters whether anyone else ever sees it.


Knowing that the "computer nerd" is the archetypical male fight/flight hybrid coping mechanism from childhood trauma, this is unsurprising. A lot of my own life struggles became easier to understand when I started unwrapping my trauma with a therapist.


I am interested in this theory and how it might to apply to me. Do you have anything I can look at to back this statement up?


Knowing a lot of creative people with a drive that could be interpreted through the lens of pathology, on the other side of it, what does healthy look like?


What is pathological? The need to feel safe and have some control? That is perfectly healthy. How you do it - that is where unhealthy things can happen. Is art an unhealthy way to do it?


I've known plenty of amazing creative artistic people who were definitely unhealthy in terms of how they pursued their art.

I'm also interested in the GP's question: what does healthy look like?


So what exactly is it that we are self-medicating? The disability to fit in with others? That would be too much of a clichee for my taste. When i was young i could always imagine a greater game, no matter how great the games i had. Out of this grew the desire to make. Of course i failed. But isnt this quite an appealing conditio humana after all?


>>I would joke that I had a disease

Ha!I just say that I'm a bit crazy! For whatever reason I decided to build a physics engine from scratch, along with the game engine (not done yet). Not really sure why other than a really bad itch that I just had to scratch.


> I've realized that game development is a great coping mechanism to help you feel safe and in control.

Would this also work for, say, programming language and compiler design (which is also in a way about creating new, abstract worlds)?


It works for anything that makes you feel safe, in control, accomplished, etc. It's not related to the means. Every human has done it since the dawn of homo sapiens, and probably our ancestors too. It was done before computers, before books, etc. Paint something on a cave wall, if it works for you!


Many people have learned that making your own engine from scratch is a bad idea if you want to make a game. Your takeaway that game development itself is somehow dysfunctional doesn't necessarily follow from this.


This hits hard for me. The part about being in control especially.


Same. I spent 5 or so years working on a project when I (sh/c)ould have been working on myself. I knew I needed to be doing something so I manifested that change externally which made me feel like I was making progress on something - something apprehendable.

What I needed to do instead was realize what those needs were, where they were coming from, and address them directly. Now I have a lot of catching up to do back-dropped with the emotional texture of lost time.


Unfortunately it is never simple. All my previous therapists affirmed my own projects as positive and even admirable and encouraged me to continue working on them. That was in spite of me ostensibly seeking out a therapist to address other issues despite believing that I was receiving some amount of fulfillment from the projects also.

Whenever I leave my project, it doesn't feel like there's a whole lot else I would rather do. When I seek answers, the "tough" advice that I'm greeted with instructs me to make something of my life. But wasn't that what I was already doing when I was still working on my projects? So I don't see any reason not to go back, if I can't find a way to make other kinds of progress myself, or am too good at avoiding internalizing the need for it constantly.

Unfortunately, if you tend to gravitate towards computers, and fail to find a professional who can give you more constructive ideas on how to define a concept as ambiguous as "working on oneself", it becomes far too easy to go back and self-medicate. I find it hard to judge someone else on the basis of how passionate they are about their hobbies, but if it's directed towards ourselves instead it sounds like we ought to be doing it more.


I've found a good strategy is to focus on the game, not the engine. That is, don't go in hoping to write the be-all and end-all of game engines. Instead, sketch out a game that you would like to play and build as much engine as you need to support just that game.

It's easy to build an engine and then spend an eternity bikeshedding it to accommodate all sorts of games, while not actually writing any games. What you should be doing is focusing on getting a game out there, and letting the engine serve this goal and only this goal. Any engine work that doesn't directly contribute to a specific game reaching completion should be postponed or cancelled altogether.

I know because I used to be That Guy, the one who was going to write the awesomest game engine ever and use it to build awesome games. But the engine code seemed to get in the way of building games, and changing it took up a lot of time. So I pivoted to just writing a damn game, from scratch, and that so much better that the engine I wrote to run this one game was even awesomer than my universal engine.


I miss working on my C++ game engine with my old business partner. We got so far with it, all the way to cross-compiling stuff like Ogg Theora/Vorbis video and audio playback around the time the iPhone arrived. Maybe a dozen rather large frameworks, before stuff like CocoaPods. Which provided us with a bare-metal environment, kind of a Unity for 2D gaming with blitters and basic OpenGL quad rendering.

Unfortunately, a game engine can only get as big as planned obsolescence dictates. Apple especially, deprecates stuff on what feels like a 2-3 year cycle. So just when we'd think we were done, another module in our engine would require refactoring because the system framework it depended on got axed. Not to mention that Xcode has reached such a level of burden on developers, compared to anything in web development, that I could no longer endorse it. I got tired of rewriting code for the eleventeenth time and called it quits around 2010.

The prime directive of game engines IMHO is to not make a single direct system call. Go through a layer like SDL, or you'll never get free of maintenance.


I think OpenGL (ES) 3 / OpenAL is probably the final APIs you have to worry about for eternity. Metal/Vulkan/DX12 adds nothing of gameplay value.


Guess what, Apple has deprecated OpenGL too :)


I know, that is more proof tha Apple is heading in the wrong direction than anything else.

They can deprecate all they want, they will never be able to remove it!


I think the more people creating game engines and open-source game frameworks the better, since every now and then something like Godot will emerge and continue to prevent a Unity-or-Unreal mono-culture. Which, to be clear, I don't think we're close to; to pick just one example Monogame, for instance, has been doing its thing for ages now and is going strong. As someone who's full-time job is working in Unity I think this sort of thing ends up being healthy for the whole developer ecosystem.


3D A&V multiplayer is the final medium/media.

Game engines are the final craft.

Programming is a higher art than painting or music.


Team Shanghai Alice / Zun (aka: that one crazy developer) does all his own artwork, music, and programming for the Touhou series.

A lot of people joke that his artwork is sub-par and the music is repetitive, but frankly... the integration of all three into a single product / series of games is pretty amazing.

---------

I don't know if gaming is the "ultimate" form of art. And no one is going to say that Zun's art or music is the best in the world.

But the fact that Zun can do all three and have them play off each other in his games is pretty masterful. There's a big difference in feel between people who only have mastered say Programming, but rely upon a team-member to do the art and/or music.

Having the sound-effects integrate into your musical scores (thanks to understanding music theory / beats), as well as generating artwork from programmatic features (the pretty "bullet patterns" of Zun's games) is pretty unique. https://www.youtube.com/watch?v=s8JmfCYmtHo

Zun can make bullet patterns that look beautiful, while simultaneously is fun to dodge / play with, and with sound effects that integrate well into the music.


> A lot of people joke that his artwork is sub-par and the music is repetitive, but frankly... the integration of all three into a single product / series of games is pretty amazing.

I'm reminded of a Tim Minchin quote where he said he isn't funny enough to be a comedian or gifted enough to be a musician, but he can be the funniest musician and the most musical comedian out there.

There's something to be said for having an interesting combination of skills even if you don't maximize any one of them.

I recently finished writing a giant book. I wrote it all, hand drew the illustrations, and typeset the whole thing. I'm not a particularly talented artist or designer, but I have the unique property of deeply understanding the source material. So even if the illustrations and layout aren't the best, they are informed by the source material in ways an outsourced designer wouldn't be able to do. When I draw a little diagram, I know which boxes to make biggest because the concepts they represent are the most complex. When I choose to split a snippet of source code across pages, I know where to split the code to be least disruptive.


Zun is a particularly cool example.

There are plenty of excellent artists out there. If your video games inspire them, you can have a large fan-base who can contribute fanworks... from (amateur) manga/comics and other online works, to fan art, and maybe even some professionals remixing your works (most noticeably in the music world for Zun, where professionals / dedicated musicians take his speedy tunes and add a more subtle flair to it)

The "Bad Apple" fanwork is a great example of how the fan community interacted with Zun (https://www.youtube.com/watch?v=UkgK8eUdpAo). The shadow art was its own thing (though clearly based on Zun's characters / Touhou characters), but the song itself was a remix based from an earlier game (https://www.youtube.com/watch?v=xNKyPkQ-_ug)... and professional level remixes to Bad Apple have entered the world.

---------

So Zun was "good enough" at art, music, and programming... but also did a great job at inspiring and leading the Touhou community / fanbase.

In many ways, the "game designer as commmunity leader" model is apparent. Braid, Touhou, Minecraft, and even Factorio all had community leaders and fan-growth that was superbly done.

The music / art of the Touhou community though really elevates that particular community into true artistry. Both of the classic kind (just straight up good drawings / music being made), as well as of the programming / interactive kind.


And the Touhou fanbase is really big both in Japan and outside. For music alone there are probably hundreds of artists and groups and there are lots of fan comics, videos, games, memes... the rabbit hole (no pun intended) goes really deep.


The definition of art is somewhat hard to find, but to me an artist excels in his/her field. The trick here is to see value, a painting or song has only consumption value, it produces nothing except feelings that in turn can materialize.

Programming is the weave of everything digital, like the matrix glyphs it can describe all, be all, modify all. It rules all crafts by an infinite amount. As a single programmer in a 3D multiplayer system, you become god.

The truly amazing game makers like Pixel f.ex (Cave Story) are not incredible because they can make graphics, music and code. But because they actually manage to release code that works while being good at graphics and music. The rare skill is programming, not drawing or music.

99% of programmers don't take resposibility for their creations long term, including John Carmack and Tim Sweeney!

So it's a trifecta: Be creative (discover things nobody did before), manage to release live products that work, take responsibility = work on your own.

The most underrated skill in human history is this kind of programming, eventually it will become the only skill worth having until all energy has depleted. Then we're back to sticks, stones and cave drawings! :D


Full stack ownership of a game is what can make it truly good art imo.

AAA games have art in them (the assets made by individuals), but the entire pieces are less art than product after being ground to completion by an org chart.


> Full stack ownership of a game is what can make it truly good art imo.

Good is not quite the nuance I'm trying to say here. Final Fantasy VII remakes are "good art" and good enough programming, probably top-quality music as well despite being made by a giant organization.

------------

Integration is probably the thing I'm trying to discuss, which is "good" in its own way. The Touhou games are probably the best example of that, but maybe that's a bit niche.

Supergiant Game's "Bastion" was probably the best "integration" I've seen in more recent years of art / music / sound / programming. The way the narrator responded to my button-pushes and actions was downright creepy at times (creepy in a good way though)

AAA games like Red Dead Redemption, try to accomplish the same thing but its just not quite as tight or as well done. I give them props for the effort (and getting further than most other AAA titles), but its just really difficult to compete with the level of integration that smaller teams can provide.


I think Arkane, Looking Glass, and iOi have come pretty close. This is coming from an experienced oil painter and novice programmer.


I strongly disagree with programming being a “higher” art than music or painting.

As for DIY game devs, I really enjoyed Tom Happ’s Axiom Verge series. The artwork and level design, especially. I’ve seen a couple interviews where he kind of brushes off the praise for the musical aspect - and I agree. I think it’s the weakest part of his games. The music fits incredibly well, but it feels a lot like someone noodling on a keyboard until they reach the appropriate level of spookiness.

But ultimately, all the components work well together, and the games feel like one person’s mad vision.


I don't think I agree that programming is a "higher" art form (despite wording my reply in the above manner, I'm pretty neutral to the parent post). But I do think it is wonderful when art+music+programming combine into a singular cohesive product.


> Programming is a higher art than painting or music.

No it's not, and it is imho a delusion to think otherwise.

Programming is engineering, it is about finding the best solution based on a series of requirements (performance, readability, time, etc).

There's very little creativity involved in programming as it is the case with pretty much any engineering field.

I don't understand this narrative of making it seem a creative activity which is not. That's not to say that it is #completely# void of creativity or "beauty", but I just dont believe this narrative of it being "art". And comparing it to painting or music is straight up circlejerk material.

In the end for every single argument you can give for programming being art, l can just answer you that it applies even move to math. Is math art?


In the long term all audio/visual art is going to devalue in the face of programming because making things go has more value, and programming uses graphics and sounds to make them move, without programming textures, polygons and sound waves are just meaningless... Artists have always used technology: canvas, paintbrush, instrument, etc. But eventually the technology itself becomes the meaning.

You can see this in game programmers that only use technology to draw/play (shaders, proc. gen. etc.). The medium becomes the media!

I understand it is hard to see now, since humans take a long time adapting to things but this 50 year old craft (the youngest craft we have and possibly the last ever to be discovered by humans) will eventually be the master craft once programmers realize they don't need companies to earn value that allow them to pay for real physical things.

It will take time, but in the large perspective of civilizations it will happen in a heartbeat, historians will write that it allready happened!


> There's very little creativity involved in programming as it is the case with pretty much any engineering field.

It depends on the context. If you program for bigco then there isn't much creativity. But if you draw imagines or make music for bigco there wont be much creativity either, they will want standard stuff done as cleanly and quickly as possible. However when you are programming whatever you feel like to make an enjoyable program then that is art, similarly to how someone who draws freely to make a picture that is enjoyable to look at is art.

When you got an idea for a program in your head then you go and program it as efficiently as possible. But that is exactly the same thing as an artist with an imagine in their head, they will try to draw that image as efficiently and accurately as possible as well. There is no difference here. The only difference is that programming is harder to work with and you can do more things with it. You can draw images with code, but you can also do so much more.

Made an algorithm that made pixels behave like water and is cool to look at? Great! Now make a whole game around that concept! Even greater! You can't say stuff like this isn't art.

https://store.steampowered.com/app/881100/Noita/


Yes, math is art! Math is worldbuilding, one theory at time. There's an astounding amount of creativity that goes in our definitions and proofs.

One could instead consider that math already exists, and we are just discovering it; but this is as useful as saying that all images already exist (in the set of all pixel matrices) and digital painters are just discovering images that were already there all the time.

The end result isn't all that matters; it also matters how we get there.


This is an incredibly depressing view of math, programming and engineering. Strandbeest is a great example of physical engineering as art. Neither discipline needs to be relentlessly practical and dull. If you must though think what happens when some of your requirements have more whimsy.


RPG Maker 2000! As a teenager I spent a huge amount of time messing around with it, mostly playing and dissecting other people’s games and engines. It also served as an introduction to online communities, pixel art, and other interests that remain relevant today. Good times.


Ebiten actually works fairly well. I believe there is an example of a game made using Ebiten that garnered 100,000 downloads on the Google Play Store. I am even more impressed after perusing this article. Thank you for sharing.


Game engines are the nearest we can get to ideal no-code tools, and after all the typing saved we still need a whole lot of code to define game mechanics, effects, interactions, and so on.


Link to scribe.rip, not medium.com




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: