Sunday, December 30, 2012

Staying with the theme of the festive season, how can FreeGamer help you prevent that awkward silence when you sit down with your relatives and realize you have nothing really to talk about? Well, open-source board games to the rescue... and you can spice up that quality family time by introducing some FOSS concepts ;)

It is actually intended to be a sort of teaching aid (ideas how to use it in class here), but it seems interesting enough to play with friends and relatives too.
You can order a full version of the game or download the sources under the sadly more restrictive CC-by-NC-SA here.

A similar concept of combining teaching with playing is the trading card gamePhylo. Sadly it is even more restrictive in licensing (CC-BY-NC-ND), thus I am stretching it a bit to mention it here.

One such general system is VASSAL, a FOSS engine to build and play online adaptations of board games and card games. It makes it possible to play live on the Internet or by email and has a quite extensive library of (mostly propitiatory) game modules.

Thursday, December 27, 2012

Welcome back to FreeGamer, and I hope you all had some nice holidays and avoided that dreadful family time by doing some productive FOSS game development ;)

So what happened over the holidays? Well contrary to my earlier announcementsCube2:Sauerbraten and AlienArena did not see a new release yet. However maybe they still manage it by the end of the year :) Torque2D MIT is also not yet on their GIT account, but they made a new 2.0 release of the 3D counterpart, and are looking for crowd funding for making a proper Linux port (including all the development tools). So... time to make use of the funds your grandma gave you for X-mas ;)

Monday, December 17, 2012

You're probably thinking that you don't have one. And in the sense that a commercial developer would use the word deadline, you don't. There's no date looming above you on your calendar, no boss asking for updates at your next staff meeting, no investor threatening to pull their funding for your project if you don't finish on time. As a FOSS developer who is writing games as a hobby, you have the luxury of taking your time, right?

Nope. Rather, your "deadline" is like the bandwidth limit on one of those cheap "unlimited" web hosting services. It's sooner than you think, but it's not set in stone, so it's easy to not think about it until you're already past it. The deadline for your FOSS game project is when any of these things happens for the first time:

You realize you've bitten off more than you can chew, and lose interest.

Changes in your life (getting married, having kids, getting a new job, going to school, etc) prevent you from spending an appreciable amount of time on your project.

The game engine you're working on that was "feature rich" when you started it is now so badly obsolete that it's pointless to continue development on it.

Any other random circumstance I haven't thought of that might cause you to stop working on your project.

I don't have any hard data here, but given the number of dormant and failed FOSS projects out there, it's probably safe to say that your deadline is under twelve months from the start of your project (seriously, try browsing some dead projects on the various source code repository sites. For every successful project, there are dozens -- if not hundreds -- of projects that never really got off the ground).

Now, there are projects out there like Flare and Battle for Wesnoth that have broken the one year mark, but what these two projects both have in common that most lack are that they've attracted multiple developers beyond the original teams. As such, when one developer burns out for a while or has family obligations, other people are continuing to work on and improve the code base, which keeps the code up to date and interesting so that your project continues to gain momentum and attract interest from potential contributors. As such, your real deadline isn't to finish your project by the one year mark, it's to get it far enough along that it's playable, so that it attracts other developers who want to add on to it.

If you want your project to get to this point, there are some things you can do that will help immensely.

Understand that you're on your own until you can produce real, compelling gameplay.

Almost every FOSS developer who gets into writing games does so because they have a personal vision of their own ideal game. Maybe you're lucky enough that there are two or three of you with a shared vision at the start of your project, but regardless of whether you have a small team or you're all alone, you probably aren't going to attract too many more developers to your project without an appreciable amount of gameplay already in place. Your project might sound great on paper, but there are thousands of other projects that sound great on paper as well, but never got anywhere. If a developer is looking for something to do, they're not going to notice your project with no real gameplay; they're going to go for an established project that is already playable and has real momentum.

The way to attract developers to your game is to harness the 'itch' that people always talk about in relation to open source software. For that to work, you need someone to play your game and decide they want to add their own pet feature to it, and for that to happen, you need a playable game.

And, since you probably aren't going to have real gameplay right out the door, the first key to a successful FOSS game project is understanding that, just because you made it open source, it doesn't mean that developers are going to start coming out of the woodwork wanting to help you. Be prepared to spend long hours working on your own, getting to the point where you have real gameplay. (Oh yeah, and I don't mean just a terrain engine. People need to be able to play your game, and have fun doing it.)

Keep your ambitions in check.

This is a big one, but it's something I've covered at great length in the past, so I'll keep this short and sweet. If you've never completed a game project before, or you've never written any real networking code, that awesome idea you have for an MMO that's going to totally be better than World of Warcraft isn't going to happen

Here, I'll show you something. Check out this SourceForge search for MMORPGs in the planning stage. At the time of this writing, there are 22 pages of results, and everything after half way down the third page hasn't been updated in at least a year. Only around 10% of MMO projects in Sourceforge ever make it to production status, and a lot of the projects that do make it that far are engines as opposed to full games. If you really want to make a huge game and you think you can code fast enough to do it before you burn out, try making a really small game first, as an exercise. If you can do that, it'll give you a good sense of scale to determine how ambitious your big project idea really is.

Ugly hacks really aren't all that bad.

This one is from personal experience. I'm a reasonably good developer. I've worked on enough projects that I have a pretty good intuitive understanding of the scope of the projects I take on. My own main problem is that when I see a new feature I'd like to add, I get tempted to re-architect my code to make that new feature as clean as possible, rather than hacking it in.

There is, of course, a lot of merit to clean code. Ugly hacks aren't a good thing. They make your code harder to read and maintain. On the other hand, if you've put a year into your pet project and it's nearly playable, now is not the time to rewrite it so you can add in some snazzy new feature or optimization. If the feature is unnecessary for making your game playable, leave it out. If you absolutely need it, hack it in.

For some of us, this is a pretty tall order. I personally worry about what people might think of my code. I'm confident that I can handle most projects, but I'm always worried that there will be some gap in my knowledge that causes me to do something stupid or miss something really obvious. When there are entire blogs out there devoted to poking fun at bad code (not knocking the Daily WTF, by the way -- it's hilarious and highly educational), it can be pretty scary to release hastily written, hackish code into the wild.

But when you do, remember that a lot of projects never see a playable release at all. That hackish code you put in there will probably be replaced eventually. You may even trip over it and curse it later on. But if it's the difference between a project that never gets finished because you burned out while trying to do things 'right', and a completed project that attracts the attention of other developers because it has legitimate gameplay, your ugly hack was ultimately for the best.

Try some FOSS game project necromancy.

Maybe you already missed the "deadline" on a FOSS game project several years ago, and you've got a bunch of code languishing on your hard drive. If you find yourself thinking of starting up a new project, you might also want to think about resurrecting that old code and finishing it instead. The deadlines I listed above aren't absolute. Even if you burned out on a project at one point, the code is still there, and there's nothing stopping you from picking it up again. Most projects stay dead, but yours doesn't have to.

In conclusion...

Your number one duty to your pet FOSS game project is to get it into a playable state without giving up. If you miss your deadline, whenever that may be, you're consigning your idea (and your time) to the graveyard of projects that never saw the light of day. Make your project playable and get it out there, and it has a much bigger chance of succeeding in the long run.

Sunday, December 16, 2012

A bit delayed but probably right on time for the Mayan end of the world, we will see a long awaited new release of Cube2:Sauerbraten. Read about the release announcement here. Hmm, I wonder if it has already Occulus Rift support...

Also on the FPS front, AlienArena is having a major engine update, with a claimed massive 3-4 times speed increase in BSP rendering and more VBO improvements.

Furthermore they announce a new game-mode to be added soon, which tries to slow down the game-play of AlienArena a bit and add a more tactical appeal. Sounds a bit like selling out to the CounterStrike/ModernWarefare crowd to me, but lets see how it will play ;)

You can support the developer of this nice puzzle game by buying the Expansion-pack for 2 Canadian bucks or more! Another option to try and fund FOSS game development... maybe there will be some sales figures published at some point?

Next on the list: open-source engine reimplementation project Corsix-th:

You will need the original game for the non-free artworks though.

And last but not least: 0 A.D. got a brand new website: www.play0ad.com! Celebrating this they also made some nice video tutorials for total beginners:

After a rather large restructuring in game scope, where they changed from attempting to create a 3D RTS in the Blender Game Engine, to a 2D hexagonal TBS built on HTML5, they have delivered a promising gameplay prototype that offers a mix of Heroes of Might and Magic and Magic: The Gathering's gameplay.

Gameplay currently revolves around summoning creatures and using their abilities to defeat other summoners

Still in heavy development, the game still needs to implement the entirety of its sizable bestiary, as well as adding animated creatures by utilizing the models they have created.

So, if you have any skills in web development, jump aboard and help them complete this awesome game!

Thursday, December 06, 2012

Ok, we don't normally do these kind of recruitment posts (don't send us emails about that!), but for the following two FOSS game gems we will make an exception (and it is officially sanctioned by our boss Charlie ;) ).

In recent months both games have stalled in development and people are starting to become quite pessimistic about the future (1,2).

Strangely enough (for typical FOSS projects) it is not the artists who lack (there is actually an active group of contributors for both games, who are eager to see their artwork in the game; examples: 1, 2, 3, 4, 5, all CC-by-SA licensed) but a severe lack of programmers.

An example of not yet implemented OD graphics

So how can you help out and dig into the code, and why am I posting about both games the same time? Well both are actually build on a somewhat similar base, utilizing OGRE3D for graphics and CEGUI for the GUI elements. Now I have to admit, given my very much lacking C++ skills, I am aware that that is probably where the similarities end, but have a look at their developers pages (1, 2) and source-code yourself if you are interested.

Now why would one want to merge the code-base of two completely different games (the one being a strategy game, the other an ARPG)? Well surprisingly enough they would complement each other quite well, with a similar theme and the nice prospect of using the OD mechanics also as an in-game editor (which is really lacking for SumWars).

In addition to that it would open up the possibility of a really cool multiplayer/COOP game mode as I explained here. This comic sums up the idea (minus the Wii-U):

Monday, December 03, 2012

I filled a recent craving for playing a sci-fi real time strategy game by re-discovering Bos Wars and playing every single player map.

image: Bos' level of art, many screenshots indicate a much lower quality.

The game runs on low-spec computers and can be quite fast-paced. I quite enjoyed playing it in a tower-defense/tower rush style. The last release of Bos Wars has been over two years ago, but development is not frozen, the last commit was on 2012-08-09.

The three biggest issues I personally had are:

Some maps are aesthetically displeasing.

For a beginner, it's hard to decide what map to play.

Many units and buildings don't have voices/sounds.

The interface is confusing in regards to resource quantity.

Visual style of old maps

image: most likely the first map you play in Bos (because it's selected by default)

To address issues 1 and 2, I hope that this blog post will help. The screenshots at the bottom show the game start screen at 1280x1024 for every of the "Start Game" single player maps. If you see a level that you'd like to play, right-click and "open" the link or image, to see the level name in the file name of the screenshot.

An in-game solution to issue 1. would be to create a map folder called "old" and move all levels in there, when the rendered ground texture clashes with the units, buildings and resources.

This suggestion might be seen as disrespectful insult to the original map makers, but having the current map selection structure is a barrier for new players, who need some guidance to get started without having to open random levels first. They are likely to assume that the first level they play is representative of the visual style of the entire game, which can be quite wrong, as you can see by the different-looking screenshots at the bottom.

Map selection screen

image: Bos Wars map selection screen

To solve issue 2 in-game, a preview of the mini-map, as it is seen with "non-revealed map" would help. This might be a non-trivial UI/in-game-rendering task if it has to work fully automatic.

Missing/repetitive sounds

In regards to issue 3, I started by contributing a patch with some voices and sounds. If you would like to help as a voice actor or by turning voice lines into soldier/pilot/driver voice/effect mixes, please feel free to comment in this blog post, if you would like to coordinate this with me and other potential contributors. Female voices are especially welcome (source).

Feedback on my patch is welcome too. Watch/listen to the video below, to see what kind of voices are missing and what kind of voices are being used multiple times in Bos Wars.