|
|
Log in / Subscribe / Register

Development

Open-source FPS gaming with Xonotic 0.8

February 11, 2015

This article was contributed by Adam Saunders

Linux has been getting more attention from commercial developers as a gaming operating system. With the Steam gaming service available natively for Linux, major video game companies have been porting popular proprietary games to the platform. But there are also many quality open-source games for Linux, with some, such as the first-person shooter (FPS) Xonotic, able to hold their own against their better funded, professionally developed competitors. Xonotic's recent 0.8 release, which comes a year and a half after 0.7, adds an "Invasion" game mode, a new lightning weapon, and other new features—it packs in lots of fun for open-source game players.

FPS games all have several things in common. Players have a first-person perspective in a three-dimensional game world. A variety of weapons are available for slaying enemies and the player character has a health meter that tracks any damage received. If the meter drops to zero, the player character dies. The primary gameplay goals are typically achieved by slaughtering opponents using the weaponry.

[Xonotic hallway]

Amidst the competition, Xonotic offers something unique. It is a hectic, fast-paced multiplayer shooter with a variety of modes and interesting weapons. For example, there is a "Capture the Flag" mode that uses grappling hooks to propel characters lighting-fast around the map and has sniper rifles to put a quick stop to an escaping flag-carrier. Succeeding in this mode, which pits two teams of human players against each other, relies on sharp reflexes and good instincts. There is just a fraction of second after identifying an opponent to snipe them down; any hesitation and they'll be a mile away. But being too trigger-happy can be a liability, one that may result in slaying a teammate by accident.

There's also a "Key Hunt" mode: each team has a player who holds a key, and killing the opponent's key holder is the path to victory. "Onslaught" requires teams to destroy enemy power generators while protecting their own. Those interested in something a bit more silly can try "Nexball", which is a weapon-free game of soccer.

Weapons in Xonotic include familiar FPS staples like shotguns and machine guns, but also some unique weaponry. There's the Crylink, which can shoot several bursts of energy that can bounce off walls. A player more interested in demolitions can try the Hagar, a rapid-fire rocket launcher, or the grenade-launching Mortar.

With the latest 0.8 version, there is a new "Invasion" mode, where players fight off waves of monsters. This is reminiscent of popular, survival-horror-themed FPS games, like the Left 4 Dead series and Killing Floor, which both feature cooperative, team-based multiplayer modes that make players fend off ever more dangerous swarms of computer-controlled enemies. However, while the code for Invasion mode is in 0.8, there are no maps yet; Xonotic developers are considering holding a contest to make maps for the mode. When these maps come out, the new lightning gun, named Arc, should come in handy. It shoots out a ray of energy for powerful close-quarter combat but can overheat if used to excess.

There are a large number of public multiplayer servers to choose from. Unfortunately, only a few are populated, but there are enough to ensure that one will always find a game to play. The server hosted by Jupiter Broadcasting, an information-technology podcasting company that has drawn attention to Xonotic, is almost always populated, so those in North America should try that one. For those on the other side of the Atlantic, there are popular servers in Europe that are mostly German-speaking. You'll be too busy trying to survive to chat much, though, so a language barrier really isn't a concern. Servers are also available in Japan and Australia.

[Xonotic map voting]

From the main menu, players can choose a single-player mode, which is purely a tutorial to learn the game and to practice against computer-controlled opponents, the multiplayer mode (where the meat of the game is), and the options menu. In the latter, players can change a variety of settings including controls for graphics quality. It's not necessary to have the latest NVIDIA or Radeon GPU to enjoy Xonotic, as it can be run on its lowest graphical settings on machines with low-end graphics. I was able to run the game on almost maximum graphics quality (disabling bloom purely out of preference though, since it was way too bright for my liking) on my laptop with Intel HD 4000 integrated graphics.

The player base is quite active. Discussions on the official forums range from new players introducing themselves to news about official and unofficial tournaments for those interested in competition. For instance, a group of dedicated players set up an official "defrag championship" with cash prizes for the winner.

On the technical side, Xonotic is based on the engine from Quake 1, which is one of the most influential FPS games made. One might be startled to think that a twenty-year-old engine is powering this game, but a Jupiter Broadcasting podcast interview with developer "Antibody" noted that the Xonotic engine involved "lots of modifications, stripping it all the way down, building it all the way up". With the 0.8 version, the code now relies on Simple DirectMedia Layer 2.0, the latest version of the "cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D".

Xonotic is free software, which makes it an excellent means for aspiring game developers to see (and modify) working game code. The game was originally called "Nexuiz", but a dispute over naming and rights to the code led to a name change. The Xonotic FAQ page has the details of the change. The game is packaged for many Linux distributions, with the code and art assets available under GPLv2-or-later. The binaries for Linux and Windows also incorporate the LGPLv3-or-later GNU Multiple Precision Arithmetic Library (GMP). For those who don't have the latest version available in their distribution, there's one unified download that contains binaries for Linux, Windows, and OS X.

The project continues to be actively developed. Xonotic developer "TimePath" is planning to archive older branches to remove clutter from the tree in order to facilitate further development. Progress is being made on the user interface, with a recent focus on improving the in-game weapons panel (indicating which weapons are possessed). Those interested in contributing can check out the project's GitLab repositories, where one can see frequent patches and engaged commentary about development. The official Xonotic website was also updated a couple weeks ago to look more modern. Xonotic continues to showcase some of the best in open-source game development and gameplay—I look forward to seeing the project continue to grow.

Comments (none posted)

Brief items

Quotes of the week

I think the lesson we can all draw is that architectural decisions made for political strategy reasons are of limited utility. Eventually, code designed for technical superiority will become more popular than code with features missing for "strategic reasons". If you want the more popular code to be free software, and if you want it to be GPLed software, then you must assure that your alternative is technically as good as it can be and suits the needs of its users as well as it can.
Perry E. Metzger

That’s about as comprehensible as Vorlon poetry to me.
John Goerzen, after reading the cgmanager man page.

My guess is that robots are expensive to build and maintain; people are self-replicating and largely self-maintaining. Remember that third input to the factory, 'rice'? Any robot’s spare parts have to be cheaper than rice to earn a place on this factory’s floor.
Bunnie Huang (Thanks to Paul Wise.)

Spaghetti is beautiful and delicious and shouldn’t be used as a metaphor for circuitous code. Say “headphone cables code” instead.
Jeff Waugh

We're now in the uncanny valley of software progress.
Geoffrey Thomas (Different set of thanks to Paul Wise.)

Comments (3 posted)

GNU C library version 2.21 released

Version 2.21 of the GNU C library is available. This release includes a lot of bug fixes, a wide range of architecture-specific performance and functionality improvements, and a new semaphore implementation. "Previous custom assembly implementations of semaphore were difficult to reason about or ensure that they were safe. The new version of semaphore supports machines with 64-bit or 32-bit atomic operations."

Full Story (comments: none)

ownCloud Server 8 released

Version 8 of the ownCloud server is available. "This new release brings improved sharing and collaboration between clouds and introduces faster ways of getting at your files with favorites and improved search." See the feature page for details.

Comments (14 posted)

Git v2.3.0 available

Git version 2.3.0 has been released. New in this release are "lots of small corrections and improvements without big uncomfortably exciting features", although many Git users may find something to be excited about. Included in the small improvements are a new environment variable for use in passing extra arguments down to ssh, the ability to try multiple credential helpers in turn until one of them succeed, and numerous new flags for various subcommands.

Full Story (comments: 9)

Newsletters and articles

Development newsletters from the past week

Comments (none posted)

GCC5 and the C++11 ABI (Red Hat developer blog)

A post at the Red Hat developer blog looks at some of the changes that are coming with GCC5. Support for the C++11 standard means that some standard library classes need to change their ABI, notably std::basic_string and std::list. The post looks at how the change has been handled and what programmers need to do to deal with the changes. "The last time G++ went through an ABI change, back in the 3.x period, we changed the soname of libstdc++, which was widely regarded as a mistake. Changing the soname caused a lot of pain but is not sufficient to deal with changes in symbol ABIs: if you load multiple shared objects that depend on different versions of the library, you can still get clashes between different versions of the same symbol. So the plan for this ABI change has been to leave the soname (and the existing binary interface) alone, and express the new ABI using different mangled names."

Comments (29 posted)

Page editor: Nathan Willis
Next page: Announcements>>


Copyright © 2015, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds