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).
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 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.
> 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 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).
- 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?
For 2D, yeah, making the engine yourself is fast and easy. Can go without a big engine.
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.
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.
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.