Page 1 of 2

Checksum progress

Posted: Mon Dec 14, 2009 8:49 pm
by Kevin Bentley
I got to the bottom of the checksum issues and I implemented a whole new checksum system that uses MD5 and works reliably across multiple platforms. I'm glad I did because I was still able to reproduce checksum issues across linux/mac/windows. With this fix, not only will the game work across platforms, but cheating be much harder because the server passes a salt value to the clients, and tells them to compute a checksum. Then the server decides if the checksum matches or not.

I made a little video demonstrating the progress...it's uploading to youtube now, I'll post a link real soon now.

--Kevin

Posted: Mon Dec 14, 2009 8:56 pm
by Xamindar
That is great news! I can't wait to get back into D3 with a fresh new patch. :) You are a Descent hero!

Posted: Mon Dec 14, 2009 9:11 pm
by Kevin Bentley
Thanks Xamindar, that helps me keep my motivation up. :)

I've got hundreds of hours into this stuff in the past month or so, so I appreciate the appreciation.

Here's a link to my dorky video: http://www.youtube.com/watch?v=oasEAoPHk7I

Posted: Mon Dec 14, 2009 9:14 pm
by AlphaDoG
That video is NOT dorky at all. Your hard work is greatly appreciated. :)

Posted: Mon Dec 14, 2009 9:27 pm
by Grendel
Excellent work !!

Posted: Mon Dec 14, 2009 11:25 pm
by SuperSheep
I saw code in the background! :) Hmmmm, could you post more of that please! Oh, and great work on the checksum fix!

Posted: Tue Dec 15, 2009 12:58 am
by Duper
AWESOME!

Man, I miss Core. Lots of great games in that level.

Thanks for the Update Kevin!. Seriously man, thanks a ton!

Great video. now.. if only the same could be done with cross console and PC platform in the industry... yeah..
doh!!! Windowed Mode! sweet! we can finally alt-tab out ... reliably!!! :lol:

Posted: Tue Dec 15, 2009 12:59 am
by Jeff.Slutter
Excellent work Kevin!

Yeah, a couple months ago I got bored and got bit with the D3 bug. Initially I just wanted to play around with some of the rendering code and move it more towards hardware accelerated than what we shipped with, possibly someday really bumping things up with some fancy shaders and such. I only wish there was higher-res original art.

I was happy to hear from Kevin and his interest in continuing his previous work on it.

To answer some other questions:
* I have removed all but OpenGL support. Since I was going to be making some rather large underlying changes, I didn't want to have to spread my work across the other APIs (well, D3D...Glide is dead). OpenGL is also cross-platform so it is a better choice for that reason.
* I got a windowed mode working. I don't know if that is useful to you guys at all, but it sure is to Kevin and I for debugging and development. I need to do some mouse work for it though - like capturing and releasing the mouse. It's nice to play D3 in a window sometimes.
* I fixed quite a few random code bugs throughout the code. Some of them may have never manifested themselves into anything noticeable, but oh well, I can't let an obvious bug lay.
* I fixed several OpenGL bugs, one of them was huge and was causing screen corruption on a couple of my systems (I think you guys have occasionally come across this).
* I changed the movie code around some, made it platform independent (with some endian issues, that we'll work out soon), and no longer switches resolutions for you when you go in and out of the cutscenes. I would love to remove all unnecessary resolution changes through the whole game. I also wrote support for the 8-bit movies, so non-Windows platforms will now get the nicer animated main menu background. It's the little things...
* Kevin put a lot of work merging all of the different code branches from the different platforms all together -- so we finally can build for all of the platforms from the same code.

Next on my list is the streaming audio, making it available and working on all platforms.

I also want to tackle the addition of a new scripting language soon. We won't remove the old, since there is a lot of legacy stuff out there. But, using an interpreted multi-platform language like Angelscript (very C/C++ like, fast, powerful, and hey, I'm very familar with it), modders can write their stuff once and it will just work on all the platforms, no need to compile for a platform.

I would like to clean up the low-level code in general, reducing the amount of duplicate code across the platforms making it easier to maintain and advance in the future.

Yes, I know you all want this open source, and so do I. It will be someday. Kevin and I have a bit of work to do until it is possible (removing any Interplay, or embarrassingly bad, code).

MattT and I started a company a few years ago (Reactor Zero), so there won't be any problems for me in finding him to get permissions :) I see him daily. Just please don't email him begging for source release, etc. We're very busy at work, and D3 is far down his list of priorities. He'll end up not-responding and then you'll get upset, feeling personally slighted, blah blah blah :) He's a nice guy, and doesn't mean to upset you. When Kevin and I get far enough I'll corner him in his office...

Posted: Tue Dec 15, 2009 1:19 am
by Duper
whoa. Thanks for the update Jeff!

..btw.. nice pipe. ;)

oh, have you guys read the D3 Postmortem by Craig Derrick, Jason Leighton?

Sounded harsh. So all the more \"Thanks!\" :)

oh, I noticed that in 1.4 D3 tends to \"grab\" between 16 and 50 megs of hard drive space and not let it go until you reboot. ...or am I on drugs? ;)

Posted: Tue Dec 15, 2009 1:58 am
by Ferno
/me waves to Jeff Slutter

Posted: Tue Dec 15, 2009 7:19 am
by CDN_Merlin
Sweet. Thanks again guys for all the work you've put in ON YOUR OWN TIME for us Descent fanatics.

Posted: Tue Dec 15, 2009 7:52 am
by D.Cent
Great work, really :) - I can't wait for the alpha test release - sometimes I can't even sleep :P

Just two questions: is there finally a \"-directip\"-commandline switch on Linux? And what about resolutions on Linux? (never got D3 working with my native resolution 1920x1080)

Keep up the good work - you two are the best!! :mrgreen:

Posted: Tue Dec 15, 2009 9:11 am
by Lothar
Thanks Jeff!

I updated your title to match Kevin's.

Ubelievable!!!

Posted: Tue Dec 15, 2009 9:31 am
by Dadas
Unbelievable news!!! i cant wait for it :P
1 more question - what all will be new in it?
will be fixed linux \"levels don't match\" bug?

Posted: Tue Dec 15, 2009 10:28 am
by Kevin Bentley
Yes, the levels don't match bug is the checksum bug I've been working on for a while. I'm convinced that is fixed now.

New features will mostly be like Jeff commented on: better graphics support. There will be some improved network stuff, and maybe PXO support will be back (definitely something like PXO).

Re:

Posted: Tue Dec 15, 2009 2:09 pm
by SirSamII
Jeff.Slutter wrote: * I fixed several OpenGL bugs, one of them was huge and was causing screen corruption on a couple of my systems (I think you guys have occasionally come across this).
Yea every time I exit a map(OpenGL NVIDIA GTX 260), or it ends I get a black screen with different color pixels & lines like I just punched my screen. Quite annoying, but got it to work by hitting the windows key on my keyboard in Win Xp since alt tab doesn't work & go back into the game & its fine. Also, not to derail the topic but after clicking the youtube link up top I came across the 6DOF . I have a Wii & would like to test this out, do you have to have any type of hardware that you use with the wii remote that you plug into your pc & how can you download the script from http://blog.livedoor.jp/b2pencil/archives/440812.html all I see is text notes. Is there an exe file for this or do I have to manually copy & paste the code?

Posted: Tue Dec 15, 2009 2:31 pm
by MacNagromme
That video is great! I’d all but given up hope. Thanks for all your labor!

Re:

Posted: Tue Dec 15, 2009 4:01 pm
by Jeff.Slutter
SirSamII wrote: Yea every time I exit a map(OpenGL NVIDIA GTX 260), or it ends I get a black screen with different color pixels & lines like I just punched my screen. Quite annoying, but got it to work by hitting the windows key on my keyboard in Win Xp since alt tab doesn't work & go back into the game & its fine.
This should be fixed now.
SirSamII wrote: Also, not to derail the topic but after clicking the youtube link up top I came across the 6DOF . I have a Wii & would like to test this out, do you have to have any type of hardware that you use with the wii remote that you plug into your pc...
I saw this video too, it was pretty cool. You would need bluetooth support on your computer. Which is either built-in or via an add-on. Maybe someday I'll look into adding this support right into the code.

Posted: Tue Dec 15, 2009 4:29 pm
by Xamindar
Is there a changelog? That should stop us from asking too many questions as we are all excited.

Couple things I was wondering.

1. Is the issue with taunts fixed? In linux some don't work. Not sure if it's a size issue versus the windows clients or what, but it always bugged me.

2. Is the home directory structure going to be the same for home? (~/.loki/descent3)

Posted: Tue Dec 15, 2009 4:48 pm
by Kevin Bentley
The home directory structure is something I've got to deal with. What is the preference? To keep the ~/.loki structure, or something different?

Posted: Tue Dec 15, 2009 4:59 pm
by Xamindar
Eh, it doesn't really matter to me. The .loki/descent3 is fine but it is probably confusing to anyone new who comes along as there are ways to install from the windows cds, not the loki ones. If it was just changed to ~/.descent3 that would probably make more sense.

Posted: Tue Dec 15, 2009 5:34 pm
by Aus-RED-5
Yeah, I'm new to Linux and not really sure about how or where D3 should be installed. :oops:

:O

Posted: Tue Dec 15, 2009 5:38 pm
by YrDaDy
I registered on these boards just so I could show my gratitude for the work you guys are doing.

D3 is still the best game ever made in my opinion.. the OSX factor is what has killed me from playing it.

Already mentioned this to a few buddies of mine, they are all VERY eager for this to come out.

Again, thanks!

Re:

Posted: Tue Dec 15, 2009 6:10 pm
by Xamindar
Aus-RED-5 wrote:Yeah, I'm new to Linux and not really sure about how or where D3 should be installed. :oops:
Well, the game is usually installed under /usr/local/games or /usr/games as root so any users on the system can play it. This folder can not be modified by any users except for root. Then any new things the game adds or changes while playing (pilot info, missions, taunts...) are put under your home directory in a hidden folder (~/.loki/descent3).

Posted: Tue Dec 15, 2009 6:14 pm
by Peter
Very awesome to see this after so many years! More power to you Kevin!

Posted: Tue Dec 15, 2009 6:59 pm
by Skyalmian
I got a windowed mode working. I don't know if that is useful to you guys at all.
Oh yes, it is. Very. :)

Arigatou for what you're doing. 'Tis made of Unpacked Awesome. :)

Re:

Posted: Tue Dec 15, 2009 7:07 pm
by Jeff.Slutter
Skyalmian wrote:
I got a windowed mode working. I don't know if that is useful to you guys at all.
Oh yes, it is. Very. :)

Arigatou for what you're doing. 'Tis made of Unpacked Awesome. :)
So, how should it work with regards to the mouse? What I'm thinking is if you click on the window it will 'capture' the system mouse and make it invisible, so those who use the mouse to fly (or in the menus), can have control. Then, if you need the mouse release you can either alt-tab or hit like CTRL-ESC and the mouse will be released from the game back to the system (showing the cursor again).

Posted: Tue Dec 15, 2009 7:23 pm
by Aus-RED-5
To get the mouse back for Desktop?
Hit the Esc key to bring up D3's menu could release the mouse but still work in both windows?
When you resume to the game. It should capture the mouse again.

From memory, this is how D2X-XL works in window mode.

EDIT: BTW - Thanks for the info Xamindar. ;)

Re:

Posted: Tue Dec 15, 2009 8:45 pm
by Jeff.Slutter
Aus-RED-5 wrote:From memory, this is how D2X-XL works in window mode.
Easy enough, thanks.

Re:

Posted: Tue Dec 15, 2009 9:02 pm
by Ferno
Jeff.Slutter wrote: To answer some other questions:
* I have removed all but OpenGL support. Since I was going to be making some rather large underlying changes, I didn't want to have to spread my work across the other APIs (well, D3D...Glide is dead). OpenGL is also cross-platform so it is a better choice for that reason.
Sweet. Does this mean you're going to add true 32bit support and and use modern day GPU's?

* I got a windowed mode working. I don't know if that is useful to you guys at all, but it sure is to Kevin and I for debugging and development. I need to do some mouse work for it though - like capturing and releasing the mouse. It's nice to play D3 in a window sometimes.
I personally don't find a lot of use for a windowed mode but I can see where it can be useful
* I fixed quite a few random code bugs throughout the code. Some of them may have never manifested themselves into anything noticeable, but oh well, I can't let an obvious bug lay.
nice. thank you.
* I fixed several OpenGL bugs, one of them was huge and was causing screen corruption on a couple of my systems (I think you guys have occasionally come across this).
Including the white box on the reticle? yep.

Patch

Posted: Wed Dec 16, 2009 2:40 am
by Dadas
So when new patch is going to be released i know 1 bug in CTF games - when you switch team with flag on you then it will let that flag where you was( now we are talking about the \"real\" flag) and when you will spawn you will still have flag on you.2 flags - first is the real that can be returned or picked up and second you have always on your ship, when you will die you still have it on your ship after spawn. and when you will disconnect then that flag will be always on that place where you been before disconnect. you can get 3
flags of the same color or a mix of colors then it is looking cool :P
here is a photo with me where i obtained 2 blue flags and 1 red, check also that flag indicator in upper right corner - every flag is on its place

Image
i don't know why but it was upside down i had to rotate it, maybe it is another bug
Also the guide-bot in MP would be nice
EDIT: And when it is going to be released then a auto-download in -directip would be good :D
And when it may get released? :P

Re:

Posted: Wed Dec 16, 2009 7:43 am
by D.Cent
Xamindar wrote:Eh, it doesn't really matter to me. The .loki/descent3 is fine but it is probably confusing to anyone new who comes along as there are ways to install from the windows cds, not the loki ones. If it was just changed to ~/.descent3 that would probably make more sense.
I think this should stay where it is. It is useful for the mission loader of a Descent launcher program I am currently working on (screenshot: http://www.odf-online.org/wiki/images/D321go_dev_qt.png ) - I wouldn't like to change this in my code :P and it is also used by a couple of other tools that are out there which probably cannot be changed today (closed source :-/ ).

Re:

Posted: Fri Dec 18, 2009 8:23 pm
by d3jake
Jeff.Slutter wrote:... Initially I just wanted to play around with some of the rendering code and move it more towards hardware accelerated than what we shipped with, possibly someday really bumping things up with some fancy shaders and such. I only wish there was higher-res original art.
Have you heard of the D3U project? Apparently they've just started work again, but it may be cool if you folks could get together and make some magic...

I have no clue how the internals of D3 are laid out, but I think if we could have the 256^2 cap removed from textures we could make this ol' bird really pretty.

Thanks for your work so far, and for that which will come!

Hey there

Posted: Fri Dec 18, 2009 9:48 pm
by Matt.Toschlog
Hey, Kevin & Jeff. I'm amazed to see all the cool stuff you're doing. Maybe I'll find the time to help out myself sometime. I got so close to finishing that 1.5 patch way back when, and it was a shame that it never got out.

Kevin, my apologies for not replying to your numerous emails and phone calls. I'll give you a ring soon.

Here's a section from the 1.5 readme showing everything that we'd fixed as of 12/3/2001.

Fixes for Version 1.5.0:
- Fixed a checksum problem introduced in 1.4 that prevented some
levels from being played across platforms (for example, Windows
and Linux).
- Force feedback now works under Windows 2000.
- Fixed crash starting a multiplayer game when the Black Pyro is
the only allowed ship and the player is currently set to use
another ship.
- Can no longer start a multiplayer game with no allowed ships.
- It's no longer possible to crash the dedicated server by typing
a very long command line in telnet mode.
- Disabled cheats that are based on changing the ship weapon values
in the data files.
- Mod files are now stored on www.descent3.com (instead of
www.pxo.net).
- Removed support for HEAT.NET, as they're no longer in business.
- Pilot command-line arg (-pilot or +name) is now only checked once,
not every time the main menu comes up. This fixes the problem of
the game switching back to the pilot specified on the command
line after the user has selected a different one.
- When the player's HUD name level is lowered by a game server,
the client remembers the higher level and will revert to that
level when a server allows.
- Fixed a problem with the GuideBot menu not responding to key
presses after firing with the mouse.
- Saved games now properly load custom textures.
- Demos now properly load custom textures.
- Primary weapons no longer behave oddly when attempting to fire
secondaries when out of secondaries.
- Fixed a rendering crash that could be caused (among other ways,
probably) by a lot of chaff being detonated at once.
- Fixed some (maybe all) multiplayer ghost ship problem.
- Omega cannon energy usage is now not framerate dependent.
- Fixed crashes/slowdowns when using the omega cannon.
- Fixed a problem with the rearview camera when viewing demos
of multiplayer games.
- Fixed a ghost ship problem with demos after a player respawned
in a multiplayer game.
- Certain objects, such as the surface cannon in level 10, no
longer interact with observers in multiplayer games.
- The stats file now contains a listing of team members in
Team Anarchy, Mosterball, and Entropy.
- The results screen for team anarchy now shows the team scores.
- Don't show extra teams on team anarchy & monsterball results
screens.
- Removed the Mission Status item from the HUD config menu, since
there is no Mission Status HUD indicator.
- Removed the missile camera center window option, since it didn't
really work (& wasn't supposed to be there in the first place).
If you really want the center view, however, you can set
MissileView to 1 in the registry. Note that going into the
config menu will reset it, though.
- Fixed problems when video bit depth set to 32.
- Clients now can hear the server player taking omega (& other)
damage.
- Fixed problems with omega cannon causing wrong amounts of damage
and damage to the person firing the weapon.
- Allowed room for longer team names on results screens.
- Ping & packet loss data no longer displayed on HUD in
peer-to-peer games.
- It's no longer possible to pick up a powerup in multiplayer while
leaving observer mode while moving over the powerup.
- Added confirmation HUD messages when sending private messages.
- Fixed several problems unloading overlay data.
- Colored stipes now display on player ships in demo playback of
multiplayer games.
- HUD gauges now work in demo playback.
- Clarified the description in readme.txt of the -mission command-line
option. Refer to Section 7, Command-line Options, for the new
description.
- Fixed a couple problems with the level auto-download system.
- In demos of multiplayer games, player ships no longer switch
between modesl for different ships.


New features for Version 1.5.0:
- Increased by 20 the maximum number of player ships.
- Increased by 300 the maximum number of textures.
- Increased by 100 the maximum number of objects.
- Increased by 200 the maximum number of polygon models.
- Added \"-nosatomega\" command-line option to disable alpha
effects on omega cannon. Try this if you have speed or crashing
problems with the omega under 1.5.
- Added -nocrashbox command-line option to disable the error dialog
displayed if the game crashes.
- Improvements for some players using NAT routers. If you're having
trouble playing D3 using a NAT, enable port/host forwarding on
the NAT server, then specify your port with the -useport and
-pxoport command-line options.
- Added \"-datacheck\" command-line option. If you get a message
on the loading screen that your mission has data errors, use
this option and see the file \"datacheck.out\" for a description
of the data errors in your mission.
- In multiplayer, a HUD message is shown when a player's ship
is changed because the selected ship is not allowed.
- Added documentation for -intro command-line option. See Section 7.
- If the file \"mainmenuoverride.ogf\" is present it is used as the
main menu background.

Known issues in Version 1.5.0:
- Because of limitations in the precision of Descent 3's timer,
high framerates are not displayed accurately on the HUD.

Posted: Fri Dec 18, 2009 9:58 pm
by Duper
Welcome Matt! Truly!

Krom, could you do the honors please?

Thanks for the list. Lots of stuff there.

If I could as one question: Why was this decision made to not carry weapons picked up to the next level in coop mode? Balancing?

Posted: Fri Dec 18, 2009 10:28 pm
by Krom
In this case it should probably be \"Welcome back to the DescentBB\" but whatever. :P

Image

Re: Hey there

Posted: Sat Dec 19, 2009 12:08 am
by Peter
Matt.Toschlog wrote:...
Hello Matt and welcome to the DBB!

Is that list of fixes going to be in what Kevin and Jeff are working on? I'm assuming so since they are working on the same code base (as opposed to branching off) that you worked on?

All the same, that is one awesome list! Looking forward to getting my hands on this and, from the looks of things, playing in Mac OS X!

Posted: Sat Dec 19, 2009 12:24 pm
by S13driftAZ
Holy crap its Matt Toschlog!


Welcome!

Matt Toschlog

Posted: Sat Dec 19, 2009 12:36 pm
by Dadas
Matt Toschlog you are our quality guarantee!! :P

Posted: Sat Dec 19, 2009 1:21 pm
by BUBBALOU
Nice to see the Fallen have risen ( at least fell of Descents radar)

Reguards to PXO Debacle

Simply point chat to gamesurge(descent,2,3,rookie, tournament are all there) and DescentForum IRC's (like vortex/Gate) that way if one goes down chat can continue on another

game trackers via Gamespy. and Descent.CX (like vortex basically)

they even have a player stat tracker database out there with participating servers

Simple because it's there and you have to code to change it with a simple stroke of control-x and control-v - just please include a perform on connect option maybe as external cfg files just like irc so that the IRc servers can be added and special join features included

We even have some fun twists with a Server tool developemnt over at the Server Ops Board

you can include this in another post if you create one, I was just mentioning only what has already been established around the community to support this great game