> 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.
There'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).
He 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?
I 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.
> 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).
Then 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?
Fun. 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.
You 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.
You might be interested in Bevy, which is a modular open source game engine. You can choose how much of the engine you use and just not import the parts you don't want.
It is however built in rust, not c++, don't know if that's a deal breaker?
- i have learnt the hard way in life to never touch double unknowns.
- basically i am already not familiar with gamedev.
- on top of that i am not familiar with rust
- on top of that it is a new library meaning when I run into issues and I will run into all sorts of issues, I ll have to rely on a small bunch of maintainers with no mainstream support from stackoverflow or AI
- I made this mistake once in my life by choosing nuxt to build a website when I was new to web development instead of making a simple html css js website that I was familiar with
You 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.
- first of all thank you for the elaborate details. as a guy who is literally not familiar with gamedev but knows programming to a mid level extent (if not senior) i am trying to guage the landscape and get a feel for it from 10000 ft
- I am assuming c++ would be one of the most recommended ways to start
- What is this bit about rendering? and good scene model / world model. Could you kindly elaborate on that a bit?
- For things that require the most amount of knowledge / effort in making a counter strike type game, what do you think would be the top 3 most effort oriented steps / milestones in doing so
You technically can, but you really shouldn't. The general knowledge is that you can make a game or you can make an engine - not both.
There's just so much you don't know until you do, and there's a reason even all those "render engine" libraries have fallen kinda defunct (Ogre, Irlicht, etc). It's hard and distracts from the real goal.
Just grab an engine and get started on the game day 1 with a tool that can guarantee any game can be made with studio-quality tooling and compatibility.
It's the same reason you grab a date time library. It sure seems totally doable to "just handle times" right up until you try.
If making an engine was really that easy, studios wouldn't pay tens of millions to avoid doing it. Godot 3D would be solved by now.
- i was under the opinion that we may have enough libraries in c++ for just about everything from load assets to handling physics to handling graphics , networking, rendering etc
- isn't that the case given 20+ yrs of development on C++
One thing that isn't really mentioned but hugely important is the tooling - even if you can wire up various libraries for the subsystems of a game, you need tools for actually building the game. Stuff like an asset pipeline to ingest the numerous formats for different assets, optimise them for various use cases, a level editor, light mapping tools, etc. Those you can't get off the shelf, and make a huge difference when actually building gameplay and iterating.
In terms of wiring up various libraries, it's more difficult than it might sound initially because they all need to interact together, it's not so simple as just wiring up a few API calls together like you might do to build a web server.
Now of course CS 1.6 is built on the GoldSrc engine, which spawned from the Quake engine. Very different from modern engines, so obviously you can do it without Unity or Unreal or Godot. The question is if you want to, and if the time spent doing so is worth it.
People can and do build on top of Quake, so that could be a reasonable option if that's the feel you want for your game.
> 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.
I'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.
I 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.
I’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.
Exactly 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.
I 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.
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.
reply