Humble Indie Bundle: Cross-Platform Games!
May 5th, 2010Get ‘em while you can – over at Wolfire’s Humble Indie Bundle, five games are for “sale". You can donate as little as you want – I imagine you can toss a penny in and grab all five titles. Personally I didn’t try such a low amount because I felt like I wanted to help out these indie game authors, and especially help out the two charity organizations associated with the bundle, the EFF and Child’s Play.
These games:
- Are cross-platform, which means they run on Windows, Mac, and Linux. I’ve personally tested them on Mac and Linux to be sure that they actually work on modern versions of these operating systems. All five games work on Mac OS X 10.6 and Ubuntu 10.04 LTS x86_64.
- Are unique, introducing novel ideas and unusual game mechanics, something that is not often found in top-tier titles. Because money (both spending it and making it) is not so much of a focus for these developers, they have time to add a special creative touch, and risk going outside the comfort zone where the big publishers know they can get a large audience to buy the game. Research in gaming has consistently proven that most people like the same old stuff rehashed over and over. For quite a few years, the PC game industry has not been significantly evolving the way that games are played. Well, if you’re looking for something a little different, look no further than these five great games.
- Are essentially free. Since they allow you to customize your donation amount, and to whom you’re donating it, you can donate entirely to charity. That means the developers feel so passionately about the goal of donating to these organizations that they are willing to give up their own profits, if their users want that. The amount of control placed in consumers’ hands in this bundle is unprecedented. Just imagine if a big company like EA allowed their customers to donate to the Red Cross for Haiti relief efforts – in exchange for EA game software – rather than lining the pockets of their executives.
- This bundle just screams “public interest". Although these games are not Free (as in Freedom) software, this is possibly the most equitable, sustainable proprietary software business model I have encountered to date. Not only does it empower third-world citizens to receive the same software while contributing less money in proportion to their lower income; it also gives the consumer the power to decide who gets their money. Although this business model does not guarantee that the indie software developers will make enough money to sustain their work, it is the job of society at large to educate one another on the moral issues at stake here, and encourage reasonable donations, rather than cheating the system by donating a couple of cents. That the bundle participants are placing this trust (and responsibility) on the shoulders of society is a mutual understanding that we will help one another accomplish our goals without resorting to unreasonable prices and EULAs. For our part, we will support non-profit organizations that the software developers deem worthy of donations; and we will pay what we are able to compensate the developers for their efforts. In return, we receive software that entertains us and our friends; sparks our creativity; and helps us forget about the real world for a little while. So everyone wins.
- These are independent developers. Indie games tend to be developed by smaller teams, over longer periods, using less cutting-edge technologies. They often run on lowest-common-denominator computer systems. But that doesn’t mean they are visually or aurally unappealing. The content itself can still be very polished and with few rough edges, even if it doesn’t use the latest 3d graphics advancements. That fact, I find true of all 5 games in the Humble bundle. Indie developers are the ones who most often come up with inventive, unique ideas that become an important aspect of top-tier gaming in the future. We should praise this level of creativity with monetary reward, rather than paying much higher amounts of money to big publishers who mostly ‘borrow’ game mechanics from pioneers like these. Of course, if you like top-tier games, you can buy those too – but remember that your support today may lead to high-powered, big-name games appearing with “innovative” features in a few years’ time.
Oh, another thing – there isn’t very much time left. 6 days and some change. If you want in on this deal, you should go buy right now. Keep in mind that the average contribution per person (for all five games combined) was somewhere around $7.89 last I checked. If you live in an industrialized Western country like the U.S., Canada, or UK, chances are good that you can spare at least $10 USD. For other parts of the world, as low as $2.50 may be all you can afford – but every little bit helps. Since these games are relatively small downloads (the largest is 300 M
, bandwidth costs don’t really compare to the amount of money they’re making on this. So even if you download all the games several times on different computers, and only give them $3, you’re still helping them.
I won’t pontificate on what I think you should donate to, specifically. On my part, I donated a modest $21 spread across all of the publishers and the two non-profits. But depending on your individual preferences and buying power, you should feel free to donate more or less money, to any of the entities of your choosing. The important part is that you participate, which will encourage the organizers of this event to do it again. And doing it again will definitely be good for everyone – if nothing else, it will serve as an instructive experiment on this new business model.
Snowed Under, Part Deux
February 6th, 2010Well, according to news reports, my area (the mid-atlantic region) is weathering a catastrophic winter event (a.k.a. a blizzard). As I wrote before, when the snow comes knocking, DSL invariably craps out. This storm serves as another datapoint confirming that, yes, there is definitely a break in the cable shielding somewhere along the landlines that provide our DSL -- whenever we get enough moisture, it gets in there and shorts it out.
One snag in the process of setting up the EvDO for the second time is that I forgot to set the Gateway on the clients (the desktop computers connecting over 802.11) to 192.168.137.1 rather than 192.168.137.254. If you recall from my previous post, .254 is the IP of the router itself, and .1 is the IP of the LAN adapter on the laptop hosting the EvDO connection. I had accidentally punched in .254 as the gateway, and obviously that didn't work -- .254 is just a "dumb switch", translating between 802.11n and ethernet. .1 is the connection endpoint that does the real work, namely ICS.
Anyway, another stab in the eye for Verizon the landline carrier, and another victory for Verizon Wireless. If only EvDO were faster, I would cancel DSL entirely...
Star Trek Online Open Beta
January 18th, 2010Here is a cinematic video I made of my custom cruiser (a modified Vesper-class medium cruiser) doing a space exploration mission in the Arcanis Arm Cluster. There are countless other STO videos displaying heavy combat, both on the ground and space; this is pretty much the norm in STO. But I wanted to show a different, more serene side of STO, venturing out alone in the middle of nowhere with my bridge officers and crew, and facing a few Nausicaan threats on the way.
I call this video "U.S.S. Oriskany Arcanis Arm Cluster Cruise; Tiyuk Faydedar In Command".
You'll need a VC-1 decoder, WMA9 decoder and ASF demuxer to view -- available by default in Windows Vista/7, with a download in XP, and via ffmpeg (e.g. VLC) on other platforms.
click here.
Snowed Under Without DSL
December 19th, 2009The past few days have been trying for my family and I. Our DSL has been completely down for our entire area code for 48 hours, and it's estimated to be down for yet another 48 to 72 hours. We are all addicted to the Internet for one reason or another, so being without the 'net makes a few of us extremely grumpy, to say the least.
And by the way, Verizon's entire landline business unit sucks. Really. If you are a Verizon employee who has had anything to do with their DSL service implementation or policy, you should be ashamed of yourself. Please go find another job where you are less able to make other peoples' lives miserable.
I have always mourned the fact that, years after fiber optic cable has become a commonality in densely-populated areas, my neighborhood seems to be just a few feet out of reach of all the carriers. Verizon continues to pitch their awful, awful ADSL service, and Comcast continues to pitch their awful, awful copper (coax) cable service. Neither is viable for someone who is serious about network reliability (such as, say, an average customer, who expects their internet to "just work" like other things such as hot water and electricity). Since about 2001, we have had either Comcast or Verizon ADSL, switching often between the two because neither is any good. They seem to be totally indifferent about such major problems as corrosion on the wires that causes severe instability, modem losing sync, and long periods of downtime when it finally breaks completely. How would you like it if your electricity service were as unreliable as Verizon ADSL? You'd end up installing a diesel generator in the back yard as a redundant power supply, so you don't end up finishing your shower in the dark half the time.
Now, our DSL outage is completely unrelated to this major blizzard that has befallen the Baltimore area, and especially my hometown. The DSL outage struck a full day before a single flake of snow touched our state. But being snowed in means that: (a) the DSL outage will probably be even longer; (b) that there will probably be continuous problems until the snow is all cleared up; and (c) that we can't just run out to the store and buy an EvDO modem or something.
So, with a family of three at wit's end and serious internet withdrawal driving us mad, I hatched a plan to find any way possible to get three computers tethered to my Verizon SMT5800 phone at the same time.
I have a 5GB-per-month limit on Verizon Wireless's EvDO service, which is about 20% of the speed of our ADSL. It's definitely better than 56k, and that's assuming our phone lines don't stop working (remember what I said about Verizon's landline business being a total crap shoot?)
Ever since our outage began, I had been using the EvDO tethering from my phone to my desktop. But this only incited jealousy, bouts of anger, and so on from the other inhabitants of this abode.
The biggest obstacle to getting all three computers tethered is that all but one of the computers connect via WiFi to a wireless router, when our DSL is working. So I can't just use a series of ethernet patch cables, or a simple ethernet switch. That would've been too easy.
After trying various VPNs and proxy solutions to no avail, my final configuration turned out to be elegant, but very hackish in nature.
My Internet-facing computer ("the gateway") is a Lenovo ThinkPad X60, connected to my SMT5800 smartphone via a USB cable.
Also connected to the ThinkPad is an ethernet cable, which connects the ethernet card of the ThinkPad to my 802.11N router, a new Linksys WRT610N.
The thing that threw me for a loop is that, whenever you plug an ethernet cable into the port labeled "Internet" on the WRT610N, the router tries to "NAT" that connection to the other hosts, rather than acting as a simple switch.
The reason I couldn't use the router's DHCP/NAT features is that, on my ThinkPad, I am running Windows 7's Internet Connection Sharing (ICS) service, which itself is a DHCP/NAT system. Sometimes NAT to NAT can work, but specifically not with ICS.
So, I was at an impasse for a good two hours until I discovered that I needed to plug the ethernet cable into one of the router's several "LAN" ports, which you'd normally connect to a computer that needs to receive an internet connection. Instead, this port is being used to host an internet connection in my configuration.
The final hardware step is to connect wireless adapters from each client computer to the WRT610N router. This step has already been accomplished before when we were using ADSL, so it was easy.
Now, the software configuration steps go something like this:
0. Make sure you can successfully tether the EvDO connection to the gateway and browse the internet.
1. Enable ICS on the EvDO Dial-up Connection, and disconnect it to update the changes. Point the ICS to your ethernet adapter (Local Area Connection) as the "home network" side of the ICS.
2. ICS will assign a static IP of something like 192.167.137.1 to the Local Area Connection adapter. You can now leave this part alone. You shouldn't need to make any more changes to any software on the laptop.
3. Using a computer that has connected to the WRT610N router wirelessly, log in to its web administrative interface.
4. Disregard the "internet connection" / WAN status of the WRT610N.
5. Assign a "local IP" of the Router to something like 192.168.137.254. The second to last octet must match the second to last octet that was set by ICS on the laptop -- so, since ICS gave me 137, I plugged in 137 on the router. The 254 is important: ICS only assigns a limited range of DHCP addresses, and 254 is outside of that range. So just plug in 254 as a magic number if you like.
6. Use the same subnet on the router's local IP as the subnet chosen by ICS for the Local Area Connection.
7. Disable both the DHCP Server and the NAT functionality of the router. For the WRT610N, the NAT is a separate setting that needs to be disabled. Once you do this, the new IP address of the router configuration page is going to be whatever you set in the "local IP" field; so for me it's 192.168.137.254.
8. Change the TCP/IP v4 settings of each client computer. Manually assign an IP address within the range used by ICS, which in my case would be something like 192.168.137.44 through 192.168.137.100. The setting to change ICS' DHCP range is actually hidden in the Windows Registry.
These instructions glaze over a lot of things, such as specific instructions for various operating system versions, and details of the configuration of your specific router. But basically, summarized, I did:
1. Use a wireless router as a wireless access point or switch, which totally subverts the router functionality of it (the NAT).
2. Use Windows' ICS as a NAT and DHCP server, which allows the EvDO to happily continue on using its one public IP address.
Now, I have three computers effectively tethered to the EvDO network at native EvDO speeds over 802.11n. It's a lot faster than dial-up.
Outside my window, the winds are blowing snow around like crazy, and the roads are covered in a foot of snow. Our DSL is down. Most people in the neighborhood are probably using either dialup, or cable (assuming that works), or just watching TV. My household is surfing the web with broadband as long as the power grid continues to endure (cross your fingers!) I am overall very pleased with the stability of our power grid here, though, so I think it will be pretty good despite the snowstorm. This is a victory for Verizon Wireless, and a stab in the eye for Verizon the landline carrier.
NOTE: I have never had any negative experiences or service outages with Verizon Wireless. Although the service is quite pricy, I am extremely satisfied with Verizon Wireless. For all the badmouthing I do of Verizon's landline service, I am extremely happy with Verizon Wireless. I think Verizon should stick to cellular voice and data, and leave the landline business to someone who actually cares about their customers.
Chrome OS Before Its Time
November 19th, 2009The source code for the current state of Chromium OS was released today, to much fanfare and a press conference at Google's Mountain View headquarters.
I downloaded and built the operating system per Google's own instructions, and was pretty underwhelmed at the result. Now, of course, this is probably how most technology enthusiasts feel after realizing what Chrome OS really is under the hood:
- The core is a stripped down Linux 2.6.30 kernel -- with non-essential bits simply not compiled to save size and decrease loading times. I have to admit that it loaded appreciably fast even inside VMware, but Ubuntu 9.10 is only about 4 seconds longer. I'm not that impatient.
- A few new and interesting security features that, at the same time, are completely useless for anyone who wishes to actually store persistent data on their disk. Let's see a show of hands of who wants to actually use all that disk space? Music, movies, anyone? *raises hand*
- Browser-centric doesn't really sum it up. It's Browser-only. If you want to run some native binaries you have laying around that are perfectly compatible with the native software stack of Chrome OS (Linux, X11, glibc, etc) -- tough cookies.
- Since Google really, really, really doesn't want Chrome OS users to have to leave their browser, they made it so that you literally can't leave your browser. Any necessary hardware configuration features (as deemed "necessary" by each IHV) are exposed as tacked on widgets in the Chrome web browser, which is the one and only window available in the OS.
- People who thought Google might come up with a new and innovative windowing system that might be faster or better-architected than Xorg are going to be sorely disappointed: Google went with Xorg after all. This really cheapened the deal from a technology enthusiast's perspective; with Xorg having a direct and major competitor, we might be able to someday rid ourselves of that unfortunate part of the free desktop. Not today, though.
- If there's no way to do it through a web app (Javascript, Flash, and maybe Java), there's no way to do it on Chrome OS. So various things that people expect on "thick client" OSes are non-existent on Chrome OS: medium or high-end 3d games, programming IDEs (integrated development environments), extensive customizability (options make the UI too cluttery for Google's high standards of simplicity), and even basic things like being able to pop in a DVD and watch it on the computer. Unless of course there is a web app out there somewhere that does all of these things -- so far I have yet to see one, especially not from Google.
I am essentially underwhelmed at the lack of originality that went into Chrome OS so far. Its existence might prompt app developers to create more interesting web apps that may come to replace traditional desktop apps, but this has yet to be proven. Especially with programs that carry a very large data payload, such as games or media players, you really can't expect users to wait for files to download over increasingly-restrictive Internet downlinks (5GB EvDO cap, anyone?) Chrome OS might do all that a casual user needs, but as more and more people become informed about the capabilities of a real operating system and its many desktop applications, they will realize that Chrome OS is too limiting.
The Free / Open Source movements both emphasize and encourage the freedom of choice. Although we are certainly welcome not to choose Chrome OS as our operating system, it is pretty clear that, within Chrome OS, the designers have deliberately limited your choice of applications to a subset of those the hardware is capable of running. If I (the user, not the IHV) want to download a .deb containing a cool new game for which my hardware meets or exceeds the requirements, I should be able to install it. Why does Chrome OS impose limitations where they needn't exist? Because Google wants to control its users' computing activities. That is the only conclusion at which I can arrive.
Of course, just like every web appliance in the past, the theory is that "someday" there will be so many dynamic, high-performance, rich web apps out there that the web appliance really will be all you need. Maybe user adoption of Chrome OS will help this someday become reality by creating demand for things like browser-based IDEs and high end games. Or maybe people will just stick to Linux, Mac, and Windows.
Never Fear; fbdev Is Here!
September 30th, 2009So I was trying to install the Fedora 12 Alpha KDE Live CD. Silly me. I knew this would be a terrifying effort in futility from the beginning, but I just had to do it.
Turns out the Nvidia GeForce GTX 280 in my desktop is one of several chips that are completely broken with the Nouveau drivers. The Nouveau drivers are an open source effort to bring Open Source, full 2d/3d/KMS support to Nvidia chipsets. Fedora 12 had the foresight to make them enabled _by default_ -- which, if you ask me, is a little bit crazy. But oh well. Fedora does a lot of silly things that break 99% of the configurations out there ![]()
My next problem is that neither nv nor vesa provided a suitable environment either! So not only was I out of luck with nouveau, but I was out of luck with drivers that are supposed to work with "any" graphics card. Very puzzling.
I tried various things: with and without KMS; trying to install the Nvidia proprietary drivers and so forth.
I almost got the nvidia proprietary drivers to work, except that the version of kernel-devel available from the package manager (as it's not on the live cd) is a different version than the live cd kernel. It seems all traces of the alpha RPMs are gone. Bah!
Then I stumbled upon a convenient epiphany: all the new KMS-enabled drivers (of which Nouveau is one) have fairly robust support for the old console framebuffer subsystem, usually mapped into the filesystem as /dev/fb0.
So if the 2d nouveau drivers were giving me hell, I may as well try doing something that uses the good ol' framebuffer -- right?
Right! And conveniently builtin to the live CD is something called `fbdev', which is the name of an Xorg 2d driver module that interacts with a framebuffer interface such as the aforementioned /dev/fb0.
The result is a working X server that lets you run the graphical liveinst program. I needed the graphical one (as opposed to the text based one) because only the Xorg-driven graphical one supports custom partitioning, and I had an existing /home partition that I carry around with me that I did not want to delete with the inflexible options of the text-only installer (Anaconda). If anyone who works on Anaconda is reading this: you could have saved me a lot of time by keeping the feature set of the text and graphical modes of the program in sync.
Now don't worry, I don't just tease and run; I'm going to tell you how to enable fbdev on any distro that provides it. fbdev is suitable for general purpose 2d applications in Xorg, but I am almost positive that it provides no 3d acceleration of any kind.
1. Edit the kernel command line in grub or isolinux, and make the following changes:
(a) Add the option "single"
(b) Delete the options "rhgb" and "quiet" if they are present
2. At the root shell:
dbus-daemon --fork --system
service haldaemon start
3. Edit /etc/X11/xorg.conf using your favorite console editor (vi, emacs, nano, etc):
Code:
Section "ServerLayout" | |
Identifier "L" | |
Screen 0 "S" 0 0 | |
EndSection | |
| |
Section "Device" | |
Identifier "D" | |
Driver "fbdev" | |
EndSection | |
| |
Section "Screen" | |
Identifier "S" | |
Device "D" | |
EndSection |
4. Run startx & at the console.
5. Come back to the console from the X server using a VT switch (CTRL+ALT+F1)...
6. Run your favorite window manager. kwin on Fedora 12 Alpha doesn't want to start for me; try mini-wm & or metacity --replace &. I ended up bringing up networking then installing twm, since I was using the KDE live CD which lacked metacity.
7. Run the live installer program. On Fedora 12 Alpha this is just the liveinst program.
This should enable anyone to install e.g. Fedora 12 Alpha, where there are known problems in the graphics stack on the Live CD that prevent normal installation. I'm also willing to bet that folks who hack on the graphics stack a lot appreciate fbdev.
Note: for those of you who don't yet have any kernel modesetting support for your hardware, you may still be able to find a driver ending in `fb' (e.g. neofb, nvidiafb, radeonfb, etc.) that provides the coveted /dev/fb0 interface. It should also switch your terminal to graphics mode (i.e. smaller text and a nicer font) when you load the module. Once you've got a terminal in graphics mode, even if you're not using kernel modesetting, you now have the ability to use fbdev to get an X server, as a last resort.
Dreaming Of Universal Audio Stacks
August 23rd, 2009I have a dream that my favorite audio applications will one day coexist in a configuration where they will not be judged by their choice of audio API, but by the usefulness of their functionality.
– Adapted from Martin Luther King’s “I Have a Dream” speech
This is a multi-page article; don’t miss the “Read More” after the teaser, and the page turner at the bottom of each page!