I'm battling a bit with trying to make some games for CC, and discovering optimization for more graphically intense games is actually quite a challenge. Where in previous games simply clearing and redrawing scenes was easy and simple, with more complex graphics this leads to frame tear and lag. Even now in many applications here on the forums (my own especially), on slower computers there is noticeable delays in screen refreshes. This I iterate is not at all the fault of computercraft, but the fault of the programmer.
What's interesting is that lower level access on a real computer rather than an emulator would help these problems. Back in the 80's when people programmed games for early desktop computers like the Atari ST, Sinclair ZX and QL, I'm informed that pure high-level programs written in BASIC and other languages were almost non-existent; games programming was done strictly in assembly code, much as C++ is used today. Harder to program in but the low level access allowed optimizations simply not possible with higher level tools. The more abstraction and layers built from that core, the less efficient programs become. We can see this in the history of languages, and why Fortran, C++ and even Assembly still see use today over much more convenient languages like Lua, and now rather astonishingly I'm seeing it in my and other people's work here on the forums. It's amazing what CC has taught me.
I'm realizing I don't know a lot about this sort of thing, so I'm doing some reading on the topic and trying to apply some 3D rendering techniques I do know something about to this work but it doesn't quite apply. What I'm curious about is how computers with far less memory, RAM and slower chips were able to run realtime games.
Enter the Atari 2600. It's known to be quite challenging to program due to the sheer limitations of it's hardware, but as the pure level of shovelware leading to the '83 crash suggests it must be possible to pick up. On no machine was optimization more important, and I'm fascinated to see if any of those techniques might apply to how we look at programming in CC, or just making myself and others better programmers in general.
So I'm going to look into it. In the weeks to come on top of my regular job and CC commitments and other odds and ends I'm going to look at trying to write a game for the grandfather of modern video games. So I guess I'm asking to those who perhaps know more about this sort of thing, am I insane? Can it be done? Is it worth the time or are there better approaches? If it is worthwhile, would you play my game?
Apologies to the admins. This will barring unforeseen circumstances be my only irrelevant general post.