(Seen my glasses? I'm a dork.)
If you want a specific section of my plan, you can use the web interface
like this:
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus§ion=intro
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus§ion=proj
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus§ion=general
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus§ion=ssam
http://icculus.org/cgi-bin/finger/finger.pl?user=icculus§ion=todo
Or directly through port 79, if your finger client will let you get away with:
finger icculus?section=ssam@icculus.org
This is part of the new, improved IcculusFinger. Yay.
Thanks,
--The McManagement.
(This is in no particular order)
- The icculus.org open source incubator.
- SDL_sound.
- PhysicsFS.
- The Build Engine.
- Toby.
- Serious Sam.
- IcculusFinger.
- UT2003.
- various Pyrogon things.
- csmhax0r.
- IcculusNews.
- Other stuff.
I have projects on icculus.org (some are even mine) that are already
abandoned. I will have to figure out what to do with them. If you want to
peek around, look at The CVS Tree.
I can't believe I never read One Flew Over the Cuckoo's Nest before.
This is one of those books that alters your life, or at least makes you
look at things a little differently. Y'know, you feel like you weren't
entertained so much as bettered for having read it. It's up there with the
Catch-22's and 1984's of the world. And I'm only half way through it.
I picked up Eminem's new album. The Marshall Mathers LP is still his best,
and The Eminem Show is, in many ways, more of the same. I still like
how his lyrics are purely offensive, and yet can be very insightful (and
distrustful) of both the culture that he spites and the culture that he
fuels ("the most feared duet since Elton and me played Career Russian
Roulette", all of "White America", etc).
More than that, I love the duality of this Slim Shady persona: a
"pistol-packing drug addict" that tries his best to croon love ballads to
his daughter. You gotta love that. Try to get two dimensions out of any other
parental-advisory material. I dare you.
Yes, I'm porting it. No, there's no timeframe right now. Email me with
questions, and I'll start a FAQ or something.
Current Status:
It seems all the rendering bugs have been shaken out with the ASM fixes.
Every couple hours of gameplay you fall through the floor (!), which will
be a nasty bughunt, but I'm getting to be pleased with the current state of
the port.
Networking stuff. The good news: it works between Linux boxes. The dedicated
server and the client are both fully functional. However, it doesn't work
at all against win32 boxes, and vice-versa.
The reason is that there's a checksum sent during the initial session
negotiation; this checksum includes floating point values that are
calculated by the game before the connection. This is a problem, since GCC
and Visual C (or any other compiler, or other versions of these compilers)
will have slightly different results for any given floating point operation.
Even if we police the floating point control word (which we do), even the
ordering of opcodes can give you slightly different precisions...this is
the CPU maker's perogative, and is done for efficiency, etc. In general,
this is only a serious problem in two scenarios. First, if you need that
deep, deep precision. In reality, FPS games don't, or at least, it's not
fatal if the client and server are off at the 20th decimal place; we aren't
engineering skyscrapers here or anything. Second, if you take a floating
point number and look at it as a collection of bits, for example, to create
a checksum...even though both client and server have more-or-less legitimate
values, the CRC will be wildly different.
For the initial handshake in Serious Sam, it's up to the client to disconnect
if the CRC is incorrect (although no doubt this should/will change in later
versions when someone exploits this truth), so I just commented out the
exception throw and sure enough, I could get into win32 servers on the
Internet.
However, there's also a CRC done on every packet sent to the server, and
here the server takes a more active concern for failed checksums. It keeps a
counter for each client which increments with each failed CRC. When you pass
a certain threshold, you get booted from the server. And yes, there's some
floats in this checksum, too, so you don't stay connected for long.
Croteam has rewritten a good portion of the networking code for the latest
patch, and they are in the process of addressing the CRC thing now. This
means future Serious Engine games (and probably a future patch to The Second
Encounter) will be able to talk between Linux and win32 (and whatever else
shows up). Likely Linux and win32 won't play nice for The First Encounter
without another win32 patch, which I wouldn't hold my breath for...then
again, last time I looked at the server browser for First Encounter games,
there was less than ten of them, and some of them aren't even patched to the
latest revision (some are still on 1.01!), so I don't see anyone really
weeping over this. Then again, maybe that's because there's no way for the
general public to run a Linux dedicated server. :) Actually, seriously,
having Linux servers seems to be a MAD boost to your online life expectancy.
Developers, take heed...and send me a porting contract.
Worst case scenario: your LUG can still play TFE against each other, just not
other win32 boxes. Everything else should be normal.
Next up for me is a minor bug when pulling down the console in-game, and
patching up to the latest Croteam sources. I'm thinking beta after that.
Those old Screenies.
Keep me and icculus.org going.
--ryan.
(FAQ snipped. Check the archives.)
Somewhat immediate TODOs:
- Check for zlib 1.1.3 remnants on icculus.org.
- CC/MacOS again.
- Yuri's Revenge support in csmhax0r.
- Have csmhax0r flip read-only flag.
- Set up DoD and Counterstrike servers for the CSM.
- Get Nicki to pay for a movie.
- Get Emmett to buy me lunch.
- Deal with collection agency.
- Upgrade Liza.
- Reburn damaged music disc.
- Nag Bernd about hardware.
- Nag zakk about hardware (?).
- Clean up the damned logfiles.
- Goddamn I'm friggin' BUSY. :(
Ongoing TODOs:
- Port Serious Sam. ( 15%)
- Rewrite IcculusNews. ( 99%)
- Release SDL_sound v1.0. ( 92%)
- Release PhysicsFS v1.0. ( 98%)
- SDL_mixer rewrite, using non-existant SDL_sound library. ( 0%)
- Toby rewrite #4. Way overdue. ( 20%)
- Documentation for Toby. YEARS overdue. ( 0%)
- Major SMPEG updates. ( 1%)
- Rewrite web interface to mailing list archives. ( 0%)
- Write The Hook Book. ( 0%)
- Read A Beautiful Mind. ( 1%)
- Read One Flew Over the Cuckoo's Nest. ( 50%)
- Read On the Road. ( 15%)
Backburnered, but reasonable TODOs: (in no specific order):
- Hook up CVS to IcculusNews.
- Figure out how to monitor exactly how much bandwidth we've used per month.
- Hook up mailing list software to IcculusNews.
- Hook up Bugzilla to IcculusNews.
- Rewrite Toby's parser.
- Finish writing Punk Ass Comedy.
- Finish writing The Street.
- Finish reading The Dragon Book.
- Increase memory/swapspace.
- Remove http://icculus.org/sysinfo/todo.html
- Clean up room.
- Clean up home dir.
- Set up meldrew.
- Get nerf updated for SSL support.
- Put all the header/footer functions for icculus.org in one PHP file.
Blue sky:
- Get Dreamcast Linux working.
- SDL OS/2.
- SDL LightPen/tablet support.
- SDL MsgBox API.
- SDL_rwops library.
- Make BUILD Engine support OpenGL.
- Fix the Linux Realtek drivers.
- Write scratchware.
- Physics engine.
- BuildGL.
- BuildX.
- Get BUILD engine ready for Matt Saettler.
- Get Duke3D/COMMIT net API implemented for modern platforms.
- Get Duke3D sound API implemented for modern platforms.
- Beat Zork III. I will someday, I swear.
--ryan. (icculus@clutteredmind.org)