This has been done with Quake2:
on
Textmode Quake 2
·
· Score: 4, Interesting
Relnev's Quake2 already had SDL support, so if you ran it as:
export SDL_VIDEODRIVER=aalib
./quake2
You would get the same results. And, when you get quickly bored of it, the same binary can do the regular graphics, too.
(SDL just uses AAlib as one of the drivers, so effectively, you get the same end result with either project, but this is more unified, and unified is good.)
I don't know if this would qualify as interesting enough, or work with true illiterates (that is, a person that can't read thing one) but there's always TurtleGraphics.
My improved version of LOGO is here, and it's free (GPL). Again, the literacy thing can be an obstacle, but there's no reason an early elementary schooler can't use it, so you don't have to be at the Shakespearian level to try it.
At any rate, it might be a nice change of pace if you have even one person that can benefit from it.
Grab my mp3check perl script to make your life much easier when preparing a large quantity of MP3s for CD burning. I wrote it specifically for use with my Aiwa CDC-MP3. Saved me days of work when preparing gigabytes of MP3, I swear.
The Loki programmer clearly doesn't understand MFC. he also doesn't understand VC++'s extensions. That's ok, you can't know everything, but that's not a reason for ranting. It's a reason for investigation and to collect information about the topics he doesn't understand.
I wasn't ranting. I said that you have a brick wall of incompatibility in the MFC, if your goal is to move from Win32 to Linux.
I'm standing by that statement.
It has nothing to do with with how good or bad the MFC is as a toolkit. That's a different debate entirely.
Try support@lokigames.com if you have sound trouble. 9 times out of ten, these turn out to be configuration problems. SimCity 3K is using OpenAL, so it's a newer subsystem than SDL sound, and hey, you never know: it might be our bug.
That being said, if your hardware is really exposing a bug in SimCity, and/or support can't help you, submit the bug to
We have indeed mastered time travel here at Loki. We'll be releasing specs to our ChronoSkimmer (which we reverse-engineered from an old copy of Where in Time is Carmen Sandiago on an Apple IIe) under the GPL sometime soon. Hopefully this will empower more of our customers to achieve the coveted First Post.
The chair WILL be available, but it isn't yet. It is NOT going to be cheap, but it will be cheaper than anything else in it's quality range.
Cobra Technologies is estimating 5 - 10 thousand for a complete chair. Less if you buy it as a hobby kit and build it yourself.
Loki put support for the chair into Descent3, and Alexander Perry put support in FlightGear. In the Loki booth, we were using a Matrox G400 (not 200) for the Flight Gear/Descent3 demo. If you are interested in the chair, contact Cobra; Loki isn't selling them, but I'm sure we'll be adding support to more games as we find ones that fit the "chair paradigm" well. (Adding support is a matter of a few lines of code.)
(Oh, great. I leave town for the weekend, and my project hits Slashdot.:) )
Hi, I'm the Descent3 developer at Loki.
You CAN install the game in less that 500 megs, but the default expects that much space. If you put the movies to disk, it's a gigabyte of space (and not worth doing, unless reading the movies from the CD on-the-fly is too slow.)
Most of the game can be played by swapping CDs at runtime. This at least halves the install space requirements. If you've got two CD drives (ie. - DVD-ROM and a CD burner), you can put one disk in each drive, and Descent will never nag you to swap disks, and you can have a minimal install on the hard disk.
The client (the graphical-fly-around-with-a-joystick-and-sound-and -motion-sickness) version is what Loki will be releasing. It even supports a gaming chair (The RockNRide).
Last Friday, Outrage released a brand new patch to the Win32 version (v1.4), which might fix your problems. I'm integrating this code into the Linux version in another window as I type this.
If you find yourself using the Linux version, and these bugs still exist, please report them in http://fenris.lokigames.com/, and I'll look into fixing them.
Maybe I'm on crack, 'cause I'm not working on this myself, but:
LIVID has a Sigma Designs driver. It's really early in the devel, but the code is there. If I'm correct, we got the code from Sigma in some form or another.
Get on the livid-dev mailinglist, one of the SiS guys is on there.
Commercial efforts can NOT open source DVD programs. The legal risk is worse for them than for people like LIVID, who have no financial stake in a DVD player.
Oh, sure, there WERE word processors and other office applications, but they all kinda sucked. IBMWorks? Blows. Used it for quite awhile, though, so I was kinda glad when the VMware beta would boot OS/2, so I could convert all those old documents to Rich Text Format.:)
...that's not to say that something has to be MS Word to be good. Let me be clear about that.
Also, does anyone remember the big hoopla about an OS/2 port of DOOM? This was ages before iD open-sourced it. The beta of the program always segfaulted on the title screen, and IBM learned the hard way that OS/2 desperately needed direct video and sound access if OS/2 was going to at least be ELIGIBLE to be a gaming platform.
You can't be a viable desktop OS unless you can play games under it. I (*ahem*) tend to be a believer in this. This fact is partially why Win95 came in and mopped the floor with Warp, when by all respects it should NOT have. Warp had YEARS to prove that "Crash Protection" and Multithreading and 32-bit architectures and long filenames, etc were a good reason to switch from Win3.1...Win95 offered all these things (more or less, depending on your opinion)...but not until much MUCH later. And while I can't really blame it all on game support, I know -I- was impressed by win95 games, like the at-the-time-new Pitfall title, in a way I never was with Warp.
DIVE, and GRADD, and DART were some of the results of the OS/2 multimedia/game effort. Funny how we take things like fbcon and DGA for granted under Linux, huh?
Never got my DOOM fix under OS/2, though. And one day, it crashed and took my filesystem with it for the last time, and I never went back. I was then dual-booting Linux and Win95. And it's sad, because I should, by all rights, be telling this story the other way around, with OS/2 overcoming Microsoft's offerings.
That isn't true. I have the IBM OS/2 Programmer's Library on CD and paper. It has all the API documentation that you could want. Just because IBM didn't give it away for free doesn't mean that it doesn't exist.
I stand corrected. If I paid for a copy of VisualAge for C++, I could have the API reference.
This was just a boneheaded move on IBM's part. If you want your operating system to succeed, you need to SATURATE the world with documentation. Seriously. Include it in on one of those BonusPak CDs. Print it on toilet paper. I don't care. JUST GIVE IT OVER FOR FREE. What moron at IBM thought that making it difficult to write apps for their OS was a good idea?
And hey, you can't just psychically determine what an API does. For example, what does DosEnterCriticalSection() do? How am I supposed to know that it does NOT operate like win32's EnterCriticalSection (which operates more like OS/2's DosRequestMutexSemaphore())?
The headers that came with EMX are not documentation enough. There was a grassroots project out there somewhere to produce a free API reference...and it fell on its face. I wrote up the Prf* APIs...but I can't tell you what all ten million OS/2 APIs do...let alone all their side effects.
...but maybe I could have if I had real docs...
I don't mean to sound whiny, or like I want something for free. But it just makes sense to make REAL good friends with your application developers right from the start. But I've already stated what I think about how many applications actually got developed for OS/2.
I ran the thing for over 4 years. Gave up on it after Warp 4...I just couldn't get the hardware support I needed. (I switched to Linux. Linux in 1996 had better driver support than OS/2. What does THAT tell you?)
Furthermore, I got sick of it crashing. It actually did that a LOT. Seriously. My experience with OS/2, after years of using it and developing for it, on beefy boxes as well as constrained systems, was that it NOT more efficient than Win95: It crashed as much (and more than once took the filesystem with it), and didn't run faster or in less space.
Actually, Warp 3 and OS/2 2.1 were probably better than Win95 as far as resources go, but ghod, Warp 4 was BLOATED.
And I really don't see the attraction to the Workplace Shell. It's okay. It's a different paradigm. I can respect that. Generally speaking, I consider X to be just an excuse to open a whole bunch of Xterms, so I'm really not into the cool GUI features so much...but if the "object oriented" metaphor of the WPS was worth anything, it was most undeniably never taken advantage of.
Actually, it wasn't the drivers that drove me from OS/2. It was the apps: there WEREN'T any.
And don't give me any shit about this one. There were NO apps. There was no StarOffice, for what good that thing is. There was two browsers: WebExplorer, which was crap, and Netscape 2.02, which was more than a YEAR out of date when it made its way to OS/2.
The only saving grace of OS/2 was EMX: the GCC port to OS/2. Of course, IBM wouldn't release any API specs for the operating system, so you basically limited to porting Unix apps.
Which brings up a good point: I don't understand the need to port everything from Linux to OS/2. Why are people porting Enlightenment to OS/2?! (apparently the WPS isn't so magical for everyone.:) ). Hobbes, the main OS/2 archive, used to have OS/2 programs. Now it has ports of Linux programs. Save your energy and run Linux instead.
Basically OS/2 was a good idea that was (and still is) mistreated by its creator, and is WAY past its usefulness. I see no reason to artificially extend its life. If you want Linux apps, run Linux. If you want Win32 apps, run Windows, but don't expend your talents on a dead OS when there is more potential for good elsewhere.
Ugh. I hate to write that, having spent years doing my share of OS/2 advocacy. There are still some chunks of OS/2 that could be useful to the Open Source world if IBM released the code, but I'm not gonna hold my breath until I turn blue...so to speak.
...is Glade. It saves the entire user interface of a GTK+ application as a big XML file.
The output is something like this:
<widget> <name>myButton</name> <type>GtkButton</type> <label>This is my button.</label> <signal> <signalname>clicked</signalname> <handler>on_myButton_clicked</handler> </signal> </widget>
(or something like that.) With libglade, you can just (at runtime) read the XML file and build the user interface on the fly. Among other good things, this allows you to tweak UI details without a recompile. ("Dang, I misspelled that label! Gotta relink, now!")
Also, it's just a big text file, so while you might find it easier to build the initial interface in Glade, the tweaking can be done easily enough with vi or whatnot...
Well, I learned something new about security AND humanity today.
Decency suggests that next time you should just politely log someone out if they were foolish enough (or exhausted and therefore forgetful after 48 hours of Loki-Hacking) to leave themselves logged in.
The lesson was still appreciated...thank you. I shall not do something as foolish again.
WARNING. THIS IS A LONG POST. BUT I WAS THERE, SO I KNOW WHAT I'M TALKING ABOUT.:)
(Man...I wish I had seen this a few hours ago!:) )
Uh, hi. I was runner-up #2. My name's Ryan. I wrote the "server mod", which isn't really a server mod, and I'll explain in a minute. First, I want to discuss Loki Hack and ALS.
I wasn't going to ALS at all, originally. It was another Linux conference that I couldn't schedule into my life (like all Linux conferences...sigh...) but I saw Loki's advertisement for the 'Hack on Slashdot, and figured "Hhm...no prayer of beating the Slashdot masses with MY application, but I'll enter it anyway." I actually screwed up my 'Hack application, referring to the contest as "48 contestants doing 30 hours of programming"...my bad.:)
So, needless to say, I was somewhat shocked when I checked my email one Friday night to find that I was invited to participate.
I later found out that there was only ~31 entries...20 of which agreed to show up. So much for that Slashdot effect, eh? Realistically, it was VERY short notice to put a lot of demand on a contestant's time and money...I suspect next year this may be less of an issue.
Still, I quietly took a week off from work (I wonder if I still have a job? Oh well...) Transfered some flow to my check card, and hopped in my little blue Saturn to make the drive from Charlotte to Altanta...only 3.5 hours down I-85 South. Not bad at all.
One contestant was there before me, having "hitchhiked" from Salt Lake City. Smart guy...works for MyComputer.com. Met Scott Draeker and Sam Lantiga of Loki, got my case of CD's flipped through quickly by the security guard (which was the extent of the "police harrassment" any of us got...which was MUCH less than expected by me...but I'm paranoid.)
So I popped in my custom CD-R of important data: source to FTE, glibc reference in HTML, Limp Bizkit in MP3.:) Copies of every relevant webpage I could find; the original slashdot posting, Loki's homepage, SDL's documentation...
Others began to arrive. The guy next to me noted there was a nametag waiting for a contestant named "Eric Raymond." As the contest started, Mr. Draeker annouced that whomever was the contestant from IBM, he need not worry; IBM's lawyers said the NDA was okay for him to sign. After a (VERY) brief overview of the code ('the "gfx" directory is for graphics, "ui" is the user interface, etc...any questions?'), we all went around the room and introduced ourselves and what we wanted to do to the code. There was a contestant from Zendragon software, who was an old-school XFree86 hacker. There was a guy from Cygnus software. Someone else was from Creative Labs. San Mehan from VA was there. Eric Raymond was not, yet. One person wanted to port to Clanlib. One wanted to redesign the tile properties to include stealth, etc. for "more realistic" tank warfare (he was a programmer from Florida working on defense contracts or something). Others talked about AI, GGI cubes, and other more-than-impressive stuff. And they were all confident this would be accomplished in 48 hours.
Needless to say, my little punk ass was feeling more than slightly underqualified at this point.
"Uh, hi. I'm Ryan Gordon, I'm a programmer in Charlotte, NC, and I haven't the SLIGHTEST clue what I'm going to do with Civ, yet. But it'll be REALLY cool when it's done."
I gave a goofy smile and a thumbs up. Everyone (myself included) probably considered the possibility of mental retardation.
Admittedly, I'd played the Win32 version of Civ:CTP for the first time the previous night. Never the Linux version. I hoped they were similar. Remarkably, they appear to be identical, minus a splash screen from Loki at the start of the Linux port.
NDAs are passed out. They are a JOKE. We may not physically remove the source from the room, but we may discuss it at our leisure publically. Anything we retain IN OUR MEMORY can be used for personal, public, commercial, and non-commercial uses. I interpret this to mean that if my memory was good enough, I could leave the hack, type in 0.5 million lines of code, and legally own it. Maybe I'm wrong. Scott Draeker is a software licensing lawyer when not running Loki, and he called the document an "Anti-NDA." He had never seen the memory clause before, and suspects he never will again. No one knows why Activision allowed that one to get by. Somehow, I don't see myself as a threat to their business, though.
The hack begins. We tore through code like we tore through the cases of Pepsi. No one says much beyond the standard jokes about the quality of the code.
A word about that. The code to Civ:CTP is...well...I've seen worse. But it wasn't great. There wasn't any documentation (but comments in the code existed...I wish there was more, and an overview or whatnot would have helped a lot...) Specifically, internally, a good portion of Civ is scripted using the "slic" engine...no documentation exists for this engine at all, in source comments or printed form; indeed, Loki didn't have this either. Script syntax and usage could only be grokked from the source code itself. This principle applies to the entire codebase. Loki developers noted to me that it took them three days to get a dialog box to draw using the aui (activision? abstract? user interface) code from civ:ctp. I didn't have that much time, but being stubborn, spent about 30 of my hours trying to grok it. I failed on that one.:) This was my biggest tactical mistake, for those that really believed this to be a contest.
This brings us to a good point. It occurred to us all, subconsciously and early on, that the best help resource was not Loki's developers (who didn't know where to point us for the REALLY obscure details we needed for really strange hacks) but rather EACH OTHER.
Okay, group hug.
Seriously, we found that the obscure details we needed were usually found by someone else, or that they were willing TO STOP WHAT THEY WERE DOING, and help us search. Amazing. Anti-contest.
Eric S. Raymond -DID- show up, and gave up on adding a new government type...no one (especially Eric) has that much free time to spend on something of that magnitude. Later on, he added more cities to the game, but mostly had other things to do with his time. I can't say I blame the man...Linus Torvalds himself would have more free time than Eric at ALS.
So the contest continued. I found myself asleep under the food table at one point around the 18 hour mark...crawled out from under there and back to my seat blurry-eyed to continue working...no one thought this was unusual.:)
Around 24 hours, Cartman (the quad Xeon, 1 gig RAM build server) crashed. It took forever to get it back, and the solution seemed to be disabling NFS, as it was devouring memory for those multiple copies of 80-megabyte debug binaries and such...we continued then by telnetting into Cartman and doing our work there instead of exporting the devel directories to our individual boxes. That seemed to fix it.
As the contest reached the 10-hour-left point, I -FINALLY had a good way to do my hack. The original idea remained: I wanted to play Tetris (or pong...or whatever) in between network game turns. In a 32 player game, you have TIME TO KILL between turns. I thought I'd add this to the game in a Civ:CTP dialog box. You see the failing? Writing tetris from scratch in 48 hours seemed trivial in comparison. In reality, it probably was trivial in comparison.
Also, a friend had previously suggested to me that I add an "addiction meter" to the game. Something like a popup that says "You've been playing for 6 hours and 19 minutes...this rates you as: -JUNKIE-"...
So I used an old Unix philosophy: why make one BIG program, when you can have a bunch of little ones that exec() each other?
So here's my hack: I added code to Civ that will spawn external programs at the beginning and end of the local player's turn. These are specified by the environment variables CTPBEGINTURN and CTPENDTURN. The values of those variables are the file to exec(). If the variables don't exist, then no fork()/exec() is done.
But wait, there's more.
At the start of each turn, Civ can now dump out a text file of game state information. This includes network game info (can I dynamically join this game?, etc) and player info ("Brian Boru", isAlive, etc...)...uh, and other little things, like if anyone's built a space city yet.
Nothing too insecure for cheating's sake.
This file is written to $HOME/.civctp/civchain.txt (or wherever you specify with $CIVCHAINFILENAME), before the process is spawned. The spawned code can be anything with the executable bit set; a shell or perl script, binaries, etc...
This leads to a primary benefit: extensibility BEYOND the hack. Users in the open source world can add new features, roughly, through a rough interface to the game. It sure as hell isn't ideal, but it's better, in my opinion, than a slightly improved, but hereafter untouchable, AI algorithm would have been.
Some uses for this?
1) The user can spawn xtetris/xbill/xcetera at the end of his turn, and have a shell script kill off the game when his turn comes around again.
2) The user can run a program that reads civchain.txt and pops up a dialog if he's been at it too long (the addiction rater I mentioned before.) The difference is now that this isn't limited to closed-source, and it's not limited to C++ and the AUI classes.
3) The user can parse the details of civchain.txt to a pretty HTML file, and dump that onto a webserver so people can see the current status of a game by hitting the website. Indeed, I wrote this program as proof-of-concept during hour #48.
There are deficiencies, and even bugs, especially in the civchain.txt creation, but it's usable. Email me for details. My address is at the bottom of this reply.
Thanks for reading this far if you just wanted the details of the "server hack.":)
Eventually the judges came around. I apologized to Hemos for not having any Nanotechnology in my hack.:)
Lots of cool was created. Eric got all the US capitals added to the game (and we all stopped to help...taught us all how piss-poor our georgraphy skills were...we couldn't even think of all fifty states for quite awhile...of course, we were mostly on our third day without good sleep.) Daniel, who later kicked my ass at BattleTech at Dave and Busters, ported (miraculously and without a prior test run before judgement) the program to clanlib. The dude from Creative Labs got Civ:CTP running on a side of the infamous GGI cube. Joshua got a bunch of cool things done. There was a lot more, but these were the ones I remember best.
As for the future use of these, obviously the Clanlib and GGI guys should be crapping their pants when they hear about the port, and the Aztecs are a great (re)addition to Civilization. I hope my addition is at least flexible enough for some creative soul to make use of...many things (like the addition of a porcupine race...sorry, Josh!) will probably NOT be folded back into the game, but some details (like the wandering players hack) could even make it as far as the next win32 release...who knows? I doubt Loki could even be ACCUSED of getting "free labor" out of this...but Activision and Loki definitely got "free ideas"...and that's cool. Open Source isn't about code so much as good suggestions from peer review...fresh perspectives...maybe Activision will see that Intellectual Property is expanded in a new way much more so than it is diminished in the common ways through open source.
But maybe not. That's okay too; I had fun. Call me a selfish detractor from the open source movement, but I don't care if Activision opens this game up. I also don't care that I "consorted" with the enemy for 48 hours, and gave them free peer review. It was fun. I met all sorts of cool people from the Loki guys to Phil Hughes to Illiad to Eric Raymond to Liz Coolbaugh to Taco and Hemos to Scoop to that dude from Cult of the Dead Cow to...countless others. I got offered some jobs (and Scott, I'm still sending you that resume...Charlotte isn't TOO far from California, right?) by some very varied sources.
And I learned a lot. It was a growing experience. Not only did I learn more about how (not) to manage a massively large project, but I saw what great minds do when they connect. I learned that you needn't be TOO ashamed when you've been up for 45 hours and forget how a C++ constructor works. (oops.:) )
So in the first and last Loki Hack of the century, I'd say the result was entirely positive. The only thing I would seriously change, if I had it all to do over again, would be how I attacked the code. The best plan seemed to be to plant some hooks and get out of the code base as quickly as possible.
As for next year, there's been some grumblings of plans for a Loki Hack '00, but nothing is definite. Let's just say if it goes anything like what we all discussed at the open bar after this year's event, it'll be a) VERY different, b) much better, and c) have wider-reaching effects and implications. I think you'll be impressed, whether you liked Loki Hack this year or not...I just don't want to promise things for Loki that aren't nearly definite yet, but you can get some hints from other replies to the original article.
In closing, big thanks again to Loki for the opportunity. I enjoyed every moment and got so much from it...and it only cost me gas money...everything after that, I spent of my own free, impulsive will.:)
Comments, questions, and everything else that isn't spam is welcome at ryan_gordon@hotmail.com.
--ryan c. gordon. second runner-up, loki hack '99.
I'm really pleased that Andover.net keeps giving boosts to sites like this. Let's hope that Freshmeat will only enjoy a better success they have been thus far!
Relnev's Quake2 already had SDL support, so if you ran it as:
./quake2
export SDL_VIDEODRIVER=aalib
You would get the same results. And, when you get quickly bored of it, the same binary can do the regular graphics, too.
(SDL just uses AAlib as one of the drivers, so effectively, you get the same end result with either project, but this is more unified, and unified is good.)
Relnev's project page and cvs-over-the-web.
--ryan.
I don't know if this would qualify as interesting enough, or work with true illiterates (that is, a person that can't read thing one) but there's always TurtleGraphics.
My improved version of LOGO is here, and it's free (GPL). Again, the literacy thing can be an obstacle, but there's no reason an early elementary schooler can't use it, so you don't have to be at the Shakespearian level to try it.
At any rate, it might be a nice change of pace if you have even one person that can benefit from it.
--ryan.(icculus@SPAMISEVILclutteredmind.org)
Grab my mp3check perl script to make your life much easier when preparing a large quantity of MP3s for CD burning. I wrote it specifically for use with my Aiwa CDC-MP3. Saved me days of work when preparing gigabytes of MP3, I swear.
--ryan. (icculus@lokigames.com)
The Loki programmer clearly doesn't understand MFC. he also doesn't understand VC++'s extensions. That's ok, you can't know everything, but that's not a reason for ranting. It's a reason for investigation and to collect information about the topics he doesn't understand.
I wasn't ranting. I said that you have a brick wall of incompatibility in the MFC, if your goal is to move from Win32 to Linux.
I'm standing by that statement.
It has nothing to do with with how good or bad the MFC is as a toolkit. That's a different debate entirely.
--ryan. (icculus@lokigames.com)
Standard, cross platform, open source gaming library:
:)
Simple Directmedia Layer.
http://www.libsdl.org/
We use it for all of our games. Now if we could convince the rest of the world that this is a good idea.
--ryan. (icculus@lokigames.com)
Try support@lokigames.com if you have sound trouble. 9 times out of ten, these turn out to be configuration problems. SimCity 3K is using OpenAL, so it's a newer subsystem than SDL sound, and hey, you never know: it might be our bug.
That being said, if your hardware is really exposing a bug in SimCity, and/or support can't help you, submit the bug to
http://fenris.lokigames.com/
...and we'll fix it.
--ryan. (icculus@lokigames.com)
We have indeed mastered time travel here at Loki. We'll be releasing specs to our ChronoSkimmer (which we reverse-engineered from an old copy of Where in Time is Carmen Sandiago on an Apple IIe) under the GPL sometime soon. Hopefully this will empower more of our customers to achieve the coveted First Post.
Thanks for your interest, and remember to share!
--ryan. (icculus@lokigames.com)
(Hi, I'm the guy in the loki booth.)
The chair WILL be available, but it isn't yet. It is NOT going to be cheap, but it will be cheaper than anything else in it's quality range.
Cobra Technologies is estimating 5 - 10 thousand for a complete chair. Less if you buy it as a hobby kit and build it yourself.
Loki put support for the chair into Descent3, and Alexander Perry put support in FlightGear. In the Loki booth, we were using a Matrox G400 (not 200) for the Flight Gear/Descent3 demo. If you are interested in the chair, contact Cobra; Loki isn't selling them, but I'm sure we'll be adding support to more games as we find ones that fit the "chair paradigm" well. (Adding support is a matter of a few lines of code.)
--ryan. (icculus@lokigames.com)
(Oh, great. I leave town for the weekend, and my project hits Slashdot. :) )
Hi, I'm the Descent3 developer at Loki.
You CAN install the game in less that 500 megs, but the default expects that much space. If you put the movies to disk, it's a gigabyte of space (and not worth doing, unless reading the movies from the CD on-the-fly is too slow.)
Most of the game can be played by swapping CDs at runtime. This at least halves the install space requirements. If you've got two CD drives (ie. - DVD-ROM and a CD burner), you can put one disk in each drive, and Descent will never nag you to swap disks, and you can have a minimal install on the hard disk.
--ryan.
We've got Sim City 3000 Unlimited. It just went beta.
(*shrug*)
--ryan. (icculus@lokinospampleasegames.com)
The client (the graphical-fly-around-with-a-joystick-and-sound-and -motion-sickness) version is what Loki will be releasing. It even supports a gaming chair (The RockNRide).
I've got it all running here.
Screenshots are here.
My big white ass on the RockNRide.
--ryan. (icculus@lokiSPAMSUXgames.com)
Last Friday, Outrage released a brand new patch to the Win32 version (v1.4), which might fix your problems. I'm integrating this code into the Linux version in another window as I type this.
If you find yourself using the Linux version, and these bugs still exist, please report them in http://fenris.lokigames.com/, and I'll look into fixing them.
--ryan. (icculus@dontspamonme.lokigames.com)
Just a correction: The OpenUT developer (Daniel Vogel) is -NOT- on vacation, per se. He WORKS for Loki, now.
I'll leave it as an exercise to the reader to see the irony in all this.
--ryan. (icculus@loki.nospam.games.com)
Actually, it's a lot of fun. :)
http://www.lokigames.com/~icculus/rnr/
Descent 1 and 2 are open source. Check freshmeat.
Old Sierra games can be played with FreeSCI and Sarien (again, check freshmeat).
--ryan.
(The guy who's working on Descent 3: icculus@spamsux.lokigames.com)
Maybe I'm on crack, 'cause I'm not working on this myself, but:
LIVID has a Sigma Designs driver. It's really early in the devel, but the code is there. If I'm correct, we got the code from Sigma in some form or another.
--ryan.
It will NOT be opensource.
Get on the livid-dev mailinglist, one of the SiS guys is on there.
Commercial efforts can NOT open source DVD programs. The legal risk is worse for them than for people like LIVID, who have no financial stake in a DVD player.
--ryan.
Oh, sure, there WERE word processors and other office applications, but they all kinda sucked. IBMWorks? Blows. Used it for quite awhile, though, so I was kinda glad when the VMware beta would boot OS/2, so I could convert all those old documents to Rich Text Format. :)
...that's not to say that something has to be MS Word to be good. Let me be clear about that.
Also, does anyone remember the big hoopla about an OS/2 port of DOOM? This was ages before iD open-sourced it. The beta of the program always segfaulted on the title screen, and IBM learned the hard way that OS/2 desperately needed direct video and sound access if OS/2 was going to at least be ELIGIBLE to be a gaming platform.
You can't be a viable desktop OS unless you can play games under it. I (*ahem*) tend to be a believer in this. This fact is partially why Win95 came in and mopped the floor with Warp, when by all respects it should NOT have. Warp had YEARS to prove that "Crash Protection" and Multithreading and 32-bit architectures and long filenames, etc were a good reason to switch from Win3.1...Win95 offered all these things (more or less, depending on your opinion)...but not until much MUCH later. And while I can't really blame it all on game support, I know -I- was impressed by win95 games, like the at-the-time-new Pitfall title, in a way I never was with Warp.
DIVE, and GRADD, and DART were some of the results of the OS/2 multimedia/game effort. Funny how we take things like fbcon and DGA for granted under Linux, huh?
Never got my DOOM fix under OS/2, though. And one day, it crashed and took my filesystem with it for the last time, and I never went back. I was then dual-booting Linux and Win95. And it's sad, because I should, by all rights, be telling this story the other way around, with OS/2 overcoming Microsoft's offerings.
--ryan.
That isn't true. I have the IBM OS/2 Programmer's Library on CD and paper. It has all the API documentation that you could want. Just because IBM didn't give it away for free doesn't mean that it doesn't exist.
I stand corrected. If I paid for a copy of VisualAge for C++, I could have the API reference.
This was just a boneheaded move on IBM's part. If you want your operating system to succeed, you need to SATURATE the world with documentation. Seriously. Include it in on one of those BonusPak CDs. Print it on toilet paper. I don't care. JUST GIVE IT OVER FOR FREE. What moron at IBM thought that making it difficult to write apps for their OS was a good idea?
And hey, you can't just psychically determine what an API does. For example, what does DosEnterCriticalSection() do? How am I supposed to know that it does NOT operate like win32's EnterCriticalSection (which operates more like OS/2's DosRequestMutexSemaphore())?
The headers that came with EMX are not documentation enough. There was a grassroots project out there somewhere to produce a free API reference...and it fell on its face. I wrote up the Prf* APIs...but I can't tell you what all ten million OS/2 APIs do...let alone all their side effects.
...but maybe I could have if I had real docs...
I don't mean to sound whiny, or like I want something for free. But it just makes sense to make REAL good friends with your application developers right from the start. But I've already stated what I think about how many applications actually got developed for OS/2.
--ryan.
...do people get so nostalgic about OS/2?!
:) ). Hobbes, the main OS/2 archive, used to have OS/2 programs. Now it has ports of Linux programs. Save your energy and run Linux instead.
I ran the thing for over 4 years. Gave up on it after Warp 4...I just couldn't get the hardware support I needed. (I switched to Linux. Linux in 1996 had better driver support than OS/2. What does THAT tell you?)
Furthermore, I got sick of it crashing. It actually did that a LOT. Seriously. My experience with OS/2, after years of using it and developing for it, on beefy boxes as well as constrained systems, was that it NOT more efficient than Win95: It crashed as much (and more than once took the filesystem with it), and didn't run faster or in less space.
Actually, Warp 3 and OS/2 2.1 were probably better than Win95 as far as resources go, but ghod, Warp 4 was BLOATED.
And I really don't see the attraction to the Workplace Shell. It's okay. It's a different paradigm. I can respect that. Generally speaking, I consider X to be just an excuse to open a whole bunch of Xterms, so I'm really not into the cool GUI features so much...but if the "object oriented" metaphor of the WPS was worth anything, it was most undeniably never taken advantage of.
Actually, it wasn't the drivers that drove me from OS/2. It was the apps: there WEREN'T any.
And don't give me any shit about this one. There were NO apps. There was no StarOffice, for what good that thing is. There was two browsers: WebExplorer, which was crap, and Netscape 2.02, which was more than a YEAR out of date when it made its way to OS/2.
The only saving grace of OS/2 was EMX: the GCC port to OS/2. Of course, IBM wouldn't release any API specs for the operating system, so you basically limited to porting Unix apps.
Which brings up a good point: I don't understand the need to port everything from Linux to OS/2. Why are people porting Enlightenment to OS/2?! (apparently the WPS isn't so magical for everyone.
Basically OS/2 was a good idea that was (and still is) mistreated by its creator, and is WAY past its usefulness. I see no reason to artificially extend its life. If you want Linux apps, run Linux. If you want Win32 apps, run Windows, but don't expend your talents on a dead OS when there is more potential for good elsewhere.
Ugh. I hate to write that, having spent years doing my share of OS/2 advocacy. There are still some chunks of OS/2 that could be useful to the Open Source world if IBM released the code, but I'm not gonna hold my breath until I turn blue...so to speak.
--ryan.
...is Glade. It saves the entire user interface of a GTK+ application as a big XML file.
The output is something like this:
<widget>
<name>myButton</name>
<type>GtkButton</type>
<label>This is my button.</label>
<signal>
<signalname>clicked</signalname>
<handler>on_myButton_clicked</handler>
</signal>
</widget>
(or something like that.)
With libglade, you can just (at runtime) read the XML file and build the user interface on the fly. Among other good things, this allows you to tweak UI details without a recompile. ("Dang, I misspelled that label! Gotta relink, now!")
Also, it's just a big text file, so while you might find it easier to build the initial interface in Glade, the tweaking can be done easily enough with vi or whatnot...
--ryan.
Well, I learned something new about security AND humanity today.
Decency suggests that next time you should just politely log someone out if they were foolish enough (or exhausted and therefore forgetful after 48 hours of Loki-Hacking) to leave themselves logged in.
The lesson was still appreciated...thank you. I shall not do something as foolish again.
--ryan.
(Man...I wish I had seen this a few hours ago!
Uh, hi. I was runner-up #2. My name's Ryan. I wrote the "server mod", which isn't really a server mod, and I'll explain in a minute. First, I want to discuss Loki Hack and ALS.
I wasn't going to ALS at all, originally. It was another Linux conference that I couldn't schedule into my life (like all Linux conferences...sigh...) but I saw Loki's advertisement for the 'Hack on Slashdot, and figured "Hhm...no prayer of beating the Slashdot masses with MY application, but I'll enter it anyway." I actually screwed up my 'Hack application, referring to the contest as "48 contestants doing 30 hours of programming"
So, needless to say, I was somewhat shocked when I checked my email one Friday night to find that I was invited to participate.
I later found out that there was only ~31 entries...20 of which agreed to show up. So much for that Slashdot effect, eh? Realistically, it was VERY short notice to put a lot of demand on a contestant's time and money...I suspect next year this may be less of an issue.
Still, I quietly took a week off from work (I wonder if I still have a job? Oh well...) Transfered some flow to my check card, and hopped in my little blue Saturn to make the drive from Charlotte to Altanta...only 3.5 hours down I-85 South. Not bad at all.
One contestant was there before me, having "hitchhiked" from Salt Lake City. Smart guy...works for MyComputer.com. Met Scott Draeker and Sam Lantiga of Loki, got my case of CD's flipped through quickly by the security guard (which was the extent of the "police harrassment" any of us got...which was MUCH less than expected by me...but I'm paranoid.)
So I popped in my custom CD-R of important data: source to FTE, glibc reference in HTML, Limp Bizkit in MP3.
Others began to arrive. The guy next to me noted there was a nametag waiting for a contestant named "Eric Raymond." As the contest started, Mr. Draeker annouced that whomever was the contestant from IBM, he need not worry; IBM's lawyers said the NDA was okay for him to sign. After a (VERY) brief overview of the code ('the "gfx" directory is for graphics, "ui" is the user interface, etc...any questions?'), we all went around the room and introduced ourselves and what we wanted to do to the code. There was a contestant from Zendragon software, who was an old-school XFree86 hacker. There was a guy from Cygnus software. Someone else was from Creative Labs. San Mehan from VA was there. Eric Raymond was not, yet. One person wanted to port to Clanlib. One wanted to redesign the tile properties to include stealth, etc. for "more realistic" tank warfare (he was a programmer from Florida working on defense contracts or something). Others talked about AI, GGI cubes, and other more-than-impressive stuff. And they were all confident this would be accomplished in 48 hours.
Needless to say, my little punk ass was feeling more than slightly underqualified at this point.
"Uh, hi. I'm Ryan Gordon, I'm a programmer in Charlotte, NC, and I haven't the SLIGHTEST clue what I'm going to do with Civ, yet. But it'll be REALLY cool when it's done."
I gave a goofy smile and a thumbs up. Everyone (myself included) probably considered the possibility of mental retardation.
Admittedly, I'd played the Win32 version of Civ:CTP for the first time the previous night. Never the Linux version. I hoped they were similar. Remarkably, they appear to be identical, minus a splash screen from Loki at the start of the Linux port.
NDAs are passed out. They are a JOKE. We may not physically remove the source from the room, but we may discuss it at our leisure publically. Anything we retain IN OUR MEMORY can be used for personal, public, commercial, and non-commercial uses. I interpret this to mean that if my memory was good enough, I could leave the hack, type in 0.5 million lines of code, and legally own it. Maybe I'm wrong. Scott Draeker is a software licensing lawyer when not running Loki, and he called the document an "Anti-NDA." He had never seen the memory clause before, and suspects he never will again. No one knows why Activision allowed that one to get by. Somehow, I don't see myself as a threat to their business, though.
The hack begins. We tore through code like we tore through the cases of Pepsi. No one says much beyond the standard jokes about the quality of the code.
A word about that. The code to Civ:CTP is...well...I've seen worse. But it wasn't great. There wasn't any documentation (but comments in the code existed...I wish there was more, and an overview or whatnot would have helped a lot...) Specifically, internally, a good portion of Civ is scripted using the "slic" engine...no documentation exists for this engine at all, in source comments or printed form; indeed, Loki didn't have this either. Script syntax and usage could only be grokked from the source code itself. This principle applies to the entire codebase. Loki developers noted to me that it took them three days to get a dialog box to draw using the aui (activision? abstract? user interface) code from civ:ctp. I didn't have that much time, but being stubborn, spent about 30 of my hours trying to grok it. I failed on that one.
This brings us to a good point. It occurred to us all, subconsciously and early on, that the best help resource was not Loki's developers (who didn't know where to point us for the REALLY obscure details we needed for really strange hacks) but rather EACH OTHER.
Okay, group hug.
Seriously, we found that the obscure details we needed were usually found by someone else, or that they were willing TO STOP WHAT THEY WERE DOING, and help us search. Amazing. Anti-contest.
Eric S. Raymond -DID- show up, and gave up on adding a new government type...no one (especially Eric) has that much free time to spend on something of that magnitude. Later on, he added more cities to the game, but mostly had other things to do with his time. I can't say I blame the man...Linus Torvalds himself would have more free time than Eric at ALS.
So the contest continued. I found myself asleep under the food table at one point around the 18 hour mark...crawled out from under there and back to my seat blurry-eyed to continue working...no one thought this was unusual.
Around 24 hours, Cartman (the quad Xeon, 1 gig RAM build server) crashed. It took forever to get it back, and the solution seemed to be disabling NFS, as it was devouring memory for those multiple copies of 80-megabyte debug binaries and such...we continued then by telnetting into Cartman and doing our work there instead of exporting the devel directories to our individual boxes. That seemed to fix it.
As the contest reached the 10-hour-left point, I -FINALLY had a good way to do my hack. The original idea remained: I wanted to play Tetris (or pong...or whatever) in between network game turns. In a 32 player game, you have TIME TO KILL between turns. I thought I'd add this to the game in a Civ:CTP dialog box. You see the failing? Writing tetris from scratch in 48 hours seemed trivial in comparison. In reality, it probably was trivial in comparison.
Also, a friend had previously suggested to me that I add an "addiction meter" to the game. Something like a popup that says "You've been playing for 6 hours and 19 minutes...this rates you as: -JUNKIE-"
So I used an old Unix philosophy: why make one BIG program, when you can have a bunch of little ones that exec() each other?
So here's my hack: I added code to Civ that will spawn external programs at the beginning and end of the local player's turn. These are specified by the environment variables CTPBEGINTURN and CTPENDTURN. The values of those variables are the file to exec(). If the variables don't exist, then no fork()/exec() is done.
But wait, there's more.
At the start of each turn, Civ can now dump out a text file of game state information. This includes network game info (can I dynamically join this game?, etc) and player info ("Brian Boru", isAlive, etc...)...uh, and other little things, like if anyone's built a space city yet.
Nothing too insecure for cheating's sake.
This file is written to $HOME/.civctp/civchain.txt (or wherever you specify with $CIVCHAINFILENAME), before the process is spawned. The spawned code can be anything with the executable bit set; a shell or perl script, binaries, etc...
This leads to a primary benefit: extensibility BEYOND the hack. Users in the open source world can add new features, roughly, through a rough interface to the game. It sure as hell isn't ideal, but it's better, in my opinion, than a slightly improved, but hereafter untouchable, AI algorithm would have been.
Some uses for this?
1) The user can spawn xtetris/xbill/xcetera at the end of his turn, and have a shell script kill off the game when his turn comes around again.
2) The user can run a program that reads civchain.txt and pops up a dialog if he's been at it too long (the addiction rater I mentioned before.) The difference is now that this isn't limited to closed-source, and it's not limited to C++ and the AUI classes.
3) The user can parse the details of civchain.txt to a pretty HTML file, and dump that onto a webserver so people can see the current status of a game by hitting the website. Indeed, I wrote this program as proof-of-concept during hour #48.
There are deficiencies, and even bugs, especially in the civchain.txt creation, but it's usable. Email me for details. My address is at the bottom of this reply.
Thanks for reading this far if you just wanted the details of the "server hack."
Eventually the judges came around. I apologized to Hemos for not having any Nanotechnology in my hack.
Lots of cool was created. Eric got all the US capitals added to the game (and we all stopped to help...taught us all how piss-poor our georgraphy skills were...we couldn't even think of all fifty states for quite awhile...of course, we were mostly on our third day without good sleep.) Daniel, who later kicked my ass at BattleTech at Dave and Busters, ported (miraculously and without a prior test run before judgement) the program to clanlib. The dude from Creative Labs got Civ:CTP running on a side of the infamous GGI cube. Joshua got a bunch of cool things done. There was a lot more, but these were the ones I remember best.
As for the future use of these, obviously the Clanlib and GGI guys should be crapping their pants when they hear about the port, and the Aztecs are a great (re)addition to Civilization. I hope my addition is at least flexible enough for some creative soul to make use of...many things (like the addition of a porcupine race...sorry, Josh!) will probably NOT be folded back into the game, but some details (like the wandering players hack) could even make it as far as the next win32 release...who knows? I doubt Loki could even be ACCUSED of getting "free labor" out of this...but Activision and Loki definitely got "free ideas"...and that's cool. Open Source isn't about code so much as good suggestions from peer review...fresh perspectives...maybe Activision will see that Intellectual Property is expanded in a new way much more so than it is diminished in the common ways through open source.
But maybe not. That's okay too; I had fun. Call me a selfish detractor from the open source movement, but I don't care if Activision opens this game up. I also don't care that I "consorted" with the enemy for 48 hours, and gave them free peer review. It was fun. I met all sorts of cool people from the Loki guys to Phil Hughes to Illiad to Eric Raymond to Liz Coolbaugh to Taco and Hemos to Scoop to that dude from Cult of the Dead Cow to...countless others. I got offered some jobs (and Scott, I'm still sending you that resume...Charlotte isn't TOO far from California, right?) by some very varied sources.
And I learned a lot. It was a growing experience. Not only did I learn more about how (not) to manage a massively large project, but I saw what great minds do when they connect. I learned that you needn't be TOO ashamed when you've been up for 45 hours and forget how a C++ constructor works. (oops.
So in the first and last Loki Hack of the century, I'd say the result was entirely positive. The only thing I would seriously change, if I had it all to do over again, would be how I attacked the code. The best plan seemed to be to plant some hooks and get out of the code base as quickly as possible.
As for next year, there's been some grumblings of plans for a Loki Hack '00, but nothing is definite. Let's just say if it goes anything like what we all discussed at the open bar after this year's event, it'll be a) VERY different, b) much better, and c) have wider-reaching effects and implications. I think you'll be impressed, whether you liked Loki Hack this year or not...I just don't want to promise things for Loki that aren't nearly definite yet, but you can get some hints from other replies to the original article.
In closing, big thanks again to Loki for the opportunity. I enjoyed every moment and got so much from it...and it only cost me gas money...everything after that, I spent of my own free, impulsive will.
Comments, questions, and everything else that isn't spam is welcome at ryan_gordon@hotmail.com.
--ryan c. gordon.
second runner-up, loki hack '99.
I'm really pleased that Andover.net keeps giving boosts to sites like this. Let's hope that Freshmeat will only enjoy a better success they have been thus far!
(First post!)
--ryan.
...anyone know where I can find out what specifically has changed between 1.0 and the last beta?
(I'm still hoping they'll inadvertently fix whatever prevents OS/2 from booting...)
--ryan.