Goldeneye Project ver_0.1:
Download the game.
The download above is a zip folder containing the map editor, server program, game program, in jar files and three sample maps. Enjoy!

As our final (and only) project for Chris Hales' Advanced Programming class, myself and my group created a top-down shooter game which we called Goldeneye. There are two main parts to this project: the game and the map editor. Though it was a group project I think it is fair to say that I wrote the majority of the code. To begin, I wrote the map editor by myself and the other two wrote the engine. Once I had finished the editor, the engine was non-functional and I wrote the majority of it from scratch. I was also soley responsible for the networking functionality. I borrowed some code for the networking interface, and unfortunately I don't remember where I got it from since I didn't comment the source in the code and wherever else I may have cited the source has long since been forgotten. Thank you very much to whomever wrote the networking interface. Notably, one feature of the game engine I didn't write was the visibility feature (you can't see other players or powerups if there's a wall between your plaer and the object) but that feature is a little buggy since it was never completed.
Map Editor:
This application is controlled with the keyboard and mouse. The program draws a grid in the canvas, and you can set the size of each square and the number of coluns and rows. Pressing enter in the text field will sometimes make the grid, but if the program doesn't re-draw the grid press the remake button to be sure.
How to make maps: overview
- To load a map, press the load button
- Arrow keys move widget
- Space bar toggles wall drawing
- Click in a wall's rectangle to delete it
- To clear the screen, press the clear button
- Once you are done, Type the name of the map into the "map name" field (should be a .vect file, but that doesn't really matter) and press "save map"
- Close the editor as you would any other program. I didn't add a close button or key.
Explanation
The widget will start in the lower-right corner of the screen and is moved one square at a time with the directional keys on your keyboard. Pressing the space-bar will turn on and off wall-making. To draw a wall, move the widget to the correct spot, press the space bar, and walk along the path you want the wall to be on. The wall itself is the line in the center of the rectangle, and the rectangle defines its area of intersection. This outer rectangle is intended to be invisible in both the editor and the game, but I drew it in during development because in cases where 4 walls made a box of one unit square, the location of my click didn't seem to correspond to the correct wall (i.e. clicking on one wall might make its neighbor dissappear instead). If you want to start over, hit the clear button. Sorry this isn't the easiest interface to use, but it gets the job done. Two sample maps can be downloaded to start you out.
Game & Server: Overview
To launch the game:
- Run the server program FIRST. Double-click goldeneye_server.jar.
- The server has no interface, and must be up before you run the game. Wait until the busy indicator on your mouse pointer goes away until launching the game. For whatever reason it sometimes takes a few seconds to launch.
- You can run the server and play the game on the same machine, so once one player has started the server, he can run the game. Double-click goldeneye_game.jar to launch. This also might take a bit, though it really shouldn't.
- After running the game, a dialog will appear asking you for the server address. If this doesn't happen, don't keep trying to run the game, as you will likely be bobarded with a bunch of dialogs once Java is done doing it's thing. If after a while you don't see this box, close all instances of javaw.exe (or the equivalent virtual machine process), re-start the server, and try again. If you still can't run it, you might be out of luck. E-mail me if you're interested enough to see this work. I won't give out my personal e-mail here but I'll have a pagefoundry e-mail up shortly.
- If you've gotten the server dialog you're close! For the machine that ran the server program (above) enter localhost into the textbox and click OK. For Player 2's machine, (or 3 or 4, I haven't tested the performance for more than two), enter the IP address of the server machine. I'm not sure if it will work for windows computer names or what have you. You're welcome to try, of course, but I can't guarantee anything will work except a straight IPv4 address (and even there I don't guarantee anything).
- Once you've specified the server, a file dialog should appear. Select the map you would like (assumedly a .vect file) and click OK (or double-click the file). Once the map is selected, the game window will appear! Or not. If it doesn't I'm sorry. I've done zero testing on this thing and I wrote it in high school. NOTE: Both players must choose the same map file. If they don't, the player will only interact with walls included in his instance of the game. For example, if one chooses a map and the other does not (clicks cancel, or loads a blank or invalid file) then the first will be confied to the map and unable to shoot through it's walls while the second will be able to go anywhere and shoot anywhere. I haven't included any error checking to make sure the maps are the same.
How to Play:
- The arrow keys move your player (little black square)
- Clicking the mouse shoots your gun
- The little red dot is placed at a constant radis along the line between the center of the player box and he the mouse pointer. If you click on your opponent, you shoot him.
- You cannot move, shoot, or see through walls
- The red bar at the top of the screen is your health; the blue bar is your armor
- Likewise, the little red dots are health power-ups, and the blue ones are armor
- There is no win condition, but when you have depleted your opponent's health, you both should agree you have won!