Open Source Games

17 posts

Flag Post

First off I’d like to say that I am very impressed with the level of patience and helpfulness of the posters in this forum, both Kongregate employees and non-employees. I have visited many website forums dealing with various subjects and this type of assistance and dedication to helping others is a rarity.

After seeing this, and been asked repeatedly myself in the chat rooms something to the effect of “Can you tell me how to make a game?” An idea came to me: why not release my code to the forums so others can pick it apart and modify it for their own use… and hopefully help them to learn programming. There are a couple of issues with this that I can think of, however. The biggest issue is posting the code and files. Is there a space to do this? Or would I have to provide a space to do this myself?

Another issue I have is that I have very little experience with Actionscript and Flash, so I wouldn’t want to pass along bad habits of the language, but perhaps others could help.

Mainly, I just wanted to get other people’s thoughts on this. Thanks for your time.

 
Flag Post

Well, it would be as simple as hosting the files somewhere on the net, then linking to them from the Kongregate forums. If people wanted to download them, then I guess they could do so at their own risk :)

Personally I wouldn’t worry about whether the code you were giving away is top-quality or not, since your target audience doesn’t know the difference anyway. My only real suggestion is to think about whether it really helps the noobs, to see your code, or whether it would be better to give them a link to the sticky when they ask that perennial question: “How do u make games??” A lot of them will never actually make a game, and showing a bunch of code to someone who’s never even opened Flash before could be less helpful than you imagine.

Personally, I wanted to help people already familiar with Flash by posting a beginner/intermediate tutotial, about how to make a simple spaceship. So, that’s another option: to make some of your code into a tutorial.

 
Flag Post

i’ll post a “how to make a DDR like” someday when i’ll have enough energy because it’s pretty simple for a first game to understand the concept.

 
Flag Post

As Indie said, you’ll have to host files somewhere yourself. The other option for code is to just post it as text.

Regarding bad habits, I wouldnt worry too much as long as you get used to hearing from more experienced regarding not doing certain things. Some take that offensively and others appreciate it for the help that it is. Its a great way to learn though, and it helps everyone.

 
Flag Post

So this is something we’ve talked about ourselves. For noobs I think Indie is right that linking to the sticky is the best thing. But personally I’d love to see code. So any thoughts on how we could make this easy/organized I’d love to hear. We’re definitely willing to host and put some work into getting it started…though maybe not this month.

 
Flag Post

Emily, that’s really good news and I was hoping that Kongregate would have something like this for devs. Ok, here is one idea off the top of my head:

You can let the users upload a .swf file (like a beta game or a code example or a fun gadget or whatever—we’ll call it the “tuto”), which pretty much runs like a game. Then on the list of all the tutos, you have links next to the thumbnail image to download the.fla and .swf files, or a link to where the source code is displayed and explained, or both. That way people will be able to look at an example first to see if it is worth the effort to download, by playing it like a game.

If it were playing in the game window, you could put some kind of big blue bar or something that says “Developers section” or something so people are sure that it’s a separate thing.

I think it would be really neat to see what people would come up with, in terms of experiments and tutorials.

 
Flag Post

The Kongregate staff seems to have their hands full, but I like the idea of a more “Open Source” approach to the game code rather than straight tutorials.

So instead maybe you can start a project on http://sourceforge.net/ and then link to it here! It would be cool to have a way to post code versions and instead of just 1 person getting feedback, a collection of people working together to make game libraries (collections of class files) for Flash.

I think Sourceforge has a LOT of features that an open source project needs, and could be a great stepping stone until Kongregate can provide this type of interaction to their community.

 
Flag Post

Thanks everyone for the replies.

I think we need to be careful in how we label people as “noobs.” Like it or not this has become a derogatory term and I sincerely think that the people (probably mostly young adults) who are interested in making games, but don’t know where to start, would benefit greatly by open source software. The reason I bring this up is because if Kongregate wants to have a place to support and host open source games there should probably be some reasoning behind it. I would assume reason number one would be to increase traffic to the site (and thus increase revenue). I personally do not know who Kongregate’s target audience is, but at this moment in time it seems that the people flooding the chat rooms are young adults.

With that said, let me step back and address the real topic. I am 100% behind being able to access the code to games. Obviously it would be up to the designer(s) of that game, but if he/she/they decided to make the game open source then other designers could learn from the code and develop other games. This cycle could potentially benefit Kongregate by increasing its game library. But I also feel that I should play devil’s advocate to myself since this is something you are still thinking about.

Here are some problems:

1) An increase in similar games.

Hopefully the rating system would normalize this a bit, but it would still be an issue.

2) .fla file sizes are usually significantly larger than .swf file sizes

I’m not sure if this would be a problem, but it’s something to think about. I think a 10MB upload limit would be too small for most .flas, so this would be a hit to bandwidth and storage space.

3) Return on Investment

Unfortunately I think many developers will not want to contribute to an open source area unless they know that they can benefit in some way. Making a game takes time, and even though the entire idea of releasing your game’s code to the public is to promote innovation and increase the quality and quantity of games as a whole on the site, I think developers will want to get something for the time they put in. I personally do not make games as a form of income. Nor would I want to make money off of my games’ source code. But I do know that the number of open source games would increase if there were some reward for it, especially since it is assumed-as I stated above-that the reason this new feature is being added is to increase traffic and revenue.

4) Code control

At what level does the amount of code being submitted need to be monitored? I actually like the fact that there are some games of…. let’s say “questionable quality” on Kongregate, because it adds some character in my view (heck, check out my game). However, I do not think this could be acceptable from a code standpoint. So does Kongregate reject some people’s code? What are the guidelines and who enforces them? I want to make it clear that I’m not referring to forcing people to follow a pre-determined set of standards. What I do mean is that if someone posts some open source code, then someone else modifies that code only slightly then re-posts the code the site could become a spider web of hacked open source code. Furthermore, if someone posts code to a game that doesn’t function then this should be addressed if open source is to be successful on the site. (maybe you could link the source code directly to the uploaded game? This may be similar to what Indie has suggested. Also, maybe there could be a rating system for the open source part?)

I’m sure there are more things to think about, but that’s all I can think of at the moment. I would really like to see something like this supported on Kongregate, and if it is done right I think it would flourish. I think that if two main questions can be answered then a definite direction can be taken. The two questions are: What is the purpose of supporting open source games? And: Who is the target audience?

I will say that I am about 90% complete on a game that I have set up to be open source. I have to admit that it is a pretty low quality game and probably just barely qualifies as a game, but the way it is coded makes it very customizable. I had initially made it to help out the “noob” demographic. They can literally change a few lines of code and attain very different visual results. Also, it is very low complexity, which was intended to help newer game-makers. So if this type of game is acceptable, I wouldn’t mind serving as a guinea pig if you are wanting to start something up.

 
Flag Post

Well I really suggest taking a good hard look at Sourceforge. An open source project can get stuff done regardless of there being other people that would not want to contribute based on short term capitalist values. As well, an open source project should have an owner or administrator, that reviews versions of code submitted and incorporates it into official releases or test releases. Also, Sourceforge will host your files, providing plenty of storage for your project.

The reason open source projects are doing so well currently is because programmers DO get value out of contributing, both in knowledge and in work that they can reuse in different ways. Windows itself would not be possible without a large number of iterations of software releases, each with more tools and more people to use them to develop it further. Likewise an open source software grows because people want to better the tools for themselves, at the same time drawing from the value of the work that others have put into it. The trade off is always in favor of the individual, as each person benefits from the entire group. The open source giants of today are still used in money making business plans, and I think an open source Flash library could be a valuable tool for capitalist programmers as well.

Further, Flash games are already similar to eachother in many ways, including exact copies and ripoffs left and right. I think that if the basics of a quality game engine were already in place, that open source games would diversify and flourish just as open source software has. The effort put into learning and designing the mechanics will most likely be diverted to creativity and variety.

 
Flag Post

Starting with a game and making it open source could work, but this seems more like a candidate for a tutorial wherein the people learning can copy your code and make it how they want.

However, to give you an idea of a truly open source project, here is an example:

Start with a game, designed with or reduced to some base class files. The class files that this game uses will be the start of this open source project. For example, MyGame.fla includes the class Game. In the Game class file would be variables and functions such as playerScore or StartGame() and EndGame().

Depending on the style of the game, it will have to use the Game class differently. From there, you can build your game library with more classes, extending it’s features modularly. You could assign a project to a member of the open source project, like “Extend the Game class to make a PlatformGame class” or “Create a class that will manage the player’s space ship” or even “Check the PlatformGame class for bugs”.

Then as time goes on and more people sign up to be part of the project and submit their new code and code revisions, there will be an open source Flash game library created that other people can use and extend themselves and even contribute directly to the project.

The hard parts about doing it this way, are of course the challenges of all open source projects – modularity, compatibility, and coherency. You have to design your code in such a way that it can be reused in a variety of situations in order to make it useful to other people. As a programmer, this skill comes with the maturing of your programming knowledge and practice, and is one of the most difficult things to accomplish well.

 
Flag Post

Ah yes, very good for pointing out the difference between an open-source project and a tutorial.

Just to clarify, I try not to use the term “noob” in a derogatory way, but after being asked so many times by people “is it easy to make a flash game,” “how do I do it,” et cetera, both in real life and online, that I guess I’m kind of jaded unless I see that the people are actually working hard to learn it themselves.

There’s nothing wrong with being a beginner or asking for help (we all started somewhere, I assure you); however, I do take issue with people who just want someone to tell them exactly what to do so they don’t have to think about it themselves. Unfortunately there’s no easy one-click wizard that will make games for you :)

Open source projects are cool because, like miahmiah said, everybody benefits, and the nature of the class library should be such that you could design completely different games with the same classes. So I wouldn’t worry about games being too similar, since the goal of open-source is to allow the widest possible use for your code.

 
Flag Post

Well one things for sure, I dont want to see this turn into Flashkit. Flashkit was great back in the day (I was a speaker at Flashkit conferences in its prime) but now it just flooded with crap honestly. Much of the content there is out of date because people submitted 5000 ways to code a button. If this is done, it likely shouldnt be a free-for-all file post. There should be some reasonable balance. Perhaps each game thats submitted optionally has a place to comment on how it was built, or show code/flas?

Regarding open source, well www.osflash.org has the best projects already. Beyond that, its going to be a bit hard to have users commonly submit entire class libraries for game development. I have an entire framework I’ve built for myself and use on every game, but I cant give it out since its used professionally for income. Thats a problem sometimes, that those who dont do it professionally often dont develop class libraries, and those who do cant give them out. The ones that are fortunate enough to be in a position to give it out usually get hosted at OSFlash, and the integration of these is beyond the abilities of a lot of developers.

Again, I come back to the thought that of letting uploaded games have a page/section called “How this game was made”. Then they can upload some source files or put up a tutorial or comments regarding aspects of the game, if they so desire.

 
Flag Post

I think arcaneCoder’s ideas are more in line with what I originally intended. I went back to my former posts and couldn’t find where I used the word “project” anywhere, but I’m sorry if what I said was misleading. I think an open source “project” is not something that would really fit with the purpose of this particular site. Although, miahmiah, I agree with everything you said about an open source project. In fact, the company I work for is very involved in the open source community. However I do not think that all of the answers you give to my questions apply to the smaller scale I was referring to: open source software. And the differentiation between tutorial and open source software is probably minor, but important. I think the forums as they are now could handle tutorials (as Indie has shown with the spaceship tutorial), but they will not support uploading files like .flas. Also, miahmiah, I want to apologize for not responding to your first post in my last post, but yours didn’t show up on my screen until after my (long-winded) post was submitted.

Perhaps the main problem here is I’m trying to be overreaching in my thought process. If I had been given a simple “yes” or “no” to my original post then I would have gone on my merry way in either direction. But since there was a “maybe” I thought I would put my two cents in while keeping in mind that on the other end of this web site were people trying to make it profitable. If this were just a matter of what I would like… well I’d just say put up a space where I can upload my source code and have a link to it listed under the game when people play it, and allow comments under the source code just like there are under the game.

As for your post, Indie: I totally understand. And that was why I made the glowing praise in my first post. Almost every other site I have seen either ignores or flames the people you refer to. And I am just as guilty as the next person… I don’t want to waste my time helping out someone who is not putting forth any effort. But when I read through some of the comments in this forum I was actually impressed with the dialogue that took place. I merely wanted to contribute to that atmosphere.

 
Flag Post

No need for apologies I think, we’re all brainstorming here and thats whats great. This back and forth is positive and definitely helps refine what would possibly work best for Kongregate :)

 
Flag Post

Thanks for the pointer to OSFLASH! :)

 
Flag Post

My mp3 xspf player, which is designed to fit as a sound manager inside games, is MIT licensed and available here.

http://wetsrc.sf.net/

It also includes an open source windows build environment.

That and most of the rest of my code is publicly available on my svn server https://trac.xixs.com/wet/cgi-bin/trac.cgi/browser/swf but not necessarily licensed as open source…

 
Flag Post

XIXs, this is cool. And actually it is very close to what I am currently working on, though mine is VERY stripped down and coded for new-user readability. Nice job.