13 ms·
The harsh truth of video games programming
- closetohome 5y agoI think the asset generation part is often wildly underestimated. Art is hard - commercial art can be harder. Sure you can buy assets, but then you need to be an art director - which is also hard. And the cost can get out of control very quickly.
- honkycat 5y agoI've been doing a lot of programming in Unreal lately, and I agree: It is hard. The docs are shockingly terrible, and 99% of the time I just end up reading the source code of the engine for documentation. It is also re-igniting my passion for software development and learning. So far I have: - Learned a LOT of linear algebra and vector math through "learning by doing" with 3d games - Learned C++ - Made a bunch of dumb little games during "game jams" - Built a particle system using Niagara, made it into a component, and attached it to my player character for a movement indicator - Made a valiant attempt at developing a procedural animated suspension system for a little car. If you have a path for learning how to do this procedural animation stuff, please @ me!! - Learned how to configure and implement the pathfinding and AI systems for Unreal - Realized I need to do a bit of a deep dive into shader development, and picked up a book as an introduction to shaders and have been watching tutorials. Fun stuff!! - Had to think a LOT about architecture for my game. - Learned basic blender modeling and rigging, rigged a model I have spent so much time and... I still do not have a functional game. But that is OK. If I was trying to do something simpler, I would have something. But I'm not, i want to learn and build something cool. Overall I see my gamedev as a "punk rock" kind of thing: I don't do it for the money, I do it because I want to and it fills the time with intellectually stimulating work.
- valyagolev 5y agoNot sure if that's what you're looking for, but check out Pixar's collection on Khan Academy. It helped me a lot even though it's not extremely deep https://www.khanacademy.org/computing/pixar https://www.khanacademy.org/computing/pixar
- The_rationalist 5y ago
- spywaregorilla 5y agoTry blueprints. Not because they're easier, but because they expose the engine API and make it so much more discoverable. IMO its a much better way to learn the engine. When I write c++ for unreal or c# for unity, I find I'm much more likely to end up time trying to implement a concept that the engine already handles, in a far superior approach than what I'm doing. Procedural animation isn't quite there yet, but control rig is slowly improving.
- Agentlien 5y agoOn the other hand if you make blueprints without really knowing the engine you'll quickly end up with a mess of cobbled together poor solutions which sort of work.
- kwertyoowiyop 5y agoYou can do that in C++ very easily too.
- Agentlien 5y agoAbsolutely, but I've seen it happen a lot more in visual scripting languages than in C++. Mainly because it lowers the entry requirements to people who don't understand what they're doing.
- kwertyoowiyop 5y agoAgreed 100%. Then you have to bring in a Sr. Engineer to reorganize and rearchitect all the “not code.”
- spywaregorilla 5y agoThat's fine. By the end you'll know the engine and be able to make it better.
- Agentlien 5y ago
- d23 5y ago> - Made a valiant attempt at developing a procedural animated suspension system for a little car. If you have a path for learning how to do this procedural animation stuff, please @ me!! > - Realized I need to do a bit of a deep dive into shader development, and picked up a book as an introduction to shaders and have been watching tutorials. Fun stuff!! Can you point me in the direction of resources for both of these? Or give me your contact information? Would love to chat!
- honkycat 5y agoFor procedural animation: I have yet to find the path to learning this skill. It is very opaque, and I think you just need to attack it with your brain and learn it. For shader and graphics programming: I liked this tutorial series as a "first steps" by Freya Holmér: https://www.youtube.com/watch?v=kfM-yu0iQBk https://www.youtube.com/watch?v=kfM-yu0iQBk Here is another list: https://www.alanzucconi.com/2018/01/03/learning-shaders/ https://www.alanzucconi.com/2018/01/03/learning-shaders/ The Book of Shaders is a popular suggestion, but it appears to be abandoned: https://thebookofshaders.com/ https://thebookofshaders.com/ For general Unreal? Tom Looman's $300 Unreal C++ class, available on his website. It is pricey but really excellent. I also discovered this AWESOME list of learning paths for all gamedev concepts: https://github.com/miloyip/game-programmer https://github.com/miloyip/game-programmer
- smrtinsert 5y agoI spent a good number of years doing similar. Back in day with Blender, Microsoft XNA. I did a bunch of work on shaders, modeling concept art, linear algebra, C# and then had reached demo stage where my main vehicles were interacting in a physics engine I had essentially coding using 3d models with basic art I put together. At that point I realized I needed marketing, business/legal framework, and more importantly distribution. I didn't even own an XBox, why am I targeting it? I decided to start over with LibGDX with primary platform being Android which was exploding - and the rest is history. Off and on 3-4 years down the drain I suppose. My advice to anyone considering this is do a minimal indie game compo. Set the bar as low as possible so that you get a feel for all of these important pieces of actually producing a game from start to finish. I still think my concept is sound, and I have 1 other idea I'd love to work on, but there's no time now that I'm old and with a family. My interests have pivoted back to music which is more quickly gratifying and easier to share. It doesn't help that the gaming community is a toxic user base in my experience. Finally, what does it even mean to make a game these days. It seems all people care about are in game items, markets to trade them etc. Nothing fun about that for me at all.
- ajuc 5y agoThere're some skills that are transferable in game programming. Mostly math-related - linear algebra, some basic geometry and trigonometry, algorithms like A*, graph stuff. I've done a lot of hobby game programming but never worked in gamedev, and the only time I had to use serious math at a job interview was the one time I applied for a gamedev position. It was very refreshing exercising these atrophied math muscles. EDIT: ok, not THE ONLY time, I remembered a few more, but it's much less common in non-gamedev
- Agentlien 5y agoThis is part of what I like about it. I work mainly with graphics and I use linear algebra, trigonometry, and the like on a daily basis. I need other types of math, mainly calculus, every other month or so.
- Spivakov 5y agoWould you describe more details about your work in graphics? What are the skills would you think that are important
- Agentlien 5y agoMy work itself is largely focused around performance and trying to get our games to work as well as possible across many different platforms. I also do some new feature development, though that has mainly been focused on implementing efficient replacements for nice but expensive effects. Near releases my focus also shifts when needed to help out with various crashes or other bugs. Most of my work is spent capturing frames in graphic debuggers, analyzing them to identify issues, then implementing necessary performance improvements. For a fairly representative example you can read this article I wrote about one aspect of my work for Lost in Random: https://agentlien.github.io/fog https://agentlien.github.io/fog . It doesn't go very deep into technical details since it was more aimed at people with some technical knowledge curious about game development rather than fellow graphics programmers. As such it doesn't mention the actual performance optimizations brought up during my internal presentation at the company. As for necessary skills: A lot of it is simply low level programming and knowledge about the target hardware. There's also the specific knowledge of graphics APIs and the languages and tools to work with them. When it comes to math there's a very heavy focus on linear algebra, even more so than in game development overall. Everything is about vertices and transforms applied to them. For modern shaders there's also a fair bit of calculus since everything from BRDFs in physically based rendering to effects such as ambient occlusion are described using integrals. I hope that answers your question.
- mrob 5y agoOne more harsh truth: the easier it becomes to make games, the higher the standard of quality needed to be considered "good". Everybody else benefits from improved tools too, and they're your competition.
- zinxq 5y agoThis also increases the sheer quantity of "not good" games. And the ability for copycats to copy games in record time. Relevant Escapist video about out-of-control rampant copying in Mobile Gaming: https://www.youtube.com/watch?v=Q30qZSEnI9Q https://www.youtube.com/watch?v=Q30qZSEnI9Q
- vlunkr 5y agoExactly, even if you make something novel and win the indie lottery, it's going to be ripped off immediately. Apple and Google are really failing at maintaining any level of quality in their app stores.
- bogwog 5y agoIt’s pretty much all their fault. The same way the internet is overflowing with ad-riddled blogspam due to Google, the appstores are filled with scammy/exploitative clones because that’s what makes the most money when there’s no competitive forces to drive quality control of any kind. For example, if the Epic game store became known as a source for good mobile games, customers will stop browsing the App/Play store for games and will instead go to the curated and high quality alternative, because why the hell wouldn’t they. If Apple and Google are forced to stop suppressing competition on iOS/Android, it may lead to an entirely new mobile gaming industry that’s actually somewhat respectable.
- TillE 5y agoIf you make a game which can be cloned quickly, you've made something extremely simple. Don't do that. Anyway, I would certainly not choose to develop mobile games, seems like a bad idea for many reasons. But look at PC games: you can make something as absolutely weird (and arguably 'unmarketable') as Disco Elysium, which needed no "lottery", it's simply a masterpiece.
- KevinThax 5y agoI've seen a trend in porno games development. Digging around their communities I found their main source of income is crowd funding during the development stage. They drag this period out for years and some are currently making $100k a month going by patreon statistics. Maybe the gaming industry needs to change the way funding is managed?
- dobin 5y agoSame here, first games in QBasic (no functions, all goto!) like Skifree. Used phaser.js for a bit. Last project implemented a sidescrolling beat em up in ASCII. The most important thing i learned was that implementing your game as classes (with inheritance and all that) is futile. Use ECS (Entity-Component-System), its awesome. Even a simple MVP takes like months or years to develop. During studying how Disney designed animations (the 12 principles, like anticipation, staging..) i realized just how deep you need to go into non-coding things like animations, music, graphics, UI, and more. Shout out to the r/roguelikedev community though, they are awesome. People coding on their rougelikes for 12 years seems to be not extraordinary.
- schemescape 5y agoDid you release the ASCII beat-em-up? Care to share a link? :)
- dobin 5y agoSure: https://github.com/dobin/nkeyrollover https://github.com/dobin/nkeyrollover. You can play it with "telnet exploit.courses". It will crash a lot. Stole some animations from "Stone Story" (Steam)
- edf13 5y agoThat is very very cool
- dobin 5y agoThanks. Still, abandoned it like the author mentioned after nearly getting the MVP to work. All which is left to do is fixing all the bugs, implementing all the skills, animations, enemies and bosses with choreographed attacks, and designing a lot of maps, add a story... (at least there is no music or sound effects). And of course, what often gets forgotten: Make sure it is fun, somehow. In my opinion, nobody can "make" a good game. Can just pump out a lot of games, and hope one is good. Be it EA, or King Digital Entertainment.
- RobRivera 5y agoI'm a masochist so the harsness is music to my ears. sips coffee
- adamnemecek 5y ago> The skills are not transferable I don't know about that. Yes, if you are only learning frameworks then sure. If you are digging deeper and understanding, GPU programming, math, performance optimization, architecture, physics modeling, network programming, all of those are very transferable skills. I think that some of the problems boil down to the language used. Game engines tend to rely heavily some Editor (be it Unity, Unreal or Godot). I'm hoping that Rust will solve some of this by having you use a pleasant language instead of relying on GUI tools. I legit think that it would make sense for high schools to structure their curricula around game making. You will learn math, physics, writing, art, music, programming etc etc. And you will have fun doing it.
- bradford 5y agoA lot of it isn't transferable. (specifically, things that are tied to the engine in use). But, it's odd, the author says in the same article: "you have to know about art, music, AI, level design, dialogue, story, just to mention a few." Many of these skills ARE transferable! They're also a lot of fun! The larger point of the article still stands. I've never completed a game (maybe someday...) but I really enjoy the hobby aspect of it.
- Shadonototra 5y ago> I'm hoping that Rust will solve some of this by having you use a pleasant language instead of relying on GUI tools. it takes years to make games and you think a language that have horrible compile speed can succeed? look at the market today, nobody wants to use C++ anymore to make games people moved to unity because it is fast to iterate unreal? people use blueprints for everything nowadays BECAUSE c++ is a pain and slow to compile, it hurts iteration time rust/c++ are anti fast iteration, it's anti-gamedev the people who push rust in gamedev are clueless and they deserve the language, best way to make people hate the language even more look, 5minutes to compile a single line of code in Rust in this game made fully in Rust, what's the advantage? the biggest advantage is these devs will be able to think about doing something else, because they'll never be able to release a game within the next 10 years at this rate https://www.youtube.com/watch?v=nR2WDBMjkh8&t=976s https://www.youtube.com/watch?v=nR2WDBMjkh8&t=976s i cringe each time people mention rust in gamedev, i cringe very hard
- somethoughts 5y agoRegarding the OPs comments on the non-transferability of learning Godot and Unity to marketable jobs skills as compared to learning about AWS, GCP etc. in your spare time - I somewhat agree with this. A potential way to make learning game programming potentially more useful on the job/marketable is when you get into the multiplayer gaming aspects of game development. There's a ton of realtime networking concepts (web sockets for realtime chat, etc.) as well as potential investigations into cloud management and realtime databases for multiplayer game state/sync etc. that could be useful during a technical interview. It might even be that multiplayer games are probably on the leading edge of the application of some of this technology and would give you a leg up compared to other candidates. There's also the potential you could end up with a more social game that broadens the potential audience for the game in terms of players and code contributors. Specifically with godot: Godot Multiplayer Docs https://docs.godotengine.org/en/stable/tutorials/networking/index.html https://docs.godotengine.org/en/stable/tutorials/networking/... Godot with Firebase https://www.youtube.com/watch?v=-vDNk7BzOGc https://www.youtube.com/watch?v=-vDNk7BzOGc
- avereveard 5y agoBah. A scene tree is a scene tree. A collision callback is a collision callback. My knowledge of ogre 3d transferred almost directly to other more modern engines, minus the API. If you think of the game world as a representation of its internal state, all games are similar. Editor's are only easier way to build the initial scene tree. Shaders are just a coat of paint on top, etc. There's nothing fundamentally different between the unity editor, the Eden editor and the build editor.
- dj_mc_merlin 5y agoNobody who is capable of finishing a game alone thinks it's easy. How could it be? The programming touches on so many highly complex areas, you need both visual art and music, on top of having to engage with what's going to be a completely new area for most: game design. From the perspective of a developer, not a player. If you're doing 3D, say hello to even more advanced programming topics, plus an entire world of 3D art techniques. You don't do it because it's easy, you do it because you enjoy the journey. If you actually want to produce a video game for commercial reasons in a reasonable time frame, hire a team or partner with like-minded people. Cut your scope in half, or more.
- stuckinhell 5y agoI'm trying to learn unity and game development as well. My day job is salesforce integrations, and wow I'm finding game development mindbogglingly hard. I thought it would a cute fun thing to with my kids since they love minecraft but . . . I'm not finding tutorials or books that work for me. Tons of documentation, tutorials, books are out of date, and I find the unity official tutorials not that great, they seem to be focused on super specialized tracks. Anyone have any good tutorials, books, videos they'd recommend ? I'd really like something concise and focused on 3d game development in unity without too much frills just to get handle on the basics.
- gameswithgo 5y agoOne thing that can help is to step back and do some very very basic game programming from scratch first. Make a simple 2d game like pong first. This will give you some basic understanding of how to draw pixels on the screen, how to collect input, how to track game states and do a game loop. Once these basic ideas are better understood, you can hop into a game engine and have some context for what the heck is going on. It will make more sense. Get familiar with the fundamentals before hopping into a huge game engine. Also avoid 3d for a while, the introduces so many complications and its hard enough just making a 2d game. A simpler game framework that unity can be used as well, like MonoGame, or Godot, or one of the Python game frameworks.
- bcrosby95 5y agoI've had to kinda bootstrap myself into this process as our company decided they wanted to try their hand at making a game and have me help with the process. The books, tutorials, and videos out there are okay. They will more often than not get things working. But the problem is they don't really go beyond that. They kinda assume you're a solo game dev working on a solo indie project and that's that. To go to the next step requires a mix of game dev knowledge (I've obtained a bit over the years), lots of software design sensibilities (to recognize when something doesn't feel right), and lots of digging on the internet (to try to find out how professionals are solving the problem you just ran across).
- hedgewitch 5y ago> I'm trying to learn unity and game development as well. My day job is salesforce integrations, and wow I'm finding game development mindbogglingly hard. What are you finding difficult? It's hard to make recommendations without a good idea of where you're stuck. My general advice, however, would be to just make things. Figure out a mechanic you want to implement, find any resource that describes how to implement it, implement that mechanic, and then move to the next thing. It's much more valuable to just build things and figure out how the systems interact as you go than it is to try and get a bunch of theory out of the gate, especially if you're not building your own engine.
- Agentlien 5y agoI've been making games for most of my life and I've been working full time with game development for a good while* and I disagree about skills not being transferable between engines. I feel once you move past a beginner stage you can focus on the similarities and quite quickly learn and look past their idiosyncrasies. I feel it's very similar to learning new languages. Once you understand the common principles and low level details you can very quickly learn and become quite efficient with a new one. * 7 years in the game industry proper, 4 years in surgical simulation
- BoysenberryPi 5y agoRegarding skills not being transferable. This is only somewhat true and the author is doing some goal post shifting here. What he said really only applies to game engines, not game frameworks and certainly not game programming in general. If you want to learn game programming and not a game engine, I recommend using something like Pygame or LOVE2D which are less prescriptive game frameworks as opposed to engines. However, even with game engines, I have spoken with AAA developers who have worked with both Unity and Unreal and they all say the same thing. Game engines are a lot like programming languages in the sense that once you learn truly learn how one works, picking up a new one isn't that difficult.
- tfvlrue 5y ago> Game engines are a lot like programming languages in the sense that once you learn truly learn how one works, picking up a new one isn't that difficult. As someone who has worked as a AAA game dev for almost 13 years, can confirm this analogy holds true. Off the top of my head, I can recall 8 different game engines I've worked on (all proprietary). You start to pick up on the common patterns and ideas between them, and learning a new one boils down to figuring out familiar interfaces. Just like when learning a programming language, you look for the fundamentals (loops, conditions, data types, etc). At the end of the day, "game engine" is a fancy way of describing an amalgamation of systems that gather input, maintain a complex state machine/simulation, and draw it on a screen. And from my experience, the way different engines accomplish this doesn't truly vary that much.
- MonaroVXR 5y agoI want to know which games you have worked on, I'm interested in how things are working behind.
- tfvlrue 5y agoThe studio I'm at has hopped around a bunch, so I've gotten to do work for a range of franchises over the years. Guitar Hero/Band Hero, Call of Duty, Skylanders, Crash Bandicoot, Destiny 2, and most recently Diablo II Resurrected. And also quite a few different platforms (Nintendo DS/Wii/Switch, PS3/4/5/Vita, XB360/1/SX, Apple TV and iOS). I've mainly done engine and tools work, often for UI or scripting systems. From my experience, each studio and franchise tends to make its own custom engine and tools. Although, in some cases we managed to reuse a decent amount of in-house technology across projects. The Tony Hawk remaster was an unusual case which used Unreal Engine instead. It's given me an interesting perspective behind the scenes of AAA games. These titles may all use different software but they're fundamentally built on the same principles. Once you get the gist of how games like this are put together, learning another isn't a big stretch.
- mathgladiator 5y agoI want to make games, but even some years ago I realized it was not a great path for a multitude of reason (many of which are in this article). My path, and what I recommend, is do something hard and important which pays the bills at a premium. I did infrastructure work, and I was lucky to have a great decade long career allowing me to "retire early". Now, I can work on a game at my pace building the tools that I see fit. I'm focused on board games because they have a timeless quality about them. I'm developing an entire SaaS platform and programming language to make the network goo beyond easy. http://www.adama-lang.org/ http://www.adama-lang.org/ As I'm getting close to some kind of launch for the SaaS, my next thing is to build up my own web based IDE with a release-often ideology such that I can build a Roblox for online 2D board games. Honestly, I'm having a blast because I'm not suffering tools which are going to fade.
- uejfiweun 5y agoI'm pretty much in the same boat as you. Would love to become some kind of indie game developer after leaving FAANG, but no interest in getting worked to death at a big studio. For my understanding, what level of net worth did you reach before pulling the trigger on early retirement? I can't imagine that the indie game dev route can generate income comparable to big tech, except in very rare cases.
- ativzzz 5y agoThe level is different for everyone, but a really simple model is to spend no more than 4% of your investments every year, so it depends on how much you spend. https://old.reddit.com/r/financialindependence/ https://old.reddit.com/r/financialindependence/ is a reddit community that goes in depth about this
- mathgladiator 5y agoI don't imagine I'll ever make as much as I made within big tech, but I use the 2.5% rule (instead of the 4% rule), and I moved back to the Midwest where things are much cheaper.
- bckr 5y ago
- uejfiweun 5y agoGames programming is rather difficult, yes. Especially 3D games. But also, it's easier than ever. I would have loved to make 3D games as a kid, but my lack of art skills made it impossible. Now with the Unity Asset Store, suddenly a simple programmer like myself can make some really good-looking 3D stuff. I've been working on a Metroid Prime clone in my spare time just for fun in Unity. And yes, what the author says is true - it's really freaking hard to get all the details right. Even something like weapon bobbing when you move takes some thought. But it's really rewarding and fun, and I am basically making my dream game. I don't expect to ever release anything, but I'm enjoying the ride. Also, anybody ever write DarkBASIC as a kid? This was the first programming language I ever learned, because I wanted to make games. It was a great intro to programming.
- kderbyma 5y agoOh yeah! DarkBasic! I remember that was one of my first attempts. but I liked SDL and C++ and the Toque Engine too around those times.
- throwaway5486nv 5y agoFor 3d is unity or godot better?
- dietrichepp 5y agoFor whatever reason, I’ve been helping people solve problems with their games for something close to 20 years. I have a particular memory from 2004, where somebody sent me the source code to their game and I fixed the 3D transformation code in it and explained what was going on. It was a bit more cumbersome without GitHub, Pastebin, or Stack Overflow. Over that course you see a lot of people come into the community, have all sorts of beautiful visions and grand ideas, run face-first into the harsh reality that they are ill-equipped to realize their dream, work on arcane technical aspects of their code with the dubious goal of developing some kind of interesting skill, and eventually burn out. The thing is—I agree with the first point that “most developers will never finish their game” but I think the wrong lessons are being taken here. If you try to understand the problem, there multiple contributing factors which explain why amateur developers fail to make games, and once you start to understand these factors, you can nudge people in the right direction or at least give them a map of the territory. - Cause: The gap between skills and vision is large. Mitigation: Reduce game scope, study relevant skills, work with teammates. - Cause: The gap between skills and vision is unknown. Mitigation: Complete small projects to get a better idea of what skills you have and a better ability to estimate the size of projects. - Cause: The developer never finishes any projects. Mitigation: Game jams and short deadlines. - Cause: Projects fail to attrition—the developer’s interest wanes over time, and the project gets less fun over time. Mitigation: Shorter timelines, smaller projects. - Cause: Poor technology choices. Mitigation: Use mainstream / popular technology such as Unity, Unreal, Godot, etc, and give yourself a limited number of passes to pick a weird technology. - Cause: Deep, unexpected technical problems with the game. Mitigation: Start by making games that are more similar to existing games made by teams with similar resources and experience levels, until you have more expertise. - Cause: The game looks terrible. Mitigation: Work on a team with an artist. Or dedicate time to studying art, and find an art style that you are comfortable with that does not require too much effort. - Cause: Can’t figure out how to solve basic programming problems without a tutorial. Mitigation: Work on a team with a programmer. Or dedicate time to studying programming. - Cause: Design choices unexpectedly cause high workload. Mitigation: Make prototypes to test critical design choices. - Cause: Iteration time is too long. Mitigation: Use technology that supports faster iteration times. This stuff seems obvious and yet there are so many obvious things that typically go wrong in a failed project. “I never considered working with teammates” is common enough. “I don’t want to give up my idea of an action RPG with Metroidvania platforming segments and a massive branching storyline” is a common enough type of problem. These problems can be solved much more easily when people working on games spend time in contact with people who have the experience—professional game developers or successful amateurs are one obvious choice, but school is another good choice. You can make the same mistakes over and over again, it helps to have other people around to point it out for you. > I myself have abandoned 2 dozen games, in platforms ranging from PhaserJs to Unity to Godot. This is, frankly, a bit worrying. It reminds me of Schopenhauer’s take on will, how he calls will “blind incessant impulse without knowledge”. We feel the strong urge to make games, but these incessant impulses must somehow be tempered and refined if they are going to achieve anything.
- spywaregorilla 5y agoI'm surprised people praise the unity asset store so much. It seems very unlikely that I would ever be satisfied using a significant portion of it. Not because its low quality but its often very specific in style or content or whatever. I could never adapt my (shitty) artistic vision to adapt to what I happen to find on the store.
- lowbloodsugar 5y ago>I myself have abandoned 2 dozen games There's a book about quitting smoking that spends the first 99% of the book providing the proof that smoking kills. The last page is how to quit smoking: "Never put another cigarette in your mouth and light it." Here's my book on how to make a video game: "start writing a game and don't work on anything else until it's finished." I started writing a game in college, and despite having tons of cool ideas, I didn't work on anything else until it was published. It got me a good couple of decades in the industry. >It's easy to lose heart and just quit. Not if you love it. >There is no treasure at the end of this rainbow: You can spend years with nothing to show for it Do you mean money? Sounds like you mean money. Because a great game is a great game. My game made me less than $1000. Which was a bummer, sure. But there's reviews of it on youtube. People enjoyed it. I am happy, and I had a great time building it. If this is a means to an end, sure, quit. You simply can't compete against someone who is as good as you but who also loves what they do. >Sure you can outsource or buy art Or you can make a friend! I met a guy who had mad art skills, and could create awesome tracker music. Celeste [1] is one of my favorite games. My favorite indie game. I suck at it but my kid as completed it. It is insane hard, massively rewarding, and the story is moving. IIRC these folks got a house together. Make friends! [1] http://www.mattmakesgames.com http://www.mattmakesgames.com / http://www.celestegame.com http://www.celestegame.com
- legitster 5y agoNot a programmer, but I really miss Flash. It seems like the barrier to release a game and actually have people play it is so damn high. But before Apple effectively killed it, the Flash ecosystem was beautiful. The games were simple, came out fast, and fun! You could have a proof of concept with less than an hour of gameplay, get it published on Armor Games or Kongregate, and have people gush on it and give feedback.
- ren_engineer 5y agois there a YCombinator for game development? Seems like a decent idea, give enough money for teams to have some runway to work on it full time in return for equity. The investor could also have a few full time people to help out with skills that the average game dev doesn't have. Eventually the network becomes the most valuable part and a flywheel effect is created closest thing I can find seems to be Unreal offering grants
- steve_coral 5y agoMany indie and larger publishers allow you to submit / pitch your game
- oneoff786 5y agoPitches are pretty worthless. Ability to execute is what matters. It’s not like business where you can easily identify a novel need to solve and the value is self evident. Indie devs are particularly susceptible to imagining their game is fun, and attributing that to the fact that their idea must be a good one. This is triply terrible when the plan is to make a game that is big and has tons of story.
- deleted 5y ago[deleted]
- sleepingadmin 5y agoGodot has me so excited. Finally a good open source python(like) engine with all the bells and whistles. I have only done the tutorials for godot. Not even trying to start my own project. The real caveat for me on video game programming. The programming isn't the problem. It has everything to do with 3d modeling, texturing, etc. I kind of dream about starting my own video game project up using godot, stream on twitch/youtube making it so I could get some revenue going. Kind of what star citizen wanted to be, starfield will likely be, with my own take. Kind of a skyrim meets han solo meets the martian meets chess meets piano meets metasploit. But I really hold back because family to feed, diapers to buy, mortgage to pay. Boring game dev streaming like that won't be paying those bills.
- f0e4c2f7 5y agoYour game sounds fun I hope I get to play it some day. If you do, please consider adding VR support.
- sleepingadmin 5y ago>Your game sounds fun I hope I get to play it some day. If you do, please consider adding VR support. Oh for sure, godot has that built into the engine I believe. https://godotengine.org/article/godot-3-vr-and-ar-support https://godotengine.org/article/godot-3-vr-and-ar-support My big feature I would be supporting 100000% is BCI. Being able to play without keyboard/mouse/pad just your brain. The game wouldn't be super serious. Kind of TF2 style where it's more casual. Robot's would pick between 'binary and non-binary' for their gender lol, tongue in cheek joking obviously. I think there would be a factor of trying to build teams as well. Han Solo isn't Han Solo without Chewbacca. So obviously at least co-op to start. But alas, as I said. On hold until a million $ lands in my backyard.
- lewispollard 5y agoJust get a cheap/free 3d asset pack from itch.io and go nuts. It helps to know some concepts about 3d like UVs, normal/AO/specular etc maps, triplanar mapping, vertex colouring etc. but other than learning a bunch of new words it's not that difficult. But making 3d assets yourself is super time consuming. There's also a lot you can do with 2d pixel art assets in 3d if you like a retro style. Godot has (Animated)Sprite3D which makes it very easy. Though it may be fun, setting up a whole streaming platform and engaging an audience is a whole shitload of extra work on top of the actual gamedev, so if you have limited time best to really truly treat it as a hobby and squeeze in an hour or two on certain evenings or something. I love Godot BTW, here's my latest project in it: https://twitter.com/TetrisMcKenna/status/1486629669252313088?t=eWfvlw4vOkDP2ljlIQi3gg&s=19 https://twitter.com/TetrisMcKenna/status/1486629669252313088...
- boredtofears 5y agoGames are high frequency event loops with highly mutable state. This means it's inherently easy to end up with side effects that are hard to trace.
- sovietmudkipz 5y agoI disagree slightly on the transferable skills. I've been in the video game creation hobby for 1+ years now. Embarrassingly, programming for video games is helping me break down problems and invent mental models & solutions to solve those problems. This has helped immensely I'm my ability to think more abstractly, and how to push libraries away from the 'core' domain of my solution space. It makes me a better programmer.
- davidfactorial 5y agoI relate to this a lot, having also started and then not finished a lot of games like the author. Perhaps it seems obvious to say, but I have only recently fully internalized that making games is not the same activity as playing games, and that it will take many orders of magnitude more time to polish even one gameplay feature compared to how long it will take for that gameplay feature to become stale _to me_ as the dev playtesting that feature over and over again. I wonder if a lot of gamedevs just get tired of playing their own game and thus don't care about it anymore as a result? Seth Godin has a book called The Dip about the slog in the middle that many creative projects have (business starting as well). I wonder if gamedev has a particularly nasty dip and that is why so few finish.
- davidfactorial 5y agoIncidentally the few games I have actually finished were all Ludum Dare games with a very short timescale of 2-3 days.
- whateveracct 5y agoI usually take the Friday + Monday off of Ludum Dare, and I block out the entire weekend for the event. Turns out, making space for gamedev makes me make games.
- WalterBright 5y agoI never got tired of playing Empire.
- khalladay 5y ago> I wonder if a lot of gamedevs just get tired of playing their own game and thus don't care about it anymore as a result? FWIW, if you work on large enough projects, you probably aren't playing the game that much at all unless you're a gameplay programmer (and even then, you might only play the small fraction of the game that your feature touches). I do graphics/engine programming for games and the closest I get to playing the game is "load into level, teleport to position X, use a cheat code to give me item Y, use Y, see rendering bug" I've joked on some projects that I'm excited for the game to ship so I can learn how to play.
- edf13 5y agoI’m in the camp of starting many many games, for many many years… from C64, Amiga and PC. Having the commitment to finish (and know when it’s finished) is hard.
- jasim 5y agoJason Gregory's Game Engine Programming is the book for anyone looking to build transferable knowledge about computing while somehow being around games. Of course making a game and a game engine are two different ballgames, but what a book! A game engine deals with managing a large, complex, intertwined domain. It requires parallel and concurrent programming, graphics and the 2d and 3d math to go with it, GPU programming, animation, audio, timing, memory management, profiling and on and on.
- SimianLogic 5y agoI've published (and abandoned) games written in: java, flash, xna (C#), adobe air, javascript, objective c, rubymotion (now dragonruby), swift + uikit, swift + spritekit, unity, haxe my current favorite is pixi.js with typescript bindings for what I do (mostly simple 2d games), they're all pretty interchangeable. if you've got a decent scene graph, good text rendering, and a way to play audio -- you're most of the way to a game engine. i agree with the original author, but i don't agree with the reasons. people abandon games because making fun games is hard. you can execute your idea perfectly, only to find after a few hundred hours of code later that your idea isn't very fun (or, alternatively, creating content is a slog) most prototyping is gameplay programming, but I'd say most of actual game dev is UI and content. the amount of polish needed to finish something and put it out into the world is significantly more work than just making something that kinda works as a prototype, and if you're doing it as a hobby it's way more fun to just make more prototypes
- russellbeattie 5y agoMy son did a project in his senior year of high school using Unreal and I volunteered to help, figuring that 25 years in tech would be enough for me to get up to speed relatively quickly. I soon discovered that Unreal - and more generally, the entire video game industry - is a whole alternative universe of tech. Example: On the Unreal site there are official "code" "documentation" examples which are simply screenshots of a "blueprint", which you need to recreate yourself by navigating all the menus and drawing all the various input and outputs manually. YouTube tutorials are 10 minutes of a guy trying to find where some property setting is and connecting dots in order to pass a single value from one object to another. How this "code" is tracked under the hood, I never found out. Versioning must be a nightmare. Anyways, yeah, I'm not surprised your average dev throws up their hands eventually.
- 999900000999 5y ago>The sad truth – most developers will never finish their game You don't need to finish to learn. >The skills are not transferable I've never seen a statement so wrong. I taught myself how to program with Unity and I showed off my game during an interview and got my first salaried job. Definitely wasn't a game industry position, the point is they made mobile apps and I had a game on the app store. Unity uses C# and it's not radically different outside of Unity. It's much more effective to learn by building projects , vs going though a learn to code book. I want to make amazing games, programming is merely a tool for this. For my current project I actually have a web component ( Flutter Web is the most fun I've had in years) that integrates with the game. I don't get what the author is trying to say. You used Godot which is known to be much rougher around then edges than Unity. You're then upset it takes longer to get things done.
- beepbooptheory 5y agoOk well let me tell you, that was a huge break to get that job with the game. Not that I dont think there is transferable skills in it, I agree with you there, but still not many people these days will take you seriously if you add your game to your portfolio. I naively used to think so, but noone emails me back when I do that. Goes double for any kind of music making program or tool. I can only assume my applications go straight to the trash when I do that. Never a peep!
- 999900000999 5y agoI have an amazing career and my games are on my portfolio. A mobile app , even if it's a game, is still a mobile app. What does the rest of your resume look like, did you finish college? I got to 6 figures sans degree, but college might help
- beepbooptheory 5y agoI have a masters in philosophy, graduated with distinction and have top GPA for both runs, but I actually get more responses not mentioning any of that. These days, as I have been told, getting an email back is less merit based than it is playing the right game for the initial algorithmic screening. Once you get through that though and do interviews, your merits become a lot more important, but the initial step is huge. It has taken me years to get to the point where I get an email back like... 1% of the time. Its a big black box, but you have all the room to experiment with it! I am really happy for your success though!
- psyc 5y agoMore like "The Harsh Truth About Me" I'm a 30+ year veteran of both the indie and mainstream game industries. I've completed and released 4 titles solo. I once transferred my "non-transferable" games/3D/Unity knowledge to a dream job in Oculus Research. More than that, I've transferred my somewhat-game-specific ways of thinking about computation, simulation, and UI/UX to boring business jobs to great effect. Use your head and don't be so literal about what a transferable skill is. It needn't be memorized function signatures from the Unity API. If you're looking to commiserate and feel better about how hard game programming is (and yes, it's hard) then this article is for you, maybe. Probably not. I don't know what good it will do you, but you can commiserate and feel better about quitting and finding something you like better. And if you don't really like game programming, obviously don't do it. But realize that not finding it rewarding is a statement about you. I've found it immensely rewarding in all the usual way$. But if you're looking for anything constructive about becoming a better game programmer, this article may hinder you. It depressed me to read and to think that other people are going to read it and agree with it.
- k__ 5y agoGood points. I knew a Flash dev who failed miserably after Flash went down the drain. I also knew a bunch who switched to other tech no problem. I know a bunch of smart people who never finish anything, but I also know many that do.
- cableshaft 5y agoAs a former semi-prolific Flash game dev I will say that nothing has really compared to working in that and I can no longer crank out games like I could when Flash was the big thing. Although that being said, part of that may be my standards for what constitutes a finished game have gone up a lot since then, probably.
- gopher_space 5y agoI think the author just needs a break and a little perspective. As you say they're wildly off the mark regarding transferrable knowledge. They even say > Especially for an indie dev– you are more than just a code monkey. You will have to know a bit of everything. And even in traditional gaming, most developers seem to know more than their narrow field of coding (just my impression from interviews etc). at the end. They're clearly aware of the skills they've picked up.
- markus_zhang 5y agoIf I get into game dev, it's definitely going to be a few years in a studio and at the same time/then indie. The studio exp could be valuable about learning the process and tools, but they are not enough for indie in the sense that indies need to wear multiple hats while in studios they usually wear just one. I believe early ID software is the best model for indies. Everyone can wear multiple hats, are super passionate, share the same interests and bagged 5-10 years of exp already before putting up the company. Such company can really move very fast.
- timtimmy 5y ago> The skills are not transferable In the immediate race towards "AR (and VR) all the things" (Meta), game developers are poised to be in high demand. Maybe we'll see the insane salaries of ML engineers directed at game developers if the metaverse takes off.
- futharkshill 5y ago> Your boring programmer maintaining a 10 year old Java app written with vanilla Js earns more than most game programmers. I have a feeling this article is not written by any professional programmer
- journey_16162 5y agoI don't have experience with games, but I dare say it's not exclusive to games. I work on a desktop app for over a year. Initially I thought that 1,800h was a fair estimate for minimum acceptable version. I put 1,400 of raw dev time in 2021, I got a very rough prototype that is barely usable and far from finish. I estimated that going at this pace, I need at least 2,500h more but realistically - 3,500h (making a grand total of 4,900h), which is going to place the launch somewhere Q1 or Q2 2024 - I don't work full-time, I'm freelancing and I spend a lot of time thinking how I can maximize the number of hours I have. In 2021, I kept freelancing at 15h/week average. Now I'm upping paid work significantly to make some savings and accelerate later. I love it, but the sacrifice is huge. I'm 26 and I get to experience very little regular life. I can't imagine giving up though at this point.
- kristianp 5y agoThis is my take on this too. Software in general takes a huge amount of work to reach "completion". Mvps exist because of this. Somewhere in the "hardcore software" book (1) Stephen Sinofsky touches on the amount of work to ship desktop software. (1) https://hardcoresoftware.learningbyshipping.com/about https://hardcoresoftware.learningbyshipping.com/about
- yumaikas 5y agoI think a huge gap here is between gamedev as a hobby (where throwing away prototypes, or only doing jam-level games is fine and fun) vs trying to make games as an indie with an eye for quitting their day job. One of those is massively harder than the other. And, I'd argue that if you want to consider indie-level gamedev efforts, it makes sense to spend 6 months as a hobbyist first, to kinda feel out the territory. And, for me, if someone interviewed and showed off a game project, I know they've dealt with lots of mutable state, and the challenges therein, which is worth something.
- jakeinspace 5y agoUnity, Unreal, and other modern 3D engines let a solo developer create something that looks nearly AAA if they buy decent assets. The problem is that turning a pretty walking simulator into a game with good mechanics, interaction, sound, consistent style, and a fun factor (not to mention story and characters) is always going to be hard, unless you’re able to ask GPT5 to generate all of that for you from a few sentences. If you have a pretty physics/walking simulator, but very shallow mechanics etc, it feels hollow. If I had to guess, I’d say that an equivalent amount of development on a 2D pixel art game will give players less of that hollowed-out feeling. The more graphical detail you provide, the less is left to the imagination, and therefore the implicit expectation of detail goes way up.
- travisgriggs 5y ago> It's a huge ugly monster with dozens of keywords (buzzwords?). You spend 6 months passing an AWS exam, and all you have learnt is how AWS works. This was actually the comment that stuck out most to me. Because it's an abstraction of the specialization that's going on in the industry that worries me. Sure, you can learn general computing skills as a side effect of pursuing this efforts, but increasingly, we are learning how to drive tools, rather than solve problems. The effort to grow proficient with increasingly complex tools and frameworks is greater now than the effort to grow proficient in a particular language (even some of the more complex ones).
- peisenmann 5y agoThe thing is that AWS is an enormous cross-section of functionality and specializations across the entire software industry. You can make a career out of being good at AWS. As a software engineer with years of experience deploying web applications to AWS for multiple companies, I can't grasp why a programmer would take a 6 month course, take an exam, or go to any huge effort to learn how most of it works. In my opinion, when you're a single-person team, it's much the same as writing a novel in that you have to keep moving. Stagnation is the death of the project. You have to take a single task, learn what you need to get that one thing done, do it, then move on. You don't need to know everything about everything at the start. It's not really a problem unique to game programming. Plenty of software projects never get finished. You can find their corpses all across GitHub.
- sodapopcan 5y agoI'm just getting into game dev, though starting with the tic 80 [0]. I've found it kind of funny how, like, matter-of-fact it is. In my mind there was always some magic algorithm going on and I guess there arguably is but it more like, "check the x and y coords plus the character's height and width and do those coords touch a coord on the map that is considered solid and if so, set the player's velocity to 0." It's like, "Oh ya, duh. Damn, I was hoping it was just magic." In the spirit of this article, I was going hard at it for several days but have not worked on it since last week. [0] https://tic80.com/ https://tic80.com/
- amitmathew 5y agoWow, this resonates so much that I'm building a company around the idea of finishing games. I was a professional game developer over a decade ago. I used to try to build games on the side and I never got anywhere. I just messed around with engine internals, graphics code, and went down the never-ending rabbit hole of game engines. I worked on some big-budget games, but as a small cog on a large team, it never felt like I finished my game. I left gamedev years ago to launch a few startups. After selling my edtech company last year, I picked up Godot on a whim and guess what...I finally could see myself finishing a game. Not messing around with engines, not writing low-level graphics code, but actually finishing a game in a few months. It inspired me so much that I'm starting a community called Quiver (https://quiver.dev https://quiver.dev). It's still in development, so I don't have much to show yet. But hopefully in a couple months we'll have tutorials, project templates, and a lot more. And here's the thing - with the right guidance and the right tools, I believe a whole bunch of new people will be able to finish their games that wouldn't have previously. If this is interesting at all, please shoot me an email (check my profile).
- MattRix 5y agoMaybe I’m missing something but why not actually finish a game first instead of making a community about finishing games? How can you know what those people need without doing it yourself?
- amitmathew 5y agoWell I'm doing both. Like many of my intended audience, I'm doing it part-time (nights and weekends), while working on Quiver doing during the day. It's progressing quite steadily and over the last 10 years, I have learned to become a lot more efficient with my time. My last startup was also about time management, so I have a lot of experience helping people finish what they start. I should add that this is really scratching my own itch. I wanted a place where I could learn and build in public, so I decided to create a place like that.
- MattRix 5y ago
- wly_cdgr 5y agoWho woulda guessed that being a graphics programmer, gameplay programmer, network programmer, tools programmer, creative director, mechanics designer, systems designer, level designer, art director, artist, composer, sound effects artist, qa analyst, ux designer, social media coordinator, customer support specialist, marketer, community manager, graphic designer, copywriter, data analyst, etc in one would be one of the hardest things you could ever try to do. And funnest and most rewarding
- trzy 5y agoI worked on AR at one of the FAANGs. Game developers as far as the eye could see. It’s definitely a transferable skill set. Any job that hires you because you can be productive in some particular obscure stack (like AWS) is going to be boring grunt work. The interesting roles want people that can think outside the box, design, and then implement entirely new things that don’t yet exist.
- planetis 5y agoThat's why I mainly use Nim for creating games. It's a *fun* language, out of your way for rapid prototyping, *safe*, it has all sorts of safety checks (nil, overflows, ranges, variant object transitions) that you can disable for performance critical code and RAII style destructors, where copying is allowed by default but you can optimize when you need to by inspecting the IR (easy as it's Nim syntax, you just watch out for inserted copy calls) and *extensible* there are all sorts of DSL in the packages from HTML gen to ECS libraries and finite state machines. Macros allow you to easily create performant code that otherwise no one would bother write by hand.
- 4lp 5y ago>If anyone has a good solution, I'd be happy to hear your thoughts. Unfortunately the solution I've found is to only commit to making a game you're at least 90% sure you can complete without learning any new tools/engine functionality/design practices, etc. The "write what you know" advice for writers is directly applicable to commercial indie game development (maybe to an even greater degree). Additionally: I think it's quite unreasonable to expect that you won't get demotivated over the course of a year(s) long project when even the most basic features require hours of research before they can be brought to a functional stage, not to mention the stage where they begin to coalesce into something fun.