Slashdot Mirror


Firefox 3D Canvas FPS Engine

axonis writes "Benjamin Joffe has developed Canvascape - "3D Walker", a simple javascript browser based 3D first person game engine that shows off the capabilities of the Canvas tag found in Firefox, Safari and Opera. " Don't expect much except a proof of concept ;)

280 comments

  1. overhead by jacquesm · · Score: 4, Interesting

    Think about the overhead, here is a triple-layered game engine ! Wonder what you could really do with these machines if you hard coded them 80's style in assembler...

    1. Re:overhead by rd4tech · · Score: 3, Insightful

      would it be as portable as it is now?

    2. Re:overhead by Anonymous Coward · · Score: 0

      Yeah, write most of it in assembler, throw in a bit of texturing and lock the framerate to 35fps...

    3. Re:overhead by systemofadown · · Score: 0

      Ok I don't think this was written for speed, it is a proof-of-concept for the new tag. As for assembler that is platfrom specific, java would be the fastest thing that would allow a web environment.

      --
      Science is but a perversion of itself unless it has as its ultimate goal the betterment of humanity. -Nikola Telsa
    4. Re:overhead by Lionel+Debroux · · Score: 2

      Both of you raise a valid point.
      That said, what he did is a good tech demo of what users/programmers out here can do with Canvas on the most recent Firefox versions ! Although older computers should not be neglected, the power of modern computers leaves some room for improvement: it is perfectly usable on my machine, which is more than two years old.

    5. Re:overhead by Anonymous Coward · · Score: 4, Funny

      Yeah, it will never work. Only took 12 seconds to load with no excitement. Compare that to the 15 minutes of quality time my son & I spend together trying to launch Runescape.

    6. Re:overhead by Anonymous Coward · · Score: 0, Funny

      java and fastest do not belong in the same sentance.

    7. Re:overhead by bradbeattie · · Score: 2, Interesting
      Wonder what you could really do with these machines if you hard coded them 80's style in assembler...
      Not much more than if you coded it in C. Compiler optimizations pretty much took the place of tricky assembly programming.
    8. Re:overhead by Saven+Marek · · Score: 1

      It would take you months to do that in assembler, and half a day to do it in C. Then the C code would end up faster because compiler optimizations are faster than anything a person could hope to do, and it would be portable too.

      And the assembler code breaks when CPU upgrades happen.

    9. Re:overhead by ArwynH · · Score: 1

      Talking of overhead. If you look at the code you will find that it isn't actual 3D either, just emulated 3D using math and gradients. Add to this that it running in entirely in software. No hardware rendering at all. No wonder it's so slow.

      As a proof of concept it isn't bad, but current implementations of the technology(SVG in this case I believe) do not make decent use of available hardware, which is a pity. If the browser used the GFX chip for rendering this I imagine it would be a lot faster.

      Best stick to uncomplicated 2d stuff like tetris for now.

    10. Re:overhead by Ford+Prefect · · Score: 1

      would it be as portable as it is now?

      Well, if you need portability for some graphical gadget, why not do it in Java?

      I'm really not too impressed with all this Javascript-used-for-graphics stuff that's in vogue right now - okay, so this Canvas element allows much more graphical control over page layout, but if this mini-FPS is anything to go by, it's horribly slow. As a comparison, see the famously slow Java do a far more complex scene entirely in software...

      --
      Tedious Bloggy Stuff - hooray?
    11. Re:overhead by G-Licious! · · Score: 1

      If you look at the code you will find that it isn't actual 3D either, just emulated 3D using math and gradients.

      Uhm... so what do you think '3D' on modern PCs is then?

      As a proof of concept it isn't bad, but current implementations of the technology(SVG in this case I believe) do not make decent use of available hardware, which is a pity. If the browser used the GFX chip for rendering this I imagine it would be a lot faster.

      I'm not sure how Firefox draws this, but it probably has nothing to do with SVG. And as far as SVG performance goes, but I'm not sure about this, Firefox uses cairo on Linux to render SVG and possibly this aswell. (And if it doesn't, well, atleast librsvg can still do it, which is used across GNOME.) And Cairo has an OpenGL backend.

    12. Re:overhead by Lionel+Debroux · · Score: 5, Informative

      > It would take you months to do that in assembler, and half a day to do it in C.
      Imprecise. If considering only a specific platform and no existing libraries, you're even completely wrong: Coding ASM is significantly more time-consuming than coding C, but the difference is 3-5 times "only".
      Obviously, with C, you get a higher level of abstraction, therefore more reusability, portability, etc.

      > Then the C code would end up faster because compiler optimizations are faster than anything a person could hope to do,
      Depends on the platform. Hardly anybody is able to optimize for speed a modern x86 processor "by hand", but RISCs and even some CISCs like the 68000 are another story. I have been programming for years as a hobby on the 68000 processor, and I have seen:
      * GCC missing completely obvious CSEs: a global array used about ten times in a row, the compiler won't put its address into a register even if it has many spare ones;
      * GCC not using the instruction set possibilities (10-byte code instead of 4-byte code, and that spills one more register; bad code related to local variables on the stack; etc.);
      * GCC completely messing up a calling convention that should be more optimized ( saves&restores on a register that isn't even changed);
      * etc.
      Wonder why a number of not-very-powerful embedded platforms, like calculators, are still partly programmed in ASM...

      There may be more appropriate compilers for those processors, but hey, GCC is supposed to be portable, and it has (had, they deprecated some useful things like casts-as-lvalues in GCC 4.0) cool extensions that most other compilers don't have.

      > and it would be portable too.
      If you use external libraries like the SDL, yes. Otherwise, no, not more than ASM.

    13. Re:overhead by ultranova · · Score: 2, Funny

      If you look at the code you will find that it isn't actual 3D either, just emulated 3D using math and gradients.

      I have to tell you an awfull secret about 3D software. None of them really renders graphics three-dimensionally. They all just emulate 3D using math and gradients ;).

      As a proof of concept it isn't bad, but current implementations of the technology(SVG in this case I believe) do not make decent use of available hardware, which is a pity. If the browser used the GFX chip for rendering this I imagine it would be a lot faster.

      Actually, you could just code it in Java and use Java3D for acceleration. That is pretty fast. Though I have to wonder - why would anyone want 3D ad banners ? Because actual 3D games require far too much data to be practical as applets...

      ...except, perhaps, as a really quick and easy test drive for a MMORPG, or simply to let potential players see what the gameplay looks like - just use the 3D applet as a floating "News cam". Maybe major battles in MMORPGS could attract a news helicopter (or magical eye or whatever), which could report activities, which would then be shown in the applet (and in ingame news sources too - why couldn't a fantasy world have a newspaper, complete with more or less magical journalists ?). And of course players (or enemies) could kill the darn thing too, giving that classical "Hey - he's pointing that thing thi<Static>" death sequence.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    14. Re:overhead by guardiangod · · Score: 1

      I agree.

      Even on my Athlon64 3200+, the game is jerky at best; whenever I move the character, the CPU usage shoots up to 100%.

    15. Re:overhead by squiggleslash · · Score: 3, Interesting
      While I generally agree that you'd end up with something more practical (faster, less likely to break - or at least, less likely for it to be a problem if the binary breaks, on a CPU upgrade) if you write it in C, it's a bit of an exaggeration to say it'd take months vs half a day doing it in assembler vs doing it in C. As long as you think in a high level, and attempt to program with elegance coming before clock-cycle counting, assembler programming can be tremendously quick, once you're in the mindset.

      The big issue is that assembler code doesn't have a lot going for it, so most people who program it these days do it for the extremes where nothing else will do - the glue to start a C program, that kind of thing. Worse still, a lot of it is device driver code designed by people who really aren't programmers. It's hard to find good assembler code in the 2000s. Those of us who were programming Motorola 68xxx code in the 1980s though know elegant, readable, maintainable, well structured, assembler code, generated no more slowly than stuff in C isn't impossible. As it's not as maintainable as the equivalent in C, nor as portable, nor as fast, it's just not worth doing any more.

      --
      You are not alone. This is not normal. None of this is normal.
    16. Re:overhead by Hurricane78 · · Score: 0, Offtopic

      Does anyone remember the url of this new-i/o (nio) demo of a steerable flight over mars surface in realtime with 400 MB terrain data?

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    17. Re:overhead by jZnat · · Score: 1

      Right, the only people who need to program in assembly are those who optimise or develop compilers. It's still useful to learn a bit so you know how to keep your project in check before going into bloattown.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    18. Re:overhead by tepples · · Score: 1

      Uhm... so what do you think '3D' on modern PCs is then?

      It's more than axis-aligned walls of one height at least. This demo is at about the technology level of Midi-Maze (called Faceball 2000 on some platforms), the first popular first-person shooter to use flat shading instead of the wireframes that had been used in Battlezone. Actually texturing the walls is a step up, to Wolfenstein 3D.

    19. Re:overhead by Guspaz · · Score: 3, Interesting

      Because actual 3D games require far too much data to be practical as applets...

      I disagree. The shareware release of Doom 1 was only 2.9MB compressed, and look at how much content it has. 2.9MB for all sounds, music, maps, code, etc. The game has a limited low-res textureset that is used creatively, used MIDI for music, and had a small number of sounds.

      It isn't a matter of requireing too much data, it's a matter of not being able to use the same mindset when coding games for such platforms.

      I'm not even a game developer, and I can think of a few tricks. For one thing, stream content as needed. Assume the player has broadband. Stream content as you play. Yes, have a loading screen, and use that initial load to grab the content for the first level. Then, while the user is playing, grab the content for the next level or two. Assuming low-end DSL (half a megabit), and 10MB of compressed content per level (Which can store a TON of content), you've got three minutes of load time per level. The initial load time is going to be the big crunch, because after that you can use gameplay time for downloading the next level.

      You can also reduce initial load times by prioritizing content and streaming it in as-needed. If you have a level that is going to have 10 or 20 minutes of gameplay, then you don't need to load in sounds and textures that are only going to be used 15 minutes into the game. Those can be loaded while the user is playing. They only initially need to load stuff that is going to be present in the first few minutes of gameplay.

      Another trick is procedural texture generation, where textures are mathematically generated rather than stored as bitmaps. And of course there's always the trick of combining multiple low-res textures to create higher res ones, like Halo did for terrain.

      And assuming you have a 10 megabyte budget per level, you can always get more out of that by using textures from previously-loaded levels. This has the side effect of the game getting more graphically diverse as the player progresses, so it may not be something you want.

      Anyhow, I think that considering how much can be done with a mere 2.9MB of data, having that much or more PER LEVEL can lead to some pretty good looking content.

    20. Re:overhead by sketerpot · · Score: 0

      Or those of us who program on very resource-constrained systems, like low-end microcontrollers.

    21. Re:overhead by Suddenly_Dead · · Score: 2, Interesting

      Try pouet.net or other "demoscene" websites. The Demo Scene guys still do a fair amount of stuff in low level languages, especially for the 64k (or smaller) competitions. Some of the stuff they do is quite amazing, for its technical merits as well as the artistic aspect.

    22. Re:overhead by fatphil · · Score: 1

      I dunno, but I remember 'mars.exe' (or was is mars.com?) from
      about 1993 or 1994. It was about 5k in size. If the author
      hadn't unrolled the loops fully, it would have been about 2k
      in size!

      Back when coding was real coding...

      --
      Also FatPhil on SoylentNews, id 863
    23. Re:overhead by astronouth7303 · · Score: 1

      > Wonder why a number of not-very-powerful embedded platforms, like calculators, are still partly programmed in ASM...

      I know the high school-level caclulators from TI (TI-82, TI-83, TI-84) are almost entirely programmed in ASM. (I have been unable to find a compiler for it. I'm excluding TI-BASIC and languages requiring another app, like Ion.) I can't say for the more powerful college-level calculators (TI-89, Voyage 200), but I suspect that they are the same.

    24. Re:overhead by xiaomonkey · · Score: 1
      While I've heard that more than a few times, I can't help to think that it seems to contradict the following other meme:

      • Java programs run using a good JIT can actually be faster than C programs. This is because of two reasons: one, the JIT can use runtime information to know the best way to optimize certain segments of code; two, since Java don't have some language features such as pointers, it is possible to make optimizations that are not possible in C.


      The first part about special insights obtained about the code during runtime can be argued against by claiming that a C/asm programmer with the help of a profiler could optimize his/her could based on how it's used at runtime. Of course, such profiler optimizations are by definition the ones that you don't get for free by using an optimizing compiler. Further, I would hazard a guess that since not all possible desirable optimizations are made by a optimization compiler and since assembler allows more control over what actually gets run on the processor, that then there exist optimizations that an asm programmer can make (or as you put it 'tricky assembly programming') that a C programmer won't be able to get even using an optimization compiler.

      Moreover, for the second part of the Java JIT meme, the part regarding the difficulty/impossibility of some compiler optimizations of C programs due to language features such as pointers, further suggests that their exist certain machine/asm code level optimizations that are just not available to C. In fact, this argument has also been made by folks in the scientific computing arena when they claim that Fortran can be faster than C, all due to optimizations a Fortran compiler can safely make that a C compiler can not. Of course, any such optimization that can be made by a JIT/Fortran compiler is in principle available to an ASM programmer.

      However, the real issue is how practical it is to program modern applications in assembly. Sure, it may be possible to squeeze 10/15% more out of the processor if significant portions of a given application were written in assembler. But, the amount of time required to initially develop the app would skyrocket. Squashing bugs during QA would probably be much more of a pain. And, long term maintenance of the code would be probably much more expensive, requiring many more man-hours of work to make small improvements.
    25. Re:overhead by ArwynH · · Score: 1
      Uhm... so what do you think '3D' on modern PCs is then?

      Well ultimately it's all the same, but the difference lies where the abstraction is done. With modern 3D programming you tend to specify object dimensions, their colour and where the light is coming from, then you let the libraries do the rest. You don't manualy control the gradients on each of the wall faces when the camera angle changes.

      I'm not sure how Firefox draws this, but it probably has nothing to do with SVG. And as far as SVG performance goes, but I'm not sure about this, Firefox uses cairo on Linux to render SVG and possibly this aswell. (And if it doesn't, well, atleast librsvg can still do it, which is used across GNOME.) And Cairo has an OpenGL backend.

      Those rectangles with gradients look like they could be done with SVG, so I suspect somewhere in the background the same XPCOM objects are used. Why write twice the amount of code, when you can re-use what has already been writen? As for a Cairo OpenGL backend... if it's there it's not being used.

    26. Re:overhead by Al+Dimond · · Score: 1

      Compiler optimizations don't create faster code than a decent human coder, even for, say, x86. They just do it much quicker and make the code easier to debug/reuse. On most big systems (say, a 3D game on a PC or game console) the complexity of the programs makes using an optimizing compiler an acceptable tradeoff (and thus people have invested much work in making good compilers); on smaller embedded systems like DSPs in cell phones, it still makes sense to have hand-optimized code because it can save the company money if the code requires less expensive hardware. Now I'm sure the gap isn't nearly as large on x86, but hand-optimized assembler on DSPs can sometimes be up to ten times faster than the output from a good optimizing compiler. If you can save more money on slower (and less power-hungry) chips than you would save from your programmers working fewer hours on the code, then assembler is the way to go.

      Still, it might make sense to code particularly performance-intensive and frequently run routines in assembler for big programs if you're not getting adequate performance. Such a thing could even be applied to the Linux kernel, if someone wanted to put in the time: take frequently-run routines and code them up in assembler for a few common architectures. They'd have to be re-coded every time the C code changed, so it would be hard to maintain... and I don't really know if the performance increase would be worth the effort (or the complication of the build process) in that case.

    27. Re:overhead by Seumas · · Score: 1

      And back when the average geek had his last shower. :P

      (Says I, at work on a Sunday, stinking because I stayed up all night playing Civilization IV and didn't have time for a shower!).

    28. Re:overhead by einhverfr · · Score: 1

      I think you are thinking Java v. C++.

      Of course, I think it highly depends on the app. Java as a language has a bit more memory overhead for things like string operations.

      People have described C as something like an architecture-independant assembler. In other words, if you know the C, you can easily translate it into assembler. C++ and Java are completely differnet beasts. And although I keep hearing people talk about overhead in one or the other, I have never seen particularly good benchmarks which were openly discussed to determine the truth in this. Indeed every anecdote I have heard from developers I respect who work in the field indicate that for CPU and/or memory-intensive tasks, Java is far slower than either C or C++. Not that most tasks are CPU or memory-intensive, so that may not apply to specific cases.

      --

      LedgerSMB: Open source Accounting/ERP
    29. Re:overhead by Doppler00 · · Score: 1

      Yes, maybe one out of 100 programmers _may_ be able to beat a compiler at optimization. It's more important to get that one out of a hundred people to contribute those techniques to the compiler itself so more people benifit. It's just too time consuming to teach everyone low level assembly and there are just too many traps you can easily fall into.

      With FPGA's I don't think anyone would seriously consider doing their own layout, cell by cell, for a design. The task would be nearly imossible, there is no way you can beat the compiler because it is capable of trying thousands of layout combinations and choosing the one that is most optimal. Do modern C compilers do this? Run the code with different configurations to choose the most optimal one?

    30. Re:overhead by coopaq · · Score: 2, Interesting
      Here's a fake example I wrote using just DIV and IMG tags.

      games

    31. Re:overhead by Anonymous Coward · · Score: 0
      > Yes, maybe one out of 100 programmers _may_ be able to beat a compiler at optimization.

      There is a lot of us doing that for a living and getting handsomely paid too. Assembly is used in specialised places but still in a lot of places. It is just that people like me keep a far lower profile than ESR and the like. Still, we do exist you know.

      > It's more important to get that one out of a hundred people to contribute those techniques to the compiler itself so more people benifit.

      When the compiler authors have claimed for more than 15 years that compilers beat assembly programmers then how much do you really think they will listen to people who have done assembly programming for 25 years?? Hint: not much.

      > It's just too time consuming to teach everyone low level assembly and there are just too many traps you can easily fall into.

      Yes, why educate when ignorance is instant?

      > With FPGA's I don't think anyone would seriously consider doing their own layout, cell by cell, for a design.

      Polygon pushing as we call it, is not entirely unknown. Especially in analogue or high speed or low noise design. And you know, analogue designers are even better paid than the high level language people. See a trend yet?

      > The task would be nearly imossible

      ... hence the pay...

      > there is no way you can beat the compiler

      Say, didn't I just hear this? A few lines up? Yup. And still wrong. Funny that.

      > because it is capable of trying thousands of layout combinations and choosing the one that is most optimal.

      Many things are within given capabilities. That does not mean it is being used.

      > Do modern C compilers do this?

      Some perhaps. The algorithms exist, I even believe there are some patches for GCC. Perhaps one day they will be added too.

      > Run the code with different configurations to choose the most optimal one?

      Hard core designers do that in their head.

      Get one thing: there are things the human brain is capable of that computers cannot, simply because we do not understand the process, thing like insight, inspiration and intuition. And that is why peole like me remain well paid and see limited dangers for years ahead of being outsourced. We are at the very core.

    32. Re:overhead by lukej · · Score: 1

      Ever thought about contributing your 'finds' to the GCC project, or even fixing them yourself?

    33. Re:overhead by jcnnghm · · Score: 3, Interesting

      I ran a basic benchmark to test this theory a couple of weeks ago. I wrote a very basic selection sort in asm, then rewrote it in C++. The asm took 25 seconds to sort 100,000 random 32-bit numbers whereas the C++ took 45.

      I would suggest compiling performance sensitive apps to asm, and then optimizing nested loops and some comparison orderings. It is possible to get a lot better performance out of assembly.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    34. Re:overhead by xiaomonkey · · Score: 1
      No, actually, I really am talking about C vs. Java, or more specifically the compiler optimizations that are available in some other languages, e.g. Java, or Fortran (and thus implicitly assembler), that are not available in C.



      Also, you said: People have described C as something like an architecture-independant assembler. In other words, if you know the C, you can easily translate it into assembler.

      While it may be the case that every C program can be trivial transformed into an equivalent piece of assembler code, the reverse is not always true. That is, not every chunk of optimized assembly code can be transformed into an equivalent chuck of C that, critically, when compiled will regenerate the original assembly code. Again, this is due to the fact that there are some optimizations that a C compiler can't safely make due to some of C's language features.
    35. Re:overhead by Jerry+Coffin · · Score: 1
      Yes, maybe one out of 100 programmers _may_ be able to beat a compiler at optimization.

      At least by my definition, 1 out of 1 programmers can beat a compiler for optimization on a fairly regular basis -- because anybody who can't manage that clearly isn't really a programmer at all.

      Even though that may only be my definition, the reality is that nearly everybody who really gives it a serious shot can beat a compiler pretty easily -- though beating it by enough to care about is a completely different story. Most people can produce substantially smaller code than a compiler pretty easily, but it takes quite a bit more work to win purely on a basis of speed -- and of course, with reasonably fast memory available for less than $100/gigabyte, few people are willing to allow expensive programmers to spend much time on making code smaller.

      It's more important to get that one out of a hundred people to contribute those techniques to the compiler itself so more people benifit.

      I've written both compilers and assembly language, but the compiler work I've done has made almost no real use of what I know of assembly language. You can make use of it in writing library routines, but in the compiler itself, you have to basically give the compiler a set of rules, where writing assembly by hand is more a matter of having a feel for the flow (for lack of better terminology).

      With FPGA's I don't think anyone would seriously consider doing their own layout, cell by cell, for a design.

      First of all, I don't think FPGAs are really directly comparable. Nonetheless, while I don't know of many people who'd do all of an FPGA by hand, I've certainly done a fair amount of locking a particular block of logic to a specific cell to get the timing to work, and things like that. When you leave the FPGA realm and look at ASICs and such, hand-done logic becomes even more common. You can certainly bet that quite a bit of an average big, high-volume processor or anything like that has quite a bit of human input right down to the level of physical layout. There are a few people who have tools that really do produce better ASIC layouts automatically than most people can by hand, but they're fairly unusual -- most ASIC layout still involves quite a bit of hand work.

      In both the software and hardware realms, however, it's quite true that compilers often do better than they're typically given credit for. It's also true that quite a few people write code to try to "force" the compiler to produce specific output. In doing so, they often produce marginally better results on their current target, but as soon as the target changes, their extra effort produces hurts the results (and often by quite a bit more than they gained on the original target).

      --
      The universe is a figment of its own imagination.

      --
      The universe is a figment of its own imagination.
    36. Re:overhead by Jerry+Coffin · · Score: 1
      If considering only a specific platform and no existing libraries, you're even completely wrong: Coding ASM is significantly more time-consuming than coding C, but the difference is 3-5 times "only".

      From what I've seen, it's frequently closer to a 10:1 ratio, but that doesn't change the fact that the original ratio given (months vs. half a day, or at least 100:1) is something of an exaggeration.

      Hardly anybody is able to optimize for speed a modern x86 processor "by hand", but RISCs and even some CISCs like the 68000 are another story.

      Half true, but half not. It's true that very few people know assembly language well enough to optimize for anything, at all. It's also true, however, that compilers for x86 do a pretty poor job -- in fact, I'd say those of 68K and most RISCs produce code that's much closer to optimal than compilers for x86 do.

      Wonder why a number of not-very-powerful embedded platforms, like calculators, are still partly programmed in ASM...

      Regardless of how well or poorly compilers do at optimizing for speed, they nearly all do a really poor job compared to hand-written assembly language when it comes to optimizing for size.

      --
      The universe is a figment of its own imagination.

      --
      The universe is a figment of its own imagination.
    37. Re:overhead by 1locs · · Score: 1
    38. Re:overhead by einhverfr · · Score: 3, Insightful

      It also depends though on what you are optimizing for.

      Having worked in Fortran, I can tell you that some things are just not possible to optimize well in Fortran either. And although I will admit that it is possible my knowledge of Fortran could be outdates (is there any other kind?) I suspect that you still have issues with optimizing for certain things (such as executables of sane sizes when dealing with huge arrays).

      Again, I have friends who work as programmers in scientific fields who have complained about the overhead of Java in things like genetics analysis apps. On both the Fortran and Java the problem is not how fast can you pass X benchmark but rather how fast will your program work on a data set of arbitrary size.

      Indeed Fortran makes this requirement next to impossible for the very fact that all memory allocation is done at *compile time* in Fortran 77, and in Fortran 90, you still extremely inflexible and this is what allows certain optimizations to take place.

      Secondly, these posts only deal with pointer optimizations. They *do not* deal with the question of whether a given application will be faster than another one, especially in cases where many of the cycles are run through routines which don't involve user defined pointers. There is a very real question whether in memory or processor intensive applications whether these pointer optimizations will create a *net* gain of speed. For example, lets say in Fortran 77, I use a static array that is large enough to take up most of memory because this is the maximum size I *may* need for my application. At least with Fortran 77, this executable will be *big* and take time to load that could be better used actually running the program. Secondly, what happens when I also need to run another app on that same system? What is going to get swapped to disk? How is that going to impact performance? How does the kernel scheduling affect things?

      Now supposed I write the same app in ANSI C using malloc and free where appropraite. The executable will load faster and *only use the memory it needs.* This means less swapping, and fewer delays due to outside factors.

      In Fortran 90, things get somewhat better. I can create an array and then allocate space to it. But complex data structures are still lacking and so certain types of problems are going to get semantically *ugly* in Fortran 90. Ugly semantics makes for slow programs.

      Here is the thing. There is no "perfect language." Fortran excells at allowing science students to rapidly develop quick and dirty programs to solve science problems safely (no buffer overruns, etc). These simulations, provided that they meet certain criteria, will probably run faster in Fortran than in any other language. But I don't think you can generalize this to an idea that "Fortran is faster than C" because in many cases, it won't be (many of these cases are corner cases in Fortran's core market though).

      As for Java... It is great at some things. But there are many other areas where it simply doesn't perform well. Again processor and memory intensive apps (especially those involving string processing) come to mind. Java excells at being able to offer closed source software vendors a compiled environment with the portability of a scripting langauge. If performance continues to improve, great, but I don't think that performance will ever be the reason to choose Java, unless it is being compared to the likes of Python. Is it possible to determine circumstances where it may perform better than C, C++, or insert language here? Sure, but can one say that this means that Java is on a par performance wise with these languages? I don't think so.

      --

      LedgerSMB: Open source Accounting/ERP
    39. Re:overhead by G-Licious! · · Score: 1

      You don't manualy control the gradients on each of the wall faces when the camera angle changes.

      It doesn't really matter who does it though, in the end it's all math, and I think OpenGL can do gradients aswell. :)

      Those rectangles with gradients look like they could be done with SVG, so I suspect somewhere in the background the same XPCOM objects are used. Why write twice the amount of code, when you can re-use what has already been writen? As for a Cairo OpenGL backend... if it's there it's not being used.

      I think it'd make more sense for the SVG renderer to use the same operations as that, than having the canvas create an intermediate SVG representation of itself. But I've never looked at the code. Cairo's OpenGL backend isn't really used anywhere yet, but it works, and might be used eventually on the desktop.. say, whenever Xegl matures.

    40. Re:overhead by lubricated · · Score: 1

      c++ not as fast as C. Though I'm sure it would still be faster in asm, provided you know what you are doing.

      --
      It has been statistically shown that helmets increase the risk of head injury.
    41. Re:overhead by woolio · · Score: 1
      With FPGA's I don't think anyone would seriously consider doing their own layout, cell by cell, for a design.
      I have met at least one person who has done this... Yes, an automatated program can try many different types of optimizations... But a human knows how to change the design to suit the implementation better. (e.g. exploit problem-specific aspects). There is often no need to consider many cases when it is clear which one will produce a very-near best result. For example, TI supplies a hand-optimized convolution routine for its x6700 series DSPs... With the TI compiler and a well-written C program (remember, convolution is just a simple for-loop, much like a dot-product), the hand-optimized ASM code is 2-3x FASTER than the code with any combination of optimization settings (O1, O2, O3, others, etc). FYI this operation, is a critical computation performed in a lot of communications/image/signal processing applications. It is not a stupid, meaningless benchmark. And that is just for a stikin' for loop that is a bout 4-5 lines of code in C!
    42. Re:overhead by macshit · · Score: 1

      Indeed every anecdote I have heard from developers I respect who work in the field indicate that for CPU and/or memory-intensive tasks, Java is far slower than either C or C++.

      I think it strongly depends on what you're doing, and the technology you're using (C/C++ compilers are more or less standard technology, so there's not all that much difference between them, but java implementations are all over the map).

      My rather casual knowledge of Java suggests that for traditional computational code, the heap-allocation of temporary objects and lack of "value" semantics is a weak point -- a common technique used to speed up java progs is to make all your methods pass back non-scalar results by writing into an "output argument", and allocate static global temporary objects for callers to use with such methods. This really speeds things up in many cases, but unfortunately it clutters up the code and makes it much less readable. C++ on the other hand, directly supports (indeed, is obsessed with...) value semantics in a way that lets you write code that essentially does the same thing internally, but is far clearer.

      OTOH, if you're doing lispy stuff where you truly do want lots of heap-allocated objects, and it's a pain keeping track of it all, Java's direct support of GC can make C++ look downright clunky and ugly.

      Ideally, it would be nice if C++ supported real GC (maybe it does in some forms) and Java better supported value semantics -- but doing such things might bloat the languages unacceptably (C++ in particular is teetering right on the edge already); sometimes it's better just to grit your teeth and use the right language for the job...

      --
      We live, as we dream -- alone....
    43. Re:overhead by cwernli · · Score: 1

      > I stayed up all night playing Civilization IV

      That's soooo 21st century - now you can play CivII for free!

    44. Re:overhead by Seumas · · Score: 1

      Didn't you ever have math class?

      IV is twice better than II. Not only that, but alphabetically, I = 9 which makes CivII 18 whereas V=22 making CivIV 31 and that's lots more better. Plus, if you add 1.75 to CivII/18 and subtract 11.25 from CivIV/31, you get 19.75 and then it's time to call Art Bell.

    45. Re:overhead by Zangief · · Score: 1

      Errr, aren't you being a little unfair there? GCC was created with the x86 instruction set on mind, from the start. So, when it doesn't work so well for another architecture, is no big surprise, really.

    46. Re:overhead by Kumkwat · · Score: 1


      What about VHDL code?

    47. Re:overhead by Pseudonym · · Score: 1

      Such a comparison is meaningless without seeing the source code. As my supervisor used to say, "if there's no source code, it's not science".

      C++ provides sort code as part of its standard library. If you don't mind being slow and hard to use, there's qsort(). If you are sane and don't care about C compatibility, there's std::sort(). In fact, I'd like to see your sort go head to head against std::sort. I'm willing to bet that it's both faster (because using better algorithms almost always beats programming at a lower-level), and it's more maintainable.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    48. Re:overhead by pilkul · · Score: 1

      Or people involved with emulation, virtualization or software reverse engineering (e.g. unofficial videogame translations).

    49. Re:overhead by jcnnghm · · Score: 3, Informative

      I'm sure the built in sorts would be much faster, they almost certainly use quick sorts, and I didn't take the time to write a proper quick sort in assembly. What I did do is write two sorts that operate in exactly the same way, an apples to apples comparison.

      Bottom line, my register usage makes all the difference.

      http://compucatedsolutions.com/asm.htm contains the C++ and assembly sorts, you'll notice they both operate in exactly the same way. I couldn't manage to get it past the lameness filter.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    50. Re:overhead by Anonymous Coward · · Score: 0

      "Then the C code would end up faster because compiler optimizations are faster than anything a person could hope to do"

      @_@

      Compilers aren't usually very smart when it comes to optimizing. Skilled humans do it better, just slower.

    51. Re:overhead by Anonymous Coward · · Score: 0

      GCC was created with portability in mind, not any specific architecture. It's just that x86 gets the most optimization for obvious reasons.

    52. Re:overhead by Anonymous Coward · · Score: 0

      Supervisor for "online university of computer gaming"? Implementations of algorithms are sometimes needed to prove a concept, but surely you (or your supervisor) are not saying that computer science articles that don't have "source code" in them are not applicable as science articles?
      -AC

    53. Re:overhead by jlarocco · · Score: 1
      would it be as portable as it is now?

      Funny you mention that, considering "canvas" is a non-standard, Firefox only HTML tag. So it's just as portable. Similar to the assembly coded game working for anyone using a particular OS and architecture, the canvas game will work for anyone using Firefox.

      In addition to not being portable, the "game" is so slow it's hardly playable. Good luck convincing people their 2 year old Pentium 4 with half a gig of ram is too old to play something with worse graphics than what used to run blazing fast on a 486 with 4 mb of ram.

    54. Re:overhead by Anonymous Coward · · Score: 0

      Your algorithm fails if length == INT_MAX (but you should be using size_t anyway).

    55. Re:overhead by Anonymous Coward · · Score: 0

      OTOOH, when doing Lispy stuff, Lisp's direct support for it can make Java look downright clunky and ugly.

    56. Re:overhead by Anonymous Coward · · Score: 0


      Umm... They do actually work differently, your C implementation, uses an int dereferencing an array, whereas your asm version increments the pointer directly..

    57. Re:overhead by vrt3 · · Score: 1

      You do realize that you're sorting in descending order? Your variable 'small' actually determines the greatest number instead of the largest.

      Anyway, on what kind of machine did you run the benchmarks? I tried the C++ version on a Pentium 4-M 2.2 GHz under Cygwin. Without optimizations it takes 19.4 seconds (for the whole program, including filling the array etc.). With -O3 it takes 7.5 seconds. I can't compare with the ASM, since I have no idea how to create a program for testing it. I don't even know how to turn assembly code into an executable.

      --
      This sig under construction. Please check back later.
    58. Re:overhead by maxwell+demon · · Score: 1
      c++ not as fast as C.

      That's complete nonsense. There's a C subset in C++ which should perform just as well as when compiled in C. Also, while there are features in C++ which have hidden cost, you'd not use them unless you need the functionality, and in that case you'd have to do something similar in C (therefore also having ther same cost, it's just that this cost is reflected by more programming work). For example, a non-virtual member function call in C++ should be the same speed as a normal function call in both C and C++. A virtual member function call is more expensive, but so would be emulating it in C.

      And I'd guess calling std::sort is usually faster than using qsort in C, because due to it being a template, it can inline the actual comparison code. It's more powerful as well because it can also sort complicated objects which cannot be simply memcpyed for movement.

      Yes, it's easier for an incompetent programmer to write inefficient C++ than it is to write inefficient C. But that doesn't mean that C++ itself is slower.
      --
      The Tao of math: The numbers you can count are not the real numbers.
    59. Re:overhead by jcnnghm · · Score: 1

      They do work different in that regard, but the general implementation is the same, in other words they are both very simple ineffecient sorts for the sake of comparison.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    60. Re:overhead by lubricated · · Score: 1

      >>There's a C subset in C++ which should perform just as well

      I'm sure if the op was using that subset they would have just said C.

      >> it can inline the actual comparison code.

      sometimes in special circumstances parts of c++ can be faster than C. In general though C is faster. You might be inlining the sort code but that's only if you are sorting classes. Since you would have to sort a class that means you are moving more memory around. Which slows your sort code. My statement was a generality.

      > Yes, it's easier for an incompetent programmer to write inefficient C++ than it is to write inefficient C. But that doesn't mean that C++ itself is slower.

      A competant programer writes code clearly then optimizes. Code written in C++ following the general conventions of C++ tends to be slower. It's a good trade off for most code though. The power of c++ is worth it.

      --
      It has been statistically shown that helmets increase the risk of head injury.
    61. Re:overhead by jcnnghm · · Score: 1

      The algorithm was written specifically to sort 100,000 unsigned 32-bit integers, no thought or planning was put into any other usage.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    62. Re:overhead by jcnnghm · · Score: 1

      I am aware it is a descending sort, you'll notice the name of the proc in assembly is descendingSort32. I probably should have changed the variable name.

      The test computer is a AMD XP 2400+ with 1GB RAM. I reran all of the tests, and was able to get the C++ to edge out the assembly by tweeking some compiler settings. In the end I got 20 seconds (Optimized C++) to 22 seconds (ASM) to 33 seconds (Unoptimized C++).

      Looking at it now, I think I could edge out the C++ compiler by changing the inner loop slightly, specifically the way I am using edi, but that is a project for another day.

      I have posted the assembly the compiler created, http://compucatedsolutions.com/asm.htm, although I really haven't had time to get into it.

      As far as the speed difference between us, I suspect the compiler you are using may be altering the sort, or is just damn good.

      In the end, I think as I said in the OP the best bet is to compile optimized code into assembly and then edit the nested loops. I'm still fairly certain I could beat the compiler.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    63. Re:overhead by maxwell+demon · · Score: 1
      You might be inlining the sort code but that's only if you are sorting classes.

      Huh?
      First, the most speed doesn't come from inlining the sort code, but from inlining the (usually quite trivial) comparison code into the sort routine. And since when is usage of std::sort (or any optimization of it) restricted to classes?
      std::vector<int> v;
      // fill v
      std::sort(a.begin(), a.end(), std::greater<int>); // sort to reverse order
      is most likely faster than the corresponding qsort call (which needs a callback transferred via function pointer which is called for every single comparison).

      Code written in C++ following the general conventions of C++ tends to be slower.

      Following the general conventions of C++? Apart from some very general conventions which mostly are more or less speed-neutral (like "define your variables at the point of initialization", or the famous RAII pattern), or are even explicitly about better speed (like "pass complex objects by const reference rather than by value"), there are completely different conventions for different coding styles, e.g. the conventions for OOP with C++ are quite different from the conventions for GP with C++ (and sometimes even contradictory, after all, OOP is about tying behavious to objects, while GP is about maximal independence of algorithms from the objects they work on, correspondingly OOP strongly prefers virtual member functions, and GP strongly prefers free functions, and virtual isn't used at all here).

      Note that properly written C code has abstraction layers as well, and therefore also suffers from some abstraction penalty.
      --
      The Tao of math: The numbers you can count are not the real numbers.
    64. Re:overhead by vrt3 · · Score: 1
      I am aware it is a descending sort, you'll notice the name of the proc in assembly is descendingSort32. I probably should have changed the variable name.
      Ah yes, I should have seen that.
      As far as the speed difference between us, I suspect the compiler you are using may be altering the sort, or is just damn good.
      gcc 3.4.4 on cygwin, nothing special.
      In the end, I think as I said in the OP the best bet is to compile optimized code into assembly and then edit the nested loops. I'm still fairly certain I could beat the compiler.
      Very well possible. I'm not so sure I could do it in most cases in any acceptable period of time. I'm more into trying to use the most appropriate algorithms for the given case (macro-optimizations instead of micro-optimizations) and using efficient prebuilt implementations where possible (std::sort for instance in this case).

      --
      This sig under construction. Please check back later.
    65. Re:overhead by Pseudonym · · Score: 1

      When I was a postgrad student, we researched programming languages and their implementations. Specifically, we were trying to write an efficient compiler which generated very good code for a high-level language.

      For something as sophisticated as a modern compiler, any results which we obtained are meaningless without providing all the source code. Evaluating an optimisation mechanism, for example, is pointless in isolation. What matters is the speed of the final code and that depends on all of the OTHER optimisations, code generation, register allocation and so on.

      The same problem is applicable to just about anything. Science depends on reproducibility. Without access to the source code, an experiment is not reproducible, and therefore not science.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    66. Re:overhead by Pseudonym · · Score: 1
      Bottom line, my register usage makes all the difference.

      Your code is also highly, highly immoral in two important ways, but they're both related to the fact that you violate the ABI by saving the stack pointer to a static location, then using %esp as a general purpose register.

      First off, it's not reentrant because the stack pointer is saved in a static location. Calling your sort function from two threads simultaneously will cause your program to misbehave.

      Secondly, because you don't maintain the C stack, it's not signal-safe. Try setting a signal handler then sending it a signal while it's in the middle of your sort function to see what I mean.

      If the C++ compiler were allowed to violate the ABI, then I'll wager that it could get pretty close to your code. But it's not, and for very good reasons.

      Bottom line, your code is incorrect.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    67. Re:overhead by Pseudonym · · Score: 1

      Also just for jollies, I tried a quick experiment. You can see two versions of the sort test. One is your version. The other is mine, which uses iterators (which get compiled to pointers, the same as your asm version). Not only is my version shorter, it's also more reusable, since it will work with any STL-compliant container with random access iterators.

      I compiled this with GCC 4.0.2 i486-linux-gnu with -O3. Results on my machine are: Your version, 10.45 sec. My version, 8.56 sec. And that's without trying. It looks like using pointers/iterators actually does make quite a bit of difference.

      (I didn't test your asm version because it would require translating to AT&T assembly format and, besides, as previously noted, it's broken in several ways.)

      The generated assembler, by the way, is very instructive. It does a whole bunch of optimisations which you don't do. Here, for example, is the top of the loop:

      8049575: cmp %eax,%edx
      8049577: je loop_break
      8049579: mov %eax,%edi
      804957b: nop
      804957c: lea 0(%esi),%esi
      8049580: mov (%edi),%edx ; Loop starts here
      8049582: mov %edx,0xfffffff0(%ebp)

      Note how it inserted nops so that the start of the loop was aligned to the start of a cache line (multiple of 16 bytes on a Pentium or compatible). This increases the efficiency of the instruction fetch and issue. Imagine if it were at the END of a cache line, for example. Then the following instruction, being in a different cache line, could probably not be fetched, decoded and issued in the same cycle.

      Did you think about this issue when you were writing your assembly version? No, I didn't think so. Neither did I, but the compiler did. Amdahl's Law strikes again: Optimising register usage doesn't always help if there's an inefficiency elsewhere.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    68. Re:overhead by Mozk · · Score: 1

      I have a 1.67 GHz Athlon XP 2000+ and 512 MB of RAM, and it runs fine.

      2 years old is not old for a computer. I've been able to run every game I've had, with minor tweaking, and they still look good.

      Still, I don't see the point of having a Firefox-only "FPS" on a website. Flash and Java are much better suited for jobs like this. I suppose it's only to test the capabilities of the code and browser, so no complaints from me.

      --
      No existe.
    69. Re:overhead by jlarocco · · Score: 1
      I have a 1.67 GHz Athlon XP 2000+ and 512 MB of RAM, and it runs fine.

      Eh, I'm using Opera 9.0 preview, maybe that's it. I didn't bother running Firefox to try it out.

      2 years old is not old for a computer. I've been able to run every game I've had, with minor tweaking, and they still look good.

      Agreed. I'm running a 1.5 Ghz Pentium 4 with 512 MB from early 2001, and I don't plan on upgrading any time soon.

    70. Re:overhead by UnknownSoldier · · Score: 1

      I tested your code on VC60 (Release)

      You can get a ~ 50% speedup if you change one line in the Swap() section, which is kind of ironic, since you said "Bottom line, my register usage makes all the difference."

                              arg[i] = arg[point];
      to
                              arg[i] = small;

      If you got an email addr, I can send you your code cleaned up for readability, and a complete testing program.

      Cheers

  2. Great, just what we need... by martinultima · · Score: 5, Funny

    Yay, a platform-independent way of senselessly killing innocent people! What's next, "Grand Theft Auto: Firefox <canvas>"?

    --
    Creative misinterpretation is your friend.
    1. Re:Great, just what we need... by Anonymous Coward · · Score: 0

      "(Score: -1, Troll)"

      You know, I think that parent was meant as sarcasm.

    2. Re:Great, just what we need... by aussie_a · · Score: 2, Funny

      Yay, a platform-independent way of senselessly killing innocent people!

      Woah! We get to kill real living sacks of dirty water? Neat! How does it work? remote operation?

    3. Re:Great, just what we need... by Kethinov · · Score: 1
      Yay, a platform-independent way of senselessly killing innocent people!
      Except the gun doesn't work. Alternatively, you could try out this different and free platform independent way of senselessly killing innocent people.
      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    4. Re:Great, just what we need... by specialkp · · Score: 0

      I see some amazing potential for this. Games would be the last thing that I would use the canvas for if using javascript, but the canvas can be very useful in applications. I use the canvas in Java applets quite often, and this has the potential to nearly replace the Java canvas when it comes to web apps. Think of a canvas used with our beloved new buzz-word AJAX. You can get dynamic graphs, pulling data from your server and tons of other useful things that can make your already rich web app even more rich. I know I'll be keeping my eye on this. I wouldn't think about using it for anything until it is cross-browser compliant, since I don't enjoy leaving out a chunk of my user base. Does anyone know if there are plans for a canvas in IE 7? Are there any w3 standards for it (too lazy to check right now)? Maybe in a few years we could see this really take off teamed with AJAX.

    5. Re:Great, just what we need... by jZnat · · Score: 1

      Watch out for a project by the name of "fxgta" or "gtafx" popping up on SF.net now that you've put the idea out in the open...

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    6. Re:Great, just what we need... by Anonymous Coward · · Score: 0

      Yeah, another GREAT free-software game production to change the industry. :rolleyes:

  3. Juxtaposition? by mikeage · · Score: 5, Funny

    [In case it's slashdotted, the walkthrough looks like a standard FPS, with an M4 being held].

    Then we have the last line of text:

    This game is being developed but doesn't have much direction at this time, to make a suggestion email me. The gun is copyright by FarCry but is only here temporarily until I model the weapon set. Sydney Wedding Video and DVD

    Wedding Video? Crazy Aussies...

    --
    -- Is "Sig" copyrighted by www.sig.com?
    1. Re:Juxtaposition? by TubeSteak · · Score: 2, Informative

      In case of /.ing, break mirror
      http://www.abrahamjoffe.com.au.nyud.net:8090/ben/c anvascape/

      Oddly enough, I get an error message for FF 1.07 but not IE6
      (Yea, I know, use FF 1.5, it says so right in the error message)

      The 2nd to last line of text;
      Alot of people have suggested that I make the gun shoot or other equally redundant points. I only made this a couple of days ago so all in good time.

      Kinda takes the shoot out of First Person Shooter

      --
      [Fuck Beta]
      o0t!
    2. Re:Juxtaposition? by Anonymous Coward · · Score: 0

      The 2nd to last line of text;
      Alot of people have suggested that I make the gun shoot or other equally redundant points. I only made this a couple of days ago so all in good time.

      Kinda takes the shoot out of First Person Shooter


      So you're saying it's a First Person Walker?

    3. Re:Juxtaposition? by Anonymous Coward · · Score: 1, Insightful

      so you're recycling jokes from digg?

  4. Wiki by BibelBiber · · Score: 5, Interesting

    Now include a Wiki environment and people can dynamically built and develop on the levels. Looks nice, really.

    1. Re:Wiki by hritcu · · Score: 4, Informative

      Do you mean someting like this?

      --
      If you don't fail at least 90 percent of the time, you're not aiming high enough. (Alan Kay)
    2. Re:Wiki by LnxAddct · · Score: 1

      There have been a few ray casting engines for the canvas that have been written and improved upon over each other. Here is the first known ray caster written with the canvas, it is grainy, but can get around 24 FPS on the right system, you can also adjust the amount of jaggedness for a loss of some framerate. I've developed a few things with the canvas. Most recently this, but am currently working on Conway's Game of Life, and then an optimized ray caster to try and get more FPS out of it. Interesting thing to note is that the canvas widget currently only has a 2d context, but is supposed to get a 3d context as well sometime in the future. That would be really cool to have native 3D rendering support in a browser, until then though writing a 3d engine using the 2d canvas is a fun experiment. I'm curremtly testing AJAX to see if it can hold its own in real time communication with the server so that a multiplayer FPS can be made, its looking like something is plausible so I urge anyone who can to try and make it a reality. I'll give it a shot if I get some spare time.
      Regards,
      Steve

    3. Re:Wiki by Anonymous Coward · · Score: 2, Funny

      No, something fun.

  5. Opera by masklinn · · Score: 5, Informative

    FYI, Firefox only works from 1.5 onwards (Gecko 1.8), and Opera 8.5 doesn't work (anyone testing 9.0 could tell if it works or not?)

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    1. Re:Opera by Freexe · · Score: 1

      It almost works, you can walk about but it quickly slows down and starts flashing?

      The colours don't seem to load either.

      --
      "In a time of universal deceit - telling the truth is a revolutionary act." - George Orwell
    2. Re:Opera by krazyjim · · Score: 1

      Yes it works in Opera 9, but the walls flicker on every step (not sure if it's like that on all browsers).

    3. Re:Opera by masklinn · · Score: 1

      Nope, walls display is perfectly stable in Firefox 1.5

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    4. Re:Opera by Cally · · Score: 1

      And slow, but playable (just) in Firefox 1.5rc3 opn GNU/Linux 2.6.8 on a P2/233. How's that for backwards compatibility ;)

      --
      "None are more hopelessly enslaved than those who falsely believe they are free." -- Goethe
    5. Re:Opera by Anonymous Coward · · Score: 0

      And that is why I'll be sticking with Firefox!

    6. Re:Opera by Anonymous Coward · · Score: 0

      ha ha..
      So this game is all you do on the web ??
      right...

    7. Re:Opera by Anonymous Coward · · Score: 0

      A friend of mine did a javascript 3d demo before the canvas-tag was out. Only single-colored polygons, but functional. It used only standard javascript and css and worked on Firefox as well as IE, but IE was a bit faster. Yes, he's a sick ubercoder.

    8. Re:Opera by jlarocco · · Score: 1
      And that is why I'll be sticking with Firefox!

      Because you're locked in with non-standard HTML tags?

      Funny, I thought Firefox was supposed to solve all that...

    9. Re:Opera by Fweeky · · Score: 1

      Opera 9/Win32 here, and it actually starts off fine; it just gets progressively slower the more you move, and the visibility display on the left isn't cleared properly. Memory consumption keeps going up each frame too, so I guess something's leaking.

    10. Re:Opera by onedotzero · · Score: 1

      Based on my own tests, IE does have a faster JavaScript engine, FireFox is pretty slow by comparison. Opera 8.5 is slap-dab in the middle.

    11. Re:Opera by masklinn · · Score: 1

      Tests usually show a different behaviour: opera at the front, followed by MSIE, and Firefox dead last.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    12. Re:Opera by onedotzero · · Score: 1

      Strange, I ran a simple MIPS calculator on my machine at home and got the following:

      IE6: 4,807,692
      Opera: 4,000,000
      Firefox: 3,092,784

      Although Opera's result is a very round number, I doubt it would throttle the instructions.

  6. Firefox Compatibility by Anonymous Coward · · Score: 5, Informative

    May I point out that Canvas tag is only supported in Firefox 1.5, and not the current stable release 1.0.7.

    1. Re:Firefox Compatibility by kyouteki · · Score: 2, Informative

      But it works fine in Safari 1.3+.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    2. Re:Firefox Compatibility by mallardtheduck · · Score: 1

      In fact, Safari is the only stable browser it works in. Opera 9 isn't stable yet either...

    3. Re:Firefox Compatibility by mshiltonj · · Score: 1

      May I point out that Canvas tag is only supported in Firefox 1.5, and not the current stable release 1.0.7.

      No, you may not. And you get points off for using a period instead of a question mark. /troll && /funny

      However, my question is this: Is the canvas tag standards-compliant?

      *will look up later*

    4. Re:Firefox Compatibility by Keebler71 · · Score: 1

      There is a current stable release? That's funny, on all three of my usual machines, firefox still leaks memory like a sieve if I leave multiple tabs open for longer than a day or so and PDFs frequently crash the app. Don't get me wrong, I prefer Firefox over any other browser, but I still have use IE for a few things and at least when IE crashes, it doesn't bring down every other instance of the same program with it (firefox does).

      --
      "It takes considerable knowledge just to realize the extent of your own ignorance." - Thomas Sowell
    5. Re:Firefox Compatibility by Spy+der+Mann · · Score: 1

      May I point out that Canvas tag is only supported in Firefox 1.5, and not the current stable release 1.0.7.

      Tomorrow on Slashdot: A Firefox website did NOT get slashdotted yesterday!

    6. Re:Firefox Compatibility by BushCheney08 · · Score: 1

      No, it seems quite clear that he's saying that Safari is the only browser that this works in that isn't currently in a pre-release form. The versions of Firefox and Opera that this works in are still in testing, and hence not "stable."

      --
      Be a real patriot: Question authority. Think for yourself. Formulate your own conclusions.
    7. Re:Firefox Compatibility by Anonymous Coward · · Score: 0

      Firefox 1.5 is not at a stable release yet, it's due for full release on the 29th, henceforth 1.5 is not currently a stable build (assuming they are releasing it on the 29th because they are still working on bugs in the RC)

    8. Re:Firefox Compatibility by andymadigan · · Score: 2, Insightful

      Last I checked, Safari is KHTML, not Gecko, therefore the "underlying structure" wouldn't be the same.

      --
      The right to protest the State is more sacred than the State.
    9. Re:Firefox Compatibility by masklinn · · Score: 3, Insightful

      Not in HTML4, nor in XHTML1.0 or 1.1

      Canvas is a semi-proprietary element (originates from Apple, who first implemented it for Dashboard) that currently is in the under development HTML5/Web Applications 1.0 standard from WHATWG, but is (as far as I know) not part of the W3C's XHTML2 draft

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    10. Re:Firefox Compatibility by VJ42 · · Score: 1

      When IE crashes on me, it crashes Windws entirely, no BSOD, but the entire OS freezes, I've never had that problem with firefox. If a web site dosn't work in firefox or Opera, I don't use it.
      Unfortunatly you're right firefox does leak memory, but then so does Windows itself which dosn't help.

      --
      If I have nothing to hide, you have no reason to search me
    11. Re:Firefox Compatibility by duguk · · Score: 1

      Most of the memory leak is due to http://developers.slashdot.org/article.pl?sid=05/1 1/25/1817215

      [I think https://bugzilla.mozilla.org/show_bug.cgi?id=13145 6 probably doesn't help either]

      Seems to happen especially when looking at a lot of images :D

      I read somewhere it was fixed in FF1.5b1 - can anyone confirm?

      DugUk

    12. Re:Firefox Compatibility by duguk · · Score: 1

      Actually, i read in that bug for some reason minimizing firefox seems to release a lot of the memory, I dunno why though. Hopefully this'll help someone out there. DugUK

    13. Re:Firefox Compatibility by TheRaven64 · · Score: 1

      I am using FireFox here (1.0.7) on FreeBSD. The machine is an old ThinkPad that I'm using while my PowerBook is repaired. I have found it choke on a few sites that Safari renders fine, but other than that it's fine. This machine only has 256MB of RAM (8MB of which are stolen by the integrated graphics chip), and yet after three days of uptime with FireFox open most of the time I still haven't used virtual memory. Admittedly most of the rest of what I am doing is vim, which is only memory-heavy next to vi (and worth every extra KB), but I don't FireFox is overly leaky...

      --
      I am TheRaven on Soylent News
    14. Re:Firefox Compatibility by jZnat · · Score: 0

      Firefox 1.5rc3 is quite stable. In fact, Firefox 1.6a1 (read: trunk, 3.0-pre-alpha) build 2005112704 is quite stable, so nyah.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    15. Re:Firefox Compatibility by iabervon · · Score: 2, Funny

      That's so that, when a dupe of this is posted next week, everybody who gets the stable release of Firefox 1.5 when it comes out will have something new to see in the article.

    16. Re:Firefox Compatibility by MikeFM · · Score: 1

      I don't bother making my websites look nice in IE anymore. Just make it usable and slap a 'better with Firefox' logo/link on. Sometimes I'll bother tweaking the site to fix minor bugs in Opera and Safari but not always. Luckily the bugs in those, especially in Safari, are few so even if I don't they tend to work well.

      I like to use text shadowing too which STILL only works in Safari. I really wish Firefox would add that style element. It really does make text jump off the page in a way flat text doesn't.

      I haven't really noticed FF leaking memory but I do wish it could use less memory for windows and tabs that haven't been used recently. Page their contents to disk or something instead of keeping them in RAM. A lot of the time I'll have 40+ tabs open and until I close them FF uses the expected crap load of memory.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    17. Re:Firefox Compatibility by nahdude812 · · Score: 1

      Interesting. My copy of Firefox has been up here on this Ubuntu laptop since I booted it. Current uptime: 13 days. Multiple tabs open the whole time. No swap usage, 512 mb of RAM.

      My desktop at work, running Windows 2000 has been running Firefox for at least several weeks, though I'm not at it to check its exact uptime. Again, multiple tabs are open. No paged memory, 512 mb of RAM.

      On my home desktop, running Windows XP, I don't tend to run Firefox too often since I game with it, and I have my laptop next to me for my browsing needs, but I can't say I've ever had an issue with it using up memory.

      Seems to me as if it might be specific websites you're visiting, sites that, for example, have javascript that's allocating and failing to deallocate memory. This is actually pretty common nowadays, since sites have started using Ajax; many web developers aren't accustomed to having to worry about memory management, and end up leaving references to XML objects sitting around so they're not garbage collected.

      Can't speak to IE's ability to avoid these memory issues; obviously on my linux laptop, IE doesn't run, and on my desktop, IE locks up every day or so, so it's never able to stay alive long enough to see if it eats ram =)

    18. Re:Firefox Compatibility by vidarh · · Score: 1
      It definitively leaks. Both on Linux and Windows I regularly have to restart Firefox - it regularly grows to more than half a GB before I kill it, and closing down browser windows doesn't help. And before anyone suggests I remove the flash plugin etc., my Linux box NOT have flash installed. I've followed every single tip I've seen for tweaking prefs, turning off caching etc., and it hasn't helped.

      It's been that way as long as I've used Firefox and Mozilla.

      My Linux box is continuously on, but I use the Windows version on my work laptop, and that gets restarted once a day. Despite that I can rarely use Firefox for a whole day without restarting it unless I want everything to freeze up when it eats so much memory the machine starts trashing badly.

    19. Re:Firefox Compatibility by zootm · · Score: 2, Interesting

      Yeah, the <canvas> tag was introduced by Apple, so they were first-to-market with this one. Looks neat, which is probably why it's being adopted by others.

    20. Re:Firefox Compatibility by Anonymous Coward · · Score: 0

      No, you may not. Although seeing how you already have, I forgive you.

    21. Re:Firefox Compatibility by jesser · · Score: 1

      Seems to me as if it might be specific websites you're visiting, sites that, for example, have javascript that's allocating and failing to deallocate memory. This is actually pretty common nowadays, since sites have started using Ajax; many web developers aren't accustomed to having to worry about memory management, and end up leaving references to XML objects sitting around so they're not garbage collected.

      Or maybe they're just tired of working around bugs in web browsers.

      --
      The shareholder is always right.
    22. Re:Firefox Compatibility by pomo+monster · · Score: 1

      May I point out they've also been also "first-to-market" with basic CSS properties ranging from the borderline frivolous, like text-shadow: and opacity:, to the nearly essential, like display: inline-block, which is still, after all these years, unimplemented in Firefox.

    23. Re:Firefox Compatibility by zootm · · Score: 1

      You may.

    24. Re:Firefox Compatibility by nahdude812 · · Score: 1

      Failing to manage your pointers to objects correctly, so the language can identify what objects are no longer in use to be deallocated is not a bug in the language (encapsulated in the browser), it's a failure on the part of the programmer to effectively deallocate objects which they no longer need.

      This is an issue that is core to all programming languages which enable you to use references to objects. IE has the same issues from a memory management perspective, because it doesn't represent a failure in the developers of said language, it represents a failure by the programmer.

      Web developers have traditionally never had to manage memory in their development practice, because both server-side, and client-side, a page executes, a fixed number of objects is instantiated, and at some point the page ceases execution, but never with some arbitrary number of objects being created. In the case of ajax-based applications, the longer a page is open, the more objects are created and should eventually be destroyed. If you don't clean up your references, how is the language to know that the objects are no longer in use so it can clear up their memory?

    25. Re:Firefox Compatibility by Anonymous Coward · · Score: 0

      Luckily the bugs in those, especially in Safari, are few so even if I don't they tend to work well.

      Indeed. In my experience, I spend more time making up for bugs in Firefox. Safari is still the most standards-compliant.

      My personal favorite is Firefox refusing to support display: inline-block on divs until "at least 1.9", because "nobody uses it". Nevermind that it's part of the standard.

    26. Re:Firefox Compatibility by Anonymous Coward · · Score: 0
      Three questions:
      • Are you using the Flash plugin?
      • Are you using Sun's Java plugin?
      • Why are you complaining here instead of reporting this on the Firefox help forum?

    27. Re:Firefox Compatibility by jesser · · Score: 1

      Oops, you're right. There are some bugs that cause the browser to leak if a page doesn't "clean up" before you leave the page, and those are bugs in the browser, but leaks-until-you-leave-the-page bugs are usually bugs in the pages.

      --
      The shareholder is always right.
  7. Re:Not for Opera 8.5 for OSX? by Anonymous Coward · · Score: 0

    And neither on Linux.

  8. A cease and desist coming his way by aussie_a · · Score: 4, Informative

    This game is being developed but doesn't have much direction at this time, to make a suggestion email me. The gun is copyright by FarCry

    And you can expect to be in trouble now that you've been slashdotted (I expect the legal document will come just as you finish putting out the fire your server caused). Even if it was only tempporary, lawyers have funny ways of dealing with copyright infringement. Which is sad, but protected by the law.

    1. Re:A cease and desist coming his way by Anonymous Coward · · Score: 0

      It's called 'fair use'. Perhaps you've heard of it.

    2. Re:A cease and desist coming his way by aussie_a · · Score: 3, Informative

      Actually there are no fair use laws in Australia. Thanks for playing.

    3. Re:A cease and desist coming his way by KDR_11k · · Score: 1

      And it doesn't apply to this.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    4. Re:A cease and desist coming his way by Tim+C · · Score: 3, Insightful

      Two points:

      1) that may well fall under fair use

      2) so he gets a C&D letter, instructing him to remove the offending content... which he's planning on doing anyway. Net result, the company pays some lawyers needlessly.

    5. Re:A cease and desist coming his way by sopuli · · Score: 1
      The funny thing is that he rips that gun, and then goes on to put the following statement in his own source code:

      This game is copyright by Benjamin Joffe.
      You may not reproduce or modify this without
      written permission by the origional author.
      Email him: CanvasGame@gmail.com for suggestions.

    6. Re:A cease and desist coming his way by EnderWiggin99 · · Score: 1

      No big companies pay needlessly to retain lawyers on extended coffeebreaks..

    7. Re:A cease and desist coming his way by DoorFrame · · Score: 1

      Do you think he means the particular gun in the display, or the concept of the "gun"?

    8. Re:A cease and desist coming his way by Kaenneth · · Score: 2, Insightful

      "Fair Use" is more of a right than a law.

      Such as reading a bedtime story from a book to your children is not a "Performance"; copying a vinyl record to cassette tape for use while jogging (those wearable 45's skip too much) is not "Piracy"; recording a TV show on your Betamax deck is not "Theft" (unless you fast forward through the commercials).

      Fair Use shouldn't need to be specifically defined in the written law, but I'm sure many clarifications can be found in case law.

      I would guess that since his use is not a review, parody, tribute or other protected use, and it's being knowingly publicly distributed in a form that could be construed as competing with Farcry, he would be eligible to be sued (for triple damages I think), but hopefully the makers of Farcry arn't total jerks.

    9. Re:A cease and desist coming his way by BejaminJoffe · · Score: 1

      I will worry when the time comes.

    10. Re:A cease and desist coming his way by Crayon+Kid · · Score: 1

      Not needlessly! They will manage to make themselves and the company like assholes in the process. Come on, pick on a little guy who likes FarCry enough to pick a gun from it and *gasp* give proper credit? How dumb can you be to take him down instead of enjoying the free publicity?

      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    11. Re:A cease and desist coming his way by JourneymanMereel · · Score: 1

      The weapon in this mini-game looks to me like a stanard issue US Army M4 Carbine (though it could also be an M16, but the barrel and hand grips look shorter like you'd find in the M4). So while the pixel map or whatever that's used to display this weapon in the browser may be from FarCry, the weapon itself is not their IP.

      INAL, but I am in the US Military, so it instantly looked familar to me.

      --
      Life has many choices. Eternity has two. What's yours?
  9. Opera 9 preview 1 by sucker_muts · · Score: 4, Interesting

    In opera 9 preview 1 it works, but incredibly slowly. I get about 1 fps, because it reloads all the scenery and redraws the white walls with every move.

    Perhaps because the /. effect? Or is javascript not dependent on the server? Or is the implementation for javascript in opera not optimal?

    --
    Dependency hell? => /bin/there/done/that
    1. Re:Opera 9 preview 1 by __aardcx5948 · · Score: 1

      It works flawlessy in Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.8) Gecko/20051117 Firefox/1.5, I'd say 60 fps at least.

    2. Re:Opera 9 preview 1 by porneL · · Score: 5, Informative

      It's because Opers's implementation of is at very early stage (JS in Opera is very fast). Since Opera helps to standari[zs]e <canvas> you can expect that they will aim for a pretty decent implementation.

    3. Re:Opera 9 preview 1 by Xarius · · Score: 1

      Or is javascript not dependent on the server?

      Javascript is a client-side language, so as long as you have downloaded all of the code, then it should work at whatever speed your machine is capable of handing.

      --
      C17H21NO4
    4. Re:Opera 9 preview 1 by JourneyExpertApe · · Score: 1

      Javascript is a client-side scripting language. It is only dependent on the server when it explicitly accesses resources from the server (images, other documents, etc.) It Opera's implementation that's the problem. I get high FPS in Firefox 1.5 RC3.

      By the way, if you want to see the code, it's all in the HTML document. It's pretty cool. Hopefully this <canvas> thing will take off, and it eventually replaces proprietary technologies like Flash and Microsoft's Sparkle or whatever it's called.

      --
      If you can read this sig, you're too close.
    5. Re:Opera 9 preview 1 by budgenator · · Score: 1

      Javascript is almost always client-side, there are server-side implimentations, rare but they exist.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    6. Re:Opera 9 preview 1 by FyRE666 · · Score: 1

      Javascript in Opera has always been pretty ropey. It currently displays various artifacts when using DHTML heavily (like leaving pixels on the browser canvas for instance), and I always tend to just sniff for Opera and disable anything more complicated than simple drop-menus, rollovers and form pre-validation if I detect it.

  10. safari works by BushCheney08 · · Score: 3, Informative

    Works in Safari on 10.4 However, it really helps show the age of my G3 iBook (4+ years). I get approx 2-3FPS. But it loads really fast! Still, a nice proof of concept. I'll have to check it out on my PC when I go fire up NFS Most Wanted this afternoon.

    --
    Be a real patriot: Question authority. Think for yourself. Formulate your own conclusions.
    1. Re:safari works by Anonymous Coward · · Score: 0

      Well, it's not like there's a whole lot to load....

    2. Re:safari works by BushCheney08 · · Score: 1

      Very true. But when some fairly run-of-the-mill webpages bring this machine to a halt for 20 or 30 seconds, something like this loading in a second or two is fairly surprising.

      --
      Be a real patriot: Question authority. Think for yourself. Formulate your own conclusions.
    3. Re:safari works by smart_ass · · Score: 1

      Centrino 1.6 on Win XP with Firefox 1.5RC3 ... works as smoothly as could be hoped ... gotta be at least 30fps

      --
      Ouch ... did I just say that.
    4. Re:safari works by ajdlinux · · Score: 1

      I'm using Fx1.5 on Win98, on a dell laptop with a 500mhz processor. non textured runs quite OK.

  11. Ideas by Hinhule · · Score: 5, Funny

    This game is being developed but doesn't have much direction at this time, to make a suggestion email me.

    I hear Jack Thompson recently had some ideas.

  12. Well.... by confusion · · Score: 5, Funny

    I guess we've found a purpose for those 8 core CPU's we've been hearing about...

    Jerry
    http://www.cyvin.org/

    1. Re:Well.... by legirons · · Score: 1

      "I guess we've found a purpose for those 8 core CPU's we've been hearing about..."

      You laugh, but SpreadFirefox are giving away dual-processor, Firefox-skinned Alienware machines (price tag: $4700) "to the three developers who extend firefox in ways that are worthy of such raw computing power."

  13. Re:Not for Opera 8.5 for OSX? by Kaali · · Score: 1

    Nor did 8.51 work on Windows

  14. works fine by Anonymous Coward · · Score: 3, Informative

    works fine with athlon64 and 2gb ram on firefox1.5

    1. Re:works fine by Anonymous Coward · · Score: 0

      Hmm. You only need an Athlon 64 and 2 gigs of RAM to play. This is a good thing, how?

    2. Re:works fine by l0b0 · · Score: 1

      Ditto on Athlon XP 1600+ with 1 GB RAM.

    3. Re:works fine by Anonymous Coward · · Score: 0

      Uhhh... works fine on 32 Bit 384 MB ram 1.8GHZ with FF1.5RC3 as well. You don't need all that

    4. Re:works fine by JourneyExpertApe · · Score: 1

      It also works fine on my AthlonXP 1800 and 0.5GB RAM in Firefox 1.5 RC3. It's not really a very demanding application. It is just Wolfenstein 3d level graphics and physics, though.

      --
      If you can read this sig, you're too close.
  15. Safari by Anonymous Coward · · Score: 0

    Works great on Version 2.0.2 (416.12) (under 10.4.3)

  16. Its fine and fast on a laptop with FireFox RC 3 by Anonymous Coward · · Score: 0

    It goes like a rocket in reality. Reminds me of the original Wolfinstein from ID :-).

  17. FPW by Avisto · · Score: 2, Funny

    More like a First Person Walker. /ripped from a digg comment

  18. Wow, if... by Hakubi_Washu · · Score: 1, Insightful

    ..he had used Java and hadn't resorted to a non-W3C-standard (but WHATWG) tag, I might have considered that interesting. Check this guy's work out: http://www.brackeen.com/

    1. Re:Wow, if... by LnxAddct · · Score: 0, Redundant

      The canvas is W3C compliant. Read this. It works in Safari, Firefox 1.5+ , and I heard Opera 9.1 beta or something like that. Its better than forcing users to use a plugin, an FPS in javascript is really cool (in a geek kind of way). I've done some work with the canvas too here in case anyone is interested.
      Regards,
      Steve

    2. Re:Wow, if... by Brannoch · · Score: 1

      Java isn't a W3C standard either. Come up with a better complaint.

    3. Re:Wow, if... by pavera · · Score: 1

      Alot of stuff the web uses every day didn't used to be w3c.
      Standards evolve, its about time we see some new tags that allow easy/cool things. Having this sort of thing in the html standard is great, w3c is working on making this a standard, this is great news! Unless you make your money writing server side code to duplicate this behavior, which will be slower, more bandwidth intensive, and clunky... Stuff like this belongs in the client, this is how it should work.

    4. Re:Wow, if... by Hakubi_Washu · · Score: 1

      Why not use the tag? It's exactly what it's there for! Or browsers that finally manage XML namespaces, so you could do this on an ? There is no need for this tag (And I highly doubt the author has spend a minute thinking about it)

  19. Only on slashdot by Anonymous Coward · · Score: 0

    Would the above comment be moderated as "Informative" rather than "Funny".

  20. end result VRML without VRML by Danathar · · Score: 5, Interesting

    Its funny to see things popup that have been done before but with standards that never made it....

    1. Re:end result VRML without VRML by Martin+Blank · · Score: 1

      Are there any active VRML sites still around? I found one about two years ago or so that still had a couple of people in it, but it was like finding a random IRC channel with a low population. Nothing actually was happening.

      --
      You can never go home again... but I guess you can shop there.
    2. Re:end result VRML without VRML by Anonymous Coward · · Score: 3, Funny

      One of the longest running jokes in Internet history revolves around VRML (an acronym for "Virtual Reality is Much Laughter"). In case you haven't heard of this idiotic language, and I truly hope you haven't, let me get you up to speed by presenting an alarmingly inaccurate historical description of VRML. VRML was initially created in the mid-90's to allow users to experience the utter joy of being in "cyberspace," which consisted of floating around gigantic neon cubes and cones. All the "cool" movies in those days featured people who would log in to their bitchin' 100 MHz Pentium 1 computers and enter some magical world where numbers are represented by dumb geometric shapes and nobody can find anything useful anywhere. The main point of going into virtual reality was to apparently teach your idiot children how to name shapes and colors. Despite heavy protests from people with over nine brain cells, VRML 1.0 was released in May of 1995, causing coders around the globe to immediately dismiss it and go back to playing "Rise of the Triad." Programmers who didn't have access to this game were forced by their bosses and college instructors to use VRML and create some kind of virtual reality world that not only took forever to load but also had the added benefit of being completely impossible to navigate. Most colleges offered at least one VRML-related course where the instructor was some short chubby guy with bulging eyes and a grey beard. He often knew as much about VRML as the students, so it was really easy to just answer "RED CONE" to every test question and end up passing the course. Here's an actual quote from the VRML 1.0C specifications: "Finally, we move to "perceptualized" Internetworks, where the data has been sensualized, that is, rendered sensually. If something is represented sensually, it is possible to make sense of it. VRML is an attempt to place humans at the center of the Internet, ordering its universe to our whims. In order to do that, the most important single element is a standard that defines the particularities of perception. Virtual Reality Modeling Language is that standard, designed to be a universal description language for multi-participant simulations." THE FUTURE!!! Wow! That sure sounds exciting and revolutionary! With such a meaningful and detailed description, I can't even possibly begin to imagine why this useful language never caught on. I mean, read that again: "the data has been sensualized, that is, rendered sensually. If something is represented sensually, it is possible to make sense of it." How anybody could expect VRML to succeed when its description doesn't even make any sense whatsoever baffles even me, and I've seen things on the Internet that would make your head spin around so fast that it flies off your neck stump and lands on the collection of carpet samples you bought off of eBay. Anyway, everybody got really excited about VRML back then because they had nothing else to do but either program in that language or play "Rise of the Triad," and since most of them had already killed that utterly retarded demon-snake-terrorist-lizard-bug-alien end boss of the game, they tried making websites in VRML. The amazingly flexible nature of this language allowed developers to construct exciting "cyberspace virtual webpage e-worlds" that included such revolutionary creations as: Planet of the Red Cubes A large blue square with a bitmap stretched across it reading "WELCOME TO MY HOMEPAGE" Something involving green pyramids A huge box that, upon entering, allowed the user to experience entering a huge box. These were all incredibly exciting and wonderful concepts that were predicted to revolutionize the Internet industry just like how Dale Earnhardt revolutionized the "dying in a NASCAR race" industry. Can you imagine going to Amazon.com and seeing a whole line of red boxes underneath a shelf of orange spheres, some of which blink and read "WELCOME TO MY HOMEPAGE"? I can't! And also I'm impotent! Oddly enough, most Internet citizens felt the same way as I do (about t

    3. Re:end result VRML without VRML by fm6 · · Score: 1

      If this is VRML, then so is every FPS game out there. There's more to VRML than just 3D graphics. There's a detailed simulation of the real world — including a lot of complex interactions. That's a lot harder to do than early VRML enthusiasts realized, which is why the topic is more or less dead.

    4. Re:end result VRML without VRML by gwernol · · Score: 4, Informative

      An anonymous coward spews:

      One of the longest running jokes in Internet history revolves around VRML... etc.

      "Hilarious" and stolen from:

      http://www.somethingawful.com/articles.php?a=926

      --
      Sailing over the event horizon
    5. Re:end result VRML without VRML by Anonymous Coward · · Score: 0

      Please, credit where credit is due:
      http://www.somethingawful.com/articles.php?a=926

    6. Re:end result VRML without VRML by figgypower · · Score: 1

      Dude! You don't get it! We can play Doom with this latest incarnation! How far away is Halo?!

    7. Re:end result VRML without VRML by Danathar · · Score: 1

      I actually agree with you.

      It would REALLY be cool to see the 3d engines in shooters used as decent VR environments. It seems all the VR online worlds that are NOT games (Second life for example) are really low performance.

      While games like Call of Duty 2, Half-life 2...their engines are quite snappy and could create quite compelling VR environments.

      Oh well....The future is always next year

  21. Re:Not for Opera 8.5 for OSX? by Esine · · Score: 3, Informative

    Works on Opera 9.0 preview on Linux

  22. A Wikientry coming your way by Anonymous Coward · · Score: 1, Informative

    http://en.wikipedia.org/wiki/Fair_dealing

    Nice to see Australians know about as much about legal matters as do Americans.

    And no, the use of the Far Cry gun isn't fair use.

    1. Re:A Wikientry coming your way by SharpFang · · Score: 1

      and the guy can be sued for total loss of revenue of $0, unless they prove his game can somewhat compete with FarCry.
      ATM the most they can do is to C&D him, which he will do, just removing the gun.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    2. Re:A Wikientry coming your way by mabinogi · · Score: 1

      Fair Dealing is _not_ Fair Use. The difference between them is that Fair Dealing sets down specific situations in which you may use copyright material. Fair Use gives you some guidelines, but leaves the decision up to the courts.
      Both methods have advantages and disadvantages, but they are certainly not the same thing.

      So the original statement still stands. Australia does not have Fair Use. (Nor does pretty much anywhere except the USA for that matter, most other countries also have Fair Dealing laws)

      --
      Advanced users are users too!
    3. Re:A Wikientry coming your way by Caledai · · Score: 1

      Yes there is a difference - and yes at least some of us know the difference..

      Fair Use means you can rip an mp3 from CD you own - and put it on your iPod (Just as an example).
      We cannot do that legally here in Aust, to put music on our iPod legally we have to purchase the music in an mp3 format or have the permission of the copywrite owner

      Fair Dealing deals with research and education - and is different from personal use.

      --
      Although it can be funny, tell them to plug the power in.
  23. here we go again... by ilmdba · · Score: 3, Insightful

    support for this sort of stuff seems like bloat to me. i mean wasn't the whole idea behind firefox to get away from the "hey let's jam everything we can possibly think of into one browser app" idea that was bogging down mozilla?

    all the code neccesary to support this canvas thing (which will probably rarely be used) is just more junk that will slow down legit bug fixes, and probably be RIFE with security holes.

    firefox will eventually just turn into 'Mozilla NG', and become yet another bloated turd of a browser, given the direction that 1.5 is taking, IMO.

    this 'web app' support should be a sandboxed plugin, or something else that can be -optionally- added on, for firefox, not built directly into it.

    1. Re:here we go again... by Anonymous Coward · · Score: 0

      Here Here! Absolutely

    2. Re:here we go again... by bitcastle · · Score: 1

      While this particular use of the canvas tag might be overkill - it has proved very useful to me (I wrote an OS X widget to graph river flows from USGS using canvas). Its another way to move more stuff to the client to make the browser more like a real ap (google maps comes to mind). Anyway I would say it has huge potential for graphing rather than using the server to create a gif or png. I limited it to a dashboard widget so I wouldn't get complaints from IE users. Screenshot and download available at http://www.bitcastle.net/whitewater.php

    3. Re:here we go again... by HeroreV · · Score: 1

      i mean wasn't the whole idea behind firefox to get away from the "hey let's jam everything we can possibly think of into one browser app" idea that was bogging down mozilla?
      No. The idea behind Firefox was "hey let's not jam not-browser stuff in with a browser" like an email client, an HTML editor, etc. The actual browser component never had any features stripped out.

      firefox will eventually just turn into 'Mozilla NG', and become yet another bloated turd of a browser, given the direction that 1.5 is taking, IMO.
      Firefox is getting more browser stuff, but it isn't adding non-browser stuff. It may get bloated, but it won't be bloated for the same reason the Mozilla Suite (now SeaMonkey) is.

    4. Re:here we go again... by slavemowgli · · Score: 1

      Of course the browser component had features ripped out. Have you ever tried to view an MNG or JNG image in Firefox? Admittedly, it won't work in Seamonkey, either, but there's lots of things that are not supported in Mozilla (either browser) by default, so the idea that everything that relates to web browsing is actually going in isn't true.

      Unfortunately, one might add. I'm not sure whether a new proprietary tag like <canvas> is a good idea, but I'd appreciate it if I could create animated images for my webpage that aren't limited to 256 colours or a 1-bit alpha channel...

      --
      quidquid latine dictum sit altum videtur.
    5. Re:here we go again... by Angst+Badger · · Score: 1

      I just downloaded 1.5 RC3 to try out the featured applet, and it seems faster than the older release I was using, and it still weighs in many tens of megs lighter than MSIE.

      --
      Proud member of the Weirdo-American community.
    6. Re:here we go again... by HeroreV · · Score: 1

      Have you ever tried to view an MNG or JNG image in Firefox?

      From what I understand, the removal of libmng (from release builds) didn't have anything to do with the move from Mozilla Suite to Firefox. I certainly could be wrong though.

      It's very sad whatever the reason is. :-( *sob*

  24. Camino beats Safari/Firefox in speed on OS X by Nevenmrgan · · Score: 3, Informative

    Works much faster on Camino 1.0 than in Firefox 1.5 or Safari. Smooth enough to "play" on a 1.5GHz G4.

    1. Re:Camino beats Safari/Firefox in speed on OS X by Englabenny · · Score: 1

      Camino 1.0 has not been released yet. But it's true that it works in the near-1.0 nightlies of Camino.

      However, in my experience Camino is smoother but has a lag making the game quite unresponsive. This vs Safari where I can't sense any lag at all; I turn as I hit the key.

  25. Shoot the Monkey and Win $20! by Neillparatzo · · Score: 5, Funny

    And of course this technology will NEVER be used for ads.

    1. Re:Shoot the Monkey and Win $20! by HeroreV · · Score: 1

      Who cares if it's used for ads? I'll just be blocking them with Adblock Plus.

    2. Re:Shoot the Monkey and Win $20! by Anonymous Coward · · Score: 0

      It'd be worth it if the monkey stayed dead.

    3. Re:Shoot the Monkey and Win $20! by ZachPruckowski · · Score: 1

      Who cares if it's used for ads? I'll just be blocking them with Adblock Plus.

      What if it was used in Adblock? I'd personally enjoy wandering around blowing up the pop-ups and pop-unders and Flash Ads I don't want to appear in my browsing life.

    4. Re:Shoot the Monkey and Win $20! by Man+Eating+Duck · · Score: 1

      You might be interested in Doom as an Interface for Process Management :)
      Want to kill a process? Just frag it.

      --
      Are you a grammar Nazi? I'm trying to improve my English; please correct my errors! :)
    5. Re:Shoot the Monkey and Win $20! by HeroreV · · Score: 1

      I can totally see a videogame involving shooting popups with lazers or something. It seems so obvious that I feel like somebody should have done it already.

  26. in other news by tod_miller · · Score: 1

    adblock adds tags to simplify blocking canvas tags.

    I like the idea of an open javascript driven presentation engine. by by flash? doubtful, lets see harvey cartels N games written in javascript first.

    I like anyway.

    --
    #hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
  27. At least... by winphreak · · Score: 1, Interesting

    ...it's better then being in Flash.

    And it seems the programming schools that claim games can be made in JS weren't lying.

    --
    "I'm a well-wisher, in that I don't wish you any specific harm."
  28. Very smooth by Anonymous Coward · · Score: 0

    Firefox 1.5 RC 3 on a laptop: Sempron 2800, 512 MB RAM, Nvidia Go graphics, gives me a completely smooth 'game'. Good 30+ fps.

  29. soon... by QunaLop · · Score: 0

    soon, we will be all bitching that certain browsers support certain non-standard tags.

  30. Like minesweeper, but better by Anonymous Coward · · Score: 0

    Wow, once polished, this is a potentially brutal time waster in the work place.

    Can't wait.

  31. And java3d takes yet another hit by Miros · · Score: 5, Insightful

    And so Java3d takes yet another hit. It's always interesting and amazing to me that games in web browsers using things like java3d never really took off. It's probably all due to the loading times, and the ammount of content you'd have to send via http. I mean, look at modern games, one of the huge differneces is the ammount of memory modern video cards have for textures, hundreds of megabytes of textures. Could you imagine having to put that kind of strain on a webserver? It would simply be imposssible! While certainly neat, this will likely become an novelty. Even for things like demonstrations on websites of products, there's flash out there. But, i digress, yet another thing you can do via javascript hacks. Bravo! let the interoperability headaches abound....

    1. Re:And java3d takes yet another hit by Anonymous Coward · · Score: 0

      www.runescape.com is pretty successful.

    2. Re:And java3d takes yet another hit by dtfinch · · Score: 1

      I thought Java3D wasn't bundled with the Java runtime, so end users would have to download and install it manually, so it had no chance of ever taking off.

    3. Re:And java3d takes yet another hit by Anonymous Coward · · Score: 0

      I dunno. If it was done in Java 3D instead, it wouldn't be such a POS.

  32. Not just for games by Lysol · · Score: 5, Insightful

    I was just looking at the api and this has applications outside games. Think graphics programs; of course, nothing like Photoshop, but enough to allow doing images in a browser. Why use Dia as a standalone app when you can have a collaborative version in a browser?

    It's coming..

    1. Re:Not just for games by 77Punker · · Score: 1

      Collaborative image editing? Like in NetMeeting, MSN Messenger, Yahoo Messenger, and the late mPlayer multiplayer matchmaker?

    2. Re:Not just for games by LnxAddct · · Score: 3, Interesting

      Here is a cellular automata simulator I've written. Right now I'm working on a simulator for Conway's Game of Life, here. Next I'm doing an interactive whiteboard using AJAX and then I was thinking about a ray caster like the one in the article but a bit more optimized and possible doing textures. The possibilities with <canvas> are pretty significant, I think we're on the verge of a web revolution.
      Regards,
      Steve

  33. Give Us Enough Rope by Doc+Ruby · · Score: 1, Funny

    Isn't "canvas" the Dutch word for make your own fun?

    --

    --
    make install -not war

    1. Re:Give Us Enough Rope by Bootvis · · Score: 1

      No it is not. Cannabis has a lot of names over here but canvas isn't one.

      --
      Read, refresh, repeat.
    2. Re:Give Us Enough Rope by Doc+Ruby · · Score: 1

      Maybe you just haven't been smoking long enough: "[Middle English canevas, from Old French, and from Medieval Latin canavsium both ultimately from Latin cannabis, hemp. See cannabis.]" :). Click the link, or at least use your imagination if you're amotivated ;).

      --

      --
      make install -not war

    3. Re:Give Us Enough Rope by Bootvis · · Score: 1

      But not in _Dutch_ :p Dutch dict

      --
      Read, refresh, repeat.
    4. Re:Give Us Enough Rope by Doc+Ruby · · Score: 1

      How come the first several links to which I pointed, some pointing to hemp experts, say "canvas" comes from an old Dutch word? Your dictionary blames it on the Belgians, like "French Fries". I thought Dutch people were like Germans, but with a sense of humor...

      --

      --
      make install -not war

    5. Re:Give Us Enough Rope by Anonymous Coward · · Score: 0

      I thought Dutch people were like Germans, but with a sense of humor... br> You insulted my honour and that of my countrymen! I demand satisfaction. I challenge you to a duel.

    6. Re:Give Us Enough Rope by Doc+Ruby · · Score: 1

      You can't do that by throwing down a broken linebreak tag. You don't seem very German or very Dutch - maybe you're some kind of humorless Alsatian.

      --

      --
      make install -not war

  34. A Wikientry coming your way-KISS Law. by Anonymous Coward · · Score: 0

    Who said anything about suing? Not every copyright/trademark/patent case ends in suing, anymore than every GPL violation ends in court. To you and Tim. C., all the company lawyer (whom is collecting a salary regardless of what he's doing. just as you all are collecting a salary while posting on slashdot) has to do is send a C&D letting the infringer know what the law says (and judging how many times slashdotters get that wrong it happens a lot) and ask him to stop. Simple as that. KISS as applied to the law.

  35. Mod up by imsabbel · · Score: 0, Troll

    I really like mozilla/firefox (using it since milestone 12, WAAAAY back), but cant they see that i only want a goddam browser that works, is fast and doesnt crash?

    With the latest version (via autoupdate) i get crashes about 2 times a day, AFTER flashblock/adblock (which should take care of most bad crash-prone stuff).

    Not to mention that thunderbird is a piece of shit. Whats the point of having a mail-client if it takes nearly a minute on a 1Gbyte A64 system to load after being minimized for 2 or 3 hours while using other applications? NO, and i mean ZERO non-mozilla-based applications i have ever used feature this nice "swap out and never come back without being dragged by the hair" behaviour.
    The only reason i am not going back to outlook is that i have a year of email in thunderbird and cant export it. Yeah to vendor lock-in :/

    --
    HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
  36. ignore the parent by LnxAddct · · Score: 1

    I am wrong, that link was not for the canvas. You are right, it is only WHATWG. Sorry, I was confused for a moment.
    Regards,
    Steve

  37. Slashdot editors? Own work? by alienmole · · Score: 0, Offtopic

    Sorry, I'm having a bit of difficulty wrapping my head around that concept...

  38. How long till doom by bombshelter13 · · Score: 3, Funny

    With progress like this, it shouldn't be longer before Firefox achieves full 'It runs Doom!' certification. Good job guys.

  39. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  40. Re:overhead (unix demo scene) by Anonymous Coward · · Score: 0

    Here is the answer to your wondering....

    http://unixscene.kameli.net/

    >>Think about the overhead, here is a triple-layered game engine ! Wonder what you could really do with these machines if you hard coded them 80's style in assembler...

  41. rootkit by Viriatus · · Score: 0

    Wow! Nice! Does it have a rootkit included?

  42. Try this by DrIdiot · · Score: 5, Funny

    Hold the space bar so you'll jump continually. Then, while holding the space bar, click on a window that isn't your browser (so the browser will lose focus). Then go back to the browser.

    Click on the canvas, and walk around. You've turned into a rabbit.

    1. Re:Try this by Anonymous Coward · · Score: 0

      awesome fun! you can get quite a leap going down the long straights!

    2. Re:Try this by Anonymous Coward · · Score: 0

      No more Battlefield 2 for you.

    3. Re:Try this by Anonymous Coward · · Score: 0

      even better, you can also add walking straight and turning continuously using the same trick, or combine them for more fun :)

    4. Re:Try this by rdwald · · Score: 1

      even better, you can also add walking straight and turning continuously using the same trick, or combine them for more fun :)

      I've got my guy bunny-hopping in circles around the central square-ish thing. Hours of fun!

  43. Java Based 3D MMORPG in your Browser by KanSer · · Score: 1

    You can play a very neat MMORPG in a modern browser that supports java. I've so far played it on windows with firefox and internet explorer and on Ubuntu 5.10 with firefox.

    It's a neat game, there's quite a bit of stuff to do for free. Subscription is cheap and gives you more quests. I don't know if the ads go away for members, but they have their own servers.

    www.runescape.com give it a shot.

    --
    • MOD PARENT UP by Anonymous Coward Wednesday April 20, @4:20
  44. TROLL! DO NOT MOD Doc Ruby UP! by Anonymous Coward · · Score: 0


    You are a submarine troll. Know what that means? You post to Slashdot for a week looking for karma and then burn it all off on blatantly offensive comments. Remember that whole flaming tree you posted about a gay governor a few months ago? How about that whole unfounded Griffin critcism? And what about your nasty comment about someone's username? And then you posted this rotten comment.

    When you reply to these posts, you link to your own posts. Couple that with your bio and you show yourself as one huge egomaniac!

    That's *MR.* Self-Righteous Asshat to you.

    Mods, don't feed this guy. Maybe without a karma stash he won't go on these trolling runs.

    --
    Trolling all trolls since 2001.

  45. wedding? by Anonymous Coward · · Score: 0

    why is it hosted on a wedding filmers site?

  46. SphereSite and Deskloops by yerdaddie · · Score: 1

    This capability quite interesting in that it might be a more standards-compliant way of doing something like SphereSite (which is Windows-only for the moment).

    While the whole sphere thing is over the top, maybe a "loop" style browser interface like deskloops would do the trick.

    1. Re:SphereSite and Deskloops by pavera · · Score: 1

      As soon as they can use proper grammar on their front page maybe I'll look at their tech

      "makes browsing more easier" - sphereSite frontpage

  47. Re:Please try harder by Anonymous Coward · · Score: 0

    Imagine that, two tech news sites that link to other sites share some content!
    Over the last few weeks, Digg's frontpage has copied these articles from Slashdot:
    Copy Machines at Greater Risk During Holidays
    Ubuntu: Best Linux Desktop for Business?
    New Free Open Source Enterprise Magazine
    Richard Stallman Accosted for Tinfoil Hat Use
    Hyperthreading Hurts Server Performance?
    The Real Reason Behind ITMS Tiered Pricing
    Apple iTunes Security Flaw Discovered?

    Etc, etc. ad naseum.
    Honestly, who cares. Digg is full of shit stories for the most part.

  48. But will IE7 support Canvas by TSTM · · Score: 3, Insightful

    Will there be a support for canvas in IE7?

    I think it will be a big factor to think about when thinkin about using canvas in some web app. Because noone will want to use it if only a handful of browsers can support it.

    1. Re:But will IE7 support Canvas by Xtifr · · Score: 1

      Actually, lots of people will: there are certain people who will use it specifically because IE lacks support for it. However, as long as IE lacks support, there is no danger that it will be used for ads! The minute it gets added to IE, it's going to have to be added to adblocker as well.

    2. Re:But will IE7 support Canvas by Abuzar · · Score: 0

      Looking at current IE vs. FireFox and other browser trends coupled with users' and developers' desires for improved, efficient, simple and attractive interfaces, it would seem that IE will eventually lose market share if it doesn't keep up and support Canvas.

      So yes, in answer to your question, IE will support Canvas. However, there is no telling to what degree it will be compatible with other browsers and to what extent it will be broken.

    3. Re:But will IE7 support Canvas by stefanb · · Score: 1
      Because noone will want to use it if only a handful of browsers can support it.

      You mean every full-feature browser execpt for IE? Last time I checked, Opera, Safari, Gecko-based, and KHTML-based browser already support it, or will do so shortly.

      If you actually wanted to say "it won't be adopted unless IE supports it", then I'd agree in principle, considering the market penetration IE has. But we'll see how that develops...

  49. Opera 8.51 / MacOsX by twopeak · · Score: 2, Informative

    I downloaded the latest Opera today for MacOsX, and it doesn't work. The alert clearly says it will only work in Firefox and Safari.

    1. Re:Opera 8.51 / MacOsX by whitehatlurker · · Score: 1

      Check this out. It is a beta release so you will want to watch out for some instabilities. Do not install over your working opera installation.

      --
      .. paranoid crackpot leftover from the days of Amiga.
  50. Two words: Statutory damages by tepples · · Score: 1

    and the guy can be sued for total loss of revenue of $0

    If Australia's copyright laws are anything like those of the United States (and that's likely given the recent "free" trade agreement), statutory damages may apply to infringement of any copyright even if actual damages are negligible.

  51. Different than IE ? by anethema · · Score: 0

    Is this a standard of some kind? Or just something that the firefox devs decided to throw in? Because it seems to me that it really isnt that much different than proprietary IE tags that break cross-browser compatibility to use.

    --


    It's easier to fight for one's principles than to live up to them.
    1. Re:Different than IE ? by CableModemSniper · · Score: 3, Informative

      Not quite a standard yet, but on its way to being one: http://www.whatwg.org/specs/web-apps/current-work/ #scs-dynamic

      --
      Why not fork?
  52. One more reason I 3 Firefox 1.5: 3D Canvas by Bushido+Hacks · · Score: 2, Interesting

    First thing I like about 1.5 is that SVG is now supported. The Second thing I like about 1.5 is the 3D Canvas FPS Engine. What will really win me over is if they offered VRML/X3D support.

    I'm taking a peek at the source codes for this web page and they are very well written. He says it does not have much direction at this time. On the contrary. This project has much potential.

    --
    The Rapture is NOT an exit strategy.
  53. Mod Parent Up by h2d2 · · Score: 1

    Just before someone has had a bad experience with your beloved peice of code doesn't mean he/she is a troll. Get your heads out of your ass and MOD PARENT UP!

    --
    Mozilla stole tabs from NetCaptor. So what? Right?
  54. Apple Powerbook G4@1.25ghz by indigo78 · · Score: 2

    Firefox DeerPark latest 1.6a1 20051125 -> perfect, I wish WoW had the same frame rate... ;)
    Safari (OS X 10.4.3 with all standard updates) -> a bit slower...
    Shiira 1.1 -> same as Safari, maybe a bit faster (should have the same engine as Safari, though)
    Opera 8.5 -> Browser incompatibility... yadda yadda...

    Anyway I think the most interesting test would be some kind of IE7 on some Vista's Beta...

    --
    I'm fat, you're ugly. I can get slimmer, and you?
  55. Canvas 3d speed by Anonymous Coward · · Score: 0

    FWIW this worked, albeit slowly on my PII-300 laptop. The demo made me think of how much processor speed might impact game playability. A faster machine would woop ass on all other players. Unless of course you program it away.

    Hmm some truth to the Intel statment "Programmers are killing Moore's law."
    Programmers force perpetual hardware upgrades. :)

  56. Works fine on a 1GHz PIII actually by Flying+pig · · Score: 1

    Not hugely fast but not bad. And yes, I do also have an athlon 64 (you insensitive clod). It really is not a very demanding application.

    --
    Pining for the fjords
  57. Re:Please try harder by HeroreV · · Score: 1

    Everybody knows that. People only come to Slashdot because of the disscussion. I visit both Digg and Slashdot and I will continue to do so as long as Digg's commenting system is so crummy.

  58. So what about VRML??? by Anonymous Coward · · Score: 0

    Where does VRML stays?

  59. And VRML?? by Anonymous Coward · · Score: 0

    What happened to vrml??

  60. Canvas is useful for other graphics tasks by CTho9305 · · Score: 1

    You can do a much better raytracer with canvas than without it - previously you'd have needed a large table or many divs to display the image, but with canvas the output can actually be drawn properly.

  61. WildTangent by Anonymous Coward · · Score: 0

    WildTangent did this with their own plug-in that allowed DirectX content to be run from an object embedded in IE.

    It used any COM-based language, but for in-browser 3D, you needed (of course) Java or JavaScript.

    I think they've gone to an online content publishing model now (away from in-browser gaming), but the API they provided allowed for some pretty good DirectX 7-level stuff.

  62. What is this canvas thing? by Julian+Morrison · · Score: 1

    What is this canvas element and what's it's purpose? It looks to me like a bitmap-based competitor to SVG or something, but built into HTML. Can anyone tell me what it's meant to be used for?

  63. Bad Headline by Anonymous Coward · · Score: 1, Insightful

    This is a "Firefox 3D Canvas FPS Engine" just because it works in Firefox (As well as Safari and Opera)? Edit you damn editors!

  64. Browsers too volatile for serious dev investment by xtal · · Score: 1

    I just completed a major 3D project that's designed to be cross platform, eventually. We chose to develop in python, versus Flash, Java, or any sort of brower-style embedded environment.

    There were good technical reasons to go the way we did, but most of the arguements against using a brower-based technology were business-related. First off, you need to guarantee someone can just download and run the application. That knocks out a bunch of canadates, even if you're willing to accept plugins. Then you're faced with the issue of investing a few man-years of work against a propietary, closed technology in some cases. Bad idea.

    Then you've got open alternatives, like this one. It's potentially a great idea, pending any performance problems on lower end machines. There's that few man-years worth of labour you can't get back easily if you make the wrong choice.

    Would you want to make that decision?

    --
    ..don't panic
  65. Gesh... by asabbott · · Score: 1

    I already beat it. That was easy!

  66. Not for Linux? by ylikone · · Score: 1
    This sucks, it's only for Windows and Mac... leaving out us Linux users once again. If you want to request a Linux client (like I did), just email them at contact@lindenlab.com

    If we all send enough emails, someone there will get the message. I really want to see more things like this run natively under Linux.

    --
    Meh.
    1. Re:Not for Linux? by Anonymous Coward · · Score: 0

      They're working on a linux client.

  67. Statutory damages What that. by Anonymous Coward · · Score: 0

    No must be damages. One of the things the australians kicked back.

    Closest thing we have to Statutory Damages is the court awarding costs, pain and suffering and the like.

    Just like companys trying to get our PBS to move to a more compad system for them to sell product. It did not happen.

    Problem here is that the claiment of damages could endup with court costs awarding against them. Ie Statutory damages are one way. Most of the australian ones are both ways. Ie Damages person reputation on the other side could be damaged by court action so claiment could end up having to pay up.

    This stops media circuses like you have. Reason Media circus increase risk of damages being canceled out or claiment having to pay up.

    Better system no need to Statutory Damages.

  68. Make a good game by DrSkwid · · Score: 1

    and they will come

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  69. He and I should hook up by deathshadow60 · · Score: 1

    I've been working on something similar for some time, without resorting to any browser specific objects like the CANVAS tag.

    mine does 3d just like how the characters in Wolf3D worked (not the walls). You put mine and his together...

    http://battletech.hopto.org/mechproject/game.html

    it fish-eyes badly, doesn't have collision detection yet, and a bunch of other things... but the math is way faster. Since his is raycasting, the use of CANVAS really shouldn't be neccessary, just position images across the screen and scale them horizontally, then it would have textures.

    --
    I went looking for trouble, and boy, I found her...
    1. Re:He and I should hook up by corsec67 · · Score: 1

      I must say, that is pretty cool for just some javascript.

      I rember having to fine tune config.sys and autoexec.bat just to have enough free memory to run a 3D game.

      That has a lot of promise, and already looks cool.

      --
      If I have nothing to hide, don't search me
  70. Um, what is so exciting about an ActiveX? by Latent+Heat · · Score: 1
    COM-based, IE -- I guess you are talking about having IE host an ActiveX control, and anything you can do in Windows you can do from an ActiveX.

    Yeah, yeah, ActiveX on IE as a security problem, and all of that. I like ActiveX, and it is a very powerful cross-language facility, but you are solidly restricted to Windows. This thing sounds like an other-than-Windows other-than-Java cross-platform way of doing graphics which is pretty interesting.

  71. Already supported with a plug-in by mw22 · · Score: 3, Informative
  72. wedding site by drDugan · · Score: 1

    so if you go up 2 levels in the directory -- the site where this is hosted looks like a team that does wedding photography and video.

    From the front page: http://www.abrahamjoffe.com.au/


    Your wedding day will be one of the most joyous occasions in your life. We are totally dedicated to preserving your special day with as much class and quality as possible.


    wow these guys need some advertising help.

  73. Story Title by AgNO3 · · Score: 2, Informative

    Why is the story title Firefox 3D canvas when this thing runs on other browsers. (and probably runs in Konquerer too) So it runs in AT LEAST 2 other browsers but the title is Firefox? I have nothing agaist FF Since its my main (99%) browser for Windows, but geez. Fan boy titles for Slashdot articles is getting out of hand. And you all know if the title of this article had been Safari 3d Canvas someone else would have written this and subsituted Safari for FF. Peace. Tip your waitress, I'm hear all week. Goodnight.

    --
    OMG Ponies!!! with Glitter!!!! I miss Pink :-(
  74. Wow by BejaminJoffe · · Score: 3, Informative

    Gee thanks guys your gonna kill my server. It is a shock to see how much coverage this game is getting, this is the first 3D environment I have ever coded so it is pleasing to see that I am not the only one enjoying my efforts. When I ran my tests about 80% of the processing power was spent on rendering the trapeziums to the canvas which I have little control over. As far as I can see most of the math was fairly optimal, no obvious problems there. I will probably continue developing this in a few weeks when I am on holidays, probably by that time several people will have coded far more superior ones but I will see... The wedding business is my brother's, I don't have my own server. Here's another little code I made, not quite as interesting though: http://www.random.abrahamjoffe.com.au/public/JavaS cripts/canvas/interpolation.htm

    1. Re:Wow by BejaminJoffe · · Score: 2, Informative

      Here's an older version of the Canvascape: http://www.abrahamjoffe.com.au/ben/canvascape/old. htm which is alot worse but uses the original raycasting technique.

    2. Re:Wow by uncl_bob · · Score: 0

      If this (old) version uses raycasting, what does your new version use? I thought raycasting was THE way of rendering maze-like (a lá wolfenstein 3d) pictures.

  75. Only DOOM fans will get the joke by Neo-Rio-101 · · Score: 1

    When they get Doom running on Firefox, let's see how the browser copes with nuts.wad

    --
    READY.
    PRINT ""+-0
  76. Thanks a lot! by imsabbel · · Score: 1

    I googled quite a while and found only a commercial software (which i didnt want to buy for a single use) or a workaround using eudora as proxy that doesnt work (as eudora doesnt recognize thunderbirds mbox folders... so much for universal formats...)

    --
    HI O WISE PRINCE. WHT TOOK U SO DAM LONG?