Slashdot Mirror


Carnegie Mellon Students Develop New NES Games

dalangalma writes "Students at Carnegie Mellon University who took the student-led course 98-026: Game Development for the 8-bit NES have finished up their ROMs and made them available for download. Most of these ROMs were developed using NBASIC, which was written by their instructor, Bob Rost. These are some of the first new NES games developed in years, and best of all, the ROMs are legal! You can get the games and learn about the NES (and the software tools developed for this class) at the course web page. You can even start developing your own games!"

23 of 60 comments (clear)

  1. This is what the industry needs. by JavaLord · · Score: 4, Interesting

    A class where students actually make a game, rather than just design it. Game design is one thing, and everyone "has an idea for a game" nowadays but not everyone can make one. I'm glad to see students working on a console, even if it is an old one.

    1. Re:This is what the industry needs. by 0x0d0a · · Score: 4, Insightful

      Game design is a different sort of thing though. I think both are interesting. There are a number of properties that a good game should have (and I haven't seen much attempt to analytically break it down). For example, repetition is generally a bad thing. Syncing visual stimmuli to audio stimuli tends to be exciting (if you can put together an intelligent music engine and sync beats to something, you might have something interesting going -- Rez depended heavily on this, for example, but it'd be okay to be less blatently music-oriented. Minimizing time that a player is "out of the game", be it chapter screens or a "death screen" reduces addictiveness, since it provides opportunity for a player to stop playing. Quake did a good job here -- click and you're back in the game. Players become more involved in a game if they feel that they are "gaining" something constantly -- RPGs lived for a while on almost this characteristic alone. So on and so forth...

    2. Re:This is what the industry needs. by JavaLord · · Score: 2, Interesting

      Game design is a different sort of thing though. I think both are interesting. There are a number of properties that a good game should have (and I haven't seen much attempt to analytically break it down). For example, repetition is generally a bad thing.

      I think they are different also. I find that most schools that offer "Video game" courses tend to lean twards design. Being a programmer, this doesn't please me that much. :) As for the repetition, it depends if the person considers the repetition fun. One mans fun is anothers boredom. MMORPG's are a good example of this. Some people I run into are hopelessly addicted to them, other are utterly bored by the repetition and lack of conent. I agree that repetition for the sake of content is a bad idea, but some personality types are attracted to this and I think feel confort in a stable environment. I know this sounds strange, but how many times have you seen someone replay the same game over, and over and over.

      Syncing visual stimmuli to audio stimuli tends to be exciting (if you can put together an intelligent music engine and sync beats to something, you might have something interesting going -- Rez depended heavily on this, for example, but it'd be okay to be less blatently music-oriented.

      Oh yeah. So many games do this poorly. While I'm not that musically inclined, some games just "have it" where the music fits the mood(Uplink, Rez, The Legend of Zelda, Super Mario Brothers, Unreal Tournament, etc) others feel like the music was haphazardly slapped onto the game by the marketing department (Madden 2004 springs to mind). A few actually manage to use sound to significantly enhance gameplay (Counterstrike).

      Minimizing time that a player is "out of the game", be it chapter screens or a "death screen" reduces addictiveness, since it provides opportunity for a player to stop playing.

      Or it just frustrates the hell out of them. I started playing Ninja Gaiden on the X-Box this weekend. I had to sit through a silly intro about some dark dragon sword. I kept hitting start, but alas the authors felt I needed to know about this sword to play an action game. After 2 minutes of frustration, the game started and I managed to die before I made it to a save point. This managed to frustrate the shit out of me since I had to sit through the damn intro again to start over. While this is a minor complaint about a game that everyone loves, it still is a good example of frustrating a player.

      Quake did a good job here -- click and you're back in the game.

      It's so true, that is what makes FPS games like digital crack. Ok, you died you lose all your weapons and respawn. Time to start again. There was an old playstation fighting game like this, called Bushido Blade. The fights were quick, you could kill each other in 1 hit with a clean strike. However, you could just press 1 button to play the same match over and over again. A friend and I played 400 matches one night. It was like we were rats hitting a button provided by a scientist to get more drugs.

      Players become more involved in a game if they feel that they are "gaining" something constantly -- RPGs lived for a while on almost this characteristic alone. So on and so forth...

      I touched on MMORPGS earlier, but they are living on this. People do the same things over and over again (Star wars galaxies is a good example) for the perception that they are gaining something (progress twards Jedihood, their next skillbox). It's amazing how addictive these games can become for some people in spite of the repetititive game play.

  2. Re:Developping homebrew for the NES, better than P by JavaLord · · Score: 2, Insightful

    I wonder if I should develop my first serious homebrew game under NES or Gameboy? It will be instantly cross-platform under all those emulators, less likely to encounter those nasty hardware configuration problems and I won't have to worry about conforming to the latest 3D graphics.

    I would go for the gameboy if I were you. You could buy a compact flash card then and play your game on a gameboy advance which is a bit cooler to show off than just playing it on an emulator on your PC.

    Oh, and I couldn't resist: first post! Nah, that was me. YOU FAIL IT! :D

  3. GBA, too. by BigZaphod · · Score: 4, Informative

    There's a lot of this sort of thing going on for the GameBoy Advance, too. Its a lot of fun developing for such limited systems. :-)

  4. Don't really see the news in this by Grey+Ninja · · Score: 5, Informative

    Homebrew games have been around since the Atari days. I honestly don't see what's so newsworthy about this.

    But that being said, my homebrew system of choice is the GBA. It's easy enough to program for, (in fact, it makes game programming quite dreamlike.) and it's powerful enough to do some pretty cool stuff. I recently bought a flash cart for it as well... cost me almost $200, but I think it will be worth it when one of my projects gets close to reaching completion.

    1. Re:Don't really see the news in this by crombie · · Score: 4, Insightful

      I think reason that it's newsworthy is because the class is a homebrew game development class, which I've never really heard of being done before.

      Kinda cool really, wish my University had that class. Doesn't matter now though, my job takes care of that...

  5. Imagine the Possibilities by dolphin558 · · Score: 2, Funny

    Does this mean we'll finally get Super Mario Brothers 4?!

    1. Re:Imagine the Possibilities by trompete · · Score: 2, Funny

      You'd better call it something else to avoid copyright infringement.

      I'd call it "Mickey and Pluto go to Donald's House"

    2. Re:Imagine the Possibilities by Anonymous Coward · · Score: 3, Informative
      Actually we've had Super Mario Brothers 4 for years. Check the title screen of early versions of the Japanese version of 1991's Super Mario World. In tiny letters above the logo you'll see "Super Mario Brothers 4". This leads in to the sequel, Super Mario World 2: Yoshi's Island (yes, that's the full title).

      What I want is a new 2D side-scrolling platformer Super Mario game. We haven't had one of those since 1992's Super Mario Land 2: Six Golden Coins.

    3. Re:Imagine the Possibilities by burns210 · · Score: 2, Funny

      someone should back port super mario brothers from the SNES to the NES... that would be badass... use the original sprite/bitmaps from Mario Bros. 1...

  6. We do this already in high school! by Nomihn0 · · Score: 4, Interesting

    Actually, my high school does this.
    If time permits, the students in the Java programming class get to design and code a fully networked multiplayer Java game. The class works as a team to write the game.
    The class has been known to experiment extreme programming techniques for short stretches also. Also, most tests are open-book and internet (as real-world jobs are). I find this pretty impressive. Most schools take the easy way out and stick to an oppressive lecture-only teaching format. Booklearning gets tedious and gives you no idea of how the industry works in real life.

    1. Re:We do this already in high school! by wastedimage · · Score: 4, Funny

      brag brag brag. I got dos and turbo c!

      It snowed every day too

  7. Marketable skills by AtariAmarok · · Score: 5, Funny

    What great marketable skills they are being taught. Once they get out of school, they will surely be able to dominate the videogame industry of either Albania or Burma.

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:Marketable skills by Anonymous Coward · · Score: 2, Insightful

      You joke, but I know somebody who knows C++, Java, PHP, and just about any other current language you could think of... and he got hired at his current job because he knows COBOL.

  8. Sack of Flour, Heart of Gold only got a silver? by Pluvius · · Score: 2, Funny

    Those gold medal games must be awesome, then.

    Rob

  9. Re:Developping homebrew for the NES, better than P by mrgreen4242 · · Score: 5, Informative
    Actually, the GBA can easily play NES ROMs via an emulator. So if you develop for the NES you can still show it off on your GBA, if that's your thing.

    Also, you can play NES ROMs on most modern PDAs, so you have even more platforms available to you. In the end, you should pick the system that has the features and development environment that suits your game.

  10. first NES games developed in years? by radimvice · · Score: 5, Informative

    These are some of the first new NES games developed in years

    Hardly some of the first...There have been tons of homebrew NES demos and full games developed within the past few years. Well-polished games like Chris Covell's Solar Wars and Kent Hansen's Bombsweeper are polished games that put Bob Rost's own self-proclaimed 'NES game of the century', Sack of Flour, to shame - if not on code complexity and dev team size, on well-polished game design and playability. Not to mention the promising Megaman: Vengeance homebrew game being (slowly) developed by the folks at Dragon Eye Studios. The rom hacking community has produced plenty of other high quality rom hacks that do amazing things with the NES.

    Either way, I think it's a cool project. I first discovered the student class webpage a month or two ago, and I'm glad that the class ended successfully.

  11. Re:Seems pointless by JavaLord · · Score: 4, Insightful

    see that teaching a course where the output is a complete game is valuable but why do it for a NES emulater and why in a dialect of basic??

    Computer Science students often start off with Pascal. It's not as important what platform they are programming for, It's more important that they learn the basic concepts for making a game. While teaching J2ME coding on a Cell phone emulator might be more practical for a 1 man development project, it doesn't mean teaching for the NES is worthless.

    Students will learn a lot more being able to produce sightly more unfinished demo's using more relevant technology. For example which is more useful to a potential game designer, being able to write and understand algorithms to manipulate the pallete to get more apparent colours or learning how to use Direct Input (or some other modern API, like OpenGL)??

    I don't think the course is about trying to get a job in the gaming industry afterwords, it's more about concepts that are needed for game devolpment (ie Double Buffering, different types of collision detection). While you might understand these things if you have made a small game already, you probably don't if you just have a CS degree.

  12. Xilinx board by wickedj · · Score: 4, Interesting

    I remember I took a computer systems architecture class in college where we took a programmable Xilinx board, two "customized" NES controllers, and a monitor and created our own game system. We emulated our own MIPS processor, created a compiler, wrote our own OS and filesystem and then wrote Pong for the system and a driver for the monitor and the controllers. Needless to say, it was a learning experience. Timing was a pain. We had about 9 weeks to do it all and I don't think we finished. Most of the parts were completed but we didn't have time to integrate everything. I wish we did, it would be nice to say I developed my own "console" on my resumè ;-)

  13. Re:Seems pointless by dalangalma · · Score: 5, Informative

    Even simpler - this class was for fun. It was only 3 units (most CS courses are 12) and didn't count towards our major. It's just one of the fun student-taught classes that CMU lets students set up on their own for other students. Lots of people enjoyed developing for the technology that had been one of the biggest sources of entertainment when they were kids.

    We had a real Game Development course that semester that was much harder that focused on OpenGL, DirectX, shaders, programming for consoles, and working in the industry.

  14. Game reviews by Mprx · · Score: 4, Informative

    I played and reviewed all the seal rated games to completion (except Gravedigger) without cheats or savestates. Reviews:

    Galaxxon: The Third War
    This game has good graphics, but the gameplay has one very big flaw. Because only one enemy type presents a serious threat (the spinning things), it's very easy to just ignore all the others unless you need to kill one to make another enemies respawn. Because there's no scoring system and the timelimit is mostly meaningless, it's very easy to win by just sitting in the middle and hammering fire. Even if you chose to play "properly" (much more fun), there's no real challenge until at least level 4. This game is too tedious to be real fun. My ship's firing glitched up once, but it fixed itself at the end of the level. No other bugs noticed.

    Dikki Painguin in: TKO for the Third Reich
    What little there is of this game is great. Awesome graphics, really fun gameplay, and plenty of challenge without feeling cheap. Also there's something extremely cool about playing a sword weilding pengiun who fights Nazis. Good music too. The only problem is it's far too short, I hope the "To Be Continued.." ending means more development will happen. No bugs noticed.

    Grave Digger
    A puzzle/action game, but it's a puzzle that I find quite boring. I didn't play this for long. Good music, no bugs noticed.

    Sack of Flour, Heart of Gold
    Graphically and gameplay-wise inferior to Painguin, but this game is still quite fun. Varied levels and an interesting dark/light world system. Challenge is almost nonexistant, I completed this game very easily.

  15. Re:Lucky SOBs by 0x0d0a · · Score: 4, Informative

    I went to CMU. I also had the opportunity to work with one of the people in the class a bit early on (I remember one nasty late night session with that guy finding an inverted branch bug in the compiler that Bob Rost had written).

    CMU has a couple of game dev classes. James Kuffer teaches an *excellent* game dev class that started on the PC (Windows/Linux, whatever you're interested in) but apparently this year has moved to including the XBox for some folks interested in brewing up XBox games. The party he threw at the end of the class, with game systems and games as prizes, tons of projectors playing games on a huge screen, and people chatting about algorithms and the like was cool. There were guest speakers from a ton of dev houses, and the class was co-taught with someone fromm the UT2004 team. There's another class aimed at game design that I'm not familiar with, and Randy Pausch's Building Virtual Worlds. CMU has recently had a bad streak of luck with graphics classes (every time they start beefing up their graphics department, ATI or NVidia or someone comes in and hires them away -- I never had the opportunity to take Graphics II for this reason), but it's still fun to muck around with this stuff.

    While this sort of thing is cool, it's not something that cannot be done anywhere. These classes are more something that people do because they're fun or for the hell of it. NES Dev in particular only gave a three credits (and CMU's metric is roughly a credit for each hour a week you should spend on a class, including homework, which is wildly unrealistic for NES Dev). It's run entirely by a student that thought that getting together a bunch of people who wanted to do up some NES games for the heck of it would be fun. You can do the same thing with folks online. These classes aren't really part of the core curriculum (especially this one).

    I do have to say one thing -- while it's neat to have new NES games, the limitations of the system are...stunning. It's very frusterating to do a lot of things, and difficult to indulge in the cleaner designs of today. In many ways, it's nice to develop on newer systems.

    I think that CMU is a blast, and I'll recommend it to folks interested in CS (particularly if they want to go into research). However, you really can get a good education anywhere -- if you take classes and do the bare minimum anywhere, you can get by only doing a minimal amount. There are few resources at CMU that you can't get at elsewhere with a bit more effort. Do stuff you're interested in! If you want to learn about networks, run out and add some cool features to one of the P2P clients out there. Like graphics? Hook up with the Crystal Space team or one of the raytracer folks out there, and try implementing somem of your ideas. Hanging out with people that are enthusiastic about the same things you are and like trying out new stuff is, IMHO, the biggest benefit of being somewhere like CMU, and while you may not be able to be physically where you are, they're all over FreeNode and on tons of computer science forums and the like. Even for grad school -- all the stuff you can learn from is out there on research papers, and I've found that professors are marvelously helpful if you simply fire off a randomm, nice email with a question -- I've sent emails to people at all kinds of academic instutions that I wasn't at with short questions that aren't answered on the 'Net, and if they get intrigued (and good professors are generally pretty easy to intrigue) it's often not hard to get a friendly answer or two.

    The single best (and IMHO, the toughest) undergrad CS course at CMU is Steven Rudich's 15-251 class. All the course notes assignments, and content are freely available online, and you are free to go through the course yourself. Prof. Rudich is a great lecturer (an example: his first lecture each year involves him ru