My Linux Games Month

Jose's picture

This forum was created in response to the Free Software Tournament http://thetuxproject.com/node/175 . It's also related to the Tux500/Torcs video game projects.

I read the article [ http://www.nuxified.org/article/nuxified_and_cluenet_prepare_a_gaming_to... ] and recommend people take a look at RMS' view on free vs nonfree games. I don't believe the Tux Project is for free software advocacy (exclusively), but many visiting/participating probably like or prefer free (as in GPL free) software in general. Linux encompases the whole open source world and commercial world.. or at least I'd like to get say 90% of the world.

How does this idea sound? A month dedicated to FOSS games. I don't mean a month to celebrate annually. I mean, eg, around 4 weeks of games climaxing with the (or a) tournament.

******
Some key points to this "holiday"...

-- Have practice sessions: a soft session week where people basically gather and post about how setups are going plus some preliminary results etc. Follow this by serious practice. The idea is to give people time to get into gear. This way people won't have tons of problems to keep them from making the event. All major events have practice sessions and focused run throughs. It also helps build emotion (who is the one to beat; which is the hot game). And we can use the serious session to build the brackets. Some light prizes may also be awarded.

-- No commercial games or non free games (meaning all game data and source must be available for hacking): I am not suicidal. I like sharing and showcasing commercial games that Linux offers. But for the time being, we may have a stronger card to play by focusing on what you can't get (or likely won't get) on Windows.

Angle 1: Linux is mine. Linux is for me. Linux listens to me. I make Linux what I want.
Angle 2: I can make games on Linux! I can help make really interesting games. I can have/build games that no one on my block will have.
Angle 3: Linux provides lots of free stuff and games is part of it. We all still go back to tetris every now and then. Simple games can be a lot of fun and Linux has a bunch of them (and will have a bunch more).

-- During part of this month, we can tap into Angle 1 and 2 by gathering game developers and having sessions where users ask for items and the devs try and deliver. I'd like a month because we may be able to come through with many wishes but not in a week. Users can/should participate hacking also. Linux (community) listens to me. I can make games on Linux!

I'd like to have some/all of this be genuine user requests not something cooked up to make us look good artificially. This adds pressure so we should be prepared to give suggestions but it should be clear when we are doing so.

-- Sessions where users are taught how to specifically improve many of the games. Throughout the month, users can be adding their own thing to games. I can make games on Linux! [Prizes for creativity]

In preparation for this, I would like to start building articles/tutorials showing how each specific game can be hacked to get many desired effects. We should make it so that a newbie can follow along all the way up to having his/her face or some pic they took floating around inside the game and having characters behave oddly. Users should be able to increase the size or complexity of puzzles (eg, the shape of Tetris pieces). For advanced users, we should have articles that can help them get coding as quickly as possible. [Some of this should already exist on (eg) sourceforge.. perhaps in game hacking documentation.]

This task needs to be offloaded as much as possible (the games with most community support will get furthest with this). By starting this with anticipation, we will help narrow down what sessions to have during the month.

-- We have to prepare for this by planning with the communities around the games we will feature. They can time announcements of various sorts to land during this month. We have a games news website for this month. A ticker tape can show the latest announcements or important events or accomplishments. There is a lot of gaming related news, even things like driver support for various cards. We may even get Intel, AMD, and others to participate at some point (if not, we can just gather their game related news).

-- Let me repeat. This idea is just for open source games with hackable data. It is to show how the user, you and me and grandma, OWN Linux and Linux WORKS for me. [Draw stark contrast with commercial platforms.]

This focus is different from simply having a tournament to have fun and showcase Linux games. Perhaps after this first tournament we can do this other one.

-- I want to make sure we have something interesting to offer to real gamers, to help them get involved and make noise later on their games forums. [Naturally, we also will cater to everyone else (eg, puzzlers).]

-- This can also be used to get Windows game devs interested in Sourceforge and Linux game development. We should have prizes and competitions catering to abilities of real (Windows) game developers with little experience on Linux [eg, Best Tetris Hack].

Once we have the basics and the Linux devs organized, we start to solicit conversations from Windows game devs so they can prepare for the tournament. [This is only part of the effort; we aren't ignoring normal non dev gamers.]

Will (professional) Windows game devs be attracted enough initially? Maybe not, but they may get into it during the month as they see results (or maybe for the next tournament).

-- Make artwork for occasion. Perhaps sell T-shirts "I Hacked My Own Game on Linux" "I Hack, Do you?" "Linux Gaming" "Get Gaming on the GNU"

******

There is much that can be said about the tournament itself, but there is probably already a lot that has been planned with details to come at some point.

Does anyone know what is the main public forum for planning the original Free Software Tournament project (I assume it's outside the Tux Project)? Nuxified? Cluenet? Is most of the planning expected to be done behind closed doors? Any IRC channels, mailing lists, etc?

I may repost some of this elsewhere to see what people are thinking.

Does this sound like an idea worth pursuing? If so, should it be for a later tournament?

Jose's picture

Breaking open some games.. this ought to be fun

I have decided to pursue a course for at least a little while. The objective for each game to be tackled is roughly to describe as much of the game as possible from the perspective of "make these changes to these lines of code to get this effect." This is an easy approach that goes along well with some of the goals expressed at the top. The reason the approach is nice is that you don't *necessarily* focus on explaining the language or the whole program in any coherent fashion. What you do explain is practical for helping others manipulate the source to reach desired effects. Even without understanding that much, a person can check out that making this or that change to these parts of the code produces this other effect. This is just what I was after with the idea of showing that FOSS games are *hackably fun* and can be personalized in interesting ways.

Along the path to breaking down the whole game, those doing the work will inevitably learn a lot about how all the parts work. Yet this focus allows for an easy approach to get a lot of bang for buck (I hope). We can experiment with changes (based on hunches if not on complete understanding) and rebuild the games to see if the hypothesised changes did in fact occur. This process means you really will be recompiling frequently so you should keep that in mind. Also, you should be able to play the game (meaning you may be a bit out of luck in some cases if your machine can't handle it). Put differently, the approach is not a theoretical one or anything like an audit or deep study. Naturally, you can do that, but I think if we share what we have found, we can continue to make progress without really understanding the whole of what can be a complex game. One of my goals (at least for Torcs) is to understand the game as best I can, but I want to make sure there is progress being made. I want those with less ambitious goals or who don't really understand the code to still be able to make their own discoveries with a little bit of guidance from others' contributions. If many out there can see results, they will join. In fact, those with understanding may very well join in and also fix errors. That is my goal for stage two (after momentum has been built) because I doubt I can do very much of this for any large game by myself. I'll start alone, but I expect to get carried away my mobs throughout the journey. To actually get this to a point to have an effect, it has to be on a large scale which means many will have to take to the oars for many games out there. I also want to make progress quickly to show that progress can come quickly indeed. Even more practical is that I will want to lay enough stones quickly so that others can more easily/quickly come stepping on them and refine the road for yet others. Hopefully this will become clear once I start providing actual material later on.

There is an initial list of games I will start tackling. I expect eventually some of the devs will join up because this process helps sell their games and may provide a form of missing and useful documentation to other devs. Of course, my intention is to make as much of this as possible a process/game that will be useful to those that are gamers and not developers.

** Torcs: I am interested in this one and two birds get knocked out with this effort as this effort contributes directly to developing Tux500 Video Game (if we stay with Torcs).

** XGalaga: A much simpler game whose source code I have already looked a bit at. This is easier (no complex math, no 3d, less lines of code, etc). This one is usable on every computer out there (even on my watch perhaps) while Torcs is not (I actually can't really play Torcs now but I expect to resolve that problem soon).

** Derivative of Tetris: Any tetris like game seems like it would be (relatively) easy and popular.

** Some game or two aimed at kids: Kids are an important part of Linux marketing. Kid games are in. Also, we need variety to appeal to all groups. Kid games also should be easier to conquer.

** Some puzzle or thinking game: Again, the idea is to appeal to those outside the male 15-45 category.

** Open to suggestions: Yes I am.

I am not sure how much explanation I will put forward vs limiting myself to actual working examples. Discussing our understanding of the architecture of the game and of the source is useful in the early stages to getting more to follow. Still, I may save my writing time to when I have specifics. It's actually easy to add specifics. One of the first contributions I expect to make is a rough description of exactly which graphic and sound files can be changed to get results. Basically if you find a sound file or graphic file, you already are most of the way there. And finding these files is among the easier things to do. A more detailed contribution would involve specifying precisely how to put your face or cough into the game since in some cases you have to have the precise format which might even be unique to the game (requiring processing.. perhaps with tools provided by the game). If the format is specific, then you have to fish out the utilities that do the work (and how they do it) or you have to find the lines of code that implicitely define the file formats (eg, if no utilities were built).

I hope people volunteer a small number of interesting and simple games. I really want suggestions, but I need for the games not to be too advanced (I already have my plate fairly full with Torcs and the rest). If someone has a game they will work on, I will be very motivated to make an exception and take up that game myself, too.

Anyone have suggestions on where I can start posting patches and or descriptions? I can use the comments on this forum topic, but there should be a better place eventually. I don't have a home (web) server set up, or I wouldn't be asking. Well, something efficient will come up as this gains steam. For now, I will post (in semi journal log fashion) on this forum topic.

One more thing. This effort is different than the game tourney it was inspired by. Efforts can be used and combined, but I will pursue the angle described here expecting initially to be working without any help. As others gain interest (let's assume), it's up to those and anyone else if they want to integrate the work with the original game tourney that is being planned. Also, anyone is free to pursue their own angles or contacts if they like this overall idea.

Gaming on Linux is going to be VERY popular. It's inevitable said the fortune cookie.

libervisco's picture

I am sorry I didn't get to

I am sorry I didn't get to these posts before.

I love your ideas. This may be quite complex to do and I don't have much experience with editing source codes, but I still love it. If we push this and try to do ourselves what we can do other people who have more experience may join in.

The reason why it sounds fun is simply the potential of what it could evolve into, combined with the gaming festival. In fact, the word "festival" is not exclusionary to the projects like these.

Here's what could be organized. We could put up a project of this kind (fun game modifications) as a subproject to freedomware-gamefest.com and work on it throughout a year to produce a few fun mods which we would then present at the Freedomware Gamefest 2008.

That also answers the question of where to start posting patches and descriptions and also how could the two be combined. I think freedomware-gamefest.com and this could really fit well together. :)

I'm also interested in others' opinions about this. I'll be watching this thread.

Cheers

Libervis Network

Jose's picture

Here's what I mean by *working alone on game hacks*

Let me clarify what I have in mind. First, I would like to see any significant contributions to any game as much as the next person. I would love to see new games. ETC. But that is not what "I" am attempting. I want to leverage the game framework that is already in place as much as possible. The idea is that I can leave a recipe behind that is easy for many different groups to follow. I would like others to be able to take the raw game sources from the main site and make some small changes to get a big bang. Not only do I save time (for other projects) by limiting my function to this, but this large bang-for-buck approach would more clearly bring to focus the great power behind FOSS. Most people may not appreciate this or that piece of code, but almost all can appreciate a big bang-for-buck that you can see and hear after making minimal tweaks to "raw" sources.

Something else to consider is that I do not have (any or very much) experience/familiarity with the code bases I'm going to considering. I am not a programming guru in any language and have at most modest experience in a few. I also don't want to spend too much time trying to figure out how the mainteners want patches to be formatted. I don't want to break my head coming up with consistent naming schemes. Basically, I want to provide dirty hacks, with no intention of ever becoming part of the main code, that will give bang-for-buck. The dirty hacks will eventually be presentable (but might still be dirty in many ways.. at least as far as my participation/goal goes).

However, if this picks up steam, certainly others (including perhaps the main devs) may pick up on it and use some of the ideas being put up.

Basically, I want to contribute in a way I think will attract newbies (windows devs, linux devs, and non devs) while maximizing use of my time. Any deviations from this on my part would be if I got attached to the game, really wanted to pursue an idea, decided to get more involved with the other devs for some reason I currently am not anticipating, etc. But my focus is on selling Linux to others. If I spend to much time on any project, it is others that won't get a chance. As far as games are concerned, Torcs is go, but I would like to get to other games, too.

I expect to get no help (so if others join, it would be an unexpected surprise). I simply want to take things to a level so that the particular game will be a bit more interesting for people. I expect that others will eventually work on this also once real contributions have been made (once the game hacking gets off the ground). If I pick a bad game, maybe no one will care. [Working on Torcs has the added benefit of helping to build the Tux500 game.]

Anyway, I hope it's clear that I would love as much as the next person for other people to create interesting things with these games, but I am focused on and am planning based on what I can do myself so that something nontrivial is achieved should no one else care. If someone does show interest in what I might be doing behind the scenes though, I definitely should find time to share. This way others can leverage some of whatever I may have achieved up to that point in time.

I am glad you don't think it is a crazy idea. I mean I would like it anyway, but realistically I do hope others pick up on it eventually. What I think is irrelevant. It's what Jack/Jill think.

Jose's picture

So two people like the idea (maybe 3): that's progress!

>> Here's what could be organized. We could put up a project of this kind (fun game modifications) as a subproject to freedomware-gamefest.com and work on it throughout a year to produce a few fun mods which we would then present at the Freedomware Gamefest 2008.
>> That also answers the question of where to start posting patches and descriptions and also how could the two be combined. I think freedomware-gamefest.com and this could really fit well together. :)

This is fine/great, but as long as I have time and inclination, I plan to pursue this even by myself and offline. Now, setting up a special spot for this somewhere where more people are likely to look should definitely help, but I have low expectations on attracting others until there is something substantial put up by someone (ie, probably by me).

I am very willing to work with someone if they want to dig through code now or later. Otherwise, I'll play it by ear. I think the most immediate impact can be felt through sound creation and simple artwork. This can be done by anyone without needing technical skills (naturally, they woud want guidance.. I expect to provide some of that if no one beats me to it).

I am going to tear up my desktop to put something more suitable in place than I have now. When I manage to decide exactly what I will do and do it, I should be ready to start looking around seriously and testing the effects of calculated code changes. Torcs is where I am starting.

libervisco's picture

Of course. It's good to just

Of course. It's good to just take it naturally. The idea of hosting it on the gamefest site is something that could be used later on when and if something like that becomes necessary, but there's no real rush. :)

I also think I understand what you meant a bit better after your previous post. It's about game mods that almost everyone can do within the framework of the game. I can imagine little scripts being created that one only has to run to, say, change sounds and add some new exciting capability with a very simple hack that wont affect the core stability and encourage other people to modify those sounds or such a script. :)
Cheers
Libervis Network

Jose's picture

Housekeeping before diving into games aggressively

I have some computer housekeeping to do before I get working on this more seriously.

Last week I got my video card working (6600gt). What a difference!

I took a look at Torcs which is what I will begin focusing on. If anyone wants to know a little about how (I think) it is organized just post the question. There are a lot of things that we might be able to add to Torcs. Also, if anyone finds that the code is already described in detail anywhere, post so that we don't redo work unnecessarily.

Also, post with ideas on how to modify the game. Some examples:
-- add a mechanism to get a voice update on how far back or ahead specific (or any) cars are (eg, in terms of car lengths). Also, allow watch boundaries to be set so that you are told when cars enter the boundary (absolute boundary based on a specific part of the track or boundary relative to your car). In fact, generalizing this might be useful for Tux500 Racing since that would provide a framework for an automatic announcer. We would have to consider some sort of hysteresis so that the voice don't go off every fraction of a second when a car hovers around the boundary going in and out of it repeatedly.
-- add more obstacles (eg, oil streaks), and allow cars to "shoot" at each other. [There are other games that already do this, so we have to question why we would add it to torcs, if it turned out it was time consuming to do.]
-- add skins (including scenery) that look futuristic and maybe even something flinstone might drive (maybe we can add the running feet animation without too much trouble).
-- design more "robots" [the AI for the computer drivers]

There's a lot that can be done, but augmenting sound files is probably the best way short-term to get a game that feels a little different and/or is funny.

I am also looking into apps that will help us deal with sound, art, 3d, etc since this is part of the project.

libervisco's picture

Hey Jose, that's an

Hey Jose, that's an interesting idea, actually a whole load of ideas. :) I'll refer to it from our forums.

But to answer your questions first, the official forum for this tournament is the gaming forum on Nuxified.org http://www.nuxified.org/forums/free_software_help/games_entertainment

Most of the planning will actually be done out in the open and with the community. Not only am I far from being a pro at doing a tournament (I haven't really organized one yet), but I believe that it stands most chance of success if the community gets to be the one to shape it. Hence we even have a poll asking people whether to accept non-free data or not. You can talk to us at our gaming forum (linked above) and on IRC channel #libervis on freenode or #clueirc on irc.cluenet.org. So it's completely open. :)

I'd be interested in hearing what others have to say on this.

Cheers

Libervis Network