First of all, I’d hope you’re aware of http://www.experimentalgameplay.com/ - obviously, that’s not undergraduates, but every game was written in under a week. That’s some pretty serious inspiration.
Re: the robots, I’d imagine another issue could be that it’s just plain damn hard. Until you’ve spent a considerable amount of time writing logic for robotwars simulators, and learnt the dos and donts, there’s a really big steep learning curve to overcome in making the response’s in any way “effective”. If they aren’t effective, they aren’t encouraging.
IME, the best undergrad games (and non-games) were the ones:
- very quickly got something intersting on the screen
- had almost infinite directions for students to explore
- could be run with very inefficient code perfectly effectively
For instance, one we had on our course was Mandelbrot generators. We were given the colour algorithm (hue-based) and told to render 10x10 pixel patches, on a window 400x400, and then when that was complete render over the top with 1x1 patches. We were also given screenshots of what a 400x400 @ 10x10 looked like with the given colour algo. Everyone could get to that point easily. Plenty of people screwed up, but they had very little code to check, and soon fixed it. People with terrible painting algorithms (they never taught ANY of the AWT rendering system :(, like paint/update/repaint/etc!) still could test and debug the 10x10 version rapidly, and if they started to get fed up with the 1x1 pixels being much slower could easily optimize it with anything that broke the algorithm also breaking the first-pass, so it again was quick to discover and fix bugs.
Other suggestions I’d give for particular games, from personal experience:
- 2-player overhead racing game with two levels: one is all on one screen, the other is divided across four screens. Teaches a lot about OOP of co-ordinate systems, rendering algos, etc, and gives the opportunity to write smooth-scrolling by implementing a simplistic camera
- 4-player networked board games, e.g. scrabble - simple rules, everyone already knows them off by heart, and there’s no dependence on performance at all, so ultra-simple use of BufferedReader and PrintWriter are all you need. Most students can get a simple one-to-many chat window running in java in just a couple of days, and that’s all you need to run most of such a game (with some basic parsing on incoming messages). Again, huge opportunities for students to research and evolve their networking into better, leaner, more effective API’s
- flat-shaded triangle-rendered terrain that players “fly” over and attempt to shoot each other - this is stunningly simple to implement, with proper guidance, and yet incredibly impressive to most people with no programming background, who are generally amazed to be able to make their own 3D system so rapidly. It also has the twin benefit of showing (for many people for what is, sadly, the first time in their lives) how incredibly useful maths is in real-world / game dev situations - I’ve seen a lot of people who found vector algebra extremely dull change their minds when they discovered that the relatively small amount of rules they had to learn are enough to build arbitrarily complex 3D renderers. This is especially true in showing them how the effort of memorizing and mastering the fundamentals of vector algebra provide a toolset that for every graphical problem they encounter they can nearly always break it up into a series of basic algebra ops, and so “invent” for themselves nifty rendering effects etc.
(it also has the benefit of sidestepping something painful in games dev - character/ground collision detection + walking on a 3d landscape)