Game Project Update 1

Published on:

I have finished the work items I mentioned in this post.

Now I want to figure out the technology and software patterns that I will use to support the multiplayer aspects of this game.

New Features

Building on top of my previous work here is the new functionality I want to add

  • As a user, I can create an account or log into my existing account

  • As a user, I can create a character or use the character that has already been created by this user for this battle

  • When a character is created, the user picks a class from a list of classes to assign that character

  • The UI includes a list of users who are currently in the battle

  • When a user joins the battle, the UI for all other users is updated

  • The UI lists the users character, as well as the other player characters and NPCs

  • When a user does something that changes the data for a character, that change is broadcast to the other users

Supporting work

  • Build out the user entity and class entity to support the work I have planned

  • Add websocket functionality to my frontend and backend applications to support updating other users when one user does something

Where I need to enforce scope constrains

  • I am not going to do any sort of Authentication or Authorization as part of this chunk of work. Between picking a third part tool, trying to decide who should have permission to do what, and figuring out the best way to implement that Authentication and Authorization could take a bunch of my time. I am going to need to do some Authentication/Authorization by the time I want to release a version of this project to the wider world. It's tempting to try to do that as I am working on other user functionality, but I think it is best to save this for later.

  • There are a lot of ways that the real time websocket functionality can get complicated. If I tried to do things like have comprehensive error handling or handle what happens when users session ends unexpectedly, I could see myself spending a lot of time on websocket without advancing the project very much. So I am going to stick to just what I said in the new features list and get that working. When I have that experience, I think I will be able to make better plans about what to do next for adding multiplayer functionality.