The initial idea
Whilst my initial endeavours into game programming had been considerably successful, there was still something large that I wanted to implement into my games; multiplayer. To do this I searched around for a long time for tutorials that would explain networking in lamens terms, and with the help of the Java networking tutorial and some extensive googling I was on my way. I decided to start small with a 5x5 grid that multiple people could spawn in and move around through tile based movement; from there I took this idea a step further and started working on a small scale RPG world system that would be able to support up to 100 people.
I felt like, by the end of the project, I had accomplished just that; though there was still a few missing features:
Technical aspect
Programmed in Java using TCP networking; due to the nature of the game each client can be sent a snapshot of their surrounding area at a fixed time scale (as only tile ID and possible entity id/interaction data needs to be sent), and can send input data to the server at any time. This means that the server is fully authoratitive, with low data transmission.
Features
- Quests
- Shops
- Chat system
- Levelling/character system
- Multiple "worlds"/dungeons, if no users are present in a dungeon or world it is unloaded on the server
- Enemies with simple patrol paths/attack ai
- Moveable entities and useable items
- Many concurrent users