Scorched 3D is one hot battle game

Scorched 3D is a modernization of the classic DOS game Scorched Earth. It’s a simple turn-based artillery game and a real-time strategy game in which players can counter each other’s weapons with creative accessories, shields, and tactics.

Game play is easy: jump into your tank, aim the turret, adjust the power and trajectory, select a weapon, and shoot. Weapons and accessories lend themselves to different tactics depending on the situation and opposition. After each round you can buy new weapons and accessories with the prize money you won during the round, or keep the money to gain interest. Weapon choice and money management play large parts in game strategy.

Gavin Camp, the game’s developer, used to play Scorched Earth with a group of friends at university. He rediscovered it years later on a boring airplane flight, and began thinking about creating a modern take on it, with 3-D graphics, but true to the original feel.

Camp originally built the application in 2003 using Microsoft Visual C++. “At the time it seemed easier than its competitors, and Scorched 3D was only a Windows application so it was a good fit. A short while after the original conception, I changed the game from Windows-only to be cross-platform, which necessitated the use of OpenGL for the graphics and some other helper libraries to aid porting. Scorched 3D now uses many third-party libraries, including SDL, SDL_net, wxWidgets, and OpenAL. I’ve also implemented a Unix-style make system bootstrapped from the Visual Studio project files. I still do the majority of the coding using MSVC Express, mainly for historical reasons.”

Camp made the game open source for several reasons. “At the time, I felt that there weren’t many good source code examples of a fully fledged game (perhaps I just didn’t look hard enough!). Open source games either seemed to reach an early stage and die off, or were re-released fully featured but without source code, to make some money off them. The open source community actually made things easier at times too, not so much through code submissions but through a general interest and support that tends to keep you going.”

Camp works hard at growing the community for the game, not only by announcing new releases on SourceForge.net and freshmeat, but also going to “as many websites as I can find and pimping my software. Being cross-platform opens up large numbers of Linux distros, and I try and get Scorched 3D into as many distros as possible. I think a lot of interest came from people that knew and remembered the original game and like me wanted an updated version.”

The game is still under development, Camp says. “In future online versions we hope to have more game/user community integration. Accounts will be shared across all game servers and the stats/forum/chat web site. Players will be able to track other players (friends) and will accumulate stats and achievements regardless of the server they play on. Generally we also hope to take the engine forward to support the ever-evolving modding community. I hope to make a major release every six months or so, but often that is delayed by a lack of available time. During the early period of a project I really recommend releasing frequently to keep up community interest and involvement – it’s that that keeps you going.”

Camp appreciates player input on the general look and feel of the game. “It would be nice to move from a functional game interface to something more ‘gamey.’ It’s something that we are improving over time with help from the current community, but I am no artist and help is always welcome.” The best way to get in touch is through the project’s forums.

Become a lord of the diamond with NetStats Baseball

You may never get to manage in the major leagues, but with NetStats Baseball, you can get an idea of what it’s like. NetStats is a simulation of Major League Baseball that uses statistics from players and games from 1901 through 2009 as input to gameplay. You can play a game between any two MLB teams from those years, create your own teams from real-life players across various years, play a whole season game by game, or watch AI managers play an entire season in seconds.

NetStats Baseball lets you play against others by running under a client/server paradigm, letting two users, each managing a team, play across a network using a GTK-based client. You can run both the client and server on a single machine, playing against an AI opponent. You can also watch two AI managers play a game.

American developer and baseball fan Marshall Lake began working on NetStats Baseball in 1999. At that time, he says, he found no similar application of this type in the open source community. “I chose GTK as the user interface because it seemed to me to be easy to use. I also wrote several proprietary tools for downloading the data from www.baseball-reference.com and reformatting it. I entered the data from 1998 by hand with some help from proprietary data input software.”

NetStats Baseball is a hobby for Lake, so new releases don’t come out on any set schedule. He says future versions of the software will address bug fixes, tighten security, and provide improvements to the UI and to the user friendliness, but he doesn’t plan any major additions to the project. Still, Lake says, “I could use help with programming, testing, and data improvement.”

Better test data generation with Benerator

Part of the development process for enterprise applications involves performance and load testing, but it’s not always easy to generate realistic production data, especially in production-like amounts to properly stress the system. It’s even harder to do so early enough in the process to avoid extensive redesigns should bottlenecks be found.

Benerator addresses these issues. It makes it easy and fast to configure data generation in early project stages, so you can start performance testing as soon as you have running code. You can run Benerator from a nightly build system and trigger nightly automatic performance tests. As your project evolves, you can fine-tune data generation, or extract and anonymize real production data.

Benerator is the brainchild of German developer Volker Bergmann, who began working on it for his own use almost four years ago. “I decided to write my own tool because I found no tool on the market that was versatile and powerful enough for real performance-testing tasks, and that offered scalability, production-like data variations, invocation from a build tool, support for Windows (dev machines), Linux (test machines), and Solaris (production).

“Benerator’s biggest difference from other tools is its abstractness and extendibility to different data formats, software systems, uniqueness algorithms, distribution methods, and even logical domains. So, for instance, users can create financial transactions based on the population density of a geographic region, with a defined distribution concentrated between 9 and 5 o’clock on working days, with valid credit card numbers, and export the data to databases or batch files or feed them directly into an application – all with only a few lines of Benerator descriptor code and appropriate data files.”

Bergmann began developing Benerator in Maven 2 and is “quite happy with its reliability and structuredness, compared to Ant and Maven 1. For an IDE, I used Idea in the beginning, then switched to Eclipse because of weaknesses in my Idea version’s (4 or so) Subversion support, but I am now considering going back to a new version of Idea.”

Benerator can be licensed under both open and closed source licenses. Bergmann says, “I chose the open source approach in part to contribute a tool to the open source world that has provided so many good tools to me as a developer. This approach also allowed the product to mature over time and with user feedback, reducing effort and the risks of closed source software development. On the other hand, it was clear from the beginning that the definition of a tool like this would be hard work and take a lot of time. So far I have created 70,000 lines of Benerator code, and I want to avoid either having a larger company take over the source code, repackage it, and resell it, leaving me to go away empty-handed, or having to give up Benerator development because I need to do other work to pay my costs of living.”

Despite the already broad scope of the application, Bergmann has a big to-do list:
“- One of the more challenging tasks is to make Benerator scale on multicore systems.
- I am considering supporting Ant tasks in Benerator.
- While implementing test data generation, I have created almost all the pieces I need for using Benerator as a load driver – a system that simulates user activity on a system for inducing the test load. I am not yet sure whether to plug it into Grinder or JMeter or have some standalone functionality. Comments on this topic are welcome.”

He also welcome help on some specific tasks:
“- Benclipse, the Benerator Eclipse plugin, needs to be upgraded to the new Benerator version and could be improved, but I am a bit scared of the task. Sorry, Eclipse guys – I know you do hard work, but it is a pain to assemble the bits of knowledge needed to make anything work under Eclipse. I really need help there.
- I’d like to be involved in organizations’ projects for generating test data, either remotely or on-site. I’ve picked up some very valuable features from project experience.
- I also would appreciate hearing from people who manage to pay their rent from open source software development.”

And of course Bergmann would like feedback from Benerator users, and help from happy users to spread the word about what a great, powerful, and unique tool he has created!

WordPress Themes