Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Open Source Hardware Hacking Games Build Hardware

Gameduino Project Aims To Game-ify the Arduino 83

beckman101 writes "Gameduino is a DIY game platform built on a shield for the Arduino. It's open source hardware (BSD and, for the code, GPL). Okay, that's fairly cool. But what makes this project special is that this inexpensive board has hardware that's capable enough to be interesting. The result is a lo-fi game console built on an FPGA that gives you retro graphics without being, you know, too retro. Games actually look good."
This discussion has been archived. No new comments can be posted.

Gameduino Project Aims To Game-ify the Arduino

Comments Filter:
  • Minecraft (Score:3, Interesting)

    by devxo ( 1963088 ) on Tuesday March 08, 2011 @06:26AM (#35417218)
    If someone made a Minecraft for the device, I could buy it. The current codebase is way too heavy for the type of game it is - it doesn't even check if you should see an object, it just draws everything anyway. Make a lightweight version of Minecraft and it's perfect!
    • I'm pretty sure that adding occlusion culling would increase the size of MC's codebase, not decrease it. The issue isn't that MC has too many lines, it's that certain useful technical tricks are missing.

      • The world of minecraft has a basic geometry (a huge 3D grid of cubic blocks) that makes occlusion culling almost trivial, given that the engine is re-adapted to that.

        See Cube and Sauerbraten, for engines which were written with occlusion culling in mind from the ground up, and which support way much more complicated geometry at quite impressive framerates.

        The problem is that the minecraft engine was probably written in a completely different way and adding this feature would require a complete rewrite of th

    • by lkcl ( 517947 )

      is that the same as minesweeper? :)

    • It's completely useless for 3D (sprites and scrolling only!)

      • Depends on how fast the device(plus whatever i2c master is controlling it) can generate new sprites, I suppose.

        Since the display is actually 2D, the camera's view of the 3D scene could be represented as a collection of sprites generated from the surfaces of the 3D polygons by the perspective-appropriate transformation...

        Given the relatively low ceiling on number of sprites, and the fairly limited RAM and computational capacity of the arduino, you might well have real trouble getting good 3D; but I can
        • It's not the graphics output speed that would be the limiting factor, it would be calculation of the actual 3D scenes. I expect even running Wolfenstein would be pushing it to its limits. With the memory limitations you'd probably have to do with very very basic textures if any, and without an FPU it would be very slow to calculate the movement and rotation of a lot of vertexes.

          • I certainly wouldn't argue with the contention that this device(especially if paired with one of the more limited Arduino boards) would be a very limited 3D device. Getting it to do 3D would be a bit of a hack, and you would be severely limited in scene complexity(and quite possibly refresh rate) if you wanted to do any real 3D. I just wanted to argue that it would be better than completely useless, just challenging and limited for the reasons you describe...

            With storage being so cheap and capacious now,
            • Actually I saw a really interesting level for LittleBigPlanet2 where the guy had hacked the 2D gameworld into a very basic FPS that drew everything by painting sprites on the screen. You could only turn at 90 degree angles, everything rendered very slowly, so obviously not exactly the best gaming experience ever, but it was incredibly clever.

              • very basic FPS that drew everything by painting sprites on the screen. You could only turn at 90 degree angles, everything rendered very slowly

                ...like that arcade game XYbots from the early '90s. Later, after I learned about 3D graphics, I realized the origin of the name.

          • No, it's got less to do with the computing speed (you could use one of the pin-for-pin-compatible ARM boards) and more to do with the Gameduino not having an actual framebuffer.

        • Oops, should be SPI, not i2c...
        • I guess you *could* render a scene entirely on the host controller then upload it to sprite memory when it's ready - use the gameduino just as a frame buffer. It would be limited to a four color image though.

    • I've checked out Minecraft, and I don't get it. Clue me in. What makes this so popular?
    • by Spykk ( 823586 )
      Occlusion culling in a dynamic game world like minecraft is not trivial. Would you be willing to put up with pauses every time a block is placed or destroyed while the bsp trees are regenerated? I believe minecraft does occlude blocks that are completely walled in by opaque neighbors so you would really just be eliminating interiors anyway. With today's hardware you are often better off dumping triangles on the video card than burning cycles trying to decide what you can get away with occluding.
      • The trees don't have to be regenerated but rather updated. It's not that difficult with kd-trees. Surely, it's not optimal, but can give reasonable results.

        New hardware supports occlusion testing on the GPU. There's a query method to test how many or if any fragments were actually drawn between the beginning of the query and its end. You can then hierarchically draw bounding boxes and only actually draw the geometry you want.
        Check this [nvidia.com] out.

  • some real cool shit once in a while !

    this thing can actually develop into a more powerful gaming platform if people just concentrate on it.

    and, its actually free !!
    • Hate to admit it but yes, this thing looks very cool. To an 80s game programmer (like me) it would have been a dream machine - four-way hardware scroll and a ton of sprites.

      • by harrkev ( 623093 )

        And, as a bonus, all data to/from the graphics engine is sipped through a SPI pipe. If you thought that old AGP 4x was slow, wait until you go through SPI.

        Wait.... PCI-express is a serial protocol... SPI is a serial protocol. Doesn't that mean that they have the same performance ;-)

        • On the Nintendo Entertainment System, data between the CPU and the PPU was pushed through an 8-bit parallel port whose practical maximum was 1 byte per 8 CPU cycles, or about 224 kB per second. That'd be fine, except all transfers had to finish during vertical blanking, the 8% of the time that the PPU was resting between frames. There was a faster hardware-assisted copy that could push 256 bytes in 512 cycles, but it worked only for OAM (sprite display lists), not background maps or graphical tiles. If this
        • by FyRE666 ( 263011 ) *

          I don't think bandwidth is an issue in this design. I mean, once the initial data is copied to the RAM on the gameduino, how much really has to change per frame for the average sprite based game with a scrolling background? If you're just scrolling horizontally, you only need to change less than 40 bytes for each 8 pixels moved, and updating the coordinates and character mappings for a few sprites isn't exactly a massive task, nor is checking for collisions as it's hardware based.

          I think one thing that coul

    • this thing can actually develop into a more powerful gaming platform if people just concentrate on it.

      I think the point is kinda that it's *not* powerful. It's about the right speed to natively run retro games.

      In a way it sorta reminds me of the Dingoo A320 [wikipedia.org]. I've got one of those, it's pretty awesome. What's not to love about Metal Slug 2 in your pocket? :D

      • i said 'can develop'. not 'is'. remember what pentium overdrive was ?
      • by Thing 1 ( 178996 )
        Soon today's games will be retro, is I think his point.
      • by Yvan256 ( 722131 )

        Is the Dingoo A320 powerful enough to run Neo-Geo games in native resolution with full audio at 30p/60i FPS?

        • It's pretty beefy (especially for the price) - 330MHz or thereabouts, 32MB of RAM, 4gig of flash. Not sure of the exact framerate it gets in Neo Geo emulation but it looks pretty smooth on most games. This video [youtube.com] shows some gameplay.
          • by Yvan256 ( 722131 )

            YouTube is now completely useless. It keeps asking me to log into my account but I don't remember the password and it was created with a throw-away email account.

            If I click "sign out", then try to click on your link to view the video, it remembers my username and ask me to login again.

            The worst part? I deleted all YouTube cookies, so why does it remember me?

            • by Yvan256 ( 722131 )

              Ah, I see... had to delete all cookies which contained "Google". Next up: making YouTube completely useless by forcing WebM down our throats.

              And even Slashdot buttons look like crap now...

            • by Yvan256 ( 722131 )

              Even worst, HTML5 playback doesn't work anymore. Good-bye YouTube, Google is officially the new Microsoft.

            • :( Well, it looks pretty much like it does in the arcade, but only 2.4 inches across. :P Very playable. :)

              As for GooTube, try logging out of Gmail.
              • by Yvan256 ( 722131 )

                I don't have a GMail account.

                Deleting both the YouTube and Google cookies worked. but their HTML5 playback in H.264 no longer works in Safari. Are they starting to sabotage H.264 support on YouTube to try and push WebM? Safari doesn't do WebM and I deleted Flash from my system. Vimeo works fine in HTML5, in fact better than YouTube (when it used to work, for the handful of videos that had HTML5 support to begin with).

    • by Yvan256 ( 722131 )

      If someone could port MAME to it (for at least most of the earliest 2D games) and they'll sell thousands instead of hundreds.

  • by Joce640k ( 829181 ) on Tuesday March 08, 2011 @06:46AM (#35417316) Homepage

    The thing has a compressor with access to the video RAM which runs FORTH? I bet the guy who came up with that design has a beard....

  • Not just for games (Score:5, Insightful)

    by AC-x ( 735297 ) on Tuesday March 08, 2011 @07:05AM (#35417422)

    Having video output from an arduino would be useful for all sorts of projects, not just games.

    • ...also very true (but I have no mod points today).

      400x300 isn't massive resolution but I bet there's a lot of uses for something like that in public information displays, or just showing debug info for your Arduino project.

      • by nostrad ( 879390 )

        It's an FPGA on there with verilog code available. Go grab the Xilinx WebPack (free, windows/linux), get a JTAG cable (I've seen Xilinx USB-clones for less than $50 on eBay) and get cracking.

        Getting to know the tools is hard, learning to think in VHDL/Verilog is hard (at least if you're not used to thinking in terms of logic gates and other hardware) but you can transform that board into pretty much any hardware you'd like and control it from the arduino. The reason for the 400x300 is probably memory limita

        • Well, I guess you could do that...

          There's only 32k of video RAM though so you won't be able to go *too* crazy.

          • 32k is small for the intended usage :
            - a gaming device.

            Games need the caracter map to be able to display full-colour tiles, using several palette, features truckloads of sprites (up to 256) collision detection, etc.
            (==the equivalent of rather good console/arcade video chip of the late-8bit to 16bit era)

            That's purely overkill for debugging, where one only needs to display ASCII (a 256 character set of monocrhome tiles - no palettes, except maybe for selecting a different foreground colour on specific charact

      • It's arguably overkill for debugging purposes, since the Arduino already has USB -> serial support for communication with a computer(and on the bench, you'll have your computer, and in the field, a cheap 'n nasty laptop just new enough to have a USB port and run a terminal emulator will be cheaper and more battery powered than just about anything that accepts VGA input), or a logic-level Rx/Tx for chatting some more basic serial device, or can drive an HD44780 display with 6 pins(fewer if you snag one of
    • There is a library (TV Out) which already outputs 2 bit colour to PAL or NTSC, and some games written for it: http://nootropicdesign.com/hackvision/ [nootropicdesign.com]
  • by Yesfan001 ( 1060170 ) on Tuesday March 08, 2011 @08:01AM (#35417696)

    Another option for retro-gaming hardware is Andre LaMothe's XGameStation [xgamestation.com] line of DIY kits.

    Looks like they now have a "Chameleon" [xgamestation.com] line of kits, in both 8- and 16-bit flavors, which are similar to Arduino or BASIC Stamp systems.

    I have not personally used these, but they appear to be pretty cool.

    Enjoy.

    - -
    Pete

    • by spinkham ( 56603 )

      The Uzebox [belogic.com] is another one, which has a bigger developer folllowing than the Chameleon boards and even has an emulator for development use.

  • I mean, cool factor is always cool, but does this really provide better capabilities than what is possible with homebrew on some other system that would cost you no more to get started on?

    • Are you like, 14? Try to escape the gravity of your short sightedness and put some imagination into the invisible world around you.

      Yes, yes there's a point, but you aren't privy to it because your imagination is dead and clings limply over you as faux-darkness.

      Maybe it costs a lot more than the next cheapest identical solution. Can we find a repose that uses more than black, and white?

      If you really are 14, you have no right being uncreative. You seriously need to look beyond yourself for where your creat

      • Maybe it costs a lot more than the next cheapest identical solution. Can we find a repose that uses more than black, and white?

        That was what I was asking, almost; s/identical/similar/

        If you really are 14, you have no right being uncreative.

        If you really registered that UID all by yourself, you have no right thinking I'm 14 after all the years we've both been here.

    • does this really provide better capabilities than what is possible with homebrew

      This won't get you sued, unlike homebrew where Nintendo and Sony routinely sue companies that deal in homebrew-related hardware. If the video can be redone into more consumer-electronics-friendly formats (composite, S-Video, component), it might even be possible to use this as a platform for developing and selling your own standalone TV games [wikipedia.org].

      • This won't get you sued, unlike homebrew where Nintendo and Sony routinely sue companies that deal in homebrew-related hardware.

        It's interesting that this list doesn't include Microsoft. I know there to be a homebrew scene at least on the original Xbox. I imagine there to be less of one on the 360 (XNA aside) but I've never even looked into it so I honestly have no idea. I can't recall anyone ever getting into trouble for using the official XDK, although there were plenty of hoops jumped through for the sake of avoiding such unpleasantness... and because I don't recall doesn't mean it didn't happen.

        • by tepples ( 727027 )

          Nintendo and Sony routinely sue companies that deal in homebrew-related hardware.

          It's interesting that this list doesn't include Microsoft. I know there to be a homebrew scene at least on the original Xbox.

          Hence present tense. In the past tense, Microsoft was one of the companies that sued Lik Sang out of existence.

          I imagine there to be less of one on the 360 (XNA aside)

          As I understand it, the far smaller 360 homebrew scene is due to XNA and Media Center Extender. XNA is an official way to make and sell homebrew games, and MCE does much of what the Xbox version of XBMC did.

    • by harrkev ( 623093 )

      This is an open platform, with a great software interface. Complete documentation that is written by the guys who made it (not some reverse-engineered stuff).

      Also, try to homebrew on a NES. Guess what? You also need a cartridge with some FLASH memory on board. Those are not free. I would imagine that the homebrew "development kit" is not nearly as polished as the Arduino & Gameduino.

      • Also, try to homebrew on a NES. Guess what? You also need a cartridge with some FLASH memory on board.

        You really can't just ZIF an EEPROM? You can get a prom burner for like ten bucks. You can get a ZIF for about that. You can get an iron for about ten bucks. You can get a NES for about ten bucks. You can get solder and braid for about ten bucks. IIRC this shield is about fifty bucks and you still need some kind of Arduino to attach it to. Either way you need some kind of PC, too. Anyway I'm not suggesting that this device has no purpose, I'm asking if this device has no purpose.

  • The Uzebox [belogic.com] is another ATMega-based game console, except this one doesn't cheat with a big FPGA on top of it. They cheat by overclocking the AVR.

    One thing that seems missing from a quick overview of the Gameduino... what about the gamepads? They talk about video, audio, sprites, registers, etc... but nothing about controllers.

    • The asteroids page [excamera.com] claims that a game uses a set of four push buttons (left, right, up, fire). This means an Atari 2600 joystick or a Sega Genesis gamepad would likely work with the appropriate connector, as those are electrically similar in a way to a set of common-ground push buttons. Or an NES or Super NES controller could be connected as an SPI slave.
      • by FyRE666 ( 263011 ) *

        Another option is to pick up an old arcade machine from an operator for next to nothing and canibalize the sticks and buttons from that (or just buy them from Ebay, they're not expensive)

      • by Yvan256 ( 722131 )

        Just because it uses the same connection doesn't mean the SEGA Genesis gamepad isn your typical dumb switches Atari-style joystick. It uses a 74HC157 internally.

        My point was that the Gameduino should have specified an interface from the start to simplify the whole thing. Some people will go with an Atari interface, others with a SNES interface, and so on... Games will be compatible on everything except controllers, which is kind of dumb since it's the easiest part to do.

        • by tepples ( 727027 )

          Just because it uses the same connection doesn't mean the SEGA Genesis gamepad isn your typical dumb switches Atari-style joystick.

          Yet switches muxed by a 74HC157 are compatible with a lot of devices expecting common-ground dumb switches and vice versa.

          My point was that the Gameduino should have specified an interface from the start to simplify the whole thing.

          There are really only two standards that need support: SNES (SPI) and Genesis (multiplexed parallel switches). Have you mentioned this to the Gameduino folks?

    • I believe it says they're using a sparkfun control pad. It seems there are a bunch on their site.

    • by Nevo ( 690791 )
      The Gameduino handles the video output. Any input device you'd like can be connected to the Arduino that's running the show.
  • We're talking about a processor that can reach up to 66MHz. Which isn't too stellar from the point of view that we share today concerning Processor speed, but consider:

    No need for a heavyweight OS (no need for multitasking, no need to consider other programs running).
    No need for a hypervisor or other DRM (seriously, nobody but the maker of commercial software wants it)
    No need for "generalist" hardware (just plug in the hardware your current game needs).

    The result is surprisingly little overhead. Almost 100%

Every nonzero finite dimensional inner product space has an orthonormal basis. It makes sense, when you don't think about it.

Working...