Bringing VillageWars to Life

,

VillageWars is the name I gave to my most elaborate video game creation. In this game, two to four players work against each other to establish buildings in their respective villages, which will help them claim victory at the end of the game.

My first inspiration for VillageWars was actually a minigame featuring on a Minecraft server called Colony Control. The idea of the game is the same: You build buildings that help you defeat the other players, and once all your buildings are destroyed, you can be eliminated. The biggest difference is that VillageWars is not in Minecraft, and I don’t offer the user a three dimensional viewport. Colony Control was up for the Christmas season in December 2021, but then it vanished once winter moved on to spring. Unfortunately it hasn’t come back yet in following winters since. I personally really appreciated the game, so seeing as I was already planning on making a scrolling 2D multiplayer game, I made my own version Colony Control. That’s where VillageWars comes from.

As a VillageWars player, you would start in one quadrant of the entire map, separated from the other players by indestructible walls that disappear after 10 minutes. At your disposal, you have a mine where you can collect gold, a farm where you can collect food, and a Central Building where you can spend your resources to buy new buildings. These other buildings can upgrade your attack, your speed, your resistance, and several other stats. The Construction Site building also lets you set up defenses for your village as well.

VillageWars is programmed in Python, and whenever a game is going on there are multiple instances of the program running. The server, which contains almost all the game mechanics in it, is hosting the game, while each of the players play by running a client program. (In the future, there’s a good change I’ll move the client to being browser-based with JavaScript (instead of PC-based with Python).

To run VillageWars with Python, you’ll need a handful of third-party modules, including the graphics module pygame. I’m using websocket communication for the muliplayer portion, so be prepared to have websockets installed. The game also connects to an API at villagewars.pythonanywhere.com, where it saves the accounts’ information.

If you’d like to play VillageWars, you can download it here.

Resources Used

  • Python (Programming language)
  • Pythonanywhere.com (Website & API hosting service)
  • Codakid Game Dev 2 (For images for players, robots, crates, etc.)
  • pygame (Third-party module; graphics)
  • websockets (Third-party module; websocket connection for multiplayer)
  • requests (Third-party module; web requests)
  • pyperclip, pymsgbox, beautifulsoup4, progress_bar, send2trash, and zipfile2 (Other third-party modules)
  • Windows (Operating system)

Order of Release of Buildings

  1. Portable Central Building (0.0.1)
  2. Fitness Center (0.0.1)
  3. Running Track (0.0.1)
  4. Gym (0.0.1)
  5. Health Center (0.0.1)
  6. Restaurant (0.0.1)
  7. Balloonist (0.0.1)
  8. Central Building (0.0.1)
  9. Miner’s Guild (0.0.1)
  10. Farmer’s Guild (0.0.1)
  11. Construction Site (0.0.1)
  12. Robot Factory (0.0.1)
  13. Inn (1.4.1)
  14. Botanist’s Lab (1.4.1)
  15. Market (1.4.1)
  16. Alchemist’s Lab (1.4.1)
  17. Ranch (1.4.1)
  18. Builder’s (1.5.1)
  19. Town Hall (1.5.1)
  20. Repairer’s (1.5.1)
  21. Advanced Balloonist (1.5.1)
  22. Barrel Maker (1.6.8)

Leave a Reply

Your email address will not be published. Required fields are marked *