Skip to content

zac-garby/term-rpg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

term-rpg

Term RPG will eventually be a multiplayer terminal-based MMORPG. At the moment, not much actually works. This is what I've done so far:

  • Server
    • The server and client communicate through gobs
    • Clients can connect
    • Only allows a new player if the new connection instantly sends client info
  • Client
    • Movement
    • Rendering of the world
  • UI
    • Text, buttons, text fields

So you can move around and the basics kind of work. What I haven't done is much more (in rough order of how much I need to do it).

  1. A more reliable server
    • Make it actually work properly
    • Make the server ping clients periodically to check the connection is still active
  2. Make the clients handle sudden disconnects better, e.g. crashes
  3. World generation -- probably just lots of buildings
    • Will probably include adding more tile types
  4. A player list, both server- and client-side
  5. A server-side console, e.g. kick <player>
  6. A chat system with private and global messages
  7. Instead of having the world size as a global constant, it should be set in the server and all clients of that server should use the server's world size.
    • Also, it'd then make sense for the client to load the world dynamically
  8. An inventory
  9. Randomly spawned loot boxes
  10. Let the player build things
  11. Allow the players to choose what character they want to represent their player
  12. NPCs -- merchants, maybe enemies too
  13. Maybe host a server on Heroku or something so I don't have to leave my computer on

How to use it

Get the code and run it with these commands:

go get github.com/Zac-Garby/term-rpg
cd $GOPATH/src/github.com/Zac-Garby/term-rpg
go run main.go

I might also put some binaries on GitHub at some point.

Running these commands will open the main menu, where you can choose to either host a server or join one as a client. Hosting a server will prompt you to enter the port to host on (it's recommended to use the default one in there already), and joining a game will ask for a username and an address to connect to.

Releases

No releases published

Packages

No packages published

Languages