This is my DubG Video Game project that I created for my ICS4UE course
A multiplayer, action-arcade, battle royale shooter game with features including turrets, experience levels, crates, and potions. The user can choose to either be the server and host a game or be the client and join an existing game. Made with Dylan Wang.
- Use WASD to move, press the spacebar to shoot, press 'p' to consume potions
- All player have their usernames and health points displayed above their character
- Shoot crates to break them, crates drop a random potion
- Terrain like walls and bushes block projectiles and cannot be walked through
- Water can be shot over, but cannot be walked through
- Use the wisdom (blue) potion to level up
- Once you reach level 3 or level 5, you have the ability to change classes
There are four potions in the game. The first one is health, which when consumed, grants the player 2 extra hearts. The second one is speed that increases the player's movement speed. The third is rage which makes the player deal more damage with their projectiles. The last is wisdom which grants the player an additional experience level.
There are six classes in the game other than the starting class. These classes follow a pyramid structure where each class opens up options to two other classes that are similar to its previous class. These classes include sniper, dual wielder, marksman, rocketeer, shotgunner, and gunner. All classes have their own specialty, whether that's attack speed, damage or number of projectiles.
Due to the fact that this is a multiplay game, there needs to be a server in all games. The server is able to travel across the entire map, has no health points and cannot be seen by clients. The server's job is to watch over the entire game. Once the server is connected, clients can join the existing game and that's where the multiplayer begins. This was done using Java's DatagramSocket and DatagramPacket class.
This is what normal gameplay would look like. Notice how every player can see each other but cannot see the server.
- Java























