When the Computer Science final year projects were assigned on the last month of term, I was lucky enough to score my top choice: to make a centepede game (similar to the snake game that every mobile phone had in the late ninties) that would run across multiple networked systems. The exact text of the initial assignment is as follows:
"The computer labs in the School are an asset that we are keen to show off on open/visit days. This project proposes a network demonstrator using a whole computer lab which mimics the old computer game Centipede. In its basic form a centipede will travel around the lab. Mushrooms will periodically appear (or disappear) and if the centipede hits a mushroom, it will change direction. The game can be embellished to include some of the other elements of the original, including spiders and scorpions, to add further interest although it is not expected the ‘game’ will be playable in any realistic sense.
Behind this demonstrator there will be a number of network principles at work. It is an important aim of the demonstrator to bring these principles out so they can be discussed during a visit day. This will include networking protocols, sockets, fault tolerance, etc. Thus the demonstration needs to last an appropriate length of time, contain relevant technical material, wow the audience, show off the lab and above all, prove that doing a final year project at Reading is FUN!"
I really liked the concept of this project straight off the bat. The idea of making a game that allowed the user to navigate between computers, rather than just be limited to the edges of their screen, is really interesting to me. There are plenty of institutions that have banks and banks of networked machienes side by side, and there are no applications that I can think of that would take advantage of thier proximitry to each other as a feature. Also, last summer I worked on the QA team for Sony's Ziris digital signage system, which uses banks of PS3s to produce constant video over several HD screens. Although I was far removed from any real development work, it did mean I was familiar with the concept.
The description above was pretty vague however, so I had a really awesome talk with the lecturer supervising my project. Apparently this assignment is always really popular, so it's been done a lot, but there's never really been much departure from the brief. I think he was keen for me to take the idea of a networked game running in parallel across multiple systems and expand on that idea, possible sloughing off the trappings of a snake game altogether. Examples could be:
- A Zelda-like RPG where each monitor in the lab is a different room.
- A side scrolling platformer with the entire level visible on a bank of PCs.
- A multiplayer strategy game which would allow players to send troops to attack bases built in other players machines. The further away two PCs were physically located, the longer the troops would take to get there.
So this is all blue-sky brainstorming and not really much help to me right now. In the short term I will be producing a project document, identifying a programming language to produce a prototype in and writing a single computer snake game without any networking capabilities. I'd like to have this produced and stable by the time I'm back at uni in October. I'll be using this blog to keep track of what I'm thinking at the time and also to get feedback on choices I'm making. I really hope I can use this project as the centerpiece of my portfolio when looking for programming jobs in the future, both in and out of the games industry.