Yeah I think my vote for a first game would be for a 2D platformer/puzzler like Mario. This concept is simple and I think still has miles of potential in terms of innovation (look at Braid or Little Big Planet, for examples). All the programming in it is also easy to grasp for beginners, and it would be easy to port this to other Java platforms like Android or mobiles. In terms of spreading the coding out across multiple people, that is more difficult in a simple platformer than in an RPG, but not impossible. Like someone could work solely on level design / environment coding, someone could do enemy AI (think how much the world needs a platformer that has really smart AI!), someone else could code the behaviors of the powerups, etc. Once again, as long as we have something common that we can tap into, then people can mostly do their own thing, I think.

And way back in the day I made a Mario clone, and I added in multiplayer. It turned out to be incredibly fun. Basically other players could control the enemies, toggling which one their were controlling at any time. The enemies would still be confined to their usual crappiness (like a goomba was still very slow at walking, etc.), so the person playing Mario would have a gigantic advantage, but the players controlling the enemies would get basically infinite creatures to utilize. So it got really frantic and fun, with 4 players all on the same keyboard, one controlling Mario, the other three shouting and ranting as they did their best to foil him.

As such, I think if we do make a multiplayer platformer it could turn out to be incredibly fun, and that extra multiplayer bit could be all the game needs to really stand out. There are certainly lots of co-op multiplayer games, but very few counter-op ones, especially none in platformers (maybe a few in FPSs). It might even be interesting to take the platformer up a level from Mario and go for something like Metroid where we have a massive seamlessly connected world or Gunstar Heroes / Mega Man where the game is still level-based but there is a lot of potential for coding different weapon upgrades and the like.

I was thinking also that there aren't very many platformers with any real sort of destructible terrain - imagine the possibilites if to get past certain areas you need to cleverly blow up certain walls and trees? A lot of possibility lies there. Similarly, a cross between Worms and Mario could be very interesting, where everything is a destructible bitmap.

1) Make something so easy to implement that everyone can participate. Attempt to split the work by micro pre-specified features. - Pro: More likely to complete something - Pro: Likely to get more people involved - Con: Less likely to keep the interest of more experienced developers - Con: Much harder to manage across a large set of developers

2) Build a system that allows developers (albeit only those with a reasonable level of experience) to build on modules independently of other. - Pro: Allows developers to make progress when they have time - Pro: Potential for viral growth of content - Con: Complicated initial development - Con: Alienantes very new developers - Con: Potential for disjoint final game if not managed carefully

FWIW I feel adding multi-player as an initial goal to any project is a touch of death. However, as someone mentioned above that doesn't prevent this initial architecture having the facility designed in for future growth.

In my opnion mixing experienced and new programmers in a project where collaboration takes place virtually, there is no hope whatsoever to get anywhere.

It might sound harsh, and arrogant (maybe?) but it just doesn't work well with very diverse groups. Even in reallife projects in the office, people get grouped by their skillset, just because then everybody stays productive. When the 'n00b and the pro' work together, it's very intense, one on one, which requires reallife contact, as body language is just so important to see if someone really gets it / agrees / is convinced.

So, it's better to have the experienced guys lay the foundation, and everbody else can then craft some toys.

Note: I'm not saying this to 'secure' my own place in this project, as I'm very likely to not even join due to lack of time. It would just be such a disappointment to see such a project with potential to grind to a halt eventually.

Hi, appreciate more people! Σ ♥ = ¾Learn how to award medals... and work your way up the social rankings!

I think you are mostly right but it's worth giving it a go. The main reason why I would be in favor of starting with a trivial game with a fixed deadline and doubling the time-line for every subsequent project is to try and evolve a method of working as a disjoint team. Either way, having a fixed release date I think is very important.

Alternately competitions seam to bring out the best in people so you could have a couple of team captains outline a basic plan for a game and then have people sign up to either team and have a month long team contest to make the best platformer between the two.

In my opnion mixing experienced and new programmers in a project where collaboration takes place virtually, there is no hope whatsoever to get anywhere.

One thing that comes to my mind is to break the programming into small parts with strong requirements and then making a solution could be a contest where the best implementation is voted on by the community and then included in the project. The difficulty of implementing the task could separate the newbies and the experience programmers, while still encouraging the newbies to shoot higher and increase their skills (this would mean no flaming though as it could hurt feelings). Examples would be creating a basic potion class or designing and implementing new type of enemy(something that flies instead of walks etc.). Their could also be art contests and such, or just a collection of free art that people vote on. Trying to get a group of disjointed programmers to work together and agree on something otherwise seems a difficult task to me.

argh im late in this topic...I'm good with art/pixel stuff and somewhat good with programming so i'll help out, something does need to come from our talents and cause a stir in the game development with people saying wow that's java.

What about an earthbound style rpg? or a simple cool Zelda (1st) game? we could even make it do random dungeons so your hero or whatever progresses and you see how far you can get your hero with out dying, sorta rogue-ish.

Cool idea! The truth is that any of you could make a sensational game on your own, you've done it heaps of times. But when your powers combine!!! i'm sure it'd be something awesome. I'd be glad to lend a newbie hand

EDIT: One of the coolest things that java gaming land got recently was some fantastic physics libraries. JBullet for 3D and JBox2D/Phys2D for 2D. Some pretty good games are being made with box2d recently - see Rolando for example (http://rolando.ngmoco.com/).

it would also be nice to know how much time, indivduals are willing to offer. then depending on there abililty maybe make a decision.

because if there a few newbies that are only willing to offer a few hours to the project per week, then it wouldnt be a problem them working on stuff like creative exciting GUI's. that in its self can amp up the impressiveness of the project.

another idea for a game would be redoing Block Dude that's on the Ti Calculators, i think there is a simple flash version if you Google it. We could do something like that but enhance it with cool features.

Ok, I can't see this working if we aim at making it accessible to every level of ability from the outset. So:

1) We need to agree that we're not aiming to educate the total new Java programmers.2) The project needs to be big enough to support a bunch of reasonably competent developers3) Most of the ideas are falling in the 2D camp, probably for good reason that it sounds easier. Let's go with traditional model/view split so we can change it later on. I'm a little worried something 2D isn't going to excite the world unless the pixel art is top notch.4) Multiplayer/Network/Interweb integration of some sort seems to be a must to make it interesting to the current world.5) There have been lots of ideas for games though there do seem to be some general categories - Space Trading, RPG (be it Zelda, modular, etc), CloneAClassic.

I'll open votes on these points on Monday (and anything else anyone comes up with over the weekend). After we have some direction we can start fleshing out the game and go from there (including getting people signed up to be involved where and when they can).

Finally, if anyone else wants to push this along that fine too. However, I'm happy to keep on trying to organize the effort.

I'd be interested too. Should be good to see how it works out. We need to consider collaborative tools like wiki, bugzilla, source control etc too. We may not need many, but it needs considering at some point, preferably early on, I know what a pain it can be to change mid project.I guess those are problems for the project manager Kev to sort out

3) Most of the ideas are falling in the 2D camp, probably for good reason that it sounds easier. Let's go with traditional model/view split so we can change it later on. I'm a little worried something 2D isn't going to excite the world unless the pixel art is top notch.

A game does not have to be either 2D or 3D, it can have alot of both. Going back to the example of a space turn based strateg game ala Master of Orion. The basic planet building interfaces and diplomatic interfaces could be 2D. Ship models, ship building and combat could be state of the art 3D (or *should* be, rather). So, programmers of varying skillsets could be very useful.

Still, a visually stunning game makes a stunning first impression, but an extraordinary immersive games makes a lasting expression. And good programmers aren't necessarily going to achieve that. You need someone with a different skillset and mindset. so "newbie java programmers" aren't necessarily bad "game designers".

Some of the biggest things that kill a community project are lack of direction(ie specification), lack of leadership and lack of deadlines.

So while this is a community project and everyone can have their say I think that there should be a deadline set for each decision and there should be a lead who publicises the final decisions. Also if there is a standoff on something then the lead has the power to make the decision. The community also has to accept these decisions without bailing because their idea was not picked. I think the choice for the lead is obvious: Kevglass. If he is willing to take the mantle.

As for specs, nothing large is needed. Just take a page out of the scrum book and create a backlog of items that need work. Each item has a brief 1 or 2 sentence description and a priority. The lead can list the most important items that need doing and people can pick their items.

As for deadlines, you don't need to set a deadline for each person, but they will set their own by saying "I can have that ready in 2 weeks" or whatever and stick to the schedule.

I don't say this to discourage anyone, but to show, that there are plenty of opportunities for anyone of any experience. For example anyone could be a story writer by writing down ideas and hand them over to a dedicated story director. Same with art. The dedicated directors should be skilled enough to revise the supplied content to match a common style, theme or quality requirements.

The project managers would have to collect ideas and desired features and create tasks and specification texts for them that can be published in a task managing tool (Trac comes to mind). From this, task can be picked up by the programmers (based on there preferences and experience), finished tasks should be reviewed by the project managers as well.

QA is equally important. Bugs should be tracked by QA testers (read anyone of this community ) and reviewed by the QA manager. Verified and well described bugs can then be made available to be fixed. Here even unexperienced programmers might find their opportunity.

And last but not least I'd like to emphasis on the need of a collaboration/development admin, that manages the necessary tools like bug tracking, source control, continuous build, webpages/blog etc. to keep things up and the collaboration unobstructed. Btw. I have continuous build in this list, because when working with multiple people at a project, nothing is more frustrating than having unbuildable sources in version control... at work we use team city, but cruise control should do as well.

This may sound too much like commercial production philosophies, but I strongly believe, that only strong leadership can result in anything being done! Even more with distributed development and virtualized collaboration. The most important part IMO is the dedication of the various manager/director roles to keep things going. The developers/artists/testers/etc. roles might possibly (re)filled by volunteers of this community easily as long as the project is pushed "from above" by creating and revising tasks to always have clear reponsibilities and a comprehensible roadmap with achievable goals.

My opinion, for what it's worth, is that you're over-cooking things a bit at this stage. I'm very much a believer in starting somewhere small and adding as you need, not defining everything up front and getting bogged down in administration. We need initially:

a) An agreed game concept that lets us get moving. This is primarily a developer oriented community, to keep momentum we need to a few coding - and soon. The sooner there's something visible to talk around the sooner we can start working out where we're actually headed:

b) Communication - either through forums, mailing lists or good old phone calls to keep people aware of whats going on, what they should be doing and by when, whats next and what might be needed soon.

c) Tracking - a way to keep all the good ideas (that are already flowing btw) safe and ready to use. Be this Trac/JIRA/<insert whatever here>

d) Common Space - a way to share our various contributions with each other.

e) Agreement to accept decisions once they've been made through discussion. Decide, move on.

The real danger is of not creating anything apart from a bad smell, rather than creating something that isn't up to the reasonable project quota. Average games can grow and be polished, empty space doesn't tend to evolve.

My opinion, for what it's worth, is that you're over-cooking things a bit at this stage.

granted.

It's just that I feel a need to have straightforward work packages to pick for anyone who want's to get involved without being a generalist. So I think there needs to be a much stronger administration in a community project than in an one-man-show. Also spreading the roles a bit allows for more people to participate. A QA manager for example can get away with a couple of hours per week. By having a strong management you would clear responsibilities and chances are IMO smaller that the project just fades away.

Having said that, your list is sensible. An important implication lies in e) - responsibility. If someone commits him/herself to something in this project, he/she has to feel responsible for getting it done or for providing a fallback solution...

i agree with the communication, i was just setting up a news server that would be perfect for this kind of stuff. but my vps has only so much ram :S so i cant run it with mysql running. we could do scheduled IRC chats to help organize and like meet once a month or less if we have to talk about stuff sorta like a meeting, and then add a board on here.

RPGPros- Very easy to add multi-developer modularity.- Very simple to program (no complicated algorithms).- Has room for many different skill disciplines and levels.- Big enough that it will easily be enough work for everyone to do.Cons- Requires a massive amount of resources: art, music, story, etc.- Balance is the most important part of an RPG; with many different people making many different levels can be problematic.- So big that it will take a very long time.- Overdone genre, unimpressive unless done extremely well.

PlatformerPros- Fairly simple to program (only collision/physics are even remotely complicated).- Has room for adding a lot of unique functionality (like Braid or Little Big Planet).- Has a decent amount of room for modularity with multiple developers, like different weapons, upgrades, level types, boss/enemy AI/patterns, etc.- Can be big enough to accommodate many developers.Cons- Might be difficult to coordinate multiple developers in, because there will be overlap in development.- Fairly overdone genre; without a unique twist the game will not stick out.- Potentially too simple to be very interesting.- Not a lot of room for different disciplines and skill levels.

(To add to this, maybe quote my original message and then insert stuff. It will be better to have everything together in one list than to have it scattered across the topic.)

The concept- Someone sensible builds a basic 3D Elite-type space framework, nothing special, location [x,y,z] direction [x,y,z], collision detection, some agreed renderer (JOGL, LWJGL? software?) but put it in a browser to wow the masses.Someone else sensible builds a simple trade framework - sell X, buy X: any destroyed ship drops its cargo which can be picked up. There is an agreed range of tradeable/upgradeable weapons from popgun to BFG.

Each bona fide coder participant gets some planets which they can;Texture how they like.Populate how they like with AI ships - aggressive/defensive/neutral/trader/pirate/idiot - whatever!

A casual passer-by comes to the site (software renderer good for this) and gets a basic ship. They can explore the universe based on their greed or asthetics ('Ooo! that's a nice looking planet' or 'I need more ficiticium')Maybe zone it - trade zones, pretty zones, killzones &c.Best programmer/designer gets the most planet visits, best casual gamer gets the most cash/kills.This would work as a single player game, just exploring, but could also be multiplayered (server allowing).

I like this coz its simple: class Planet(), class Ship(), class Product(). If it's kept procedural the whole bother of assets is removed.

Pros:Discrete - once the framework's agreed everyone gets their space which they can do what they like with.Immersive - it'd be tempting to fly around & see what others are doing with their planets.Accessible - easy to understand concept in a browser so anyone can try it.Diverse - participant coders can focus on their strong points: art or logic.Inclusive - participants can plan missions/quests together, sending the player to eachother's planets.

Cons:3D maths is hard.Texturing might present problems.How to pull in new planet classes as a player approaches them?

1) Work together 2) Complete something3) Support continued development and polishing4) Provide an example for Java games development

So far, the only two I see as fitting this well are the Elite game (especially with SimonH's refinements) and the modular (M)RPG (that woogley and orangy started off with). Platformers don't work split well even if you take the LBP approach - mostly since the developers of the add-ons are the users not the core developers (which is great of course, but is going to segregate us pretty early on).

The only other idea I've had is some sort spore/robotarena type sandbox game where players build something that they submit to central servers and the game plays out based on the offline design of the player's component.

Either that, or a persistent online RTS which I've been trying to write for about 10 years, but I really don't think it's possible to any great shakes.

The front runner for me at the moment is Elite style game - lots of room for expandability, easy to split into tasks and not a great deal of high level art content. Difficulty would be multiplayer but as SimonH pointed out we could have the game single player but with an online component where the trading world and some aspects of the sectors are shared. I'm actually liking that a lot I can almost see the game working.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org