Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zac-garby/term-rpg
A terminal-based mmorpg.
https://github.com/zac-garby/term-rpg
client game golang multiplayer rpg server
Last synced: 23 days ago
JSON representation
A terminal-based mmorpg.
- Host: GitHub
- URL: https://github.com/zac-garby/term-rpg
- Owner: zac-garby
- Created: 2017-12-11T17:19:46.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-11T17:19:51.000Z (about 7 years ago)
- Last Synced: 2024-10-30T06:27:41.645Z (2 months ago)
- Topics: client, game, golang, multiplayer, rpg, server
- Language: Go
- Size: 103 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# term-rpg
![](screenshots/mainmenu.png)
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 fieldsSo 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
0. Make the clients handle sudden disconnects better, e.g. crashes
0. World generation -- probably just lots of buildings
- Will probably include adding more tile types
0. A player list, both server- and client-side
0. A server-side console, e.g. `kick `
0. A chat system with private and global messages
0. 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
0. An inventory
0. Randomly spawned loot boxes
0. Let the player build things
0. Allow the players to choose what character they want to represent their player
0. NPCs -- merchants, maybe enemies too
0. 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.