4 ms·
Updating Gun Rocket through 10 years of Unity Engine
- hoelle 6mo ago> Hey nerds: dark theme is dumb. Just light up your space. Eye strain comes from the contrast between a bright screen and your dark room background. Fix your lighting. Or if you insist on being a cave goblin then lower your screen brightness. Dark theme is overrated. Fight me. Light theme might have a readability edge in daytime / well lit offices. But I'd bet most people using Unity are hobbyists doing it at home in their evening hours, when you want to dial down your blue light for the sake of sleep.
- spijdar 6mo agoI'm going to "partially" side with the author on this one, but with a big caveat: a lot of displays simply don't get dark enough to make light mode palatable, especially in low light conditions. With high quality displays that have good contrast and backlight controls that go "really far down", I prefer light mode UIs nowadays. But, only a few of my displays can dim enough to make it work in dark(er) rooms. CRTs were great at this, with the brightness control for the raster. LCDs generally aren't, though the fancy "FALD" backlight in my macbook pro does get dark enough to make light mode work well in dim spaces.
- dundercoder 6mo agoI’ll fight. Dark theme isn’t just a UI preference. It’s an accessibility tool. I have a degenerative eye condition that has progressed to the point where I literally cannot use a black on white display So I use dark reader on web and get creative with apps that think dark mode is dumb.
- dminik 6mo agoIt's funny, but I have keratoconus and at this point I can't read white text on a dark background. If an app doesn't have a light theme, it's very hard for me to use.
- dundercoder 6mo agoThat’s wild. Mines a lack of living retina cells from retinitis pigmentosa. I need bright light to see, but bright light causes glare. I’m guessing hard contacts not helping anymore or not an option? Have a buddy who is maintaining his vision that way.
- dminik 6mo agoI'm technically waiting until my vision stabilizes after an operation to get contacts. So it's not quite that bad yet. I've read that other people prefer dark themes, but for me that doesn't quite work. Something about the light letters glaring (as opposed to the background) just doesn't sit right. Needless to say, the current era of sleek black/dark apps and dark themes being hip in dev tools is not fun. I do miss them though.
- Cthulhu_ 6mo agoExactly that. I wouldn't be surprised if supporting a dark colour scheme becomes a WCAG thing, which if it does, it becomes a legal requirement under European digital accessibility laws. Anecdotally, I just find dark mode more comfortable, even during daylight.
- bob1029 6mo agoI started using light mode more often once I learned about the automatic brightness feature on my monitor. I suspect that changes in ambient lighting over time are what drive most people to max out their backlight and use dark mode. It generally works in all conditions.
- vasco 6mo agoPeople use dark mode because they think its cool and haxxor like Tactical Knives sell more than regular Knives. The rest is window dressing.
- dundercoder 6mo agoI use it for visual accessibility but I won’t lie, I do think it looks way cooler. My first computer was a 286 with DR-DOS. That could have something to do with it.
- junon 6mo agoRefreshing writing style, please never change. This was fun to read.
- deleted 6mo ago[deleted]
- vivzkestrel 6mo ago- as a non game dev guy i had to really ask - do you really need a game engine for making a 3D counter strike game? - arent there libraries in c++ like raylib, jolt for physics etc? - if you had to make a CS type game, what libraries do you think would be needed to get it done without touching unity, unreal, godot etc?
- npinsker 6mo agoThe game is a 2D orbital physics game that's so simple it could opt for hand-rolled physics. I'm curious what about the article makes you wonder this?
- canpan 6mo agoYou don't need it, but as someone who has been there: For me making a 3D engine is a lot of fun! But then I never finish the actual game. So if you actually want to ship a game, I recommend using an engine. Personally I prefer Unreal. For 2D, yeah, making the engine yourself is fast and easy. Can go without a big engine.
- sho_hn 6mo agoYou can definitely do that, and it's really not too bad. Grab SDL or Qt (underrated; gets you a nice menu and HUD layer) for windowing/input, basic event loop, etc. Write a renderer, e.g. on top of wgpu or bgfx depending on how much scaffolding you want to have to write yourself. OpenAL Soft for audio. Jolt or Bullet for physics. A good scene/world model as the backbone, and ways to efficiently mutate and propagate state. You can pick up an ECS lib for this, or just go custom and hand-wring your data structures, mutation journals, caches, what have you. Your scene model feeds into (and interacts with) collision/physics, audio (listener/sound sources), your renderer for viz, etc.. For gameplay a nice approach is some fundamentals in native code (e.g. triggers and actions) and then a scripting bridge. The problem is basically that doing a good job requires a substantial amount of experience on several levels of being a dev: Good architectural knowledge (incl. state of the art, historical examples, trade offs), lots of domain-specific techniques (rendering, stepping, etc.), solid systems engineering (good platform/shell abstraction, OS/platform integration bits, debugging/logging/tracing infra), being handg with algorithmic work, performance/optimization-minded work, and so on and so forth. It takes probably at least a solid decade before you can knock this out without tripping up or needing a lot of endurance. Oh, and on top of all of that don't forget to design an actually fun game.
- reitzensteinm 6mo agoThere's not a lot of churn in Unity, but that's more because they mostly fail to ship anything of significance than due to excellence in backwards compatibility. I was in the audience when DOTS was announced, and a decade later Cities Skylines II showed how ill equipped for prime time it remains (not that the developers were blameless).
- stingraycharles 6mo agoCities Skylines II is such an immense resource hog compared to what it actually does.
- KronisLV 6mo ago> There's not a lot of churn in Unity Deprecating entire languages (probably the right call long term, oddly enough Godot is keeping GDScript around). Render pipelines (URP and HDRP to be merged, built in likewise being deprecated). Most of the things around DOTS. Most of the things around networking. The whole package management system (I mean, it’s a nice idea, still counts as churn). Also multiple approaches to UI and input. I would say that a lot of the new stuff is built on good ideas but I sometimes wish they’d slow down a bit and ship actually thought out and finished features. And most of the above already had alternatives previously, this isn’t even getting into wholly new things like Sentis, if you are working on an old project thankfully it will mostly keep working, but if you need to keep up to date with the current mechanisms and practices, there’s a lot of churn. Maybe not as much as in Godot, but to be honest that other engine is going through a lot of evolution so instability and a feature explosion is to be expected (despite terrain still being a plugin, while Unity’s own terrain implementation is oddly dated and abandoned, while their water system felt like a tech demo and more often than not the asset store is expected to do the heavy lifting), while Unity tries to appeal to everyone and capture headlines it seems. Just look at the marketing around DOTS (and how long it took for it to be usable).
- ndepoel 6mo agoA lot of the things you mention there have been in development for the better part of 10 years already, and still haven't reach a stable, mature and production-ready state yet. Unity have also kept deprecated stuff around for much longer than they should have, which sounds great on paper for backward compatibility, but it just means they're lugging years of technical debt with them and it's slowed them down immensely. Looking at the past year of Unity updates, since 6.1 or so, it seems that most of the focus is now going to refactoring major parts of the engine to facilitate backporting HDRP's feature set to URP. It's all good work and high time they did some cleanup and committed to a single standardized render pipeline, but it's not exactly moving the needle forward very much yet.
- 0x1ceb00da 6mo agoHe worked on the engine itself, and he had to go through this to port a simple game to the new version. I feel the situation would've been much worse if the game was not super simple. But people still ship excellent stuff with unity. Superhot (2016), outer wilds (2020), and limbo (2011) received patches last year. How do the developers of these successful games manage that?
- Tadpole9181 6mo agoI haven't read the patch notes, so I may be wrong, but they probably don't upgrade the engine across any major versions? The developers just load up an old version of Unity to work in. See Satisfactory for how much of a pain it can be to actually go through major versions, and how long it can take a more complex game. Although, I will say that newer versions have made it a lot less annoying to keep up to date.
- bel8 6mo ago> The developers just load up an old version of Unity to work in. Exactly. It's common in game dev industry to keep using the same version of Unity for a project. Sometimes a minor version is updated, and I do mean sometimes, because large projects break for the smalles changes (despite semver).
- 0x1ceb00da 6mo agoThen why did OP decide to move the game to the latest engine? His game just failed to boot, nothing in logs. His guess was that maybe the behavior of some windows api changed. What should one do if such a thing happens for a giant project?
- bel8 6mo agoIn their case it was a small game so they didn't spend much time debugging (if at all). For big projects you'd first spend time (and possibly money) trying to fix whatever is broken before updating Unity which would break more things.
- eqqs 6mo agoGreat read! Thanks for sharing.
- zulban 6mo agoFun. I've upgraded my game a few times over the years. It started in 2018 so I started with a version slightly older than that. Some of these changes seem familiar to me. I had a fairly similar experience as my game also has always been C# and simple. I have always carefully avoided any fancy new Unity features and just use the core engine to deliver my game to many platforms. Neat to hear the author worked on the deprecated renames which I also remember.
- bob1029 6mo ago> 2022 and 2023 were good years. Looks like they were fighting the good fight. I'd argue that 2022.3 is still the best option if you don't want any drama from your tools. Using "old" versions of game engines is generally much safer than the latest. Let someone else figure out if the new model of parachute is any good before you try it. If the tools are dominating your thinking during development, you've perhaps chosen the wrong ones for the job. There is no shame in using older tools to build games. This isn't like a banking web app. No AAA studio is going to give you extra consideration because you have unity 6 experience vs something slightly older. Valve certainly doesn't seem to give a shit. There's not much reason to chase a higher game engine version number. If you are a solo/indie studio and you are using a newer version of a tool because it appears to enable something in your game, you are probably not going to do well. The engine does not make the game. It supports the game. Concerns like the "Unity look" are a consequence of the developers and artists doing a poor job, not old or subpar tooling. Environment lighting settings have their own hot key. Breaking out of the aesthetic mold is trivial if you make any attempt to do so.
- ndepoel 6mo agoUnity 2022.3 is a great LTS version to park an older game in maintenance mode on. It's where everything kind of congealed into a solid, reliable engine again, after the hot messes that were 2020.x and 2021.x. It's also still receiving updates for Enterprise users through Unity's xLTS program, which admittedly isn't within reach of most people, but it's a good option for already released, successful games that require continued support.
- well_ackshually 6mo ago>Valve certainly doesn't seem to give a shit Valve is nonexistent in the modern gamedev community, Source 2 is used by approximately noone, and overall releasing one game every decade doesn't exactly make Valve a prominent voice in the gamedev community. However, yes, companies lock their engines at whatever it was when they started their project, and any upgrades comes from internal engineering. Decade long undertakings like the "recent" FF7 remakes are still on UE4 and will stick with that for the third game, because that's what they started with, and at this point the rendering pipeline and workflow is theirs
- Thev00d00 6mo agoWas so refreshing to read some human generated content
- jack_ftw 6mo agoI miss the golden age of blogs.
- sylware 6mo agoI have been a elf(glibc)/linux gamer for more than a decade, and in spite of the unity drama, their engine is stellar good for broad elf(glibc)/linux distro support (small to massive mainstream)... until no badly built third party shared libs is used (very rare), dynamically loaded with a fallback. But Godot has an issue here, "naked" godot games are fine, but the second they use "addons" as shared libs instead of being statically linked into the main exe, it is a disaster as most of them are built for massive mainstream elf(glibc)/linux distros. It seem also godot games tend to use much more nasty third party shared libs. addons/third party shared lib devs are mostly forgetting '-static-libgcc -static-libstdc++' compiling/linking options while generating their shared libs. For addons, they should provide static libs for game devs to link in their main exe.
- tyleo 6mo agoHappy to see this on the front page! The author is a friend of mine. A few weeks ago he mentioned this small game he made years ago was more successful than his ambitious projects. After that conversation he decided to update it and produced this wonderful blog post. If you haven’t checked out the game yet it’s a lot of fun for the modest price. https://store.steampowered.com/app/391420/Gun_Rocket/ https://store.steampowered.com/app/391420/Gun_Rocket/
- bluescrn 6mo agoUnity 4.x to 5.x (removal of Beast lightmapper) remains the worse transition in Unity’s long history. The more recent frequent breaking changes around URP custom renderer features and render textures haven’t been much fun either, but nothing as bad as losing a working lightmapper and light probes support (the replacement really want ready for actual use) while working on a project highly dependent on baked lighting…
- raincole 6mo agoMaking Video Games in 2025 (without an engine), by the dev of Celeste: https://noelberry.ca/posts/making_games_in_2025/ https://noelberry.ca/posts/making_games_in_2025/ Not saying I agree with everything in that article or Unity doesn't provide hundreds of useful features.
- MrDOS 6mo ago> Gun Rocket also stands out as my most lucrative personal project. > I tried to boot up Gun Rocket to play it. But it refused. No matter how hard I clicked the game would not open. > After trying a few times I realize if the ship isn't moving for about 0.5 seconds it explodes. Has that bug existed all this time? Oh bother. I hope not! Grinds my gears that the game has continued to be listed for sale on Steam with years-old negative reviews pointing out exactly these issues, but the developer still has the gall to act surprised about them.
- jack_ftw 6mo agoHi there! I'm Jack. I wrote this article and created Gun Rocket. I can add more on my particular point. When Gun Rocket launched, it did ok (maybe $100s). It made me feel great, but nothing life-changing. Most of the money I made was selling the distribution rights to a publisher (low $1000s). Again made me feel good but nothing crazy. They made some changes like a splash screen ad that I did not like. When that contract term was up I focused on removing that garbage. Idk when the explosion bug was introduced, but the point is I was surprised and immensely frustrated when I found it because the history of this game left my care and came back. I agree that this bug existing for a long time reflects terribly on me. I hope that fixing it late is better than never fixing it.