|
|
| Any interest in a 'ray casting' competition? |
|
aybabtu
Member #2,891
November 2002
|
Alright! My first competition! Trezker said: aybabtu, try to learn this before the compo. Thanks for the link...I have been there (and have that page saved on my hard drive). I get the concept...but I'm just having a slightly hard time getting it all straight in my head and ready to code. I'm sure it will come, though...many things I've found "impossible" in the past now seem quite easy. Maybe a competition will be a catalyst for my pathfinding knowledge...or maybe not. Maybe I can come up with a way that I don't need pathfinding (probably not, but we'll see). It will be fun anyway! |
|
Krzysztof Kluczek
Member #4,191
January 2004
|
Quote: In that case some other limitation may be necessary or we'll potentially be arguing about voxel heightfields and having people enter Commanche style games.
And what's wrong about this? IMHO it would only add some variety to the entries. When it comes to art, FreeDoom may be quite good source (basically, they are going to make completely free contents for GPL'ed Doom). ________ |
|
nonnus29
Member #2,606
August 2002
|
I also don't see a problem with voxel engines. In doors only works okay for me though. I'd like to do something third-person, so please don't require first person! |
|
Thomas Harte
Member #33
April 2000
|
Quote: And what's wrong about this? Simply that a voxel heightfield (the specific example we're discussing) can be reached purely through linear algebra without any notion of ray casting by anybody who has ever written a polygon filler. Yet the expression in code will be much the same as if you reached it through a ray casting algorithm. Difficult questions of what constitutes the algorithm in use arise and the competition starts to look like a bit of a joke. This is something that requires some thought. Or possibly it doesn't really matter what with there being no prize or other incentive to 'cheat' or otherwise deliberately enter in bad faith. [My site] [Tetrominoes] |
|
aybabtu
Member #2,891
November 2002
|
Voxel heightmaps are cool...8-)...and can be achieved using raycasting techniques, so definitely should be at least considered for entry. Quote: When it comes to art, FreeDoom may be quite good source
Wow! That's a bunch of free textures! Bookmarked |
|
Thomas Harte
Member #33
April 2000
|
I am now accumulating details of this competition to the Pixelate wiki: http://pixwiki.bafsoft.com/wiki/index.php/RayCastingCompetition. Hopefully this is not an inappropriate use of their servers! Check there for all competition developments and facts, and please add your name to the list of competitors if appropriate! [My site] [Tetrominoes] |
|
aybabtu
Member #2,891
November 2002
|
I added myself to the list... Although...I feel I must protest the 640x480 limit...or is it for compatibility? Is 320x200 (or 320x240), 8-bit or otherwise, unsupported on modern video cards? My nVIDIA GeForce 2 (I know...modern! I mean, look at good old wolfenstein 3d! There's a nice low res (think it's 320x200)...and Doom (even though it's not raycasting) was 320x200... |
|
Krzysztof Kluczek
Member #4,191
January 2004
|
Well, it has to run at 640x480, but nobody have said at what frame rate. ________ |
|
Thomas Harte
Member #33
April 2000
|
Quote: Well, it has to run at 640x480, but nobody have said at what frame rate. So it's really a matter of trying to reach a framerate you think will win you sufficient votes... Quote: Although...I feel I must protest the 640x480 limit...or is it for compatibility? Yes - it's the lowest that many laptops can display fullscreen. Most will switch to a 320x240/200 display and only use a quarter of the display but mine being an Apple, it doesn't even pretend to support 320x240 mode and Allegro always fails when trying to set that as a fullscreen display. That said, the Apple version of Wolfenstein 3d was in 640x480 as were most other Mac games of the time so there isn't the need to support even for legacy reasons. In the PC realm, Duke Nukem 3d had full SVGA support. Anyway, I think it's pretty explicit that 640x480 must simply be one of the list of allowed resolutions and therefore can be the top resolution if you like. I guess I should also revive the idea of source releases being restricted to the judges. That way it is possible to write code for 640x480 for the competition then only do a 320x200 release for the public if you want. [My site] [Tetrominoes] |
|
Tobi Vollebregt
Member #1,031
March 2001
|
Quote: So it's really a matter of trying to reach a framerate you think will win you sufficient votes... So, is AllegroGL allowed? It would give a speed boost probably if you do only the raycasting on CPU, and leave the horizontal/vertical line fillers to the GPU. ________________________________________ |
|
Fladimir da Gorf
Member #1,565
October 2001
|
Quote: Quote: 100% legal. Just make an effort to be platform neutral if possible. Or I won't be able to play!
Seems that it is. Otherwise, I couldn't participate OpenLayer has reached a random SVN version number ;) | Online manual | Installation video!| MSVC projects now possible with cmake | Now alvailable as a Dev-C++ Devpack! (Thanks to Kotori) |
|
Darth Code
Member #5,728
April 2005
|
Just making sure: |
|
Thomas Harte
Member #33
April 2000
|
I've decided to implement a new system to determine what is a valid entry and what isn't. The system is that if any judge thinks an entry does not meet the competition criteria during judging then he indicates as such. If any entry obtains such indications from at least half of the judges then it is disqualified. The advantage to this system is that I don't somehow gain greater authority over the meaning of ray casting just because I happen to have started the competition. The disadvantage is lack of certainty - how exactly can a potential entrant be certain that a complicated idea they want to implement will be accepted? Given the nature of the competition and the fact that what is or isn't a ray caster is considered obvious by most people I think the advantage outweighs the disadvantage. But I'll pay attention to any comments people have on this idea. Quote: It is ok to start programming now, to be in the "time frame" of the contest? Yes it is, although you will be inelligible for the category related to those programmed entirely within the given time frame. Also, I am strongly bending in favour of a rule imposing a 25% mark down for all entries started before the competition in any categories that could be called purely implementational. For example, I am considering a 'neatest code' category since we are running a programming competition and source distribution amongst judges is obligatory. Any such categories will be clearly flagged up as such. None of these categories have yet been added to the competition. I remain mindful that nobody wants a category overflow so quite possibly none will. In addition, what do people think of trying to get a few Allegro.cc luminaries on board as judges without requiring them to be entrants or else running a parallel poll for the 'popular vote' in each category or a subset of them? We could possibly persuade Matthew to run it using the existing Allegro.cc voting architecture? [My site] [Tetrominoes] |
|
Darth Code
Member #5,728
April 2005
|
Just tell me when to start and I will. I want to code the RayCaster in the contest time only. It has to be OpenSource? Or only for the Judges? I would rather not share my code, although if I have to I will. I understand the reason for Linux, but if I compile for Windows, I think it should work with Wine, but I don't know about MacOSX... I like the Idea of the current Allegro.cc type judging. Still working on the Website... I will let you all know if and when it works... If it does not, I could host it somewhere else for the momment... Assuming that it is still wanted... It could host upcoming contest too... |
|
Thomas Harte
Member #33
April 2000
|
Quote: It has to be OpenSource? Or only for the Judges? Only for the judges, which is intended to ensure that everyone can play. Since there are only 7 entrants (so far - let's all keep mentioning the competition as widely as possible) I suppose we could instead all state the platforms for which we will require support in order to be able to allocate any points to your entry. If, for example, it turns out I'm the only awkward one on Mac OS X then you'll be free not to distribute the source at all and in the absense of an OS X build simply get no points from me. Or you can chose to send only me the source code if you trust me enough! I think this is best dealt with by simply stating that a judge is entitled to award 0 points to any entry he cannot run and is not required to go to any great effort to make things work. This also acts to inhibit eliminates buggy entries or entries aimed at impossibly great hardware targets. As concerns the programming time limits, the reason for the demarcation between those created 'in time' and 'out of time' is meant to reward those who really enter into the spirit of the competition without barring those with existing work. It would be silly and against the community spirit to bar the competition to those who have some code they can dust off but are unwilling to rewrite it all just to meet the competition requirements. Since the idea of a restriction on plot lines has been scrapped this has become substantially harder to do. How would people feel about placing a time limit on some categories ("best engine created in under a month", "best engine created within 24 hours", etc) and a deadline so that judging is effective but not explicitly starting the competition at any point? This is perhaps pandering a little too far to my natural anti-strict tendencies and moves the competition into the realm of a nonsense but given how heavily trailed it is and the fact that we'll all just be relying on trust anyway perhaps isn't so bad an idea? It'd certainly mean that people like me could, for example, spend the best part of a month or so putting together the 'ideal' ray casting engine with all the fancy features I can think of and then also try and hack together a separate Wolfenstein clone block based thing in 24 hours so as to enter twice in different categories. There would probably have to be a source requirement for double entrants unless they could come up with some other substantial evidence that they hadn't just duplicated code. As always, I'm open to suggestions and comments! [My site] [Tetrominoes] |
|
Darth Code
Member #5,728
April 2005
|
I think one entry per person. I like the idea of a "best in a month", but "best in Contest time" is best. Here's what I think: Linux/Unix: Win XX (95,98,2K,ME,XP...): MacOSX: Any other OSes must be agree to one of those... Just a thought... |
|
Thomas Harte
Member #33
April 2000
|
Okay, contest time is probably going to be some ridiculous long length like 2 months, allowing for the fact that most people have exams coming up. I'd say make the official period begin at the start of June and end at the end of July? That gives us, more or less, a month to find and consolidate art resources, etc. Personally I'm enjoying what are best described for the international audience as bar finals, so perhaps I'm thinking too lengthily in terms of deadlines as my spare time is approaching zero. Quote: Here's what I think: ... Naturally I don't think that we should tell Windows users they can't submit in code format, but I don't think that is what you're suggesting! So, the rule is "in a form that the judge can use without undue effort, or else expect 0 points". Once everything is finalised I'll deal with the proper collection and distribution of machine specs and varieties, etc, shortly before the start of the competition. I suppose I'll also need people to indicate whether they have AllegroGL or not for those of us that overwhelmingly intend to just distribute source and forget about it. [My site] [Tetrominoes] |
|
Krzysztof Kluczek
Member #4,191
January 2004
|
Quote: I think this is best dealt with by simply stating that a judge is entitled to award 0 points to any entry he cannot run and is not required to go to any great effort to make things work.
IMHO better is to entitle judges that can't run an entry to just not judge it. Any entry have to work at least on 50% judges' computers to be considered valid entry. Scores given by judges are averaged to make result independent of how many judges got the entry to work as long as it's more than 50%. This way it will be more 'write great raycaster' contest instead of 'achieve greatest portability' one. To get nice visuals (normalmapping and stuff) one probably will have to use inline assembly, like MMX optimizations, which probably won't run on some platforms (MAC?) and will limit compiler portability for sure (I'm using VC++, so my inline asm simply won't compile with GCC). Quote: Contests: Best in Contest time, Best Engine, Smallest working Exe
I understand, that all uses not system native DLLs are forbidden, right? (like allegXX.dll, fmod.dll, bass.dll, etc) Anyway, it probably isn't too hard to write raycaster in <3k EXE, so 'best game in <XXk' could be better category. btw. As far as I understand, we aren't forced to use Allegro library (rules doesn't state it anywhere), right? Cool. 8) ________ |
|
nonnus29
Member #2,606
August 2002
|
First of june to the end of july works for me. Quote: btw. As far as I understand, we aren't forced to use Allegro library (rules doesn't state it anywhere), right? Cool. 8) Language wasn't specified either; Java is my weapon of choice... |
|
Thomas Harte
Member #33
April 2000
|
Quote: Any entry have to work at least on 50% judges' computers to be considered valid entry. We'll make it a requirement that programs work on all judges machines and this requirement is subsumed into and identically preserved by the general rules for competition compliance stated above, i.e. "The system is that if any judge thinks an entry does not meet the competition criteria during judging then he indicates as such. If any entry obtains such indications from at least half of the judges then it is disqualified." Quote: btw. As far as I understand, we aren't forced to use Allegro library (rules doesn't state it anywhere), right? Cool. 8) The Pixelate wiki entry starts "The Allegro Ray Casting Competition". Allegro, unfortunately, needs to remain a requirement or else the bountiful resources of the Allegro community (these forums, Pixelate wiki, any assistance that we might be able to get from Matthew should I make a proper request) stop being available. Quote: Language wasn't specified either; Java is my weapon of choice... It's true that there is presently no language specification. I can't imagine why there might be one but for the record no rules are set in stone until the competition starts. I have no idea how distributing Allegro linked java programs works (does the .jar just include all library code?) but it sounds like a good way to bridge the OS gap. I personally have an OS with very tightly integrated Java support... Might have to be careful with more esoteric languages though if you plan to distribute by source - "[judges are] not required to go to any great effort to make things work" [My site] [Tetrominoes] |
|
aybabtu
Member #2,891
November 2002
|
I just got my raycaster to run in 640x480 mode, to make sure I could still enter! I like the idea of a hardware scaling routine, but I of course have no idea how to do that. Does allegro's stretch_blit use hardware scaling? Probably not...it's just I know for a fact that 23's does not. Maybe on your guys's 3gazillion GHz macines this isn't a problem, but I'm developing with only 300mhz at my disposal. If we can't find a faster scaling method, I probably will have to drop from the comp...:'( Maybe not, though, but we'll see. Also: Quote: I understand, that all uses not system native DLLs are forbidden, right? (like allegXX.dll, fmod.dll, bass.dll, etc)
Will we be giving source code to the judges...or binaries? And what version of allegro will be used? I don't know if it matters anymore, but when I moved from Allegro 3.11 to Allegro 4.0.3, I had to go through and change some code. Probably doesn't matter anymore, though. |
|
Krzysztof Kluczek
Member #4,191
January 2004
|
Quote: We'll make it a requirement that programs work on all judges machines and this requirement is subsumed into and identically preserved by the general rules for competition compliance stated above, i.e.
So it's going to be 'most portable raycaster' compo instead of 'best raycaster' compo? If yes, then I quit. EDIT: Quote: I just got my raycaster to run in 640x480 mode, to make sure I could still enter! 8)
You can just stretch_blit 320x200 to 640x400 and use remaining 80 lines for player stats. EDIT2: Quote: I understand, that all uses not system native DLLs are forbidden, right? (like allegXX.dll, fmod.dll, bass.dll, etc)
I meant exe-size compos only. If you are going to make small executable (line 32k or 4k) and be proud of it, don't use any non-system DLLs. ________ |
|
aybabtu
Member #2,891
November 2002
|
Quote: You can just stretch_blit 320x200 to 640x400 and use remaining 80 lines for player stats.
Believe me, that crossed my mind, but I figured if I'm entering a competition, my raycaster should probably look as little like crap as possible |
|
Erkle
Member #3,493
May 2003
|
The slither renderer in my duke engine gets 40fps:( when next to a wall. EDIT: Duke Nukem 3D gave me 20fps on my old Cyrix 266Mhz at 640x480
If the writing above has offended you, you've read it wrong.....fool. |
|
Trezker
Member #1,739
December 2001
|
Quote: I lost half my fps (60+ down to 30-ish Well, that's better than me then, I loose 79% of fps. 640 fps in 320*200 to 140 fps in 640*480, both windowed. |
|
|
|