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!"
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.
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.
:D
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!
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. :-)
Hexy - a strategy game for iPhone/iPod Touch
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.
Does this mean we'll finally get Super Mario Brothers 4?!
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.
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.
Those gold medal games must be awesome, then.
Rob
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.
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.
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.
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è ;-)
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.
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.
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
May we never see th