• Advertisement
Sign in to follow this  

The great GD.net collaborative coding horror experiment? (...and the results are in!)

This topic is 1511 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Can we completely exclude external assets?

That is certainly an option. I believe the GIMP has a built-in way to export an image as C source.

The downside is for large assets the code becomes very verbose, this will probably affect the thread load time and the performance of the syntax highlighter.

I had been thinking that an asset is posted just once - in the post that created it, not maintained as a ZIP in each post. That way, if you want to contribute you just need to download any assets that have been created since you last contributed.

Edit: since this will be a single file, could we simply use a google doc, so multiple people can edit at the same time. Not sure how well this would work with code, and also not sure how well google identifies who has made what changes.

Interesting idea, but I like the thought of seeing the history of the progress directly here. I also am intentionally trying to minimise the barriers to entry, otherwise I'd be using Github or something rather than specifying that a GD.net thread as a version control system.

Share this post


Link to post
Share on other sites
Advertisement

Do you really think you need art for such an experiment? You could just generate some bitmaps in memory procedurally, which could add some interesting code.

Share this post


Link to post
Share on other sites

Do you really think you need art for such an experiment? You could just generate some bitmaps in memory procedurally, which could add some interesting code.

 

+1, and I second the C suggestion as well (though for making a mess C++ is unparalleled).

 

Also, I don't think google docs would work out, really. By the time you get to compile and test your stuff someone will have edited the google docs, and by the time you've merged someone else will have probably broken what you were working on, requiring you to fix your code, and so on. That said, the "don't remove or alter code" does make merging changes quite a bit easier, assuming steps are taken to make sure commits are consistent with one another (i.e. one doesn't logically conflict with the other). But maybe it's part of the experiment to battle with another member until some kind of equilibrium is reached tongue.png

Share this post


Link to post
Share on other sites

Love it, and topic pinned! smile.png

 

Once you sort out all the details and get this thing started -- assuming you decide to go ahead -- might I suggest pinning the official topic in the "coding horrors" forum for the duration and linking from the lounge like the "PUTT" contest is currently doing?

 

 

It'll be interesting -- and terrifying -- to see what's produced!

Share this post


Link to post
Share on other sites

This will be brilliant.

 

Just the vast amount of different coding styles alone will be interesting to see in one file.  I get the sense we are going to see A TON of global variables. 

 

Maybe I misread it somewhere but will their a end goal that we are to strive for?  As in will what is added to the code actually be of "use" to the project?  Or could I just say go and implement a simple/stupid game inside and force everyone to work around that?

 

My vote goes to add whatever you want.  Just to see how scary what we end up producing would be...

Edited by Chad Smith

Share this post


Link to post
Share on other sites

I'd vote for doning this in Javascript or some other language that can be embedded into a page (python, ruby ??).  That way the game and a built in editor could be embedded as a sticky at the top of the forum (similar to JSFiddle) so everybody could see live updates of the game.

 

Using ANSI C is cool and everything but I think as a more fun forum experiment live coding in the webpage would be a lot more fun.

Share this post


Link to post
Share on other sites

Why don't we use HTML5 and Canvas?

 

 

I'd vote for doning this in Javascript or some other language that can be embedded into a page (python, ruby ??).  That way the game and a built in editor could be embedded as a sticky at the top of the forum (similar to JSFiddle) so everybody could see live updates of the game.

 

Using ANSI C is cool and everything but I think as a more fun forum experiment live coding in the webpage would be a lot more fun.

 

Obviously, I agree with this. What better way to get horrible coding than with a language that people know enough to be dangerous in and can get instant feedback from. And who doesn't have Chrome, Firefox, or IE10?

Share this post


Link to post
Share on other sites

This sounds awesome. I've been wanting to be more active on here/contribute to little projects and contests. This would be a great way without putting any stress or taking up a lot of any single person's time.

 

Nevermind this...

These are kind of conflicting if it's to be truly cross-platform and native. What about X calls on linux? And on Mac unless you launch from shell and use fullscreen only it's pretty close to impossible to have a game running without some Obj-C (unless you opt for X as well I suppose). I haven't done anything Windows in a very long time but I'm pretty sure you'd need some specific calls, HWND's and all that junk to get something running as well haha.

I think that should be the only area allowed to have those dependencies, just so it can get up and running.

Of course this wouldn't matter if it's browser based. Or Java.

 

 

Do you really think you need art for such an experiment? You could just generate some bitmaps in memory procedurally, which could add some interesting code.

+1

Procedural generation FTW.

 

All for procedural! =D

 

 

I'd vote for doning this in Javascript or some other language that can be embedded into a page (python, ruby ??).  That way the game and a built in editor could be embedded as a sticky at the top of the forum (similar to JSFiddle) so everybody could see live updates of the game.

 

Using ANSI C is cool and everything but I think as a more fun forum experiment live coding in the webpage would be a lot more fun.

I prefer C/C++, but if it's all to be one file I think C would be better in this case. Somewhat cleaner, but also a little more challenging.

I don't have as much experience with browser-based langauges; never used Ruby, and only used Python when helping (doing lol) my gf in a programming class years ago.

Buuuut, I'd be down to play with any of them! All the more fun.

This would get around the dependencies and cross-platform concerns, and would be quicker to get up and running than something like Java, even if it only needs to be compiled once. The instant feedback argument is a strong one. Especially in a case like this.

Edited by FuzzyRhombus

Share this post


Link to post
Share on other sites

Heck to the yes!
 

I'd vote for C++03 and SFML, though C99 and SDL would be my second choice. +1 for procedural.

 

I assume there's an implicit rule that you cannot add to the code (again) until someone else has? (so you don't add a commit, then immediately add another; you have to wait for someone else to add a commit before you can add another) Also, I don't know if you plan on keeping any kind of actual repo, but if you're not I wouldn't mind making a git repo and updating it with each post to keep a "proper" history.

 

And if this works well, can we please do this annually?

Edited by Cornstalks

Share this post


Link to post
Share on other sites

This sounds awesome. I've been wanting to be more active on here/contribute to little projects and contests. This would be a great way without putting any stress or taking up a lot of any single person's time.
 
 

  • Dependencies are limited to the standard library and the multimedia library only. No OS-specific calls
  • The code must compile on your platform of choice, and should strive to be cross platform
These are kind of conflicting if it's to be truly cross-platform and native. What about X calls on linux? And on Mac unless you launch from shell and use fullscreen only it's pretty close to impossible to have a game running without some Obj-C (unless you opt for X as well I suppose). I haven't done anything Windows in a very long time but I'm pretty sure you'd need some specific calls, HWND's and all that junk to get something running as well haha.
I think that should be the only area allowed to have those dependencies, just so it can get up and running.
Of course this wouldn't matter if it's browser based. Or Java.
With SFML like was originally proposed I am almost positive you can get a window up and running with the exact same code. For the most part if people use standard C++ calls and didn't get absolutely crazy with SFML(I think their are a few calls that act different on the different OS's) then it should compile just fine for everyone. I just migrated my SF code over to Linux from Windows and it compiled and ran without one problem. That's the beauty of SFML. How easy it is to get going with it and how easy it is to work with other OS's

Share this post


Link to post
Share on other sites

Heck to the yes!
 
I'd vote for C++03 and SFML, though C99 and SDL would be my second choice. +1 for procedural.
 
I assume there's an implicit rule that you cannot add to the code (again) until someone else has? (so you don't add a commit, then immediately add another; you have to wait for someone else to add a commit before you can add another) Also, I don't know if you plan on keeping any kind of actual repo, but if you're not I wouldn't mind making a git repo and updating it with each post to keep a "proper" history.


+1 fot c++. although i am not opposed to using html5/javascript, it'll finally give me reason to learn canvas.
Also like the idea of not allowing double edits, have to live with what you create. Edited by slicer4ever

Share this post


Link to post
Share on other sites

 

This sounds awesome. I've been wanting to be more active on here/contribute to little projects and contests. This would be a great way without putting any stress or taking up a lot of any single person's time.
 
 

 

  • Dependencies are limited to the standard library and the multimedia library only. No OS-specific calls
  • The code must compile on your platform of choice, and should strive to be cross platform
These are kind of conflicting if it's to be truly cross-platform and native. What about X calls on linux? And on Mac unless you launch from shell and use fullscreen only it's pretty close to impossible to have a game running without some Obj-C (unless you opt for X as well I suppose). I haven't done anything Windows in a very long time but I'm pretty sure you'd need some specific calls, HWND's and all that junk to get something running as well haha.
I think that should be the only area allowed to have those dependencies, just so it can get up and running.
Of course this wouldn't matter if it's browser based. Or Java.
With SFML like was originally proposed I am almost positive you can get a window up and running with the exact same code. For the most part if people use standard C++ calls and didn't get absolutely crazy with SFML(I think their are a few calls that act different on the different OS's) then it should compile just fine for everyone. I just migrated my SF code over to Linux from Windows and it compiled and ran without one problem. That's the beauty of SFML. How easy it is to get going with it and how easy it is to work with other OS's

 

Whoops, my fault, thought it said SFMT (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/). That would make more sense lol. Just looked up SFML; I think that should do it then, looks awesome!

Share this post


Link to post
Share on other sites
Ok, here is my current plan.

There does appear to be quite a bit of interest in HTML 5, so I'm considering running two concurrent ones, one in C++ and one in HTML 5. There will be a theme for each. I am thinking I'll start the experiment at midnight (GMT) 31st of October, and leave it run for the weekend.

While restricting consecutive commits by the same person is appealing, I don't want to disenfranchise people in odd timezones, so I don't think I want to enforce this.

My own experience with HTML 5 is limited, I wrote a basic pong many moons ago. Is vanilla HTML 5 sufficient, or is there a clear library (not a framework) that is popular for HTML 5, like what SFML/SDL are to C++/C? I'll probably include jQuery.

Do you really think you need art for such an experiment? You could just generate some bitmaps in memory procedurally, which could add some interesting code.

Good idea! I'd certainly encourage procedural generation, both for art and for levels or whatever. I think allowing manually generated programmer art could add to the hilarity.

Once you sort out all the details and get this thing started -- assuming you decide to go ahead -- might I suggest pinning the official topic in the "coding horrors" forum for the duration and linking from the lounge like the "PUTT" contest is currently doing?

Sure, will do.

Maybe I misread it somewhere but will their a end goal that we are to strive for? As in will what is added to the code actually be of "use" to the project? Or could I just say go and implement a simple/stupid game inside and force everyone to work around that?

The end goal is to have some kind of playable game, related to the theme. The details are left to your imagination.

That way the game and a built in editor could be embedded as a sticky at the top of the forum (similar to JSFiddle) so everybody could see live updates of the game.

I don't think that will be feasible in the time available, but it is a nice idea.

Also, I don't know if you plan on keeping any kind of actual repo, but if you're not I wouldn't mind making a git repo and updating it with each post to keep a "proper" history.

I didn't want to try to organise an official repository for the experiment itself, but I would appreciate someone who wishes to maintain one from what happens in the thread(s).

And if this works well, can we please do this annually?

Let us see how this one goes, but I'd certainly be interested in doing something similar next year. I reckon we'll learn a lot from running this one, as to what works or not.

Share this post


Link to post
Share on other sites

Really interesting idea! I'm willing to participate.

 

I'd prefer C and SDL (without OpenGL), since its easier to access the framebuffer, and do direct pixel manipulation on surfaces, even if we can't directly rotate/scale sprites.

I think that direct pixel manipulation is also posible in HTML5/Canvas, but I think it was slower IIRC.

Share this post


Link to post
Share on other sites

Really interesting idea! I'm willing to participate.
 
I'd prefer C and SDL (without OpenGL), since its easier to access the framebuffer, and do direct pixel manipulation on surfaces, even if we can't directly rotate/scale sprites.
I think that direct pixel manipulation is also posible in HTML5/Canvas, but I think it was slower IIRC.


Just....no.

Share this post


Link to post
Share on other sites


I am thinking I'll start the experiment at midnight (GMT) 31st of October, and leave it run for the weekend.

Is it only going to be for 2 days then?

Share this post


Link to post
Share on other sites


If it's HTML 5 then I'll have to pass, as I have absolutely no clue how that works.

 

 

Programming is programming.  Type stuff in, cross your fingers and hope that it does something.

Share this post


Link to post
Share on other sites

Is it only going to be for 2 days then?

Would it not be three days: Friday, Saturday and Sunday? I was hoping that a relatively short duration would lend some focus and impetus. However, when stated like that - it does sound perhaps overly short. Maybe I'll leave it run until the following weekend.

I wasn't going to lock the thread or anything, so the program could continue to evolve as long as people are sufficiently interested.

Share this post


Link to post
Share on other sites

 

Programming is programming.  Type stuff in, and watch the magic happen!

 

Fixed. tongue.png

 

 

 

Is it only going to be for 2 days then?

Would it not be three days: Friday, Saturday and Sunday? I was hoping that a relatively short duration would lend some focus and impetus. However, when stated like that - it does sound perhaps overly short. Maybe I'll leave it run until the following weekend.

I wasn't going to lock the thread or anything, so the program could continue to evolve as long as people are sufficiently interested.

 

You're right, 3 days. Thought the 31st was Friday. My reading skills are not going well for me lol.

 

I was under the impression the whole idea was to be more a relaxed, hope for the best kinda thing. Either way would be cool. Perhaps two version could run alongside for a time? The short version, requiring more effort and organization; the long version, becoming a contrived mess but a more creative end result.

 

Is there really any reason it has to come to an end though? It's not being judged or anything like that, right? Why not leave it for a few months and see what happens. The only thing I see becoming difficult over longer durations is making sure everyone's following the rules. Although that's what makes it so fun, so I don't see why anyone wouldn't!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement