Online game development is not easy, it requires a developer to be knowledgeable in a lot of very unique topics.(Of course in 99% of the cases, these topics would be covered by multiple people!)
- Art & Design
- Physics
- Responsive interfaces
- Combat & AI
- Network Programming
- Scaleability
- Data structure and management
- Security
I think what interests me the most of all of those above topics is Network Programming. Building a safe, fast, reliable and scaleable network protocol that can handle thousands of concurrent users is an extremely fascinating topic. So I think I will start with that and hope everything else just comes together (wishful thinking).
Here's my current thought process.
- Study current MMO / FPS game's network implementations and code if available.
- See if it is possible to exploit WebRTC's RTCDataChannel to get browsers to send data not peer to peer but get access to the UDP transport to implement a custom game protocol.
- Build a custom protocol and server in Go.
- Build a simple WebGL (Probably using threejs game UI.
Of course everything depends on #2. So I will be spending the next few days PoC'ing that out. If that fails... well we will see.