Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Mr Master

Is DOS dead?

This topic is 6968 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Guest Anonymous Poster
YEAH!!!!!!!!!! Let''s hear it for BeOS.

quote:
Original post by Blah!

I have an even better idea:

Lets drop it all: Windows, DOS, Unix and its variants and lets all start coding fo BeOS!

Thats right! I like BeOS and Im proud of it!

sweet, sweet BeOS *drool*


Share this post


Link to post
Share on other sites
Advertisement
DAMIT!! Why the hell is this post still goin''?!?!
DOS is dead. D E A D , D E A D , D E A D!!!
Someone should delete this post becuase its really annoying on how everyone still thinks DOS is alive. The last of DOS games are dying out!!

Honestly tell me, how many good games do you know of these days that are written in DOS? HMMMM????

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster

--By the way, how do you do those quotes?



Just click the edit button above my post and you can see the text I typed in to get the quotes -- I don''t know how to make the HTML visible yet...


quote:
Original post by Anonymous Poster

--And why "sz" for string, instead of "str" or something similar?



The ''s'' stands for string, and the ''z'' stands for zero-terminated. Most C strings and string constants (like hard coding "myfile.dat") automaticallly end with a ''\0'' null or zero character. This makes it very easy for all the standard string functions to know the size of the array -- they just iterate until they hit the null character.


quote:
Original post by Anonymous Poster

--I can see why abstraction is easier to read, but why do you claim it to be faster?



Obviously, many hardware manufacturers think so, or they wouldn''t spend so much time developing drivers for DirectX. Abstraction is faster because it eliminates unnecessary details like: the clock speed of your computer, the clock speed of the graphics chip(s), the number of graphics chips, the available vram, etc. The first one is simply a very bad way of checking a chip''s actual speed, because different instructions take different clock cycles on different chips. The second one is equally bad. The third one should obviously be transparent to the programmer, because the extra chips should simply take the instructions and divide them between each other. You don''t need to program for exact amounts of vram (although you should know an approximate -- read: relative -- amount). Under DOS, if these things changed and programmers had relied on them sticking to a few constant values, patches would be necessary for each one. And there are many more. Finally, because you aren''t processing these things (which you needn''t process anyway), you do gain some speed. Abstraction in C++ typically takes the role of virtual functions, which are slightly slower than regular functions, but are a god-send when designing interfaces. Take the following example:

class Stream
{
public:
Stream() {}
virtual ~Stream() {}

virtual void Read(void* pData, int nSize) = 0;
virtual void Write(void* pData, int nSize) = 0;

// (define the << and >> operators to perform reading and writing)

};


class File : public Stream {/* overload functions to read and write to disk using Stream''s interface*/}

class Computer : public Stream {/* overload functions to transfer data over a network*/}


But, when you create either a File or Computer object, you use the same interface, so you only have to learn Stream and you now know how to use several objects.


Abstraction with DirectX is certainly faster because it has: hardware support and software emulation. It''s mostly transparent to the programmer. Now, you (basically) have to make games with several built-in features (colored lighting, hardware T&L, etc.), which the hardware manufacturers now create and modify according to popularity. You see, the hardware designers are free to develop according to the DirectX standard and not according to the whims (and egos) of the programmers. This, in turn, gives both the programmers and the manufacturers more time to develop, which produces better products. Those better products are what make abstraction faster.

Look, for example, at how your brain operates when you walk into a room, and all you want to do is collapse on the easy-chair. You don''t have to scan the whole room and know each and every piece of furniture at the molecular level. You don''t have to know who hung the wallpaper and what products they used. You don''t have to know who put the carpet in. You don''t have to know what wood (if wood at all) the structure is built from. You don''t have to know the chemical composition of the air. And on and on and on... All you wanted to do is collapse on the chair. All your brain needs to do is plot a path to the chair and move your muscles to get you there. Abstraction is simply the elimination of data that is useless to accomplish the end goal. If our brains couldn''t handle abstraction, they''d be SO slow!

Think also of 3D graphics -- do we model each molecule of the real world? Certainly not! That would take eons just to draw a single frame! Instead, we pick a few key details that are necessary to simply make it look realistic. We don''t need to know how a flower smells to make a 3D image of it -- all we need are the basic shape and color of its petals. We may even cut the shape of the petals down to a few triangles and use some form of shading to simply make it look realistic. In other words, cutting out details that are useless to the end goal. Abstraction! It occurs naturally in every programmer''s code. However, it is terribly undisciplined and mostly ineffective until excercised, just like any other part of the brain.

The best programmers are those who can look at a situation, tell the pertinent details, and get about coding something. Look at the books of the industry''s best coders -- look at how they approach problems. Likewise, if you can''t abstract properly enough (yet), you''ll just code in circles because your brain won''t be able to handle the tidal wave of information you are throwing at it. Ever wonder how a professional at one job can easily learn a similar job? Take 3D graphics programming and 3D sound programming, for example. They don''t learn so fast because there are a few similar terms -- they learn fast because they are used to abstracting the proper details. Their brains learned to interpret generic 3D data, so moving from 3D graphics to 3D sound is much easier.

Anyway, I''m really rambling here, so I''ll stop I''ll just say that my opinion is that Windows is more abstract than DOS, and therefore easier to develop for.




- null_pointer
Sabre Multimedia

Share this post


Link to post
Share on other sites
Hi. I think I can contribute a bit...

Quote -----------------------------------------------------
Nice. DOS fanatics typically post things like this, but who uses a 486 anymore?
-----------------------------------------------------
Poeple who can''t affort new equipment. I even had to lend one of my machines to a friend who can''t afford even a old one!

Quote -----------------------------------------------------
Or an 8 MHz 286? Progress, people! A 7-year old computer (maybe older) without any kind of hardware acceleration. What a poor example! Those days are LONG gone!
-----------------------------------------------------
I would not be so sure. Many many people don''t have hardware acceleration, and even this new (cheap) machines they give away for "free" (just pay for internet access for a particular number of months or some similar schema) may not have too much hardware acceleration either.

Quote -----------------------------------------------------
DirectX is tons faster than DOS because of ABSTRACTION!
-----------------------------------------------------
Wrong, it is because of harware acceleration, unless you are talking about development time. If you write a driver to handle linear and planar memory the same, for instance, accessing one type of memory will be *SLOWER* and acessing th other type will not be any faster than whithout the abstraction driver, Sorry.

Quote -----------------------------------------------------
Not because of being programmed in asm or any other out-of-date language.
-----------------------------------------------------
Asm is just a human readable represantation of machine language, have you seen any processor executing C (or anithing other than machine language) lately? Asm is *NOT* out of date, just used sparingly.

Quote -----------------------------------------------------
Simply because it makes hardware development and software development MUCH easier.
-----------------------------------------------------
Now we are talking, *EASIER*, not *FASTER* executing code.

Quote -----------------------------------------------------
The code may be slightly less efficient,
-----------------------------------------------------
Now we are talking.

Well, I think Windows is otherwise good, but it''s implementation is not exactly the best.

Some one recomended a OS dedicated to games, and I think MS claims it has that on Win CE. I even saw a sega console labeled Win CE compatible or something. MS even wanted the coin op industry to use Windows NT, but I don''t know how far has that gone.

I don''t think a dedicated OS is needed for games, just a well written one will do.

TG

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Topgoro

Hi. I think I can contribute a bit...

Quote -----------------------------------------------------
Nice. DOS fanatics typically post things like this, but who uses a 486 anymore?
-----------------------------------------------------
Or an 8 MHz 286? Progress, people! A 7-year old computer (maybe older) without any kind of hardware acceleration. What a poor example! Those days are LONG gone!
-----------------------------------------------------
I would not be so sure. Many many people don''t have hardware acceleration, and even this new (cheap) machines they give away for "free" (just pay for internet access for a particular number of months or some similar schema) may not have too much hardware acceleration either.



OK, so I went a little too far and used outdated examples. Just trying to get a point across. I had used a PCjr once, although the machine belongs in a museum (it''s trashed by now). You''re right when you say I can''t afford a new computer; I can barely afford college. I was given my 486 for free (by a relative that recently bought a new computer), although I wish I could have something more powerful .

-CobraA1

Share this post


Link to post
Share on other sites
--quote
Or an 8 MHz 286? Progress, people! A 7-year old computer (maybe older) without any kind of hardware acceleration. What a poor example! Those days are LONG gone
--
This argument is 200% correct in this context because we are talking about developing new software here, and writing programs for 286 at this time can be called several things (nostalgy, living in the woods, VERY specialiced hardware+software project- 60mhz Motorola processors ar widely used in industrial robots, alhough they have hteir own operating systems and programming languages ) but not software development in its common meaning.

-kertropp

C:\Projects\rg_clue\ph_opt.c(185) : error C3142: 'PushAll' :bad idea
C:\Projects\rg_clue\ph_opt.c(207) : error C324: 'TryCnt': missing point

Share this post


Link to post
Share on other sites
quote:
Original post by Topgoro

Quote -----------------------------------------------------
Nice. DOS fanatics typically post things like this, but who uses a 486 anymore?
-----------------------------------------------------
Poeple who can't affort new equipment. I even had to lend one of my machines to a friend who can't afford even a old one!

Quote -----------------------------------------------------
Or an 8 MHz 286? Progress, people! A 7-year old computer (maybe older) without any kind of hardware acceleration. What a poor example! Those days are LONG gone!
-----------------------------------------------------
I would not be so sure. Many many people don't have hardware acceleration, and even this new (cheap) machines they give away for "free" (just pay for internet access for a particular number of months or some similar schema) may not have too much hardware acceleration either.



I would be absolutely sure. No one develops games for an extremely small, out-dated, incapable market like that. At least, not profitably. Further, I haven't seen a video card (in the last few years) that didn't have a hardware blitter and driver support that DirectX can use. (Perhaps I am wrong there, but who (in their right mind) would produce a video card without driver support for DirectX? Even my old (original, as in many years old) Diamond Stealth has hardware support for DirectX. When it came out, it was THE most affordably priced card for quite a while.)


quote:
Original post by Topgoro

Quote -----------------------------------------------------
DirectX is tons faster than DOS because of ABSTRACTION!
-----------------------------------------------------

Wrong, it is because of harware acceleration, unless you are talking about development time. If you write a driver to handle linear and planar memory the same, for instance, accessing one type of memory will be *SLOWER* and acessing th other type will not be any faster than whithout the abstraction driver, Sorry.



Wrong, read my last post. Abstraction is the ONLY way hardware acceleration is possible to software like games. Even in DOS you had to create several drivers with a common interface (do I hear "abstraction," anyone?).

You thought that I was saying that with abstraction all things run the same speed? Software triumphs over hardware? hahaha get real! Only when hardware and software work together can they be more efficient. Abstraction is only applied logic. I haven't seen code that wasn't both faster and simpler when it was written logically...on the other hand, many programmers have a horrible lack of logic with their coding. It is the programmers who code illogically, and it is certainly not the fault of logic that the code runs slower.


quote:
Original post by Topgoro

Quote -----------------------------------------------------
Not because of being programmed in asm or any other out-of-date language.
-----------------------------------------------------
Asm is just a human readable represantation of machine language, have you seen any processor executing C (or anithing other than machine language) lately? Asm is *NOT* out of date, just used sparingly.



Asm (as a language) is out-of-date. It's not portable. It forces the developer to re-write large amounts of drivers if they wish to get the most out of every piece of hardware (which is the only reason anyone would try to make a game in asm). Asm is inefficient for development, when compared with other easier ways. However, in my previous post(s), I was mainly talking about the __asm blocks that many C++ programmers use -- all that accomplishes is to try to do the compiler's job better than it can. Useless. And quite unnecessary for game development. Compilers are notoriously better optimizers than humans.


quote:
Original post by Topgoro

Quote -----------------------------------------------------
Simply because it makes hardware development and software development MUCH easier.
-----------------------------------------------------
Now we are talking, *EASIER*, not *FASTER* executing code.



Easier hardware and software development means: better products and better support. Better products at a faster rate mean that hardware grows cheaper faster (not as a whole, but I mean that as product shelf life decreases, the average cost per performance increases).


quote:
Original post by Topgoro

Quote -----------------------------------------------------
The code may be slightly less efficient,
-----------------------------------------------------
Now we are talking.

Well, I think Windows is otherwise good, but it's implementation is not exactly the best.

Some one recomended a OS dedicated to games, and I think MS claims it has that on Win CE. I even saw a sega console labeled Win CE compatible or something. MS even wanted the coin op industry to use Windows NT, but I don't know how far has that gone.

I don't think a dedicated OS is needed for games, just a well written one will do.



Are you talking about how the Windows API was designed? Try re-writing the Windows API yourself, and make it available for any language to use. Do you know how many language "shortcuts" were unavailable to the Windows API programmers because of compatibility with other languages? Do you now understand why they have callbacks and tons of structs and other things that typical programmers sneer at in disgust? Do you now understand that they couldn't create classes because of languages that don't support classes? (Just trying to keep unfounded opinions out -- if you know anything about how APIs are written, you won't gripe about Windows' API)

Or were you talking about the way the Windows API is implemented? The actual code? As many other people have already pointed out countless times, Windows 9x contains 16-bit code because of DOS COMPATIBILITY. Can you believe there are people out there who insist on legacy DOS support from Windows as an OS? I'm glad MS is officially dropping support for DOS in the near future. You gripe about DOS dying, and you gripe about Windows having slower code because it needs to support DOS. Illogical.


If no one can give a good argument about why DOS is better, I might as well quit this thread.




- null_pointer
Sabre Multimedia


Edited by - null_pointer on 4/5/00 12:00:36 PM

Share this post


Link to post
Share on other sites
Wow, this topic is really agitating, no? Well, I''m going to add my input to this because I''m interested to see who''s going to tear me a new one for this:
DOS is, no matter how much I hate to admit it, dead. It''s DEADBEEF! No matter how much you whine and curse and throw tantrums and spit code and compare numbers and toss processors and yell at one another, it''s plain and simple. DOS is no longer with us. Of course it''s still running underneath Win9x. Anyone stating that it isn''t needs to get his head checked. But, and this is a big but, Win9x expands on DOS so much that it''s really a completely different animal. WinNT and Win2k are not DOS at all. You want proof? Try running RHIDE (the Robert H. IDE for DJGPP). The exe has to be run twice before it actually starts. It then proceeds to crash quite frequently. Why? because NT and Win2k are not DOS! Win9x, however, has no problem running RHIDE and most other DOS programs, which should give you a clue that DOS is still somewhere in there, even if it''s not exactly the same as it was. Does that mean we should scrap the conveniences of a GUI and all the nice abstraction that Windows provides? **** no! Why kill yourself writing hundreds of thousands of lines of code that have already been written for you? It''s not laziness, just efficiency!
I used to be a person that was very into the "Write it yourself." attitude. However, after working very hard to write my own version of a DOS 3D library, and then reading the DirectX documentation, I realized "S***t! They''re doing , more or less, what I''ve been waisting all my time on. Forget DOS, it''s time to learn Windows." And you know what: I don''t regret it! Sure, Windows is slower, and unstable. But I think I''m willing to sacrifice some speed and stability for the tremendous amount of time I would need to write my own GUI that worked as "well" as Windows.
Linux, in my opinion at least right now, is a waste of time if you''re writing games. Not because it''s not good (although I have had to reinstall everything on my computer, twice, because of it!) but because there''s no market, and there''s no widespread support. Honestly, a handful of users using Linux doesn''t compare to the mammoth that comprise Windows users. UNIX, same deal. BeOS, same deal. (And really any other PC OS''s) Face the facts, no matter how much we all hate M$ (or don''t) it''s what we have to use. People can go ahead an use Linux and such, but the truth is that Windows reigns king over the PC OS market, as much as I hate it, and DOS is dead. Please don''t give me any examples with 286s or 8086s or any other piece of garbage machine you can scrounge up. If someone is using a 286, they should not expect to be able to play Q3Arena. It''s like trying to record a DVD with an 8mm film camera. It''s never going to happen. I have a friend who insists that everything should be written on a DOS/UNIX like operating system in Assembly _only_. I shake my head at this because the truth of the matter is that you would never have a game like Q3 or Starcraft or Soul Reaver without high-level programming languages and high-level operating systems. So, to finish my rant:
HEAR YE! HEAR YE! DOS IS DEAD! HE HATH BEEN SLAIN BY HIS BROTHER WINDOWS! THE MIGHT OF WINDOWS HATH SMOTE HIM!

(not that this is a good thing, but it''s certainly better than writing it all yourself...)

-=xelius=-

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster

-----------------------------------------------------
for free (by a relative that recently bought a new computer), although I wish I could have something more powerful .

-CobraA1


You see why I dislike people who say: "Don''t worry about slow/ineficient/etc code, computers today are fast/have lots of storage/etc" (Not everyone has a fast computer, not everyone has lots of hard drive, *NOT* everyone has fast internet.)

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!