Sarge
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > DOOM.Net
 
Author
All times are GMT. The time now is 00:35. Post New Thread    Post A Reply
Scet
Member


Posts: 518
Registered: 05-06


Hello fellow DOOMers. I thought I'd let you guys know about a source port I'm working. It's nowhere near done, but I'm determined to finish it.

I'm making it using C#, .Net 2.0 and Direct3D 9. The point of the project is to fix any compatibility issues with XP and make it so there's no problem when Vista comes out. I'm to try to stay true to the vanilla look, but there's no gaurantee since I'm not using software rendering.

It's not much to look at right now. but here are a few screenshots to get your cursors moving :)

http://members.gamedev.net/Scet/2.jpg

http://members.gamedev.net/Scet/MainMenu.jpg

http://members.gamedev.net/Scet/Console.png

You can find some more screenshots and technical stuff here.

Old Post 05-04-06 23:53 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Hobbs
Banned


Posts: 1099
Registered: 06-05


My hats off to you for attempting to port the code to C#, except that .NET languages arent suitable per se for running games at decent speeds while still using an acceptable amount of resources. But if you can pull it off that would rock, if only from a programming standpoint.

Oh and as of the December CTP (build 5270) of Windows Vista the majority of ports, including Chocolate Doom, run more or less fine (just like everything else...).

Old Post 05-05-06 00:04 #
Hobbs is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Scet
Member


Posts: 518
Registered: 05-06



HobbsTiger1 said:
My hats off to you for attempting to port the code to C#, except that .NET languages arent suitable per se for running games at decent speeds while still using an acceptable amount of resources. But if you can pull it off that would rock, if only from a programming standpoint.

Oh and as of the December CTP (build 5270) of Windows Vista the majority of ports, including Chocolate Doom, run more or less fine (just like everything else...).



I think you underestimate C# and .Net, I have yet to notice any speed problems. If DOOM could run a 486, I don't foresee any problems there. Also all the resources are handled by Direct3D and the GPU.

This is not a simple port, it is more like a rewrite. Everything graphics wise is GPU.

As for Vista support I knew it wasn't just magically going to break everything, but having a port designed for it can't hurt.

Edit: I should add that DOOM.Net will require a fairly decent computer. 1GHz, 256MB RAM and 32MB video RAM will probably be the minimum.

Old Post 05-05-06 00:18 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Use3D
Forum Legend


Posts: 4714
Registered: 04-02



Scet said:

I have yet to notice any speed problems. If DOOM could run a 486, I don't foresee any problems there...

...I should add that DOOM.Net will require a fairly decent computer. 1GHz, 256MB RAM and 32MB video RAM will probably be the minimum.




Heh

Old Post 05-05-06 02:34 #
Use3D is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Grazza
=/-


Posts: 12427
Registered: 07-02


You might want to choose a name that doesn't sound quite so much like a web address.

Old Post 05-05-06 08:13 #
Grazza is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
rpeter
Mini-Member


Posts: 67
Registered: 02-04


Aha, I knew someone would try a dotnet port, although I thought it would be managed C++ first, like they did with Quake2.

I don't quite understand how you intend to do the rendering. Not polygon based?

Using glnodes it's fairly easy to implement a polygon based D3D renderer, see Doom3D. Sure it's a mix of Direct3D and DirectDraw but the DirectDraw parts (patches, HUD, automap, etc.) can be turned to D3D quite easy. Unfortunately Doom3D is the only port (and fairly old) that has native D3D rendering, not just an OpenGL emulator, like DoomsDay or Vavoom have.

Old Post 05-05-06 14:19 #
rpeter is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Scet
Member


Posts: 518
Registered: 05-06


The rendering is triangle based. It's just easier to use triangles so I can render everything that uses a certain patch in one pass. Sure there are a few "cloned" vertices here and there, but it's not like DOOM levels have a huge poly count.

I had some problems using Doom3D. There where a lot of missing floors and a few walls. There's no real problem with the renderer anyway.

And if someone can think up a better name, I'm willing to use it.

Old Post 05-05-06 14:30 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
rpeter
Mini-Member


Posts: 67
Registered: 02-04


Doom3D can only render flats correctly if you supply a gwa file (v1 or v2 glnodes), it has no internal glnodes builder. It can render walls corretly most of the time, I found problems only with some middle textures, like the balcony at the beginning of Doom2.

Anyway, I'd love to see a D3D9 renderer for Doom. I've done a D3D7 (pure 3D) before but I haven't had the heart to upgrade yet.

Old Post 05-05-06 15:10 #
rpeter is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
DaniJ
Senior Member


Posts: 2096
Registered: 08-03



rpeter said:
Unfortunately Doom3D is the only port (and fairly old) that has native D3D rendering, not just an OpenGL emulator, like DoomsDay or Vavoom have.

What do you mean by that?

Doomsday has both D3D and OpenGL renderers implemented as external libraries accessed via an API. All these libraries do is to provide an absraction layer between the engine and the 3D api so the same functions can be used within the engine regardless of which renderer is in use.

All the rendering algorthims are internal to the engine.

How is that not native? I don't get your comment about it being an emulator either.

Old Post 05-05-06 19:30 #
DaniJ is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
rpeter
Mini-Member


Posts: 67
Registered: 02-04


No offence was meant, it's just that the internal layer tastes very much like OpenGL. Probably because of the pre-doomsday times, when jHexen had only OpenGL rendering. I recently went through DoomsDay's code and I found myself constanly converting/comparing between OpenGL and D3D. Not that it was a bad excercise, not at all.

Under native I thought it was not meant for D3D from the beginning.

Old Post 05-06-06 08:32 #
rpeter is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
DaniJ
Senior Member


Posts: 2096
Registered: 08-03


OK. I didn't take offence, I was more bemused by the terminology you used since the common meanings don't really fit with Doomsday's architecture.

Your explanation makes more sense to me than your original statement.

Personally, I'm glad the internal interface resembles the OpenGL API as opposed to that of D3D since IMO its nicer to use than D3D.

Old Post 05-06-06 09:36 #
DaniJ is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Scet
Member


Posts: 518
Registered: 05-06



DaniJ said:
Personally, I'm glad the internal interface resembles the OpenGL API as opposed to that of D3D since IMO its nicer to use than D3D.


Well of course it resembles OpenGL, OpenGL is a C API and DOOM is in C. Hell even the "C++" ports aren't real C++, just C with a few classes. D3D is more object oriented( with MDX being pure OO ), so it goes nicely with C#.

Old Post 05-06-06 17:52 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7733
Registered: 01-03



Scet said:

Hell even the "C++" ports aren't real C++, just C with a few classes.




Who says that the use of classes for everything is mandatory in C++ to get 'real' C++ code? No wonder that far too many software gets utterly bloated with such an attitude.

You use your tools where it fits you, not because you have to use them and large parts of Doom don't benefit from translating the code to classes.

Old Post 05-06-06 18:04 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Hobbs
Banned


Posts: 1099
Registered: 06-05



Scet said:
...aren't real C++, just C with a few classes...


You do realize that the original name for C++ was "C with classes" don't you?

Old Post 05-06-06 18:26 #
Hobbs is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
DaniJ
Senior Member


Posts: 2096
Registered: 08-03



Well of course it resembles OpenGL, OpenGL is a C API and DOOM is in C.
I think your missing the point here due to the context.

The fact that they are both written in the same language is not relevant to the design of the engine-internal rendering API.

Although D3D is C++ I would hardly say that its interface uses an OO design. Once you have a handle to the device, thats it.

Hence why it made sense to simply use a procedural design for the engine-internal API wrapper.

Old Post 05-06-06 18:27 #
DaniJ is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7733
Registered: 01-03



DaniJ said:

Although D3D is C++ I would hardly say that its interface uses an OO design. Once you have a handle to the device, thats it.




Personally, I find D3D's interface awful. You always have to shove around several pointers to do even the most trivial things. As a result they normally end up in global variables thus negating any potential benefit of an OO approach.

Old Post 05-06-06 19:17 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
DaniJ
Senior Member


Posts: 2096
Registered: 08-03



Personally, I find D3D's interface awful. You always have to shove around several pointers to do even the most trivial things. As a result they normally end up in global variables thus negating any potential benefit of an OO approach.
Agreed. Doomsday's D3D renderer does exactly that to hide this complication from the engine... thankfully.

As you stated Graf (and I alluded too), the poor interface makes D3D's OO design pattern rather worthless IMO.

Certainly, at the time Doomsday's D3D renderer was written (for D3D 8.1) there was no real benefit to D3D's OO implementation.

Old Post 05-06-06 21:43 #
DaniJ is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
rpeter
Mini-Member


Posts: 67
Registered: 02-04


Easy does it, Scet is rewriting Doom in C#, which is OO exclusively. I don't know about MDX, I presume it's OO and suits C# better than procedural OpenGL.

Old Post 05-07-06 08:19 #
rpeter is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
fraggle
Filled with the code of Doom


Posts: 7605
Registered: 07-00


Very interesting stuff! I assume this is entirely new code and not based on the original source code.

Old Post 05-07-06 15:46 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Tango
Senior Member


Posts: 1673
Registered: 04-06


Looks great so far!

Old Post 05-07-06 20:44 #
Tango is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
RazTK
Junior Member


Posts: 149
Registered: 10-05


Yeah, looks awesome.

Old Post 05-07-06 21:01 #
RazTK is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Scet
Member


Posts: 518
Registered: 05-06



rpeter said:
Easy does it, Scet is rewriting Doom in C#, which is OO exclusively. I don't know about MDX, I presume it's OO and suits C# better than procedural OpenGL.


That's pretty much what I was trying to say. I never said anything against OpenGL, just that it doesn't "fit in" with C#. It's the same way DX doesn't "fit in" with C.


fraggle said:
Very interesting stuff! I assume this is entirely new code and not based on the original source code.


Yes the code is all new. So far all I've used is the "unoffical doom specs" and the doom wiki.

Here are some more screenshots. They're the same ones from my journal, but I'll put them here to for the link impaired.

http://members.gamedev.net/Scet/9.jpg

http://members.gamedev.net/Scet/12.jpg

http://members.gamedev.net/Scet/13.jpg

Old Post 05-08-06 04:31 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7733
Registered: 01-03


You still need to adjust for Doom's 1.6 aspect ratio. All the sprites look rather squashed.

Old Post 05-08-06 08:29 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Scet
Member


Posts: 518
Registered: 05-06


Huh? It is at 1.6. Mabye it's the filter or the camera angle. The camera I have right now is free, it can move/rotate around any axis, unlike DOOM that only rotates on the y axis.

I'm working on the camera class now, one that'll act like the DOOM one. We'll see how it looks with that.

Old Post 05-08-06 22:40 #
Scet is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
TheDarkArchon
Senior Member


Posts: 2332
Registered: 08-04


I can confirm this. I cut the Window frame out of screen shot 13 and the rest of the screen is 640x400.

__________________
* insert completely and utterly useless nonsense here that nobody will ever read ever *

Old Post 05-08-06 23:01 #
TheDarkArchon is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
myk
volveré y seré millones


Posts: 15226
Registered: 04-02


DOOM on a window has to be 640x480 (or 320x240), with a possible additional adjustment for the sprites, depending on how the whole thing is resized. The screen mode used by DOOM stretches all the pixels vertically (being a partial economization of the 320x400 VGA resolution).

Old Post 05-09-06 13:34 #
myk is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7733
Registered: 01-03



myk said:
DOOM on a window has to be 640x480 (or 320x240)


... and with a screen size of 1280x1024 it has to be different yet again so that it doesn't look squashed. But for hardware rendering screen size is not an issue as long as the projection matrix is properly set up. It should always account for screen size and never assume a fixed aspect ratio.

Old Post 05-09-06 14:00 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
rpeter
Mini-Member


Posts: 67
Registered: 02-04


Hmm, I use screenwidth/screenheight for ratio. No wonder other ports look different to me. Looks like I'd better try fix 1.6.

Old Post 05-09-06 18:31 #
rpeter is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7733
Registered: 01-03


Use this:

width/height*1.6/1.333

Then it will be ok on any 4:3 screen.

Old Post 05-09-06 18:41 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
david_a


Posts: 1392
Registered: 09-02


Yeah, but the common LCD resolution 1280x1024 is 5:4, and there's an increasing about of widescreens out there (laptops and TVs mainly, although I have a 20'' widescreen for my desktop). Please put in the extra work to do this correctly:) I think ZDoom and Doomsday are the only two ports to support widescreen.

Old Post 05-10-06 13:49 #
david_a is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 00:35. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > DOOM.Net

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.