So, this is an idea that would help boost activity, while also helping members get more acquanted with programming.
Programming ChallengesCommunity based programming events seem to have boosted activity in the past. Ie, portal X, the Summer programming contests, ndless, etc. so I figure we could get a more stabilized activity base by having continuous events.
Types of EventsIndividual
Team [Up to 2, Up to 4, etc.]
Super Co-Op (The whole community contributes to one project, excepting one impartial person who then judges each person's contributions for points. It's mostly for the awesomeness of doing something, though)
TI-84+
Prizm
Nspire
Easy [expected <24 hrs]
Medium [expected <3 days]
Hard [expected <1 Week]
Insane [>1 week]
Lunatic [>1 month] (go Touhou
)
You start a new Easy and Medium challenge every week, and one Hard, Lunatic and Insane challenge after 1 month.
Graphics-based
Math
Random
We should have randomly chosen teams, but each would contain a certain amount from different pools. As in, there would be a pool of users good at graphics, a pool good at the programming, map design, etc.
Example scoring system (I'm coming up with it on the spot. Criticism is welcome. )
100 points for every hour after it has been announced. (you do percentages of hours rounded to 1 point)
24000 points for not working 100% (This is for those Lunatic Challenges. It would give people 10 days to beat a nonworking entry)
1 point for each byte in the runtime file. This gives an advantage to Axe/Asm over BASIC/Grammer.
1 point for every frame/millisecond/whatever it takes to run, past the execution point. (pressing enter)
-(A fair amount) for creativity, etc. (If someone mimics another person's program, they would get less creativity, so they would have to come up with a big optimization to compensate. I don't think basing off another's program is bad this way, since they'd also be behind on time.)
What counts for the bytes is any non-language based (grammer, Axe Fusion) requirement for a program to run. If it needs external variables defined BEFORE execution, then those variables count as well.
(I'm looking at basic here: Defining 10->A where A is unknown does NOT count A)
Basically, if you need to send it to the calc for your program, and not for any other program, it counts.
Points are BAD.
Asm programs should be run with Asm(prgmNAME), and Axe programs should be compiled so they can run the same way. This is because timing problems would result from running MirageOS/DoorsCS/Ion start methods.
There should be a website with a live-updating countdown method of some sort, so it shows the challenge to everyone at the same time regardless of refreshes.
PrizesSince they're weekly, there shouldn't be IRL prizes (money is expensive!) but maybe we should bring back the trophy system, but for this. Clicking on the trophy would take you to their zip in the file archives.
Oh, and the entries should be open source. We should have the community development skill increase as people see others' methods for running programs faster. These programs aren't going to be massive games or anything, and it's not a huge deal if someone undercuts you.
[size=24]Some Details[/size]
Reentries are allowed, but invalidate previous entries. If it's the same entry twice, then you just add to your time score.
Entering code that is not all yours is fine. (Axioms, Grammer Libs, Someone else's source) If you have the resources to find something for this contest that fast, then the community will benefit from it. If you rip off someone's entry, you're behind them on both time AND creativity.
A few example challenges: [stuff] means replace with specifics.
* make a program that displays the result of [some (hard) math operation]
* make a program that can draw [3d, lots of grey, etc.]
* make a program that [does something] in an especially creative way.
One potential problem is the time delay between the different time zones we are in. I believe we have 3 separate general regions to deal with (americas, europe, eastern asia) and I have a few thoughts on that as well.
* Have the start base on local time, so everyone starts at 5:00 PM in their area.
* Ignore the problem, and make the challenges hard enough that it's negligible. (ie they take 3-4 days)
* Cycle through starting times, so everyone gets a head start at some point.