Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
PhilibusMo

How long will Dooms popularity last?

Recommended Posts

Having hit its 15th birthday Doom shows no sign of curling up in the shadows and dying like most other 15 year old games as it still has a large modding community and a wide range of source ports and editing tools, but most of all it is still fun.
But here's a question for you, how long do you think it will be before doom is mostly abandoned, when new maps dry up and it is no longer ported to newer opperating systems and devices.

I believe it has atleast another 10 years left, if not 20. do you think I am being to conservative in my estimate or way over the top? Or do you think it will carry on as long as civilisation stands, refusing to die?

I personally hope the community doesn't leave it as there is still much to be done with the engine despite it being very limited by modern standards.

Share this post


Link to post

I would guess that most port authors and decent mappers are from the generation that grew up with the game. I figure that once we get too old to work on said ports/maps the community will begin to drop off. Who knows though, there are quite a few younger people that play.

I don't think I'll ever stop playing, hell there are so many maps I'll probably never get to play them all. I just hope by the time I get arthritis that they've developed thought based controls.

Also the number of open source ports and the games little dependence on the host operating system(software rendering), basically ensures quite a long lifespan.

Share this post


Link to post

Until Quake comes out. (Or at least that's what they told me 13 years ago...)

Share this post


Link to post
Scet said:

I would guess that most port authors and decent mappers are from the generation that grew up with the game. I figure that once we get too old to work on said ports/maps the community will begin to drop off. Who knows though, there are quite a few younger people that play.



Actually, many mappers are much younger than that. I think by now the old generation is becoming the minority here.

Share this post


Link to post

How long will posts about Doom's popularity last?

Share this post


Link to post

Even if the Doom scene ceases by 2020, by then there should be enough pwads to keep me entertained till 2050. Compatible ports should be no problem, if there is none yet I would port the source over myself.

Share this post


Link to post
Doom Marine said:

Doom will jump from system to system and have a virtually indefinite lifespan.


I would still like to see a complete and functional Java port, at least on desktops. So far none has been made. Boycott only implemented the WAD loader and the automap, but is not playable, and Stark is basically a from-scratch graphics engine with no gameplay code at all.

I once tried to get started on a Java Doom project, but the very first thing I noticed is how many C-isms in the code don't translate well to Java at all, especially if one intends making a "vanilla compatible" port. A recreation would probably make more sense, but those tend to have a fucked up gameplay, or no relation to Doom at all.

Share this post


Link to post
Maes said:

I would still like to see a complete and functional Java port, at least on desktops. So far none has been made. Boycott only implemented the WAD loader and the automap, but is not playable, and Stark is basically a from-scratch graphics engine with no gameplay code at all.

I once tried to get started on a Java Doom project, but the very first thing I noticed is how many C-isms in the code don't translate well to Java at all, especially if one intends making a "vanilla compatible" port. A recreation would probably make more sense, but those tend to have a fucked up gameplay, or no relation to Doom at all.

I don't know if this could help with that...

Share this post


Link to post
TheeXile said:

I don't know if this could help with that...


That's cheating ;-)

OTAH, it's pretty much how a "Flash Doom" was recently made: FLEX direct C->Flash conversion.

However, that cross-compiler doesn't address certain issues like e.g. how exactly is C's file or device access mapped to Java? Sound/display output?

The most problematic parts would be the file handling and also the sound/display code. These parts need to be handled by real Java code as I doubt cross-compiling would somehow magically redirect VGA register writes to Java's diplay system, or even adapt C's file access code directly to the closest java equivalent.

Probably, important parts of the code would still need to be written in Java, and then you'd have a hell of a time interfacing it a machine generated file (which probably employs a further VM step, on top of Java).

Share this post


Link to post

Doom will never gets old. It will always ''ages'' well. I, for sure, won't forget it.

Share this post


Link to post
Maes said:

Java stuff


The C++ port I'm working on is meant to eliminate all the C-isms, as well as being coded in a way that would make it easier to port to C#/Java(no pointers to value types,no multiple-inheritance,etc..).

I've been trying to make a C# port off-and-on for the past couple years, and like you was frustrated with all the C-isms(and stuff that shouldn't even be done in C). So I thought C++ would be a good middle-ground, I can code how I would in C# and still make sure the game actually runs.

Share this post


Link to post
Scet said:

The C++ port I'm working on is meant to eliminate all the C-isms, as well as being coded in a way that would make it easier to port to C#/Java(no pointers to value types,no multiple-inheritance,etc..).

I've been trying to make a C# port off-and-on for the past couple years, and like you was frustrated with all the C-isms(and stuff that shouldn't even be done in C). So I thought C++ would be a good middle-ground, I can code how I would in C# and still make sure the game actually runs.


That sounds interesting, perhaps I could give it a second go one day.

As you said, pointers to value types were one of the main problems, but from my experience with MPI in Java (talk about C-isms there!) I was aware of two workarounds ways in Java: either making everything a pure object and spam the code with data marshaling and boxing/unboxing (not a good idea if you care a bit about performance), or use the 1-element array trick (this way by-reference passing is possible without the performance penalty of objects), however such tricks make the code harder to maintain.

Buffer arrays accessed by pointers can be approximated in Java by using a single-dimensional array (even multidimensional ones) by careful explicit pointer -> index arithmetic, a trick heavily abused in moble Java and Java MPI implementations to avoid multidimensional array serialization and overhead. Not very elegant, but it works (and usually is faster than "real" multidimensional Java arrays).

There are however features in the C sources that have no real equivalent in Java, like hardcoded values in #defines and even C's "enums": Java has enumerations only from version 1.5 and onwards I think, and those have no associated cardinal values, so those "enums" appearing in Doom must be converted to read-only int values or something. Same thing with #defines. My approach was having a "constants" final class with hundreds of constant values.

With C++, you probably won't need to go that far, but if you plan to use C# in safe mode then you will probably need to get around them in some "creative" way too (although C# has by-reference passing even in safe mode, I think).

The ultimate port breaker however, are Doom's fixed point integers. Wrapping them as objects would solve passing and operations between them could be implemented as class methods eliminating the need for doom's external functions, but the performance overhead in mobile systems would be terrible. Leaving them as Java ints would solve the speed issues, but would require the 1-element array trick to solve passing, and performing operations on them would
require explicit handling, as there would be no way to tell them away from "normal" ints.

Wow, this is turning into a coding thread ;-)

Share this post


Link to post

(classic) Doom will be around for a very, very long time. Trust me. But I think people are slowly starting to run out of ideas for levels. There will come a day where almost every possible name will be taken that there will be some very strangely titled maps released. Names like Vulcana.... inspired by Vulcan and Volcano which is the name of MAP25 from the upcoming Whispers of Satan. Vulcana is actually a very hot place with lotsa lava.

Even though I will probably quit from map designing at the end of the year to move on with life I will still play Doom for many more years to come. I might rip out a map here and there.

Share this post


Link to post
Maes said:

As you said, pointers to value types were one of the main problems


Another way around this that I've been using is to make the pointer to whatever the host class was, instead of the value type member. For example I rewrote the status-bar code so that it only needs a pointer to the player class. Also some pointers can just be replaced with indices since they only reference an array, like the visplane and vissprite ones.

Maes said:

There are however features in the C sources that have no real equivalent in Java, like hardcoded values in #defines and even C's "enums"


Not a problem in C#. I'm surprised Java doesn't have constants and enums, the concept is as old as dirt.

Maes said:

The ultimate port breaker however, are Doom's fixed point integers.


Not really. The only time they're passed as pointers is for the bounding boxes, which I've just made into another class. I can understand the performance concern if Java has no equivalent to C#'s struct.

Share this post


Link to post

As long as modern ports continue to allow players to be as creative as possible... there will never be a shortage of ideas. I can make a cel-shaded, cartoon world or any other ideas floating around in my head. A robust engine with simple editing tools and spriting capabilities makes Doom easier to mod than any other game.

Share this post


Link to post
Scet said:

Another way around this that I've been using is to make the pointer to whatever the host class was, instead of the value type member.


This can also be made in Java, and actually all pointer/address/dereferenced pointers distinctions cease to exist, so at least certain parts of the code become "cleaner". The question is how much object-spam one is willing to spawn.

Not a problem in C#. I'm surprised Java doesn't have constants and enums, the concept is as old as dirt.


There are constants (just add the final keyword before anything) but not preprocessor directives, so those have to be converted into constants. "Globals" visiblity can also be taken care by having each class import the ones it uses, but again, it makes for pretty ugly code, by Java standards. Maybe it would look OK in C/C++, but not Java.

And yeah, since version 1.5 there are enums but they have no cardinal values (e.g. the first element can't be treated as the integer number "1" to all effects, which unfortunately happens a lot in the C code). This is supposed to help type safety or whatever...well...pretty much like immutable strings, I guess.

Not really. The only time they're passed as pointers is for the bounding boxes, which I've just made into another class. I can understand the performance concern if Java has no equivalent to C#'s struct.


These's much more to those "fixed point" numbers than it meets the eye: the straightforward solution would be to go Object Oriented all the way or ditch them and go with floats. The original code is also very hackish in that multiplication/division is handled by a special "class function", but addition/subtraction works more or less directly, with C's standard operators, and there are instances where they are treated as ints e.g. as sole arguments of ifs.

I should probably see how source ports handled this aspect (complete compliance? Complete ditching?) but perhaps the Delphi Doom port can shed some light, as it's the only non-C language in which a native executable source port of Doom has ever been made.

Share this post


Link to post

When people run out of ideas for Doom levels, they'll make new gametypes out of Doom.

I mean more than before.

Doom Doom Revolution? Shoot the enemies that are invading your base in time to the music.

EDIT: I'd love to see Left 4 Doom.

Share this post


Link to post

I'll play Doom forever, whether everyone else stops or not. Though the way this community seems to go, I don't see Doom's popularity dying anytime soon. Hell, we're still seeing major megawads coming out even now!

Share this post


Link to post
dutch devil said:

It will last until I'm dead.


It's likely even longer than that. IIRC I am younger than you and don't plan to quit at any point in my lifetime.

Gaeole said:

EDIT: I'd love to see Left 4 Doom.


I'm pretty sure someone will just make a GvH clone for that.

Share this post


Link to post
David_Dweedle said:

Hope doom dosn't die.. im only in my infinte Doom mapping skills.. dont wana learn to map if the community will go belly up lol


Learn to map and it will slow the death of Doom!

Share this post


Link to post

Crappy maps may help kill DOOM in a way, but witch hunts against people who make crappy maps or against the crappy maps should do their share too.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×