Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Make a game in turns [monday thread]

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
Make a game in turns [monday thread]
Trezker
Member #1,739
December 2001
avatar

I have an idea!
This forum has a history of failed monday projects, I worked hard on and then dumped one rather interesting attempt myself a while ago...

How about we make it more of a game?

Someone starts a project. Lay the basics down like, C or C++, file organisation, source control etc. And you implement a first feature.

Then it's the next developers turn. Add whatever you want, submit and pass it on.

Motivation for this format. It was my impression that people in the monday thread had very different ideas about which type of game they wanted to make. If the development process itself is a game like this then each participant is the boss for his turn, there will be no debating about where to take the game.

For this thread I'd like to discuss how to best make such a game work with the least risk of breaking down.

I think a good platform to use for "passing" the project around would be to use github. A main repo is set up, each developer clones the repo, works on it for his turn and sends a pull request.
A maintainer moderates the main repo and whos turn it is.

I suggest the maintainer keeps a turn queue where people report their interest in taking a turn. Keep turn length flexible if some just wants to contribute some smaller feature and others bigger features but say the max time for a turn is one week.

If someone can't use his turn when it comes up, I don't know if he should be bumped to the next slot or to the end of the queue. This should be moderated with care as to not discourage people who show interest in the project.

Important! In order to make sure the game always moves forward, it is not allowed to remove or "replace" features. Basically, do not move backwards or sideways, only forward.

Matthew Leverton
Supreme Loser
January 1999
avatar

I suppose you could call this a Monday project, but those are technically reserved for complete newbies who have this great idea for a game but they just need somebody to help them code it (i.e., do the entire thing for them).

This is similar... nothing will get started. Everybody will argue over the language, the version control system, the coding style, the architecture, completely different ideas, whether or not this argument I describe will happen, etc. After a few weeks of circular arguments, people will eventually get tired and forget about everything.

I think it would be more likely to work if it were meant to be amusing from the start. e.g., Turn it into a "Telephone" type of game. Somebody would have to write a secret framework and come up with a basic concept first. Then give all the workers nothing but a) the signature of the function to implement (each person implements a different one) and b) a hand drawing of what it's supposed to do.

Then put all the functions together and see what sort of game you've got.

Trezker
Member #1,739
December 2001
avatar

Yeah that's basically the idea here. I didn't intend to launch a project that had to be designed before implementation. So, just like the aforementioned monday project this isn't one noob with a vision.

The whole point of the game is that there is no planning. Instead there is a moderator that just keeps it clean and moving forward, but has no say in where this forward is going.

So it's just like the forum game where each guy posts the next sentence in the story and it just gets crazier.

Another thing I thought of to clarify the last point of my first post. The ban on moving "sideways" does not include refactoring the code if necessary. As long as the implemented features aren't severely crippled.

Of course if anyone starts to get grand visions along the way, they're free to branch off the project and go where ever he wants with it. But that branch will be a completely separate project. We can just hope such branchings doesn't make the game come to a halt.

Matthew Leverton
Supreme Loser
January 1999
avatar

Trezker said:

So it's just like the forum game where each guy posts the next sentence in the story and it just gets crazier.

But it's not. Stories are written sequentially and can easily be modified with a simple, "Then he woke up, and realized it was just a dream." So I wouldn't expect a game written in that manner to turn out anything like one of those stories.

FMC
Member #4,431
March 2004
avatar

Sound like fun, i'm in!
As for which language to use, i'd say to just allow a C\C++ mix, so each submitter can just use the dialect he prefers.

[FMC Studios] - [Caries Field] - [Ctris] - [Pman] - [Chess for allegroites]
Written laws are like spiders' webs, and will, like them, only entangle and hold the poor and weak, while the rich and powerful will easily break through them. -Anacharsis
Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover. -Mark Twain

Elias
Member #358
May 2000

Everyone could have their own folder below src/ - would solve the issue of coding style. So when Trezker passes the repository to Matthew there would be for example a src/gui/ folder with some skeleton files inside (maybe either .c or .cpp depending on the participant's preference) and they have to be implemented.

--
"Either help out or stop whining" - Evert

Trezker
Member #1,739
December 2001
avatar

The guy who starts the project kind of sets the stage. If he begins by coding C++, others are of course most encouraged to continue in the same style. Though perhaps people could be allowed to code C style, if the result doesn't get too messy.

Anyone may of course add scripting support at any turn, at that point it's his own choice which scripting language the project will be using from then on.

As for the analogy with the writing game trick of waking from a dream. Anyone could make completely different graphics and add a level that goes off on a rather different path. I don't know what level of moderation would be best in these issues, I guess that's up to the guy handling the main repo.

Another rule I just thought of, mostly relevant to graphics, but might be good for some code issues too.

Placeholder: If you put in some crappy graphics or ugly code needed to make your feature do anything useful. You can mark it as being just a placeholder. Then the rule about replacing implemented features is ignored for that piece.

bamccaig
Member #7,536
July 2006
avatar

I would be happy to maintain the repository.[1] :) I don't foresee myself being able to contribute features necessarily, but that might change after the basic groundwork is complete. :-/

References

  1. Unless Trezker was being coy speaking in the third person. :P
SiegeLord
Member #7,827
October 2006
avatar

Trezker said:

If he begins by coding C++, others are of course most encouraged to continue in the same style. Though perhaps people could be allowed to code C style, if the result doesn't get too messy.

From a spectator's point of view, it'd be more hilarious if this were not followed.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Trezker
Member #1,739
December 2001
avatar

bambam raises a possible issue. How do you think the participants might feel if the game maintainer also participates, perhaps a lot, in the development?
There is a risk he might bend his own rules a bit too far and ruin the fun of the game.

The maintainer is the boss though, and you can't really prevent him from doing what he wants. I think the maintainers rights and responsibilities should be specified in the rules of the game though. If you want to be really thorough, the project should have a license including the rules of developing the project, this license should probably not require derivative projects to have the same license.

In any case I think a license needs to be used to declare all contributions to the project free. Which license should be used?

FMC
Member #4,431
March 2004
avatar

On the maintainer\moderator\boss thinghy: I think the most reasonable thing is to do it the most anti-democratic possible way. :P

I mean, this is your idea, you get the burden and the staff of power, if things go well you get the credit, if they don't you'll simply get the blame

If you put such delicate questions up to vote and sindacation there will never be any progress. :)

[FMC Studios] - [Caries Field] - [Ctris] - [Pman] - [Chess for allegroites]
Written laws are like spiders' webs, and will, like them, only entangle and hold the poor and weak, while the rich and powerful will easily break through them. -Anacharsis
Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover. -Mark Twain

bamccaig
Member #7,536
July 2006
avatar

Thomas Fjellstrom
Member #476
June 2000
avatar

No more bikesheding, just get with it >:(

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

23yrold3yrold
Member #1,134
March 2001
avatar

No more bikesheding, just get with it >:(

Agreed, even though I don't know what bikesheding is.

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Thomas Fjellstrom
Member #476
June 2000
avatar

Agreed, even though I don't know what bikesheding is.

http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality
http://en.wiktionary.org/wiki/bikeshedding

Basically a bunch of people getting together to make a bike-shed haven't spent a moment on the bike-shed itself, and instead argue over the color to paint it.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

23yrold3yrold
Member #1,134
March 2001
avatar

Ah, I get it ...

"And the wheel," said the Captain, "what about this wheel thingy? It sounds a terribly interesting project."
"Ah," said the marketing girl, "well, we're having a little difficulty there."
"Difficulty?" exclaimed Ford. "Difficulty? What do you mean, difficulty? It's the single simplest machine in the entire Universe!"
The marketing girl soured him with a look. "All right Mr. Wiseguy," she said, "you're so clever, you tell us what color it should be."

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Dennis
Member #1,090
July 2003
avatar

Attached is the initial source code and a simple MSVS2008 solution file.

#SelectExpand
1// allegro.cc Monday game 2 3// Note: by starting the game you win it 4 5#include <iostream> 6 7int main(int argCount, char* argVals[]) 8{ 9 std::cout << "Congratulations, you win!\n"; 10 11 return 0; 12}

Thomas Fjellstrom
Member #476
June 2000
avatar

Dennis said:

// Note: by starting the game you win it

I thought by thinking of it you lose it :o

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Arthur Kalliokoski
Second in Command
February 2005
avatar

#SelectExpand
1#include <stdio.h> 2#include <time.h> 3#include <stdlib.h> 4 5int main(void) 6{ 7 char c; 8 int dif,res; 9 srand(time(0)); 10 printf("Choose difficulty\n\n"); 11 printf("a) Easy\n"); 12 printf("b) Medium\n"); 13 printf("c) Difficult\n"); 14 fflush(stdout); 15 c = getchar(); 16 if(c == 'a') 17 dif = 20; 18 else if(c == 'b') 19 dif = 50; 20 else dif = 90; 21 22 res = rand() % 100; 23 printf("\nScore: %d\n",res); 24 if(res > dif) 25 printf("You win!\n"); 26 else 27 printf("You lose!\n"); 28 fflush(stdout); 29 return 0; 30}

They all watch too much MSNBC... they get ideas.

IonBlade
Member #3,521
May 2003
avatar

I can't wait to add a physics engine and free world exploration to this sucker!

------

"I've got to choose my words carefully so that I'm not misunderstood, but I think there are fewer developers around today who think about making a good game. As a creator, I find that sad..." - Hideo Kojima

Dustin Dettmer
Member #3,935
October 2003
avatar

I added a few harmless comments.

#SelectExpand
1/* Copyright 2010 by Dustin Dettmer */ 2 3#include <stdio.h> 4#include <time.h> 5#include <stdlib.h> 6 7// Entry point for program 8int main(void) 9{ 10 char c; 11 int dif,res; 12 srand(time(0)); 13 14 // Prompt the user 15 printf("Choose difficulty\n\n"); 16 printf("a) Easy\n"); 17 printf("b) Medium\n"); 18 printf("c) Difficult\n"); 19 fflush(stdout); 20 c = getchar(); 21 if(c == 'a') 22 dif = 20; 23 else if(c == 'b') 24 dif = 50; 25 else dif = 90; 26 27 // Play the game 28 res = rand() % 100; 29 30 // Display the results 31 printf("\nScore: %d\n",res); 32 if(res > dif) 33 printf("You win!\n"); 34 else 35 printf("You lose!\n"); 36 fflush(stdout); 37 return 0; 38}

Trezker
Member #1,739
December 2001
avatar

:D

Well I think the bikeshedding is done and a game has started. Though at a lower level and without the maintainer bit.

For clarity, perhaps you should move this game to a new thread if it continues much further. :)

I do hope someone will get off the ass and pull together a clear simple rules document, license and proper repository for a project as I envisioned it in the near future.

By someone I mean myself of course, it would only be proper for the guy who brought it all up to also get it done. But if some ambitious soul thinks I'm dragging my ass too slow I don't mind if you beat me to it.

Archon
Member #4,195
January 2004
avatar

Is the repository going to branch off for people whom wish to go a different direction?

i.e. The framework may begin and someone turns it into a platformer, then someone else disagrees and branches off that code to turn it into a space shooter. Other developers may choose to assist with one or more branches, or branch off themselves. The branches that become inactive could become disabled and deleted.

Trezker
Member #1,739
December 2001
avatar

That is a possibility and I would not discourage people from doing so. I don't think it would be possible to stop it anyway, and it may not be healthy for your popularity rating to try.

One could of course use a non open source license if you really don't want branches. But that'd really put a dent in your popularity, and I'm not even sure github would like to host the project.

Johan Halmén
Member #1,550
September 2001

The branching idea sounds really great! Evolution! Think of it! On February 12th (guess whose birthday!) we could release a bunch of games, say 5 or 6 :D. They would look very different. After the games had gain popularity all over the world :D, we would reveal their true origin. All evolved from one single piece of code, that did nothing more than maybe opened a window. People would say "No, that's impossible! Someone must have created each game separately."

:D = optimist smiley.

Wait! Would this be more like an allegory of intelligent design? :P
Ok, bad idea.

<edit />
...an allegrory of intelligent design

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Years of thorough research have revealed that the red "x" that closes a window, really isn't red, but white on red background.

Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest.

 1   2   3 


Go to: