There are tons of procedural things in there + the demo engine + the music player + camera works + shadow engine + speech synth (not in this one) + vocoder (not in this demo) + particle engine + .... + ...
The exe is probably packed with a special UPX like packer, so it might well be 400 - 600 KB in reality. But these guys are obviously very good.
They make their own tools to edit the textures, edit the sounds, edit the music score and sound effects. They make their own scene editor and their own scripting tool.... It's all specially tweaked to make very tiny executables that are auto sufficient. I mean, the exe contains it's own data storage where it contains all the bytecoded script to rebuild everything before it runs. That's why it takes so much time in the beginning.
Someone that programmed an 8-bit computer or is familiar with assembly language might understand the feasability of this, but it's insane work. Why I mention 8-bit computers is mostly because at the time, you had to do a lot with very little RAM or very little storage, so you had to find ways to do things that were small. Assembly language is also a good way to do fast and tiny programs.
The exe is probably packed with a special UPX like packer, so it might well be 400 - 600 KB in reality. But these guys are obviously very good.
They make their own tools to edit the textures, edit the sounds, edit the music score and sound effects. They make their own scene editor and their own scripting tool.... It's all specially tweaked to make very tiny executables that are auto sufficient. I mean, the exe contains it's own data storage where it contains all the bytecoded script to rebuild everything before it runs. That's why it takes so much time in the beginning.
Someone that programmed an 8-bit computer or is familiar with assembly language might understand the feasability of this, but it's insane work. Why I mention 8-bit computers is mostly because at the time, you had to do a lot with very little RAM or very little storage, so you had to find ways to do things that were small. Assembly language is also a good way to do fast and tiny programs.