MMO Project Design Doc
I wanted to create this design document to better define the style and what features will be in the testing game.
The testing game is going to be a extremely simplified 3D mmo.
An environment where players can move around the environment and chat with each other.
- Sign up website
- http server
- tcp
- port 80
- cgi?
- index.html
- information about game
- webform signup page for game
- tcp
- run on embedded hardware (if possible)
- raspberry pi pico
- esp32
- http server
- Client
- 3D environment
- player model with be a cube
- flat plane will be the world the players will exist on
- UI interface
- World interface
- wasd / arrow keys
- World interface
- 3D environment
- Server
- database
- when user logs out update their data in db
- schemas
- user
- username
- string
- password
- string (encrypted if possible)
- position
- x
- float
- y
- float
- x
- appearance
- color
- last login
- unix timestamp
- created
- unix timestamp
- username
- user
- socket i/o
- sync user position with other users
- command line arguments
- database
- Bonus features if we have time
- camera control
- mouselook
- more world objects
- triangular prisms for trees
- boxes for buildings
- server config file (json? toml?)
- port
- server name
- motd
- user limit
- enable allowed list
- allowed users list
- enable banned list
- banned users list
- ram limit
- Login page
- motd
- username
- password
- confirm button
- Simple message chat
- chat box
- message entry
- send button / enter key
- log out button
- chat box
- Add moderation
- Add banning
- Temporary ban
- IP based ban
- Add banning
- Add email for account recovery
- Add email system, like cron job
- Add API
- Create User
- POST /api/v0/newuser
- user data
- POST /api/v0/newuser
- Read User
- GET /api/v0/user/username
- Update User
- PUT /api/v0/user/username
- modified user data
- PUT /api/v0/user/username
- Delete User
- DELETE /api/v0/user/username
- Admin Login
- POST /api/v0/login
- Login data
- return token
- POST /api/v0/login
- Admin Logout
- POST /api/v0/logout
- Create User
- Admin web interface
- login screen
- number of users
- number of users logged in
- view live chat
- should be able to make announcements as admin
- Better player avatars
- Human models instead of simple solids
- More appearance options
- Animations
- Username float above players heads instead of a texture on the player model
- Better environment
- More interesting landscape
- Rivers
- Trees
- Buildings
- Animations
- Music
- Stats
- Skills
- Minigames
- Pvp
- Npcs
- Be able to move in Z direction
- Add collision
- camera control
Currently doing the pre-study for the Fortran implementation, thats all for now!