I don't mean simply bugs (buffer overflows, failure to clean up/release resources, etc...). I mean the design itself is bad -- not just needs to be debugged.
I also don't mean things which are intentionally broken by design, such as DRM.
Things I've seen in commercial games:
Relying on undocumented processor behavior and/or processor bugs.
Relying on exact processor speed, especially when requiring "not too fast and not too slow".
Hard-coding and assuming that D: is your CD-ROM drive.
Hard-coding and assuming that C: is the root of your Windows installation.
Relying on undocumented Windows functions or behavior.
Hybrid DOS/Windows game which required Windows for init, then rebooted into DOS to run.
Where they were seen and why they were bad design even in their day:
What they should have done:
I also don't mean things which are intentionally broken by design, such as DRM.
Things I've seen in commercial games:
Relying on undocumented processor behavior and/or processor bugs.
Relying on exact processor speed, especially when requiring "not too fast and not too slow".
Hard-coding and assuming that D: is your CD-ROM drive.
Hard-coding and assuming that C: is the root of your Windows installation.
Relying on undocumented Windows functions or behavior.
Hybrid DOS/Windows game which required Windows for init, then rebooted into DOS to run.
Where they were seen and why they were bad design even in their day:
What they should have done:


Comment