GraphOn site: http://www.graphon.com/
Technology patent: www.graphon.com/News/pr.patent.html
LJ piece on Graphon in China: http://www.linuxjournal.com/articles/briefs/031.html
Have you ever heard six-year-olds reminisce about having been five? I confess I am guilty of this sort of thing, feeling nostalgic for computer games that were state-of-the-art just a few years back. Old is not necessarily bad. Modern software is technically impressive, but how useful is it? Still, I have yet to find a computer game that rivals chess in excitement, or Go in elegance and subtlety, while both games are at least 1,500 years older than computers. You'd think 3-D shooters would bore people to death, or maybe we could do something more creative with the amazing virtual-reality techniques we've got. Anyway, Linux remakes of classic games are cultural oddities; I hope some anthropologist catalogs them. In keeping with the theme of “Linux on the Desktop”, here are some games you can play on your desktop!
Linux gamers tend to have a soft spot in their hearts for the disturbingly popular blast-Bill-Gates-to-pieces games, the family of games in which Bill Kendrick's Defendguin is the newest member. Yes, it's the classic Defender game, only the graphics aren't hollow line drawings. The trick is to save the Penguinoids from being mutated by little flying Gates saucers. In honor of the new journalistic tradition of pulling random quotes and holding them up as though they represent the entire community, here's a stellar line from Digital Ebola on http://happypenguin.org/: “It's quite satisfying to blow Bill Gates up. That alone makes anything worth 5 stars.” Check it out at http://www.newbreedsoftware.com/defendguin/.
Beetle enthusiast Holger Priebs has delivered the goods for Q*Bert addicts. Black Penguin (“rotund” would be more accurate, and anyway, it's a blue penguin) is a fellow who hops around collecting happy things while avoiding his opponent, the Evil Window. It uses Qt, the sources are well-commented, and it's a good game for Linux newbies to get used to compiling software from the source as well as learn from the source. I should warn you that Qt is not LGPL, but I imagine you've already heard. The home page lives at www.priebs.de/blackpenguin.html.
Fleuch, a Linux remake of Thrust from the C64, comes to us by way of Karsten Goetze. It's available only as a binary for SVGAlib, but maybe we can convince Karsten to open up the source if it turns out the game is popular enough. Pilot a ship by turning and thrusting, pick up a ball, and fly away. According to an anonymous quote from happypenguin, Fleuch “is unmatched in supremacy”. It can be found at http://start.cgirealm.com/meuch/.
“The greatest game... we've ever made” reads the Insane Odyssey Episode I Trailer. Aaron P. Matthews (coding) and Seth B. Peelle (music and graphics) of Rival Entertainment team up to bring you this futuristic escape from a mental hospital. The scrolling is smooth, the graphics are outstanding, and the game play is fun. It's a cohesive, polished production, one of the nicer-looking Linux games out there. While it's not a remake of a classic per se, it is a remake of a game the author started years ago and didn't finish. With so many 3-D shooters, don't you miss a good platformer? Find this game at http://rival.clan.net/.
Last episode, we got a scrolltext going in SVGAlib, which looked pretty cool. Pair it with some Beethoven and an artsy, scribbled logo, and you've got a happening intro for your next act of brilliance. Ah, but how do we get the music playing? Well, assuming Beethoven is what you want and not some frantic dance pop, we've got to figure out a way to get music into the program.
Years ago, this was tricky. We had to program in assembly code and call a play routine every vertical blank. Before that, pitched beeps had to be carefully inserted into the program, and any deviance from the loop would cause the whole program and/or the music to change speed. Fortunately, today we have multi-tasking machines, so we don't have to bother with anything difficult; we just fork a process or call a library routine. Now the question is, what do we want to do? How to do it is easy.
For music in a Linux program, there are several options. One is to use the sound card's built-in midi synthesizer, which is extremely resource minimal. Xavier XOSXE uses this approach in his excellent, high-resolution escapade SpaceBoom, reserving digital audio exclusively for sound effects. This way, the CPU's resources are left over for the horizontal scrolling landscape and trigger-happy space aliens. Playing midi music is very simple; all you have to do is fork to the program playmidi. And no, it's not cheating—fork is an integral part of the UNIX model. Consider that by using it, you pay homage to the same function that got us past the first init routine. Listing 1 is simple code for starting up your tune.
Just keep tabs on the process ID (PID) so you can kill the playmidi program when you want to change tunes, or when the game is finished. (The SpaceBoom source code, albeit C++, has a more elegant example of how to do this.) With on-board synthesizers improving dramatically, midi files are really a viable option for music. They're easy to create, resource-minimal to play, have small footprints, and are fun.
Another option is to use the time-tested, scene-approved, MODs! From their birth on the Amiga, these things just won't die. MODs are digital audio music files, which basically include audio samples of the instruments, loop points and note data (newer formats include more instrument parameters).
The advantage of MODs is they are digital audio, so you get sample playback, as opposed to midi files which use preset instruments on the sound card; MODs give you more flexibility. The downside is that your CPU needs to dump a lot of data to /dev/dsp, so MODs are resource intensive. For example, at 44,100Hz of 16-bit stereo (CD quality), you'll be writing 16 bits of data to each channel 44,100 times every second—that's 176,400 bytes of writing to /dev/dsp every second, not to mention the calculations that go on within the mod-playing routine (volume, mixing, effects, pitch slides, etc.).
These days, processors are incredibly fast, so MODs are more practical than they used to be, but sound cards have better synths than ever before. Wouldn't you like extra CPU for more intensive graphics? While I definitely opt for midi, most people prefer MODs. If you're making a game on CD-ROM, just record a whole album. Maybe when we all have supercomputers, we can use mpegs in real time. You can choose between MikMod and Midas for MOD playing; MikMod is GPL while Midas is not quite, so in the spirit of GNU, let's try out MikMod. Listing 2 is code for starting and stopping a MOD with mikmod.h.
Next month, we'll finish up on sound for now and take a look at how to use generic digital audio for sound effects.
Listings are available by anonymous download in the file ftp.linuxjournal.com/pub/lj/listings/issue70/3798.tgz.
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- Linux Systems Administrator
- New Products
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Have you tried Boxen? It's a
4 hours 4 min ago
- seo services in india
8 hours 36 min ago
- For KDE install kio-mtp
8 hours 36 min ago
- Evernote is much more...
10 hours 37 min ago
- Reply to comment | Linux Journal
19 hours 22 min ago
- Dynamic DNS
19 hours 56 min ago
- Reply to comment | Linux Journal
20 hours 55 min ago
- Reply to comment | Linux Journal
21 hours 45 min ago
- Not free anymore
1 day 1 hour ago
1 day 5 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?