Before I go into some of the technical issues, I strongly recommend that you reconsider. Given that DOS gamers (are there any left?) are not your target audience, providing this port would not make any sense. People buy games for their content, not the
other platforms to which the game was ported. Imagine you're a PlayStation fan but can't afford such a console so instead you play games on your PC. How does the fact that a PC game is also available for the PlayStation influence your choice of whether or not to purchase it? I'm not an expert in marketing but I bet that "People who appreciate that SomeGame is also available for DOS" is not a valid audience.
Antti wrote:To be somehow realistic, Windows-, Mac-, Linux-ports of this game are also released and they are developed concurrently with the MS-DOS version. Cross-platform libraries are not used and all the ports are native.
Antti wrote:The game itself must be designed to be very portable.
That is contradictory. You should definitely not ignore all the progress that the discipline of software engineering has made during the past 40 years. I will list some of the disadvantages of not using cross-platform libraries: increased development cost, increased development time, lots of duplicated code, decreased maintainability, much more error-prone. Advantages: none.
Antti wrote:I did mention about the possibility to use VESA modes for graphics. After reconsidering it, I think that it might not be a good idea. Probably the game engine should only use the 320x200 graphics because that is what the games basically used back then.
Back when, precisely?
Here's a screenshot of Duke Nukem 3D for DOS running at 640 x 480. In fact, the biggest reason for which VBE/Core (which you mistakenly call VESA, the name of an oranization) was introduced was that so many DOS games before it had to ship with their own SVGA video drivers (see some of the disadvantages above). However, one disadvantage of VBE/Core is that, for some things, it's not as fast as native video drivers. VBE/AF fixes part of the problem but is not widely supported in firmware.
Heck, even VGA supports 320 x 240 x 256_colors_at_a_time_but_with_a_palette_of_262144_that_can_be_used.