Well, I finally got around to making a decent MinorHack website. For those of you who don't remember, the first thread is here. The difference between the old one and this one is that now there is a rule-o-matic. 1 rule is arbitrarily selected to govern entries.
Anyways, I want to run a few of these. I want to do 2 this weekend, and I'm hoping, if I can get enough interest, that I can get one in today also. Anybody up for it? Give me times, and I will schedule it!
Also, spend some time at the site and add a few rules. We need rules to get the competition interesting!
[edit]
Current competition is scheduled for 2100 GMT on September 3.
I'm currently thinking 6 hours for the competition
Do you mean "have a competition in 6 hours" or "competition will be 6 hours long"?
Anyway, I'm hosed today/tonight, but I'd be open for doing them this weekend any time. Whoo-hoo, 4-day weekend!
I mean it would be 1 hour long, and start at 6 p.m. EDT
It would be nice if the site allowed every entrant to start when he wants to. Once logged in, he would have option "enter the compo" for every compo that's open at the moment, which would give him access to the rules, but at the same time it would start the countdown and close submission for him after 60 minutes.
Once logged in, he would have option "enter the compo" for every compo that's open at the moment, which would give him access to the rules, but at the same time it would start the countdown and close submission for him after 60 minutes.
Yeah, but that takes the social aspect out of it Plus it allows cheating. Not that we really care about that
Okay, let's get some more rules in the system, okay?
Okay, let's get some more rules in the system, okay?
Okay, I've added a bunch. I may add something more later, when I'll have some more ideas.
I'd like to on Sunday night or something, but I wouldn't be able to tonight. I need more notice!
Eh. Too short to produce anything meaningful.
Eh. Too short to produce anything meaningful.
How about 72 hours? No, wait....
Hey, I wrote one of my "best" games during the last one... a simple snake game. Most of my games I have the problem of overengineering, but with 1 hour, I just hacked up whatever works.
I don't think I'm good enough to hack something in one hour
If this happens, i think I'll give it a shot.
OTOH, I enjoy a good challenge every now and then
What times, guys? Sunday at 2100 GMT sound good? Anyone else?
Hmmm...on the Rules section of your site, I don't see any rules. Or...has none been approved yet? Browser: Opera.
At the time that you posted (and now), there are 14 rules. If you can't see them, try the xml.
I can see the rules in the xml, but there all smashed together in one long paragraph.
Opera sucks So what does the rules page look like normally then?
Opera sucks
That's it, I'm going to make my own internet browser and it shall be named: sUcks (Super URL Connecting at Killer Speeds).
Anyway, the rules page looks fine now...odd.
[edit] - Added some really zany rules.
Impressive! 3761 after a few tries.
EDIT: 4343!
Btw, you should have limited the placement of the green circles more to the centre of the board. If you get one in one of the corners, you can't even get to it. And you could make a minimum distance from the last green circle, otherwise if you're lucky, you can get three or four in a straight line.
Good point with the corners, didn't think of that.
I put this code in eat_treat() instead of the two lines that calculate the new x/y:
Got 5758 points the first time.
Thanks =)
You could probably have used the "is_overlapping" function to do that.
Also, you can increase/decrease the speed of the snake (with the up/down arrows)
I'll put up an alternate version (over one hour of work) with some updates.
EDIT:
Here is version "2" ("real" version still in the previous post):
GAME!
or just the source Sauce!
So does that mean you're in for this weekend, Jonathan?
Aye, if i can. My girlfriend has her family over, but i should be able to squeeze in an hour of coding there.
Nothing like a time constraint to fuel productivity =)
Okay, I set it up for Sunday at 2200 GMT (if I did that correctly). It's Sunday at 6 p.m. for you EDT'ers like me. If anyone has a problem with this time, let me know!
Another bunch of rules from me is on the way.
in your first post that was 2100 UTC. Make up your mind =)
2100 would suit me better, but both would probably work.
Rescheduled I don't like all this converting between time formats >_< In the first post, by the way, 6 p.m. is 2200 GMT
Anyways, it's 2100 GMT now, which is 5 p.m. Sunday, EDT.
[append]
By the way, I am rephrasign the rules as I approve them. Let me know if I miss the point of the original.
Good. You should probably edit the first post to reflect the changes so people won't have to read through the entire thread =)
GMT+1 Here, so it's not gonna be a problem. Unless I'm unavailable
Play my game! Tell me I'm pretty and smart!
I don't like all this converting between time formats >_<
Then just put them as GMT. Even better - make a countdown timer. The way it is now, "Times are in EST/EDT (GMT-5/GMT-4)" is completely confusing.
By the way, I am rephrasign the rules as I approve them. Let me know if I miss the point of the original.
OK, so:
- "The game must feature high number of autonomic "creatures" driven by some kind of AI in a swarm fashion." - "Swarm!" was only a title of the rule, but I didn't require "AI in a swarm fashion". As long as there is large number of creatures with similar behavior they can be considered some kind of swarm. Of course swarm AI is fine, too, but it wasn't compulsory in my version.
- "The game must be turn-based. Anything that allows player to think before making his move will do (try avoiding making multiplayer games with no optional AI, as second player isn't always at hand)." - Multiplayer with optional AI sounds a bit difficult to make in one hour, so it wasn't in my version. If you think that good AI replacement for human player can be written in one hour you can leave this way, but I'd prefer more games, where computer has advantage over he player than games where poor AI makes everything too easy.
The rest seems to be fine. I'm waiting for the second batch of my rules to be added.
Hmmm, I'd like to think I could make a snake game in an hour. But I'd try to do something a little better than just a snake game, and I'd fail.
Then just put them as GMT. Even better - make a countdown timer. The way it is now, "Times are in EST/EDT (GMT-5/GMT-4)" is completely confusing.
Clicka de link. I'm also adding the other rules right now. I'll make those changes you pointed out.
Hmmm, I'd like to think I could make a snake game in an hour. But I'd try to do something a little better than just a snake game, and I'd fail.
Yeah, I failed my first one You should play anyways
GMT+1 Here, so it's not gonna be a problem. Unless I'm unavailable
Great. Look forward to seeing your entry
[append]
If you think that good AI replacement for human player can be written in one hour you can leave this way, but I'd prefer more games, where computer has advantage over he player than games where poor AI makes everything too easy.
I'm not going to change this one, because the actual rule simply states that the game must be turn-based, and nothing more. Remember, everything past the first sentence is just suggestion or clarification. And I strongly encourage bending the rules as much as possible.
Oh, and I had to not approve a rule: The one that said all variables must end in ++, because I'm not sure int i++; is valid syntax.
Clicka de link. [cgamesplay.com] I'm also adding the other rules right now. I'll make those changes you pointed out.
Showing minutes and seconds in remaining time may come in handy when the compo will get closer.
- "The player's representation in the game must be a circle drawn with circlefill. That is, the main character must be drawn with circlfill." - a typo in the last word.
The rest looks fine.
I'll try and participate!
Did anyone else here participate in BlitzHack? I thought that was a lot of fun. It was 6 hours though, so you were able to add quite a few features if you managed your time well.
Showing minutes and seconds in remaining time may come in handy when the compo will get closer.
I'll deal with that issue, once, say, the number of days reaches 0
Also, I don't know what the Halting Problem is.
Derezo: Glad to have you! No, I didn't participate in BlitzHack. Wasn't that one-time-only?
Any chance on lifting the c++/allegro restrictions?
Marcello
There's no C++ restriction, but you must use C or C++, and can only use Allegro and the standard C library.
How much frequent it'll be? One time per year? One time per month? One time per week? Just once and nevermore?
There's no C++ restriction, but you must use C or C++, and can only use Allegro and the standard C library.
I think you should allow standard C++ library (including STL). Also allowing WinAPI would be cool, although the only function there that doesn't have Allegro replacement is timeGetTime() and other high resolution timing functions.
I think you should allow standard C++ library (including STL). Also allowing WinAPI would be cool, although the only function there that doesn't have Allegro replacement is timeGetTime() and other high resolution timing functions.
Yeah, standard C++ library also. Personally, I don't care what you use so long as it is Allegro or comes with the compiler. And it had better compile on Windows and Linux
How much frequent it'll be? One time per year? One time per month? One time per week? Just once and nevermore?
This is the second time in 2 months. It can be as often as people want it Just drop me a line and I can add it to the DB.
How many rules will be selected? By your rule-o-matic? (or maybe rule-o-human)?
1 rule is used per competition.
I denied the "argc/argv" rule. Users in Windows (and Linux, et al.) should be able to double click on an executable without passing parameters
Added some more rules...
1 rule is used per competition.
It would be nice to say that in the site.
Added some more rules...
If you added the rules about California and politics, then congratualations! Those are the most brilliant rules I have ever seen
It would be nice to say that in the site.
Done
you must use C or C++, and can only use Allegro and the standard C library.
It's a pretty informal competition, right -- we're just posting our results in a forum thread? So I don't see how or why there should be any restrictions like that. If it's a pain to get a game to run, you can always just not run it. Just let people do whatever -- it's all for fun.
edit: on a similar note: I also have no idea why you'd disallow media files. Seems like you're just arbitrarily reducing the potential quality of the entries.
If it's a pain to get a game to run, you can always just not run it.
You're right. There are only two rules that are actually enforced. The 1-source-file limit, and the rule-o-matic's selection. I just set that as a rule to enforce that it be as easy to run as possible. It should compile for everyone, and the only things that they should have to have are a C(++) compiler and Allegro. I need to re-write the main page of the site to clarify this and other rules, as it is written very porrly right now.
[append]
Okay, good thing I did that, because I uncovered a rather serious bug in the rule selector. Anyways, I think everything is written much more nicely now, and the current competition page will reiterate the rules when the time comes.
Media files are disallowed to add a restriction to the competition, which is to keep it simple. Just personal preference, I suppose. By the way, rule submitters, I am not opposed to requiring entries to use a certain media file that you provide.
It's a 1 hour competition, how much media do you need? I personally like just being able to do simple programmers art without having my entry stick out like a sore thumb.
It's a 1 hour competition, how much media do you need?
A main character bitmap and an enemy bitmap would be nice.
I personally like just being able to do simple programmers art without having my entry stick out like a sore thumb.
I kind of doubt that, with an hour to do the code and the media, anyone would have much more than simple programmer's art. All allowing media files would do is enable graphics a bit more 'flavorful' and versatile than colored circles and squares.
Also, I'm generally opposed to setting rules of a competition with the purpose of dragging down the quality of everyone's entries just because I can't get that quality myself ... ie, removing drawing just because I can't draw.
which is to keep it simple.
How does that "keep it simple"? I don't see any particular extra trouble in running entries that include a few media files along with their single source file. And allegro makes bitmap loading and rendering totally straightforward. Making bitmaps is pretty trivial, too -- just spend a minute clicking in MS Paint, and you get comically bad media files for the cost of a bathroom break. Easier than trying to make anything interesting out of circles and squares, probably.
It says you need to make sure it compiles on Linux and Windows. But I do not have access to Linux for compiling, and probably won't for another week or two.
Just write ANSI code + Allegro and no #pragma's etc and you should be ok i think.
And don't include conio.h, winalleg.h, and windows.h. There are others, but I think these are the most common ones.
Well, I wanted to write a proper response to this, but I guess I won't have time:
How does that "keep it simple"? I don't see any particular extra trouble in running entries that include a few media files along with their single source file. And allegro makes bitmap loading and rendering totally straightforward. Making bitmaps is pretty trivial, too -- just spend a minute clicking in MS Paint, and you get comically bad media files for the cost of a bathroom break. Easier than trying to make anything interesting out of circles and squares, probably.
I think the biggest reason for disallowing extra media is that it really hits home the fact that gameplay is everything. If you can use blank bitmaps each with an X on it, generated at load time, you can focus on your game's mechanics instead of art in your hour. If you so choose, you can enhance your entry later with real bitmaps loaded in place of the placeholder bitmaps. This won't count as part of your entry, but it allows you to have a nicer finished product.
This competition is about straining creativity to design a game meeting the rules in as little work as possible. The goal of this competition is not to have a finished product; it is to put forth an innovative idea that is fun to play.
If you added the rules about California and politics, then congratualations! Those are the most brilliant rules I have ever seen
Personally, I added the rules "just the mouse", "no text", "bananas", "something undestructible wants to kill the player who must destroy something". "upside-down", "l33t", "politcs" and "pig and cow".
I added "argc/argv" too, but you declined.
This competition is about straining creativity to design a game meeting the rules in as little work as possible. The goal of this competition is not to have a finished product; it is to put forth an innovative idea that is fun to play.
Hmmm... I can't seem to agree with this... art is part of the creativity too, isn't it? And considering media production is generally a larger time factor than coding, polished art will be expensive anyway. Or am I missing a point here?
And don't include conio.h, winalleg.h, and windows.h. There are others, but I think these are the most common ones.
I always was forced to include <winalleg.h> whenever I wanted to use STL, as its implementations I was using were including <windows.h> indirectly, which conflicted with Allegro (especially BITMAP structure). Also Allegro doesn't have high resolution timers, so they can't be easily replaced.
I'm not sure whether I'll have time to enter the compo when it starts, but I'm planning to include compatibility version of "winalleg.h" for Linux users (included below), so dropping this file to compile directory will hopefully solve all problems.
#include <sys/time.h> unsigned long long timeGetTime() { timeval T; gettimeofday(&T,0); return ((long long)T.tv_sec)*1000+T.tv_usec/1000; }
Or, in your source file:
#ifdef _WIN32 #include <winalleg.h> #else #include <sys/time.h> unsigned long long timeGetTime() { timeval T; gettimeofday(&T,0); return ((long long)T.tv_sec)*1000+T.tv_usec/1000; } #endif
(add _WIN64 at your leisure)
Hmmm... I can't seem to agree with this... art is part of the creativity too, isn't it? And considering media production is generally a larger time factor than coding, polished art will be expensive anyway. Or am I missing a point here?
I find that disallowing media will encourage more creative use of code. After all, this is primarily a programming competition. However, as I have said before, the bonus rule for a competition could be to use a specific media file in your entry, and that would be fine.
I think the only thing that can really be said on the matter that (hopefully) we can agree on is this: A competition is such because it has rules. These rules may be arbitrary, but they are in place solely for the purpose of limiting competitors. The challenge of a competition is putting out a good effort, despite the rules set in place.
you can focus on your game's mechanics instead of art
You can do that whether art is allowed or not. Actually, the time limit alone pretty much requires it -- if you were to 'focus' on art, you probably just wouldn't finish.
This competition is about straining creativity to design a game meeting the rules in as little work as possible.
Adding art gives more room for creativity, and doesn't add any more work than an entrant wants. I'm sure anyone entering this will have to be quite good at managing their time anyway: No need to pretend to manage it for them, and go banning things because you think they wouldn't have time for it.
it is to put forth an innovative idea that is fun to play.
And adding media files opens up the range of ideas that can be coherently represented ... with no drawbacks, because everyone is still free, of course, to not use media files.
I find that disallowing media will encourage more creative use of code
Do you? Really? Are you sure it doesn't just encourage use of circle() instead of blit() ...
this is primarily a programming competition
I thought it was about making games, not just code.
These rules may be arbitrary, but they are in place solely for the purpose of limiting competitors.
A good competition would choose rules that improve the competition, and would be able to justify those rules. Just adding completely arbitrary restrictions, well, it might make the competition arbitrarily worse.
There is no size limit... store the raw bitmap data in your source.
There is no size limit... store the raw bitmap data in your source.
If that's fine, it just emphasizes how pointless the no-media rule is ...
A good competition would choose rules that improve the competition, and would be able to justify those rules. Just adding completely arbitrary restrictions, well, it might make the competition arbitrarily worse.
I guess we can't agree then. I am going to keep this rule for the purpose of simplicity. I hope this doesn't discourage you from participating.
If you are interested in modifying the competition's rules, let me know. I will supply you with the source code for the web site and you can host your own.
I think the "one source file only, nothing else" is good. I think it's very suitable for such a short competition. It's also fun to work with something else than bitmaps. It gives you the opportunity to express yourself in a way that in any other game would look bad.
It also feels 1337.
I rest my case.
I think it's time I try hacking myself, and I guess this would be a nice competetion to get me going. Though I'm not sure I can drop in for this particular one (coding in 1:00-2:00 AM when school is on is no good...)
Well, if all goes well I should be in this one! This could be really nice, as it is possible to convert games made for this into finished products eventually.
[EDIT]
is END_OF_MAIN(); still necessary on Linux?
I've made this one just to see what can I create in one hour. Done in 59 minutes.
Pretty neat! A little long though, might tweak the physics a little.
It's END_OF_MAIN() and you should use it anyway for platform compatibility.
I hope this doesn't discourage you from participating.
No -- it's all good. It'll still be a fun competition, and I'll put in an effort as long as I can be around that hour. Glad you're going through the trouble of hosting it!
(I'm way too happy to get argumentative ... really, I think the media thing is a pretty minor point. There's no time to do art anyway!)
I'm going to participate if I'll be able to. However, 23:00-0:00 before a Monday is pretty evil for the majority of Europe that lives in CET.
I've had a similar idea for a hack, and maybe I'll still execute it... But meanwhile, yours sounds interesting .
And please, remove the rule about bananas . One banana infested compo is enough.
Okay, glad to see so much participation! Personally, I will have a lot of trouble playing. I am presently on vacation at some resort, and the rooms don't have internet. I have a phone with the internet (how I am typing this), and a laptop. I'll be playing, of course, but it might take me a while to finish my judging.
Speaking of judging, I think we should use the Borda method of voting. First place gets n points, second gets n - 1, ... last gets 0 points.
Also, as soon as I get some free time, I'll be writing a "past entries" page on the site, with everyone's progress at the end of the hour.
Hook your phone to your laptop???
I imagine I could write software to do that, but the provided software uses the OS's features, which make sure that "data service" and "tethered dial-up networking" are not active at the sae time. I know that's a single bit in the config, but it's a 30/mo bit. Anyways, I can transfer data over the storage card.
Current competition is scheduled for 2100 GMT on September 3.
+
The next competition starts in 2 hours and 7 minutes.
=
NaN
Unless I've gone bonkers, the competition starts at 2200 GMT according to the page.
I will assume the page is right, which is a shame. I might not be able to participate that late (one hour is a lot when you have your girlfriend's sister sleeping in your computer room). But I'll do my best =)
I have a comment about one of the bonus rules: How would a game be played inside it's own source code? It doesn't make much sense, if any.
Also, a quick question: If I submit an executible file, could the source be put in a project so I can use the linker? I don't have a makefile for it yet.
I have a question about one of the bonus rules: How would a game be played inside it's own source code? It doesn't make much sense, if any.
You could use the possibility of including your own source file to include some data hidden as comments.
It sounds like a silly thing to have in a one hour game... Actually, it sounds like a silly thing period. But so are some other rules (i don't even know how the state of California looks!)
Get a map of the US. California is on the lower-left. And, I still don't understand the source code thing, just hope it doesn't come up.
I realize that it's not a big deal to find out how the state of California looks, but it's so arbitrary. Also quite hard to do without bitmaps (like the banana theme).
I realize that it's not a big deal to find out how the state of California looks, but it's so arbitrary. Also quite hard to do without bitmaps (like the banana theme).
You can generate bananas using a pair of circles (one yellow and one transparent) or even just using a single arc. As for shape of California, just draw arbitrary random shape and state that it's post-apocalyptic version of it.
You can generate bananas using a pair of circles (one yellow and one transparent) or even just using a single arc.
Hehe .. I made the bananas with two arcs, and I experimented for about 15 minutes until I got the right radii, positions, angles ...
MinorHack starting in 20 min. twitch, twitch
Kikaru: for instance, load your source code and render it to a bitmap using textprintf. Then scale this bitmap up and use it as a background image. There are more creative things you can do, but this is the simplest. Okay, I might check this page one more time before the compo, but I doubt it (it's quite a pain). Just put your source in this thread when your entry is done. Good luck Allegroites!
The competition is running, but I don't see the bonus rule listed anywhere ...
edit: oh, I see it now (sorry 'bout that ... just a bit of blindness + panic)
I guess i'm "done".
Better turn it in now and not try to add last minute stuff
pick up the... green ... coins and avoid the big evil grey .. ball.
meh.
The gold ball (you) tries to move towards the mouse, while the big evil ball (the grey one) tries to crush you. If it hits you - game over.
you bounce of the walls.
Here is mine. Code here and attached, readme included .
The game gradually gets harder so try for your high score . Try to reload as little as possible and hit those coins for maximum points.
Also, a little balancing after the contest: replace "randomFloat(0, 48 - level)" with "randomFloat(0, 46 - level * 2)" and "level += 0.0012" with "level += 0.0017" to make it less boring.
here attached
Dodge the Blocks!!!!!!!!!!!!!!
Scores are formed by where the blocks land. The higher the block, the better the score!
Dodge the Blocks!!!!!!!!!!!!!!
Finished! Move the blue dot to pick up the gold coins.
Well, crappy rule to get on a development environment with only a trackpad, but I have my entry! It's tron, I guess. I finished with about a minute to spare, but uploading this is slow.
Oh yay. My phone doesn't support the attachments tab... Emailing my entry to Baf...
************ BUG *********************
I added some code in the last 3 minutes that kind of messes up the gameplay. Just comment out lines 213 to 218 and it's quite a bit more fun.
[edit] Also, the game crashes after so long...
About the mine:
Got tons of codes from my SH2006 game: Rambanana.
It leaks a lot memory.
just move the mouse and run away from the asteroids.
PS: My crappy dialed internet connection almost made i lose the deadline. I posted in 20:59 (GMT), just a few seconds.
[EDIT: It inherited some cool thing from Rambanana (which was inherited from my SH2005 Game: The attack of the space bugs). This include passing "F" as a argc/argv command to make it fullscreen. It inherited other things to handle sound, music and joystick, but doesn't use these.
Oh, i found a serious bug: After some time, large white strips start to appear in the game. These are asteroids with something really wrong in their math (and very letal to the player). Maybe some overflow or division by zero bug? ]
Okay, I've got all the entries so far compiled, I'll wait for CGamesPlay's if he does post it, and then attach a binary pack for Windows . Looks good, seems everyone who participated did finish something, we're better than Speedhack
.
Victor: Hm, I didn't know if code reuse was allowed... I did everything from scratch, but it's OK, it was more fun that way. I felt like my fingers were on fire .
CGames: BAF doesn't seem to be around, just e-mail it to me at krajzega@kalamburos.gov.net, without the gov. I'll include it with the binaries and post source here.
Done. Simple RTS with Starcraft-like controls. As default settings are quite hard (or maybe impossible), you can play with AI difficulty and hive health settings (difficulty 10 and hive health 1000 is doable, but I doubt you can save at least one hive at any difficulty). Entire game is a bit pointless, but one hour doesn't leave much time for gameplay tweaking.
For Linux people, here is "winalleg.h" compatibility replacement to run this game (also don't forget to change <winalleg.h> to "winalleg.h" in the source code).
#include <sys/time.h> unsigned long long timeGetTime() { timeval T; gettimeofday(&T,0); return ((long long)T.tv_sec)*1000+T.tv_usec/1000; }
Can't get any of the source codes to compile. I keep getting errors like "textout_ex undeclared," or "invalid conversion from int to float," and even "confilcting definitions of BITMAP". More recent version of Allegro should fix the 'textout_ex' error though.
Maybe attach some .exe files later?
Maybe attach some .exe files later?
I'll post the binary pack in my next post, whether CGames makes it or not.
Done.
Late .
Baf doesn't seem to be available. I can email it to anyone who asks me... PM me, I guess.
Oh, I will also email the entry to cgamespla@mailinator.com. Go to http://mailinator.com and log into to cgamespla's mailbox. Not cgamesplay's, but cgamespla's.
Oops. Didn't get to test the final thing, so two changes: replace 'doline' with 'do_line', and on line 98, change 'cointime' to 'score'.
1 | #include <math.h> |
2 | #include <allegro.h> |
3 | #include <vector> |
4 | |
5 | using namespace std; |
6 | |
7 | struct Point |
8 | { |
9 | int x, y; |
10 | }; |
11 | |
12 | class Mouse |
13 | { |
14 | public: // Types |
15 | static const int spacing = 8; |
16 | static const int radius = 4; |
17 | |
18 | public: // Public variables |
19 | int pressed_x, pressed_y; |
20 | vector<Point> snake; |
21 | int countdown; |
22 | Point next; |
23 | int score; |
24 | bool dead; |
25 | |
26 | public: // Public functions |
27 | Mouse() |
28 | { |
29 | Restart(); |
30 | } |
31 | |
32 | bool Logic() |
33 | { |
34 | bool pressed = !(pressed_x == -1); |
35 | if(!pressed) |
36 | { |
37 | if(mouse_b & 1) |
38 | { |
39 | pressed_x = mouse_x; |
40 | pressed_y = mouse_y; |
41 | |
42 | if(countdown == -1 && !dead) |
43 | countdown = 15; |
44 | } |
45 | } |
46 | if(pressed) |
47 | { |
48 | if(!(mouse_b & 1)) |
49 | { |
50 | if(mouse_x < 100 && pressed_x < 100 && mouse_y > SCREEN_H - 25 && pressed_y > SCREEN_H - 25) |
51 | return false; |
52 | if(mouse_x < 200 && pressed_x < 200 && mouse_y > SCREEN_H - 25 && pressed_y > SCREEN_H - 25) |
53 | { |
54 | Restart(); |
55 | } |
56 | pressed_x = -1; |
57 | pressed_y = -1; |
58 | } |
59 | } |
60 | |
61 | if(countdown >= 0) |
62 | { |
63 | countdown--; |
64 | if(countdown == -1) |
65 | { |
66 | snake.push_back(next); |
67 | if(!Dead()) |
68 | { |
69 | countdown = 15; |
70 | score++; |
71 | } |
72 | else |
73 | dead = true; |
74 | } |
75 | next.x = snake.back().x; |
76 | next.y = snake.back().y; |
77 | double angle = atan2((double) mouse_y - next.y, mouse_x - next.x); |
78 | next.x += cos(angle) * spacing; |
79 | next.y += sin(angle) * spacing; |
80 | } |
81 | return true; |
82 | } |
83 | |
84 | void Draw(BITMAP* buffer) |
85 | { |
86 | if(!dead) |
87 | clear_to_color(buffer, makecol(255, 255, 0)); |
88 | else |
89 | clear_to_color(buffer, makecol(255, 0, 0)); |
90 | hline(buffer, 0, SCREEN_H - 25, 200, makecol(0, 0, 0)); |
91 | vline(buffer, 100, SCREEN_H - 25, SCREEN_H, makecol(0, 0, 0)); |
92 | textprintf_centre_ex(buffer, font, 50, SCREEN_H - 14, makecol(0, 0, 0), -1, "Quit"); |
93 | vline(buffer, 200, SCREEN_H - 25, SCREEN_H, makecol(0, 0, 0)); |
94 | textprintf_centre_ex(buffer, font, 150, SCREEN_H - 14, makecol(0, 0, 0), -1, "Restart"); |
95 | textprintf_right_ex(buffer, font, SCREEN_W - 6, SCREEN_H - 14, makecol(0, 0, 0), -1, "Score: %02d", score); |
96 | |
97 | for(vector<Point>::iterator i = snake.begin(); i != snake.end(); i++) |
98 | { |
99 | circle(buffer, i->x, i->y, radius, makecol(0, 0, 0)); |
100 | } |
101 | if(countdown != -1) |
102 | circle(buffer, next.x, next.y, radius, makecol(0, 0, 128)); |
103 | if(dead) |
104 | textprintf_centre_ex(buffer, font, SCREEN_W / 2, SCREEN_H / 2, makecol(255, 255, 255), -1, "Game over"); |
105 | } |
106 | |
107 | bool Dead() |
108 | { |
109 | for(vector<Point>::iterator i = snake.begin(); i != snake.end() - 2; i++) |
110 | { |
111 | double dist = sqrt(pow((double) i->x - next.x, 2) + pow((double) i->y - next.y, 2)); |
112 | if(dist < 2 * radius) |
113 | return true; |
114 | } |
115 | return false; |
116 | } |
117 | |
118 | void Restart() |
119 | { |
120 | pressed_x = -1; |
121 | pressed_y = -1; |
122 | countdown = -1; |
123 | score = 0; |
124 | dead = false; |
125 | snake.clear(); |
126 | Point p; |
127 | p.y = SCREEN_H / 2; |
128 | p.x = SCREEN_W / 2 - (5 * spacing); |
129 | for(int i = 0; i < 5; i++) |
130 | { |
131 | snake.push_back(p); |
132 | p.x += spacing; |
133 | } |
134 | } |
135 | }; |
136 | |
137 | volatile int tick = 0; |
138 | |
139 | void tock() |
140 | { |
141 | ++tick; |
142 | } |
143 | |
144 | int main(int argc, char* argv[]) |
145 | { |
146 | allegro_init(); |
147 | |
148 | set_color_depth(32); |
149 | set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0); |
150 | |
151 | install_mouse(); |
152 | install_timer(); |
153 | |
154 | install_int_ex(tock, BPS_TO_TIMER(30)); |
155 | |
156 | bool quit = false; |
157 | Mouse m; |
158 | BITMAP* buffer = create_bitmap(SCREEN_W, SCREEN_H); |
159 | show_mouse(screen); |
160 | |
161 | while(!quit) |
162 | { |
163 | while(tick > 0) |
164 | { |
165 | if(!m.Logic()) |
166 | quit = true; |
167 | --tick; |
168 | } |
169 | m.Draw(buffer); |
170 | scare_mouse(); |
171 | blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); |
172 | unscare_mouse(); |
173 | } |
174 | |
175 | destroy_bitmap(buffer); |
176 | |
177 | return 0; |
178 | } |
179 | END_OF_MAIN() |
180 | // The end |
There is CGames's entry.
Can't get any of the source codes to compile. I keep getting errors like "textout_ex undeclared," or "invalid conversion from int to float," and even "confilcting definitions of BITMAP". More recent version of Allegro should fix the 'textout_ex' error though.
As you've said, textout_ex in newer Allegro version. "invalid conversion" is just a warning and you should be able to get rid of "conflicting definitions of BITMAP" by adding "-DNOGDI" to compiler parameters (it prevents <windows.h> from defining it's own BITMAP type).
KK said:
Done.
Late .
On time. The code you've got in my post is a snapshot taken just before the compo ended. I've spent additional time before posting it playing it a bit with different settings, so I could make the suggestion, but the code you've got is pure compo version.
Off-topic:
(...) without the gov (...)
Nice way to fool e-mail harvesters.
The binary package is attached.
Steven Silvey's code is patched with the change he mentioned to remove a bug.
My code is patched with the two-constant tweak I mentioned.
Kikaru's is corrected with the "doline"=>"do_line" change.
The rest is left untouched. All exe's require alleg42.dll.
Okay, now that I am not so worried about getting my entry up:
Click to start the game. The blue circle is where the next node will appear. Make the snake as long as possible without crossing itself. I had no time to experiment with different difficulties, but the magic number 15 in the code can be lowered to make the game harder. (countdown is 15 at the beginning of adding a node.
I had fun doing this one, finished with about a minute to spare, so I'm happy that I did better than last time.
I'm going out for a few hours now. If Jakub gets his binary pack together, I can play tonight, otherwise, probably not till Tuesday (when I am back at home).
I need the alleg42.dll. Anyone have it handy?
All in all, the competition was fun! When is the next one?
Here.
The next one will be after the judging for this one is over Just put them in your favorite order, from first to last.
Let me know what weekend would be best for everyone, and I can schedule another.
Wow, some nice entries. I'd say either Jakub or Johnathan for my first vote.
@KK: I couldn't get it to compile. timeGetTime couldn't be found (linking error) and M_PI was undefined.
Unfortunately, I could not attend. There was a really vehement thunderstorm, and I didn't want to push my luck, so I unplugged my PC.
I couldn't get it to compile. timeGetTime couldn't be found (linking error) and M_PI was undefined.
For the first thing, link with the winmm lib (-lwinmm for MinGW), for the second, I don't know. Maybe try including <cmath> instead of "math.h"? It should be defined there. If that doesn't help, just add #define M_PI 3.141592 and be done with it .
@KK: I couldn't get it to compile. timeGetTime couldn't be found (linking error) and M_PI was undefined.
M_PI should be defined in <math.h>, but if it isn't, you can define it yourself. timeGetTime() is Windows high-frequency timer, which declaration is in <windows.h> (included indirectly via <winalleg.h> (you may also have to pass "-lwinmm" linker option if it doesn't include this library by default). If you are running Linux, try compatibility timeGetTime() Linux replacement I've posted together with my code.
Very well done everyone! 7 entires is not bad i think.
EDIT: fixed
Okay, I got to play all of the games. Here are my notes:
Jakub: good game. No way to restart, and games are really short I could quit without the keyboard though.
Jonathan: very creative game. Hard to control the ball though. I can quit and restart without the keyboard
Kikaru: cool concept. The score display is broken, though, and there is no end-game screen, either.
Krzysztof: Neat idea. I don't really know how to win, and the game never seems to end, but it was cool. Also demonstrated the ability to make a strategy game in 1 hour. No way to quit or restart with the mouse.
Onewing: good game with some bugs. I eventually found a pocket I was invulnerable in My score seemed to restart, too. No way to quit or restart using just the mouse.
Victor: fun game with nice graphics. For some reason, my ship diappeared in a flash of light. No way to quit or restart using the mouse.
I'm not holding the quit/restart issues against anyone. Here is my ranking:
Krzysztof, Kikaru, CGamesPlay, Hedborg, Onewing, Jakub, Victor.
This was hard to rank. I like Krzy's the best, but the rest were all pretty close. I put Kikaru's second because it was a neat idea. Hedborg's had control issues, and was hard. Onewing's had some bugs. Jakub's was like impossible to play for long because I guess you have to shoot ammo to gain ammo And Victor's was last, even though it had the best graphics, because there was no score or way to quit.
Good effort participants! I think I may want to switch to a quantitative judging system in future competitions. It was really hard to place my own entry
Another thing to note is what rules these entries also followed. For instance Krzy's and strategy. Just think about that before saying a rule is impossible. Okay, now I am out for the day. When I get back, I expect your ratings, guys. I will put up a winners page on the site, too.
Jonatan: You mean good, right?
Other than that, I can't wait for the next one (I hope it will be earlier than this, or on Saturday/Friday evening). Congratulations for those of who did manage to get something done!
Uh yeah. Fixed. I have no idea why that said "bad" I think it was suppose to be "not bad"
Also; Are you allowed to vote for your own game?
For some reason, my ship diappeared in a flash of light.
The flash of light is an asteroid distorted by an overflow bug.
Oh, ih got the last place?
kk, Victor Williams, Onewing, Jonatan Hedborg, CGamesPlay, Jakub Wasilewski.
KK: Your game was awesome! You should consider turning it into a full project.
CGamesPlay: It was good, maybe the most polished of them, but very slow, and a little boring.
Jakub: The reason I rank your game last is that the max score possible is 6, and after you fire 6 times you just wait until you die.
(the score display can be fixed by changing "cointime" to "score" on the textprintf. It was a testing thing, and I guess I hit 'undo' after I fixed it.):P
I will withdraw some internal points for using the keyboard.
From best to less best:
- Krzysztof Kluczek: Very ambitious. No way to win (or score) brings the score down a bit. A bit easy.
- Jakub: Very nice graphics and polish. Gets old kind of quick.
- Jonatan Hedborg: Well, cant really objectively comment this, but i think i did pretty well =) Perhaps i should have made the player-ball a tad faster. But then again, i like it this way - nice and difficult >: )
Note: You cant quit prematurely - but it's not really a problem as you tend to die within a few seconds anyway
CGamesPlay: A neat puzzle-style game with a nice UI. No real challenge in the game however. I can imagine it takes quite some time to die from space-exhaustion.
Steven Silvey: A nice concept, and the graphics are quite good. The blocks seems to fall quite "choppily" however, and they don't seem to stack well all the time (some of them got stuck half-way down the screen). Not much interactivity is needed to stay alive for the first few minutes, then you need to keep alive for a while and after that you can just hide in a "cave" and never die. So it's a bit easy =)
Victor Williams: Beautiful, especially the background. No way to win or compare results. Quite easy as well. Works as a screen-saver after you die.
Kikaru: The graphics are flickering (might just be here) and you can't quit the game early. The score system seems broken.
I think we all did a very nice job with the games! Man did i feel the pressure at the end there
One hour is not a lot of time.
Great job all!
EDIT:
Uhm, you reload the gun with the right mouse button in Jakub's game
Also, we need a better voting system.
For my game, I was finishing coding my enty, watching the on-site time limit, and typing a quick description all at the same time, during the last 2 min of the competition, and barely got it submitted. I did not install keybourd or use any mouse buttons, and didn't have time to code hotspots.
However, this was also the first program I ever wrote in under a week of casual programming and testing, so I think I did okay.
I am going to make an update to it, showing what it was supposed to be.
Oh yes, don't be offended by my comments
Getting anything that runs in one hour is great.
Comments (ordered by name):
- CGamesPlay: Nice, a bit improved, Snake clone, although gameplay can get boring after a while (adding "beans" instead of continuous growth and increasing the speed could help a lot).
- Jakub: Well done and polished classic. It's sometimes physically impossible to survive some waves, but other than this, it's OK.
- Jonathan: Simple and playable, with some polish.
- Kikaru: The idea is simple, but after some improvements it can be quite nice tool for testing someone's reflex (eg. coin value could decrease over time). Too bad it just quits after time has passed.
- Steven: Simple idea, which works quite nice, but not without some problems (scores above 9999 are displayed incorrectly, blocks don't collide properly and sometimes stop and hover above the field). There is also a gameplay problem: once some boxes form a kind of "roof", you can hide the mouse there and be completely safe (aligning boxes before dropping them should would solve this problem).
- Victor: Simple idea, but done nicely, but looking at the code makes me really doubt it all was written from scratch during 1 hour.
(on a second thought, I should probably have left all "simple idea" comments)
My vote goes as follows:
Jakub, Steven, Victor, Jonathan, CGamesPlay, Kikaru
No way to quit or restart with the mouse.
The game itself uses just the mouse. It's just exiting it that doesn't - other games sometimes even don't have this feature.
I'm not holding the quit/restart issues against anyone. Here is my ranking:
Krzysztof, Kikaru, CGamesPlay, Hedborg, Onewing, Jakub, Victor.
I find it strange you've included yourself in the ranking.
I like Krzy's the best, but the rest were all pretty close.
Your game was awesome! You should consider turning it into a full project.
Thanks! (you can just call me KK)
- Krzysztof Kluczek: Very ambitious. No way to win (or score) brings the score down a bit. A bit easy.
You can destroy enemy "hives" with your units. Destroying all enemy activity in the zone while saving at least one "hive" can be considered complete victory. Destroying all enemy activity while loosing all own "hives" can be considered partial victory. Loosing own "hives" while allowing enemy "hives" to continue spawning is clear failure. I don't think achieving complete victory is too easy (it's doable, although it probably requires more luck than strategy).
People who ranked my game last because of "only 6 rounds of ammo", please do read the source file. There it is clearly on the top of the file - "press RMB to reload, each reload costs 200 points" or something like this . Just in case you want to change your mind
.
Well, here is my order:
Jonatan, Krzysiek, Steven, Victor, CGamesPlay, Kikaru.
Jonatan - original concept, challenging controls, simple gameplay. Nice touch with the graphics, they look almost acceptable . Most fun factor earns this entry a win.
Krzysiek - a strategy game in 1 hour is always impressive, even if as simple as that one. It's nicely executed, the display is clear, and it takes some skill to win (I was able to rescue 2 hives after a bit of practice, default settings). Pretty fun.
Steven - pretty complete, somewhat original. The bugs ruin it though, and there is ga gameplay flaw where you can find a closed pocket and wait there until your score... well, restarts from 0 .
Victor - well, pretty complete, though dull - at first it's nearly impossible to die, and then some sort of ray usually kills you without a chance of avoiding it.
CGamesPlay - somewhat original concept, though it actually doesn't turn out to be all that fun.
That's my take.
Thanks for the vote there =)
Also, feel free to remove my name from my own list. I just added it in there because CGP did.
KK: Oh yeah, i "won" it two out of three times, once with one surviving hive and once with two. It's quite fun (but would be more suitable as a "real" game. Please make it one ). I just meant that it would have been nice with a "Yay, you crushed the enemy ants/xenomorphs/bees like a melon shot by a gun!" screen.
Here is what my game was supposed to look like. Requires alleg40.dll. Not to be used for judging.
[edit]
Jakub: game is ok, a little wierd though. My vote now goes:kk, Victor Williams, Onewing, Jonatan Hedborg, Jakub Wasilewski, CGamesPlay.
I don't think achieving complete victory is too easy (it's doable, although it probably requires more luck than strategy).
Hmm, when I tried out the game I always won. Are you sure you didn't change something re the difficulty at the last minute?
(My strat was to cluster my guys at the hive they emerged from until I had lots and lots of guys, then take a small group from the side of each hive's cluster, and form a new, large cluster in the middle (but not in a stream of enemies), then send that new cluster to each enemy hive. After you destroy, eg, the top enemy hive, you can send all the units defending your top hive to attack the middle hive.)
Anyway, great entries all around. My favorite was Jonatan's
Hmm, when I tried out the game I always won. Are you sure you didn't change something re the difficulty at the last minute?
(My strat was to cluster my guys at the hive they emerged from until I had lots and lots of guys, then take a small group from the side of each hive's cluster, and form a new, large cluster in the middle (but not in a stream of enemies), then send that new cluster to each enemy hive. After you destroy, eg, the top enemy hive, you can send all the units defending your top hive to attack the middle hive.)
Thanks for this post! It seems that I've actually managed to create a game where strategy plays certain role.
EDIT: You are right. Your strategy works really well.
I agree. It's quite possible to play it in a good or a bad way. I managed to win it without loosing any hives just now. You need to make sure you have sufficent defense and attack them with a large force, then spread out your defenses a bit
This is why you deserve to win.
Ahem. Yes. And vote for me!
Thanks Zaphos =)
It seems that I've actually managed to create a game where strategy plays certain role.
You didn't know? Neat -- emergent gameplay!
Maybe these competitions should have two vote categories; one for "most fun" and another for "most interesting". I could rank things quite a bit differently depending on how I weigh those two criteria, and it'd be nice to encourage both solid gameplay and 'risky,' unique designs
edit: Just noticed this comment:
but looking at the code makes me really doubt it all was written from scratch during 1 hour.
Victor said it inherited a bunch of code from his speedhack entry. Perhaps the MinorHack rules should be clarified here -- it seems some of the contestants thought it was an 'all from scratch' deal, and some thought code re-use was fine.
Quote:
It seems that I've actually managed to create a game where strategy plays certain role.
You didn't know? Neat -- emergent gameplay!
I knew that it's surely possible to do something stupid, but the strategy I was using all the time was just sending all my units to middle enemy base thinking that it should work better than AI splitting forces into three streams, but it heavily depended on luck whether my hives managed to survive, or not.
Okay, I've played them all now. Here's my order of choice (me included):
Johnathan, Jakub, KK, Victor, Onewing, CGames, Kikaru.
The first three were hard to place, since I liked them all. For those of you who gave Jakub a low score, play it again, and keep in mind that you reload with the right mouse button.
For graphics, the award goes to Victor.
My votes
Me - I just loved my game. Just that f*cking ray overflow bug spoils it.
(I know, maybe my own vote just doesn't count, ok)
Jakub - Very creative, but a bit too hard.
Jonatan - Very creative.
KK - Nice idea, i liked it. Very original.
Onewing - Good, but not much fun.
Kikaru - I didn't understand your game.
CGamesPlay - The game should run faster to get some fun.
That's all the votes i think?
I think it's pretty reasonable to not be able to vote for yourself (pretty standard behaviour in competitions).
How are the scores calculated?
N-(placing-1)?
For this one they are N-placing, since you can't vote for yourself.
By the way I am back at a proper resolution now
Speaking of judging, I think we should use the Borda method of voting. First place gets n points, second gets n - 1, ... last gets 0 points.
OK, I've summed it up, considering this rule. Actually, in my version the last place gets 1 point, but it gives exactly the same ranking (every entrant gets exactly 6 points more). I've removed selfvotes from the lists to make it fair (voting for self-made games will never be truly unbiased).
The votes I've gathered look like this: (in order of voting)
* points: 6 5 4 3 2 1 CGamesPlay: KK Kikaru Jonatan Onewing Jakub Victor Jonatan: KK Jakub CGames Onewing Victor Kikaru Krzysztof: Jakub Onewing Victor Jonatan CGames Kikaru Jakub: Jonatan KK Onewing Victor CGames Kikaru Kikaru: KK Victor Onewing Jonatan Jakub CGames Onewing: Jonatan Jakub KK Victor CGames Kikaru Victor: Jakub Jonatan KK Onewing Kikaru CGames
And the results are:
* results: Krzysztof: 6 6 5 6 4 4 = 31 Jonatan: 4 3 6 3 6 5 = 27 Jakub: 2 5 6 2 5 6 = 26 Onewing: 3 3 5 4 4 3 = 22 Victor: 1 2 4 3 5 3 = 18 CGamesPlay: 4 2 2 1 2 1 = 12 Kikaru: 5 1 1 1 1 2 = 11
Congratulations for all entrants.
Congratulations KK!
Also, hooray!
Great job everyone.
Great effort! After re-playing Jakub's entry, I want to put it above Jonathan's, which affects the results... Up to you guys whether or not you want to accept this new ranking or not:
KK, Kikaru, Jakub, Jonathan, Onewing, Victor.
Okay, on the topic of this competition's future:
I will be adding a winner's page ASAP, and may also contact Mr. Leverton about getting Allegro.cc's SSO on the site, and allowing uploads. I'm thinking the following:
Allow entries to be uploaded for the hour after the competition. The entry will be timestamped. Then the user can enter a description of his game, any notes, etc, as well as a new version of the game. The first version will be used for judging, but the later ones can be displayed just for posterity's sake. There will also be a page displaying the number of medals each person has received.
I like Zaphos' idea of two categories of games. Please, offer your opinions on what the grading system should be ideally.
Code reuse: In my opinion, code reuse is fine. I wrote my game from scratch. I think code reuse should be allowed, but stated with the entry. Again, offer opinions.
I think we should make MinorHack a weekly competition. After all, it's quite automated already, and with the necessary addition of SSO and uploads it will be even more so. With the addition of online voting it could in theory run weekly without any supervision.
And I like it so much I would probably participate every week . This time around the bonus rule wasn't too good, at least in my opinion - it was very unrestricting, but also didn't offer any clues as to what game to develop (anything can use only the mouse). I made my decision in about 15 seconds, and it was the first thing that popped up in my mind when thinking of simple mouse-only games. There was no time to wait for the second thing to pop up
.
On the topic of code reuse, well... After consideration, I'm going to be against. One hour is hardcore, and it is supposed to be hardcore. Disallowing code reuse allows to keep it that way. Of course, I'm against disqualifying people for reusing a 3-line function generating a random number, but reusing larger parts of code should be prohibited or at least discouraged.
As for the revised votes, use whichever set you feel expresses your opinion better. Of course, I'm not impartial (I would benefit from the change) so I'd better shut up. As far as I'm concerned, Jonatan deserves the second place as much as I do .
What I am planning right now is the ability to set a "I want to be in any competition of x people or more". Then anyone can add a competition time to the list, and anyone can say "I want to be in that one". Once there are enough people who will participate, the competition is scheduled.
If I have time and interest, I will also add voting on rules, to completely automate everything.
As for the revised votes, use whichever set you feel expresses your opinion better.
Well, I feel the the second one does, of course. When I put the votes into the site I will use that set, then.
On the topic of code reuse, well... After consideration, I'm going to be against. One hour is hardcore, and it is supposed to be hardcore. Disallowing code reuse allows to keep it that way. Of course, I'm against disqualifying people for reusing a 3-line function generating a random number, but reusing larger parts of code should be prohibited or at least discouraged.
Unless anyone else disagrees, I guess I will make it a no-no, with something like "The code should all be original. Please write as much of the entry as possible during the hour without copying from other projects. You are allowed to copy, but try to limit the amount. 10 lines is a good guideline."
Meh. That's a shame. But i guess you deservered it as well.
next time, let's make votes final so i dont get my hopes up
next time, let's make votes final so i dont get my hopes up
Yeah, sorry to disappoint I hope you aren't too mad at me for my attempt to participate even though I was out of town and didn't have internet
Well, you have incentive to participate next time then
I like Zaphos' idea of two categories of games. Please, offer your opinions on what the grading system should be ideally.
I think the way it is now is OK. You can add extra categories as long as there is "overall" category, but having too much categories for 1 hour compo sounds a bit crazy.
Code reuse: In my opinion, code reuse is fine. I wrote my game from scratch. I think code reuse should be allowed, but stated with the entry. Again, offer opinions.
I think I'm against code reuse here. Reasons:
- Code reuse is fine for 24h/48h/72h compos, where you often spend 6-10h rewriting stuff you've coded before, but here you are unlikely to spend more than 15 minutes on it.
- Code reuse makes judging much harder.
- Allegro requires seconds to get it running, so frameworks aren't really needed here.
- Writing from scratch boosts creativity (no temptation to use ready routines), especially in case of 1 hour compo (all you risk is 1 hour of coding and bad place in the ranking).
Of course you still can prepare for the compo by thinking about possible bonus rules or learning new techniques (eg. random map generation or texture generation).
his time around the bonus rule wasn't too good, at least in my opinion - it was very unrestricting, but also didn't offer any clues as to what game to develop (anything can use only the mouse). I made my decision in about 15 seconds, and it was the first thing that popped up in my mind when thinking of simple mouse-only games. There was no time to wait for the second thing to pop up .
Well, this was the problem for me. I've decided to make simple RTS quite quickly, but I haven't idea on how gameplay should work until much later, so for some time I wasn't completely sure what I'm coding.
The only code I reused was my init function which handles some basic stuff. Everything else, all 300 lines of it, were coded from scratch.
A few more things that i think would be good:
Enable upload and voting through the page. Or at least voting.
"Open voting" affects results.
Maybe this is a way; When you enter the contest, a one-use code is generated which you use to vote with.
Also, the amount of tweaking after the time limit should be limited.
To none.
This contest is quite hardcore and you have to plan your time well. This includes testing and gameplay tweaking and making sure it compiles. At least IMO.
And code re-use should be more or less forbidden.
So it seems more people prefer completely from scratch than using any external code. So be it
As far as timing goes, I'm thinking you have until T+1:10 to upload your entry. You then have forever to submit future versions of it or change the notes. Voting should be completed by T+3 hours (2 hours of voting).
Maybe this is a way; When you enter the contest, a one-use code is generated which you use to vote with.
Database and user accounts will solve this problem much better.
Also, the amount of tweaking after the time limit should be limited.
To none.
This contest is quite hardcore and you have to plan your time well. This includes testing and gameplay tweaking and making sure it compiles. At least i think it should be like that. IMO naturally =)
Of course everything what is submitted should be created during the compo, but some extra time for uploading would be nice as long as everybody is fair. Of course one hour is probably too much - 5-10 minutes should be fine.
EDIT:
You then have forever to submit future versions of it or change the notes. Voting should be completed by T+3 hours (2 hours of voting).
2 hours for voting may be not enough in some cases (it comes to compiling, you never know when). Windows binary package will solve this problem, at least for me, bot not for Linux people for sure.
I'm thinking you have until T+1:10 to upload your entry. You then have forever to submit future versions of it or change the notes.
is that one hour and ten minutes to upload?
Uhm, so it's a two hour compo then?
And the future versions, should they be used in the voting? Because then we might as well call it a 4 hour compo.
is that one hour and ten minutes to upload?
Uhm, so it's a two hour compo then?
T = starting time of the compo
And the future versions, should they be used in the voting?
No, for sure. They can be only used for having fun.
About code reuse: I'm not against reuse nor against prohibiting that. However prohibiting it is hard, because there is no way to prove that the code was not reused from somewhere, except if the rules are so twisted that it makes almost impossible to reuse something, but in this case one hour wouldn't be enough.
About the frequency: Every week would be too much. People are attracted by uncommon things, if it is too frequent, few people will be interested. (Imagine if speedhack was weekly. Would we get so many entrants so dedicated to make the game? Probably not).
I think that every three weeks is good.
And we could make things a bit different alternating 1-hour, 2-hour and 3-hour minorhacks. Eg: Today's minorhack is one-hour length, the next minorhack will be two-hours, the subsequently minorhack is three-hours. The next one is one-hour again.
Edit: Four-hours and six-hours compos also comes in mind.
Edit2: typo
2 hours for voting may be not enough in some cases (it comes to compiling, you never know when).
How long do you suggest?
[append]
However prohibiting it is hard, because there is no way to prove that the code was not reused from somewhere, except if the rules are so twisted that it makes almost impossible to reuse something, but in this case one hour wouldn't be enough.
Right, it is hard, so I'm not out to stop it. I am saying "please don't". This competition is all about honesty in the first place. The bonus rule is to prohibit cheating, even though it is very vague and doesn't really stop it.
Also, with the peer scheduling idea, it will be scheduled as often as people want it to be
How long do you suggest?
My suggestion: 48 hours after the binaries have been uploaded. It would be enough to everyone test every entry in calm without delaying real-life problems.
I would sugest different times, so people from other time zones will be able to participate as well. I would have loved to take part, but programming a game in the middle of a night was no good idea because I had to go to work the next day :/
But that's a problem of a 1h compo you can't easily solve, because there will always be someone in some timezone who would have to code 1h in the middle of the night. :/
See my append, above.
My suggestion: 48 hours after the binaries have been uploaded. It would be enough to everyone test every entry in calm without delaying real-life problems.
No way. The most I might be convinced of is 24 hours after the competition starts.
[append]
Lenman: With the competition voting hopefully in place after the next competition, you will be able to have them whenever you want In the mean time, let me know what times (GMT) would be good for you.
The most I might be convinced of is 24 hours after the competition starts.
So let it be. 24 hours is good enough for one hour compo. But if we got some three to six hours compos, i think 48 hours would be better because the games would tend to be more complex.
Imagine if speedhack was weekly. Would we get so many entrants so dedicated to make the game? Probably not
That's an altogether different thing:
- Speedhack requires you to have time for most of the 72 hours straight. While taking 1 hour out of your weekend is something that can almost always easily be done, having a whole weekend of free time is much harder.
- Speedhack is a taxing competition if you go all out. I remember that after my first (and only) Speedhack I was mentally exhausted for 2 days or so, and didn't do anything except reading and watching TV.
MinorHack is a one-off competition. You just sit down and make some stuff, and after an hour you're free to go. You aren't tired, and you don't have to re-work your work schedule to save some time for it.
I still think we could make it a weekly occurence, though the peer scheduling could also yield good results, if tweaked properly.
I'd also say we move it a few hours back. 18:00 GMT on a Saturday seems to be good for most of the participants. Europe is mostly GMT or GMT+1, and USA IIRC GMT-6 and something around that, so that would allow everyone from those continents to participate. Japan and Australia will be left out though, but it's impossible to avoid with all the different timezones...
How long do you suggest?
24 hours for voting should be fine.
The bonus rule is to prohibit cheating, even though it is very vague and doesn't really stop it.
I thought the bonus rule is for fun. The compo would be really boring without it.
Jakubs suggestion (18:00 GMT) sounds pretty good to me! Also, the idea of having it on a saturday is much better than a sunday, because Monday is a day where most people have to work, while Sunday will be free to the majority of people.
I thought the bonus rule is for fun. The compo would be really boring without it.
The meaning of the rule really has shifted to make it fun, but the original intent was to make the game harder to create ahead of time.
[append]
Well, I've imported all of the entries into the database, which can't be browsed. 61 67 KB of source code. Wow!
I agree with Saturday. I go to church on Sunday, and don't get back until 1:30 sometimes(EST). Maybe make it every two weeks?
User acounts could work, just store a username and password. Then, make the 'submit' and 'vote' pages member-only.
User acounts could work, just store a username and password. Then, the 'submit' and 'vote' pages member-only.
No, it will log on using your Allegro.cc account.
[append]
How about September 16th at 1800 GMT?
Sounds good to me
EDIT: is something broken? I can't seem to access page 1 of this thread without changing the URL
EDIT: is something broken? I can't seem to access page 1 of this thread without changing the URL
That's how the forums are constructed. This was brought up before, but it seems that ML is fine with it.
btw. CGamesPlay: You probably should sig compo site.
That's how the forums are constructed. This was brought up before, but it seems that ML is fine with it.
The pager on the compact header bar works fine for me...
btw. CGamesPlay: You probably should sig compo site.
I'll add it to the TODO
Also, if someone is intrested, here is the slightly improved version of my entry =)
I have (i think) improved the controlls and increased the difficulty slightly (its easier to make the yellow ball go where you want, but the grey ball is more dangerous now)
compile with gcc -O3 minorHack.c -o minorHack -lalleg
My highscore is 54.
Hm, I've got 73 with the new version on my first try... overall, I liked the original compo version better. It's just not so fun when your ball simply goes where you want it to go . The previous version required more skill and was more fun because of that, in my opinion.
73 eh? Wallhack
Well, i got complaints that the game was to hard to controll before.
Perhaps i'll just keep the grey ball's movement and make the yellow one a bit more like before.
EDIT: yeah, perhaps you are right. Too easy now. I got 70 on the very next try.
16th works, that would be 1:00 EST... Sounds good!
16th works, that would be 1:00 EST... Sounds good!
It's ok for me too. Although I'm not sure if i will have some free time to participate.
Just one week till next MinorHack! Hey, I got a cool idea: You could keep an archive of the MinorHack winners. For the first one, you would put in KK and his strategy game. Then, you would just have a page to show all the winning entries, in the order the competitions were held.
http://cgamesplay.com/minorhack/competitions/past
Still in development, don't bother telling me what doesn't work.
I was thinking a bit about code re-use -- I'm fine with the hack being opposed to code re-use, but it might be nice if it provided a template of general starter code that is 'okay' to use -- nothing game related, just the window setup and a standard logic loop. Writing that code for the 20th time just gets annoying.
I'm thinking something like this:
1 | #include <allegro.h> |
2 | |
3 | bool quitnow = false; |
4 | void Close() { |
5 | quitnow = true; |
6 | } |
7 | |
8 | int logic_time = 0; |
9 | void logic_timer() |
10 | { |
11 | logic_time++; |
12 | } |
13 | END_OF_FUNCTION(logic_timer); |
14 | |
15 | // initialize systems! |
16 | BITMAP* Init(int w, int h, const char *title) { |
17 | allegro_init(); |
18 | install_mouse(); |
19 | install_timer(); |
20 | install_keyboard(); |
21 | |
22 | set_color_depth(16); |
23 | if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, w, h, 0, 0) != 0) { |
24 | set_color_depth(15); |
25 | if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, w, h, 0, 0) != 0){ |
26 | allegro_message("Couldn't set graphics mode!"); |
27 | exit(1); |
28 | } |
29 | } |
30 | |
31 | LOCK_VARIABLE(logic_time); |
32 | LOCK_FUNCTION(logic_timer); |
33 | install_int_ex(logic_timer, BPS_TO_TIMER(60)); |
34 | |
35 | set_close_button_callback(Close); |
36 | |
37 | set_window_title(title); |
38 | |
39 | return create_bitmap(w, h); |
40 | } |
41 | |
42 | int main() { |
43 | |
44 | BITMAP *buffer = Init(640,480, "minorhack"); |
45 | if (!buffer) { |
46 | allegro_message("Couldn't create back buffer"); |
47 | exit(-1); |
48 | } |
49 | |
50 | |
51 | while (!key[KEY_ESC] && !quitnow) { |
52 | |
53 | while (logic_time > 0) { |
54 | // game goes here |
55 | logic_time--; |
56 | } |
57 | |
58 | // drawing goes here |
59 | blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); |
60 | clear_to_color(buffer, makecol(255,255,255)); |
61 | } |
62 | } END_OF_MAIN() |
I'd think that roughly that amount of code would be convenient without violating the spirit of the thing.
I can agree with that. Though one in pure C would be nice as well (not that i usualy use C, but i currently take a course at uni so i try to use it for practice (like in last minorHack))
Zaphos: If you leave out error checking, 15-bit fall back, closing callback and timers (use timeGetTime()/gettimeofday()) you don't really need much time do create the framework.
Whatever code base you agree upon, I will put it up.
As I've said, no code base would be best when it comes to keeping the spirit of the compo. I'm OK with compatibility includes (like the one I've used during this compo) emulating certain Windows/Linux-specific functions on the other system, but IMHO the game should be written from scratch on at least one platform.
Here is the "base code" I've used for the compo. Retyping it takes almost no thinking and just about 3 minutes of coding, which is really small price for the fact that you can state that your game is 100% coded during one hour.
1 | #include <stdio.h> |
2 | #include <stdlib.h> |
3 | #include <string.h> |
4 | #include <math.h> |
5 | #include <time.h> |
6 | |
7 | #include <allegro.h> |
8 | #include "winalleg.h" |
9 | |
10 | #include <vector> |
11 | #include <string> |
12 | #include <algorithm> |
13 | using namespace std; |
14 | |
15 | |
16 | int main() |
17 | { |
18 | allegro_init(); |
19 | install_keyboard(); |
20 | install_mouse(); |
21 | set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0); |
22 | BITMAP *buff = create_bitmap(SCREEN_W,SCREEN_H); |
23 | |
24 | unsigned long long t0,t1; |
25 | t0 = timeGetTime(); |
26 | while(1) |
27 | { |
28 | clear(buff); |
29 | // rendering |
30 | blit(buff,screen,0,0,0,0,SCREEN_W,SCREEN_H); |
31 | |
32 | t1 = timeGetTime(); |
33 | float delta = (t1-t0)/1000.f; |
34 | t0=t1; |
35 | |
36 | // logic |
37 | } |
38 | |
39 | return 0; |
40 | } |
Though one in pure C would be nice as well
That one compiles in gcc -- I'm not sure what I'd have to do to make it pure C?
If you leave out error checking, 15-bit fall back, closing callback and timers (use timeGetTime()/gettimeofday()) you don't really need much time do create the framework.
But I want error checking, programs that work, programs that close nicely, and programs that use a portable timer. And I wouldn't want to worry about the idiosyncrasies of a delta timing system in an hour-long hack ...
Retyping it takes almost no thinking and just about 3 minutes of coding, which is really small price for the fact that you can state that your game is 100% coded during one hour.
Is retyping from memory any different from a stupid version of copy-paste? Personally I get no pride from that at all.
Woops. I was suppose to participate last sunday!
I completely forgot about it, was very busy. I'll try and participate this sunday
The next one is Saturday
I agree, a simple code base to initialize allegro in the main loop, include allegro, and standard C/C++ libraries would be nice.
That one compiles in gcc
C and C++ both compile with gcc. Hell, even Pascal and FORTRAN compile with gcc if it's been configured for those languages.
I'm not sure what I'd have to do to make it pure C?
Not use C++'s standard bool type.
Since I'm not planning on joining any programming competition anytime soon the following is probably not very useful, but the only game template I'd consider using is my own, because that corresponds to my coding style and way of thinking...
Since I'm not planning on joining any programming competition anytime soon the following is probably not very useful, but the only game template I'd consider using is my own, because that corresponds to my coding style and way of thinking...
Right, which is why the kit is optional. It's designed for those who are still learning how to do what it does.
Okay, so here's mine again, c89 style:
1 | #include <allegro.h> |
2 | |
3 | int quitnow = 0; |
4 | void close_callback() { |
5 | quitnow = 1; |
6 | } |
7 | |
8 | int logic_time = 0; |
9 | void logic_timer() |
10 | { |
11 | logic_time++; |
12 | } |
13 | END_OF_FUNCTION(logic_timer); |
14 | |
15 | /* initialize systems! */ |
16 | BITMAP* init(int w, int h, const char *title) { |
17 | allegro_init(); |
18 | install_mouse(); |
19 | install_timer(); |
20 | install_keyboard(); |
21 | |
22 | set_color_depth(16); |
23 | if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, w, h, 0, 0) != 0) { |
24 | set_color_depth(15); |
25 | if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, w, h, 0, 0) != 0){ |
26 | allegro_message("Couldn't set graphics mode!"); |
27 | exit(1); |
28 | } |
29 | } |
30 | |
31 | LOCK_VARIABLE(logic_time); |
32 | LOCK_FUNCTION(logic_timer); |
33 | install_int_ex(logic_timer, BPS_TO_TIMER(60)); |
34 | |
35 | set_close_button_callback(close_callback); |
36 | |
37 | set_window_title(title); |
38 | |
39 | return create_bitmap(w, h); |
40 | } |
41 | |
42 | int main() { |
43 | |
44 | BITMAP *buffer = init(640,480, "minorhack"); |
45 | if (!buffer) { |
46 | allegro_message("Couldn't create back buffer"); |
47 | exit(-1); |
48 | } |
49 | |
50 | |
51 | while (!key[KEY_ESC] && !quitnow) { |
52 | while (logic_time > 0) { |
53 | /* game goes here */ |
54 | logic_time--; |
55 | } |
56 | |
57 | /* drawing goes here */ |
58 | blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); |
59 | clear_to_color(buffer, makecol(255,255,255)); |
60 | } |
61 | |
62 | return 0; |
63 | } END_OF_MAIN() |
the only game template I'd consider using is my own, because that corresponds to my coding style and way of thinking...
Perhaps the competition could say "using a custom template which accomplishes nothing significantly more or different from the provided template is also fine."
But I want error checking, programs that work, programs that close nicely, and programs that use a portable timer. And I wouldn't want to worry about the idiosyncrasies of a delta timing system in an hour-long hack ...
I haven't got Allegro get_gfx_mode error since I've moved away from my 486DX4 and switched from DOSt to using Windows 98 as a main platforms. For me pressing "Esc" counts as closing nicely for sure and timeGetTime() is portable timer if you use my gettimeofday replacement version. As for timing, I'd use Allegro timers, but delta-timing is much easier for me and using timeGetTime() takes less code than using Allegro timers.
I had my basic code completed in under 5 minutes (+3 for the entity system I often use here and there) and I honestly think that retyping the same old stuff is only to your advantage. Your hands have something to do, while your brain can concentrate on how to tackle the important parts of the game .
I already expressed my position about code reuse, so I will only do a short recap... I believe the "clean slate" approach provides much more feeling of achievement, and I honestly recommend this style, it's worth it in my opinion. On the other hand, if you feel like using a framework, I won't hold that against you or your entry. It's just another approach, and who am I to tell you what's fun for you?
but delta-timing is much easier for me and using timeGetTime() takes less code than using Allegro timers
With my previous entry, I somehow thought that using allegro timers will be faster to code, but it wasn't exactly the case. I'll go with what I'm used to (DT) in the next one, with the added benefit that it'll run smoother .
About code re-use for initialization only, that was exactly what i reused in my asteroid game (from Rambanana). That was just code to detect joystick, keyboard and mouse, setting up sound and MIDI, defining graphic modes (32, 24, 16, 15 and 8 bits, fullscreen and windowed), LOCK_VARIABLE, LOCK_FUNCTION, etc.
It's a few messed up. Maybe i should modularize it better to make it look better and avoid the code overbloat (I.E: Sound and joystick code, which had no use in my game).
I think it's very annoying and repetitive retype this whole thing again and again and again. It's very easier copy and paste it in your code and work all the 60 minutes for what really matter: develop the game.
for what really matter: develop the game.
MinorHack isn't about developing a game It's about developing a game in 1 hour
I think I will put up both a C and a C++ template sometime this week. It will set a graphics mode, install a keyboard, mouse, and timer at 30 BPS, and set up a double buffer. That should be enough to get people off to a good start without giving them too much of an advantage. Objections?
I think I will put up both a C and a C++ template sometime this week.
As long as it's optional. I don't think there's anything wrong with having initialization code and a very generic framework laid out beforehand. I have my code that, although slightly bloated, works well for me. It consists of an init function (setting up allegro, keyboard, joysticks, etc.), a game init function (for setting up game variables), a play_game function (runs the main loop), a game_update function (for doing all the update functions) and a game_draw function (for handling all the drawing functions).
With this simple layout, all I have to worry about is making the game.
It's about developing a game in 1 hour
work all the 60 minutes for what really matter: develop the game.
No, you miss the point. The idea of Minorhack isn't to have a high-quality game that you can show off to friends. It's to have a low-quality game that you can show off to your friends and say "yeah, I did this entirely in 1 hour".
Retyping it takes almost no thinking and just about 3 minutes of coding, which is really small price for the fact that you can state that your game is 100% coded during one hour.
Copying and Pasting takes no thinking and just about 30 seconds, which is really small price for the fact that you can state that your game is 97% coded during one hour.
Fixed.;D
Right, right. That's why we are allowing using templates. To each his own.
On a side note, I just got clearance for the Allegro.cc authentication, so I will be adding that in in just a few hours. I am also conviniently leaving work early.
Right, right. That's why we are allowing using templates. To each his own.
Heh, I'm just giving you a hard time. Whatever format you choose, we shall abide to (or not do entirely).
The idea of Minorhack isn't to have a high-quality game that you can show off to friends.
Of course. Actually, Chuck Norris is the only person that is capable of doing a high-quality game in one hour.
It's to have a low-quality game that you can show off to your friends and say "yeah, I did this entirely in 1 hour".
Or maybe "I did this entirely in 1 hour after copying and pasting this code".:P
Copying Quake 3 source code takes absolutely no thinking and just about 5 seconds, which is really small price for the fact that you can state that your game is 0% coded during one hour.
Fixed the fix.
Anyway, do whatever you enjoy, I'll be starting from scratch to get 100% one hour coded game.
Anyway, do whatever you enjoy, I'll be starting from scratch to get 100% one hour coded game.
We should get a "100% natural product, no artificial ingredients" sticker for our games .
We should get a "100% natural product, no artificial ingredients" sticker for our games .
And in our case "Teraz Polska" would accompany it nicely (especially considering our last MinorHack results).
my girlfriend (she's polish) is laughing at me because i got beaten by two polish guys
Being beaten by two Poles is most certainly not a pleasant experience, I imagine. Nevertheless, I will risk that beating to participate in the next MicroHack, assuming some unfortunate event does not arise during its hour.
my girlfriend (she's polish) is laughing at me because i got beaten by two polish guys
Well, tell her that at least you have beaten both of us to her, and that's probably more of an achievement .
And honestly, I think the only way to get 'beaten' in this competition is if you do not finish and get beaten by your own weaknesses. And after all, I still would rate your entry above mine (if I had to rate mine).
Being beaten by two Poles is most certainly not a pleasant experience, I imagine.
I'm wondering, how is it any worse than being beaten by two other random guys? Honestly, I'm curious.
Honestly, I'm curious.
It was a pun.
I think the rule for the next competition should be "How many Poles does it take to change a light bulb?"
[append]
This is my first 200-reply thread.
Two. Krzysztof figures out how to render it with PS 3.0, and I change it .
This is my first 200-reply thread.
If you keep the competitions coming, you'll overtake ChristmasHack's thread pretty soon .
If you keep the competitions coming, you'll overtake ChristmasHack's thread pretty soon .
Ooooh, which reminds me, are you going to be hosting the ChristmasHack again this year, Jakub?
I got confirmation from Matthew about using Allegro.cc's user database, so one can now log on to the site. This doesn't actually allow you to do anything yet though. Unfortunately, time zone info is not provided by the Allegro.cc code, so one will still have to set it at the site separately. I've asked Matthew to add that information, but I doubt he will have time to add it before this Saturday.
[append]
I had to deny the rule about fixed colors, because it was too general. It's an interesting modification of the two- and three-color rules, though. I say that if one of those rules pops up and you only used exactly 2 or 3 colors on screen at any time, you could give a good argument.
are you going to be hosting the ChristmasHack again this year, Jakub?
For sure, I think the previous one was something of a success (especially considering it was announced, IIRC, some three days before it started ) and am looking forward to this year's. There will be some changes, but the basic formula will stay the same.
For sure
Hack yeah!
Yarr!
http://cgamesplay.com/minorhack/
Now you can log in, and navigate to your entry page (see http://cgamesplay.com/minorhack/competitions/1), and from there upload notes and a revised version (the edit link is at the bottom of the entry page).
I will eventually be allowing HTML to the notes section, but until then you can't use it.
I won't be able to participate in this minorHack D:
At least it's very unlikley.
Next time for sure =)
I won't be able to participate in this minorHack
I'm out too. Too much work to do in real life, too short deadlines.
Good luck for you all.
So who all will be participating?
I'm still in...
/me makes mental not to add "intent to participate" feature.
I should be able to. I reserve Saturdays for coding on my projects and playing games.
I'm pretty sure I'm in too.
I won't be able to participate in this minorHack D:
At least it's very unlikley.
Next time for sure =)
Hey, man, come on . Don't you want to be the nasty Poles?
I'm in, of course, unless something unexpected happens.
I checked out the new site and I found one annoying thing - every downloadable source file is called entry.cpp, which has two drawbacks:
1) If you put them in one dir, you have to rename them by hand, and more importantly
2) All the files have a CPP extension, and compilers automatically assume C++ mode - while some entries are actually in pure C and won't compile as C++ (due to C++ being more strict about stuff).
Right. Eventually I will add the option to upload C or C++, and it will remember that. I can also make it use the participant's name, but that might not be filename-friendly (Victor longname).
I can also make it use the participant's name, but that might not be filename-friendly (Victor longname).
I suppose you could do something like [first five chars of name]_[member number]_[minihack number].[user specified extension] ...
Nice job with the site, anyway!
I'll probably compete in this next hack.
MinorHack tommorrow (today?). Hurray!
/me needs to code the file upload tonight >_<
I'm just wondering, is the competition on 18:00 or 19:00 (UTC)? It seems like it's on 19:00 according to this page. That, and does login work? It doesn't seem to do anything.
You were right, but it is fixed.
click here, set your time zone properly, and profit Time zone is in the format of either "EDT" etc, or "America/New_York", etc.
The site is the final say on when the competition is, and it says 6 p.m. UTC, which is 1800. I guess I should also code in support for locales.
Nice login system
Is there a submit entry page yet?
If I say "almost", will you be confident?
The login system is really Mathew's doing
Yeah, does it use auto login cookies or something?
No, as you can see from that link, it's actually a link to Allegro.cc, with data that says where to go back to after the user successfully logs in. Since you were already logged in, it didn't ask you to again. You have to get permission from Matthew in order to use the system on your site. Also when you return to the site you take an ID Allegro.cc gave you and give it to me. I use that ID to get an XML-formatted version of your profile (I don't get any private information). I can use that to add your entry to my local database.
Unfortunately I don't get timezone info (I don't know whether Matthew considers this private or just didn't consider adding it, he hasn't yet responded to my request), so you have to set that manually. Email isn't used yet, eventually it will be for notifying you of competitions you want to participate in.
[append]
Be careful when setting your time zone. You need to pick on that is DST-aware. relpatseht, I'm looking at you. I recommend America/New_York...
Oh. Neat. I thought it might just use the cookies left over from auto-login or something.
[EDIT]
is "EST" a supported timezone?
Why in the world is there a 10:15 competition in the same day as the 1:00?!?
The extra competition was me testing the file upload code. I don't believe in test environments.
Anyways, it all works now, with language selection. Of course, you can't change the language without re-uploading your entry, but I don't know how in the world that could be a problem.
Files are named by member number, as that was the easiest to code.
I still don't have a good judging scheme, though. Any ideas?
I vote for a ranking of everyone else's entry in first to last order in each of the categories interesting and quality. For example:
Interesting: Kikaru, Onewing, Jakub
Quality: Onewing, Kikaru, Jakub
There will be two winners, one for each category.
Does everyone agree, or propose an alternative?
[append]
Also tell me entry numbers that should be changed to C lanuage.
Does everyone agree, or propose an alternative?
There should be some kind of Overall category, so we can have clear winner of the compo, even if results in other categories differ.
I was thinking the primary winner would be the Quality field, with "Interesting" sort of being a consolidation prize (if someone doesn't win both!)
I was thinking the primary winner would be the Quality field, with "Interesting" sort of being a consolidation prize (if someone doesn't win both!)
Then make category name suggest that. Even low quality games can win in overall ranking as long as they are fun to play.
I just noticed that it says on the site next competition is in two hours. According to my clock, it should be in one hour.
According to GMT clock and compo starting time on the site, it should just have started (it's 16:00 GMT now).
On-Site clock says 1 hr 55-58 min left.
I think dividing the vote into categories is overcomplicating stuff. The rules are simple, the games are simple, and the voting should also be simple. Otherwise we will end up with Oscar-like setup with "best character drawn with only squares", "best story", "best controls", "best red mean-eyed enemy" and "best golf game with badgers".
Okay, enough exaggeration... I think that one rating is good enough.
This is a list of the competitions that are currently scheduled to run. Times are in the time zone GMT . Click on the current competition for a countdown timer.
* September 16th at 4:00 pm
Considering this and GMT time, competition should be running just now.
EDIT:
Okay, enough exaggeration... I think that one rating is good enough.
Seconded.
This is a list of the competitions that are currently scheduled to run. Times are in the time zone UTC. Click on the current competition for a countdown timer.
September 16th at 6:00 pm
That's what mine says.
[EDIT]
When switched to GMT time, nothing changes.
Okay, enough exaggeration... I think that one rating is good enough.
So be it then
I ranking, using the same scoring method as last competition.
As far as the system time goes... 6 p.m. EST is 1800 GMT. This is the time that it has been scheduled at for the past week The countdown on the site agrees with itself, which is all that is important AFAIC.
[append]
Krzysztof: You have "GMT +2", which is getting cut off by the php timezone output. Time zones. Those are underscores, not spaces. (I would have linked to this earlier but php.net has been down)
I wish I had a better time zone selector, but until you write me one, you gotta use that.
I worked out that the MinorHack is at 2:00 EST, even though the site says 1:00 EST.
EST is not in Daylight Savings Time, like America/New_York is. See what I said to relpatseht. You could manually set it to EDT also. See my append above.
Oh. OK. "The MinorHack is approaching." reloads gun
Okay, the Allegro binaries on the Allegro.cc files section don't work for MSVC 8. Just thought you should know
[append]
The 7.1 binaries appear to work with MSVC 8 though.
Okay, so I haven't read this thread in a while. Someone want to sum it up for me? Anything new I should know about the competition starting in seven minutes?
Nope!
We will grade using the same system as last time. The web site has log in support but the time zone selector sucks. The web site also has an entry upload form, as well as the ability to manage your old entries (add new revisions, etc). Let me know if you need a certain entry to be listed as C, as they are all C++ right now and you can't change it through the web.
No .
that'll do!
Seems I'm dropping out this time. What I did wrong:
- I had an image of the game I want to do before the competition rule was announced, which wasn't very smart
- Because it was an idea I thought for a while about, it was too elaborate to fit in the one-hour timeframe, and changing the idea to fit the rule wasn't too easy
All in all, I tried to do too much in too little time and failed miserably. I don't think the game would do well even if I did finish it, though, as it wasn't anything ground-breaking and didn't even prove to be all that fun. Well, good luck to fellow contestants .
I'm finished! Hurray!
Entry uploaded to the site. I attached my source here as well.
I uploaded mine! http://cgamesplay.com/minorhack/entries/14
Its "slogan" is "Crikey!" I'm actually pretty happy with the entry as a whole. I didn't have a chance to add snapping crocs to the water, though
OK, done. I haven't managed to make a playable game, but my entry should be quite interesting, anyway.
As for slogan, "It can be done" should fit quite well.
Again, I've used timeGetTime(), so Linux users should grab compatibility "winalleg.h" to emulate it.
Me need binaries.
(aka, I don't think I have everything needed to compile it.)
[EDIT]
How do we judge them? I didn't see a button or anything...
Is Onewing gonna put his entry on the site?
Here's a non-gameplay fix, just kind of makes it easier to read text (changing the offset of the cards).
On line 340 and 353 in the CARDS::init function, change the X = 10 to X = 50. Looks a lot better.
[edit]
Is Onewing gonna put his entry on the site?
How, i thought i couldnt' since time is up?
FYI guys, you have 10 minutes to upload from the time the contest ends. I put it in the DB manually with that gameplay change.
Now I will compile them and upload binaries if nobody beats me to it. Also if you go to your entry page at any point in the future, you can upload a modified version and notes.
Once time was over, the "upload" link dissappeared for me. I'm using Opera.
I look forward to getting those binaries.
Nice game, Kikaru. I got 40 points.
Attached. I had to change Krzysztof's entry in 2 places: #define M_PI 3.141592 and return 0; in game_logic. This is MSVC.
Thanks! I actually could have uploaded it about 10-15 min early, but I decided to use the time to fix some bugs, add a title screen, and make it look nicer in general.
I will probably make a full version of the game with some graphics, music, and a slightly better interface.
Also, how do we judge?
you missed part of my fix suggested above. That's okay. Like I said, it's not a gameplay issue.
Huh, missed the hack -- I thought the competition was happening at 6 EDT, 'cause it said 6 PM without saying the time zone, and I supposed CGames could read the local time zone info from a.cc ... also, I think that time used to be in EDT?
It still says "at 6:00 pm." without a time zone label -- you should probably label that.
You can make it a revised version Also I understand your problem. The upload link went away, but the form was still active. I will fix it ASAP. In the mean time, click here.
Krzysztof: You are so 1337.
Onewing: Cool game; playable.
Kikaru: Fun, and it has a title screen and lose screen. Nice. Small ambitions pay off, I suppose.
CGamesPlay: Your game is super awesome and you deserve a raise.
My ranking: Kikaru, Onewing, Krzyzstof.
It's a shame there can't be a tie, because Krzyzstof's entry is so cool that I would tie it with Onewing's. But Onewing's pulls ahead because it's got gameplay.
Oh, it looks like Derezo missed the compo again
[append]
Huh, missed the hack -- I thought the competition was happening at 6 EDT, 'cause it said 6 PM without saying the time zone, and I supposed CGames could read the local time zone info from a.cc ... also, I think that time used to be in EDT?
It still says "at 6:00 pm." without a time zone label -- you should probably label that.
You never logged in, so I wouldn't be able to read time zones from Allegro.cc even if I could read time zones from Allegro.cc if you logged in The time zone info is on the site:
This is a list of the competitions that are currently scheduled to run. Times are in the time zone EDT. Click on the current competition for a countdown timer.
* September 16th at 2:00 pm - Currently Judging
Shame we didn't have you. As the competition matures these problems will hopefully go away.
In the mean time, click here
Clicking brings me to a "File Not Found" page.
Anywho, wow, tough choices between these four entries. I feel everyone did exceptionally good. Although, I think I nailed the Slogan rule pretty good.
Anyway, my rankings go like this:
Kikaru, KK, CGamesPlay.
It was a tough choice. Kikaru ftw because the game was fun. I couldn't decide between KK and CG at all, in fact, I had to flip a quarter.
I would rank it: Onewing, CGamesPlay, KK.
Onewing: I liked the game! Though the top row of cards is oddly shifted...
CGamesPlay: your guy moved a little slow, and couldn't jump very high. But a cool idea nontheless.
KK: It was really neat maze-thing, but no objective or point. Nice idea though.
Unfortunately, I was unable to participate. I was forced to drive two hours, stand in a field for two hours, and then drive back home for two hours throughout the time of the competition. Oh well, I suppose there will be another soon enough.
Though the top row of cards is oddly shifted...
that has to do with the fix I mentioned above.
I was forced to drive two hours, stand in a field for two hours, and then drive back home for two hours throughout the time of the competition.
Good thing you didn't participate then. You would have had 6 hours while we only had 1!
Onewing: That is because I am dumb and that was to edit my entry Yours.
I am not very good at picking prepositions, it seems.
I wonder if KK is going to vote...
Damn, I missed it... Well, there's always the next one! When is it, really? I say not same time, because then I'll have to miss it again...
Maybe a few hours earlier or later next time?
relpatseht: Don't worry about it
Kikaru: Now remember, he has a full day
2 more things I want to add to the site: Zip file downloads for entire competitions, and automatic generation of Windows binaries. I have XMinGW installed on my home server, it's just a matter of setting up the link. Also I need to make sure those binaries will actually work
Ron: You name a time that is good for you! One of the future plans I have for the site is the ability to "propose" a competition, and if a certain number of people "second" the competition, it will be automatically scheduled. But that is later.
People who download the binaries will make sure
As for a good time for the competetion... I'm afraid I'll only be available in the week after this one, beginning on Monday.
Okay, so you want it on the 29th or 30th, or 1st, at what time? You can suggest a week day but people might be unavailable.
You never logged in, so I wouldn't be able to read time zones from Allegro.cc even if I could read time zones from Allegro.cc if you logged in
Hmm, I did go to the MinorHack site and click something that took me back to the allegro.cc login page, the day before the Hack, IIRC. And I clicked login, and I believe I ended up back at the MinorHack site.
The time zone info is on the site:
Right now from my end the site looks like this:
{"name":"590187","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/b\/5bec5c157cf7d26c66af40048758d922.png","w":902,"h":242,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/b\/5bec5c157cf7d26c66af40048758d922"}
But then, at some point I did log in and enter EDT as my time zone.
edit: also, if I log out and log back in, the site sets my time zone back to UTC.
Baf: Update to php 5
Zaphos: I don't know why it would do that! What it looks like is php understand EDT as a time zone but does not understand it to be UTC-4. I recommend America/New_York.
For personal clarification, right now, GMT is UTC+1, correct?
[append]
Thanks for telling me it happens on login, that let me fix it I knew something was up, but didn't know when it happened.
[append]
Did everyone remove their emails, or did that happen by accident? I still see a few of yours, but not all of them. I couldn't make mine disappear
I wonder if KK is going to vote...
Why not? OK, I guess my entry is going to get beaten by a circle and a stickman, but something like this happened every single time I went for technology during some kind of fast coding compo, so I think I'm used to it.
CGamesPlay: Nice idea, but it could have been really good if you tweaked physics a bit.
Onewing: I'm not a fan of of this type of games, but for one hour it's quite nice.
Kikaru: Simple ideas can often work nice, but this gets boring a bit too fast.
My vote is: CGamesPlay, Onewing, Kikaru
Why not? OK, I guess my entry is going to get beaten by a circle and a stickman, but something like this happened every single time I went for technology during some kind of fast coding compo, so I think I'm used to it.
It's okay. This is my competition and I haven't won once yet
[append]
Added a "Current Time" display on the time zone selector. This should alleviate a lot of the problems.
KK, do think you could tell me what library you are using for the 3D?
[EDIT]
Is someone going to do the score count?
KK, do think you could tell me what library you are using for the 3D?
None and that's the beauty of my entry. It's simple raycaster with generated textures and sliding collisions 100% written during 1 hour.
EDIT: Unless you meant my other projects, which are mostly AllegroGL+OpenGL and Direct3D from time to time.
I stand in awe of your Raycasting! Probably would have been best in a 2 or 3 hour comp. Also, could someone give me a link to where I can download OpenGL?
Id have liked to try KK's, but sadly, It uses timeGetTime >:E
Id have liked to try KK's, but sadly, It uses timeGetTime >:E
Copy the code below, put it to a file named "winalleg.h" and place in the directory where you try to compile my entry. It should solve this problem.
#include <sys/time.h> unsigned long long timeGetTime() { timeval T; gettimeofday(&T,0); return ((long long)T.tv_sec)*1000+T.tv_usec/1000; }
4191.cpp:224: warning: control reaches end of non-void function
moose@natasha ~ $ ./4191 Shutting down Allegro due to signal #11 Segmentation fault
(gdb) run Starting program: /home/moose/4191 Program received signal SIGSEGV, Segmentation fault. 0xb7eaf198 in _stub_bank_switch () from /usr/lib/liballeg.so.4.2 (gdb) bt #0 0xb7eaf198 in _stub_bank_switch () from /usr/lib/liballeg.so.4.2 #1 0x08048e7e in bmp_write_line (bmp=0x807a100, lyne=0) at al386gcc.h:46 #2 0x08048eba in _putpixel32 (bmp=0x807a100, x=0, y=0, color=29497) at draw.inl:513 #3 0x08049594 in trace (x=0) at 4191.cpp:163 #4 0x080496e3 in raycast () at 4191.cpp:190 #5 0x08049a80 in main () at 4191.cpp:247 (gdb)
edit: append:
Program received signal SIGSEGV, Segmentation fault. 0xb7ed149d in _stub_bank_switch (bmp=0x0, y=134718072) at cmisc.c:29 29 return (uintptr_t)bmp->line[y]; Current language: auto; currently c (gdb) bt #0 0xb7ed149d in _stub_bank_switch (bmp=0x0, y=134718072) at cmisc.c:29 #1 0x08048e7e in bmp_write_line (bmp=0x807a278, lyne=0) at al386gcc.h:46 #2 0x08048eba in _putpixel32 (bmp=0x807a278, x=0, y=0, color=29497) at draw.inl:513 #3 0x08049594 in trace (x=0) at 4191.cpp:163 #4 0x080496e3 in raycast () at 4191.cpp:190 #5 0x08049a80 in main () at 4191.cpp:247
OK, so where do I download OpenGL? I did a Google search, but I can't find the actual download for the library.
OpenGL comes with your operating system. Your compiler should generally include OpenGL headers.
Shutting down Allegro due to signal #11
Segmentation fault
Well, I have no idea what _putpixel32 does on your system, but for me it always behaved as "(((*int)(bmp->line[y]))[x]=color)" macro. Maybe I did something wrong, but I never thought you actually had to do anything extra to use _putpixel32 with memory bitmap.
It should be working afaik. Maybe theres a bug in the C version? I dunno.
CGames: BAFServ has been PHP 5.0.4 since the big reimage. Before that it was 5.1.
It comes with windows XP?
Yes, OpenGL comes with Windows XP, and its header files come with all respectable compilers. However, the version of OpenGL that comes with Windows XP is very old and mostly done in software. You will want to get drivers for your graphics card so that OpenGL is done in hardware, which odds are you have already done.
I think 30th same time would awesome.
Does anyone else have a problem with 30th at 1800 UTC?
CGames: BAFServ has been PHP 5.0.4 [bafserv.com] since the big reimage. Before that it was 5.1.
http://www.php.net/manual/en/function.date-default-timezone-get.php
Tomasu: Maybe check the linking consistency of your Allegro? Did you upgrade gcc without recompiling?
Does anyone else have a problem with 30th at 1800 UTC?
I might be out for that weekend, but I'm not completely sure at the moment.
Sounds good! I am definitely in.
Why don't you guys make sure the times are right before the day of the compo, eh?
I added a "Current Time" field on the prefs page, so it should be easier.
One problem with the "trigonometric functions" rule: I don't know how to use them.
Also, is anyone going to do a score count?
Onewing: 7
Kikaru: 7
CGamesPlay: 6
Krzysztof: 4
Two first place winners! Good job, everybody. Let's keep this thread going until the 30th
Wow! I'm first again! (counting from the other end of the list, but who cares)
Congratulations to all entrants!
Did you upgrade gcc without recompiling?
Nein. its a new install... I can try reinstalling it. but I dunno.
The 30th eh? I might be out of town then. Actually, I hope I'm out of town.
Come on, you're the only other one who has been in all 3