rei4 said:
I am still planning to use bit blitting and an engine designed for a 16 bit environment. For now that's Andre Lamothe's “ Tricks of the game programming gurus” 1994. It's an engine for MS-DOS. Later I plan to work with the X Game Station which uses an Atmel 8/16 bit ARM based SOC. It's going to be a while before I ever use modern methods of combining 2D and 3D rendering.
This means a lot of restrictions and obstacles, requiring detailed knowledge about the HW and how to use it, and eventually the need to program in assembly instead a high level language like C.
So why do you want to do this? If you do a 2D game for modern HW instead, it's easier and more flexible, more people can play it, and most importantly: You learn more about game development in much less time.
Noticing some trend of more and more people being interested in old HW, i'm actually interested in your motivation.
rei4 said:
Yes I just don't fully understand what DX 11 actually does.
It's easier if we look at it in historical order.
The first 3D API i have used was 3Dfx Glide. It could draw texture mapped triangles, not more. It was pretty simple, and this functionality is enough to implement tilemaps and sprites. Rotation is possible, perspective projection like in Mario Kart also is possible. So it could do anything a Super Nintendo could do, including it's extra 3D chips which were built into some cartridges. (This means you don't have to learn much if such functionality is all you need.)
The next improvement was transforming vertices and applying basic lighting on the GPU. Not really a big change for the programmer, and still pretty simple and easy.
After that it became complex with pixel and vertex shaders, making geometry deformation and per pixel lighting possible, by writing small programs for processing vertices and pixels.
Later this was generalized with Compute Shaders, CUDA, OpenCL etc. We can now write general purpose parallel programs for GPU, making it really flexible. We can do fluid simulations up to ChatGPT, and we're no longer restricted to just graphics applications.
This also enables us to do graphics in different ways, like back then with software rendering. Examples would be the PS4 Dreams game, splatting points instead rasterizing triangles, or UE5 Nanite which implements a software rasterizer in compute to overcome the HW inefficiency for small triangles.
So the HW became much more flexible with time, and the complexity of APIs has grown as well. If we want to use all of this and maximize efficiency, we need to know again a lot details about HW and API specifications. It's even harder now than back then when dealing with dedicated 2D gfx chips. Ofc. we can outsource this complexity by using game engines which care about those low level details for us. But then we move away from being ‘game developers’ to just ‘content creators’ a bit, so not all of us should go that easy route. Otherwise, after some time, nobody knows anymore how to do it.
However, personally i see no reason to work on outdated HW which no longer exists, and neither for retro consoles which may be forgotten within few years without preserving its games. To make a 2D game now, i would rather propose a cross platfrom target, to reach as many devices as possible, including low power mobiles. That's possible using C/C++ and OpenGL for example, which runs on Windows, Linux, Android and iOS (not sure if iOS still supports OpenGL, though.)
There are also Fantasy consoles, e.g. Pico-8, which i would recommend to beginners over using Unity. But maybe i'm a bit nostalgic here myself.
Using modern HW also allows to make games simply better.
Even if we use low res pixel art, we can now render sprites at any position, overcoming the limit of the low art resolution. As a result, motion looks smoother and is better predictable.
We also benefit from the higher precision of floating point numbers. A game like Angry Birds would hardly be possible on a 8 or 16 bit CPU. Even using fixed point math, the quantization would be too high to get such realistic physics.
That's really big arguments to avoid older architectures. It was nice, but it's over for the better. : )
Just saying ofc. It's cool to see there are still new games for the C64 for example.
But i follow this only on YouTube. I do not actually play them.