Sign in to follow this  
  • entries
    68
  • comments
    177
  • views
    81435

3H-GDC base code

Sign in to follow this  
capn_midnight

457 views

The issue of base-code in the 3H-GDC. Here's why I think it should stay:


  • cheaters cheat, and I don't know how to stop them. So, allowing the base code elliminates their advantage.
  • beginners don't know how to code basic graphics, but they can probably figure out the logic. Complete noobs (dare I say, "nooblets"), can't figure out either, so they won't finish anything at all. With base code, perhaps it will encourage beginners (distinctly different than noobs) to stretch out and participate
  • I want the contest to be more about design and concepts than to be about coding prowress. I want some coding to occur, but one needn't be the next topcoder grand champion in order to win.


thoughts?
Sign in to follow this  


9 Comments


Recommended Comments

I for one took the sporting approach & did everything inside the 3 hours allotted - I'm sure everyone else did the same too. However I understand the issue is a difficult one to solve.

I think there are a couple of things that could help even the playing field:

- Basecode: Making some basecode available for anyone to take & use (and made available in advance to give people the time to figure it out). The idea being to remove as much of the difficulty in getting graphics onto the screen as possible.

The problem with this is that games might start to become similar & take away some of the creativity if everyone's using the same basecode, so it might be better to provide it but not require people to use it. On the other hand it allows beginners to concentrate on the gameplay.

Realistically 3 hours isn't enough time to write anything 3d IMO, and the entries for every competition reflect that, so something that just handles 2d would be fine.
Personally I'm in love with HGE now, that thing is so damn easy to learn, set up and use. In fact there's hardly any learning curve at all. [/pimp]

- Cheating: I think the source to the winning entries should be checked before making it official. Some people may not want others to see their source, but it could be given to the judges under instruction that they may not use it themselves (to protect people's hard work that may have gone into their basecode) unless they have been given permission to do so. Making the code publically available in the forums should be at the entrant's discretion. It should be possible to compile the source in order to check that nothing has been taken out. The varied specs of judging machines should mean at least one person will be able to check this.

The point here is not to laugh at the code, but to allow judges to gauge whether it really has been written in 3 hours or not. Some people can write way more than others in that time, but a reasonable threshold could be worked out.
As the prizes are incredibly valuable for such a competition this could help satisfy people that the winner played by the rules - I guess cheating is "ok" if the cheat doesn't win, but unfair to everyone if they end up on the podium.

Share this comment


Link to comment
I agree with capn_midnight. It's a contest about making a game in three hours, not reinventing the wheel in three hours. There's no reason that one shouldn't be able to use the resources available to them; after all, in a "real" setting, having a good base will give you a big advantage too.

Share this comment


Link to comment
Quote:

Realistically 3 hours isn't enough time to write anything 3d IMO, and the entries for every competition reflect that, so something that just handles 2d would be fine.
Depending on the tool and the basecode allowed.

With Panda3d, it is possible to make a 3d game within a 3 hour time limit. I can model many crued 3d objects faster than I make a crued drawling. Sure, there's a design limitation by going 3d, but it's just as limiting as going ANSI.
~~
I do believe that a 3 hour game competition should be Open Source.
Here's my game license:
Quote:
3 Hour Game Constest License:
You, the 3rd party, are allowed to read, compile and learn from the code. You are not allowed to copy the code into any project.

This license only covers this code and does not superseed any licensed 3rd party library.


Here's my basecode license:
Quote:
3 Hour Basecode License:
You, the 3rd party, are allowed to read, compile and learn from this code. You may only use this code to compete in the 3 hour game contest.

This license only covers this code and does not superseed any licensed 3rd party library.

IANAL, I'd need to consult with one to get them legal.

Basecode would be manditory to compete, just because it levels the playing field a bit for new coders. I'd have a stock of basecode lying around for new players. If it gets to be too much work to make it avalible immediatly, basecode would be avalible for the next contest on.

Source Code would be released to the judges, and optionally, it would be allowed on the site with a choice of this license, BSD or GPL.

Share this comment


Link to comment
Part of my "officialization" process for the contest is to create a specialized website distinctly for it. Perhaps part of that site will be links to game libraries like SDL, HGE, or even the PopCap framework.

When I first started, I used to think that I had to do everything myself, or else I would receive any respect for my work. Now I just freaking don't care anymore, and I want to try to show other people that they shouldn't care either.

There are some very definite goals with the contest:
  1. Get It Done:
    The #1 problem I see with beginners is that they never do anything. They are so afraid of doing something wrong and so concerned with doing absolutely everything right that they end up not doing anything at all. So, part of this contest is learning "sometimes it's okay to be wrong". Using base code fulfills this because it decreases the number of mistakes a beginner can make. There are so many facets to this one point. GID means learning from your mistakes. GID means learning your boundaries. GID means having a self esteem boost. GID means reallizing perfection is not necessary. GID means gaining experience for future projects.

  2. ... Actually, there is no 2, that's it. Get It Done. Don't be 3D Realms.

Share this comment


Link to comment
I'm all for base code. CartRunner used two pieces of prefab code: the W32Console class (for the console "drawing") and a simple Input class that polls keyboard state. I had them handy but together they represented no more than a couple of hours worth of coding and thorough testing. In fact, several elements were added to each as I realized I needed them for CartRunner.

Base code has two important features: it levels the playing field significantly (some people are much better prepared to build from scratch than others) and it places the focus on gameplay rather than engineering. This is a very important thing IMO; the contest is about making a good game in three hours, not about making a lot of pretty code. The CartRunner source is a giant, hideous hack; I only bothered encapsulating the Cart and Coworker functionality because it kept the main module cleaner. The console and input base code let me hold the focus on that instead of on building a "good framework" or what have you.

Part of the discipline of game development is knowing what can and cannot be done with the available resources; usually, the limiting resource is time. I think the 3H-GDC throws that limitation into very crisp focus, and really drives the entrants to make a good playable base game. I dribbled a bit more about that concept on the CartRunner postmortem page.


Bottom line is I think base code is good; but some kind of encouragement for the entrants to share their code (both base and finished product) would be good as well. I'd love to see what some of the people around here can do with the CartRunner source (once they get done making the code less of a giant blob of noodles and hacks).

Share this comment


Link to comment
I reused a fair bit of code - gamestate functionality, my menu system and some 2D platform code. But the main reason I re-used stuff was becaaue I don't know SDL or GDI+, either of which would probably have been quicker and more productive.

I'm happy to allow any base-code, but what does 'base' mean? I have a 3D racing game so I could have considered that to be 'base' code and submitted it as is...

I thing I could have managed some 3D entry using my heightmap library and basic 3D camera + physics utility code. But only a very simple game - it would need a lucky choice of theme for me to try this.

Share this comment


Link to comment
If your going to provide prefab code, make sure you provide documentation in advance so the 3 hours isn't lost just learning the api's. Although this gives the possibility that someone would still cheat and create a game around the spec then test once the actual code is delievered.

Alternatly you could have a group chat and tutorials that are released an hour before compeition, to get people up and running.

I really don't see any way to prevent cheaters :/

Share this comment


Link to comment
I personally think that being overly specific will get the job done. Consider "A cart racing game that requires 3 laps and 10 players with an accurate waypointing system" over CARTS. But then again CARTS is kinda cool.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now