![]() |
|
Make a game in turns [monday thread] |
Trezker
Member #1,739
December 2001
![]() |
I have an idea! 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. 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
![]() |
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
![]() |
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
![]() |
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
![]() |
Sound like fun, i'm in! [FMC Studios] - [Caries Field] - [Ctris] - [Pman] - [Chess for allegroites] |
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. -- |
Trezker
Member #1,739
December 2001
![]() |
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
![]() |
I would be happy to maintain the repository.[1] References
-- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
SiegeLord
Member #7,827
October 2006
![]() |
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 |
Trezker
Member #1,739
December 2001
![]() |
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? 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
![]() |
On the maintainer\moderator\boss thinghy: I think the most reasonable thing is to do it the most anti-democratic possible way. 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] |
bamccaig
Member #7,536
July 2006
![]() |
As for license, my first choice would be >=GPL2. My second choice would be MIT. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Thomas Fjellstrom
Member #476
June 2000
![]() |
No more bikesheding, just get with it -- |
23yrold3yrold
Member #1,134
March 2001
![]() |
Thomas Fjellstrom said: No more bikesheding, just get with it Agreed, even though I don't know what bikesheding is. -- |
Thomas Fjellstrom
Member #476
June 2000
![]() |
23yrold3yrold said: Agreed, even though I don't know what bikesheding is.
http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality 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. -- |
23yrold3yrold
Member #1,134
March 2001
![]() |
Ah, I get it ... "And the wheel," said the Captain, "what about this wheel thingy? It sounds a terribly interesting project." -- |
Dennis
Member #1,090
July 2003
![]() |
Attached is the initial source code and a simple MSVS2008 solution file. 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}
--- 0xDB | @dennisbusch_de --- |
Thomas Fjellstrom
Member #476
June 2000
![]() |
Dennis said: // Note: by starting the game you win it I thought by thinking of it you lose it -- |
Arthur Kalliokoski
Second in Command
February 2005
![]() |
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
![]() |
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 |
ImLeftFooted
Member #3,935
October 2003
![]() |
I added a few harmless comments. 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
![]() |
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
![]() |
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
![]() |
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
Wait! Would this be more like an allegory of intelligent design? <edit />
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest. |
|
|