All Projects → Skarlso → Goprogressquest

Skarlso / Goprogressquest

Licence: other
Progress Quest implemented in Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Goprogressquest

Gascontent
Repo to gather all Gameplay Ability System content for UE4
Stars: ✭ 398 (+1890%)
Mutual labels:  rpg
Rpg Js
Create your browser RPG and MMORPG in your browser !
Stars: ✭ 656 (+3180%)
Mutual labels:  rpg
Flare Game
Fantasy action RPG using the FLARE engine
Stars: ✭ 841 (+4105%)
Mutual labels:  rpg
Rpg Tutorial
The Unity Project for the RPG Tutorial Series!
Stars: ✭ 466 (+2230%)
Mutual labels:  rpg
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+3175%)
Mutual labels:  rpg
Flare Engine
Free/Libre Action Roleplaying Engine (engine only)
Stars: ✭ 784 (+3820%)
Mutual labels:  rpg
Servuo
An Ultima Online server emulator written in C# .NET
Stars: ✭ 378 (+1790%)
Mutual labels:  rpg
Rogue Craft Sp
Rogue Craft is an ncurses based roguelike/sandbox/RPG game
Stars: ✭ 12 (-40%)
Mutual labels:  rpg
Ranviermud
A node.js based MUD game engine
Stars: ✭ 657 (+3185%)
Mutual labels:  rpg
Game Server
Distributed Java game server, including cluster management server, gateway server, hall server, game logic server, background monitoring server and a running web version of fishing. State machine, behavior tree, A* pathfinding, navigation mesh and other AI tools
Stars: ✭ 916 (+4480%)
Mutual labels:  rpg
Maptool
Virtual Tabletop for playing roleplaying games with remote players or face to face.
Stars: ✭ 469 (+2245%)
Mutual labels:  rpg
Homebrewery
Create authentic looking D&D homebrews using only markdown
Stars: ✭ 598 (+2890%)
Mutual labels:  rpg
Fgmk
Retro RPG Game Maker
Stars: ✭ 794 (+3870%)
Mutual labels:  rpg
Mudlet
⚔️ A cross-platform, open source, and super fast MUD client with scripting in Lua
Stars: ✭ 427 (+2035%)
Mutual labels:  rpg
Godot Open Rpg
Learn to create turn-based combat with this Open Source RPG demo ⚔
Stars: ✭ 855 (+4175%)
Mutual labels:  rpg
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (+1840%)
Mutual labels:  rpg
Actionrpggame
Unreal Engine 4 Action RPG type game starter kit.
Stars: ✭ 773 (+3765%)
Mutual labels:  rpg
Dnd 5e Latex Template
LaTeX package to typeset material for the fifth edition of the "world's greatest roleplaying game".
Stars: ✭ 875 (+4275%)
Mutual labels:  rpg
Xoreos
A reimplementation of BioWare's Aurora engine (and derivatives). Pre-pre-alpha :P
Stars: ✭ 856 (+4180%)
Mutual labels:  rpg
Veloren
[Mirror] An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World
Stars: ✭ 868 (+4240%)
Mutual labels:  rpg

Coverage Status Build Status

Go Progress Quest

This will be a Go Implementation of the famous type of RPG, called: https://en.wikipedia.org/wiki/Progress_Quest

See it in action here:

GoProgressQuest

This will be an API which can be consumed by any client in a number of ways.

CLI Front-End for Go Progress Quest

This is a very basic, semi interactive CLI front-end for this project:

GoProgressQuest Front-End

Example usage

curl -H "Content-type: application/json" -X POST -d '{"name":"awesome"}' http://localhost:8989/api/1/create
curl -H "Content-type: application/json" -X POST -d '{"name":"awesome"}' http://localhost:8989/api/1/start

This will start adventuring for character awesome. Multiple characters can be sent adventuring. But after a while the log will be unreadable. Later, I might create a web front-end for this project which will be able to track multiple characters at once.

And once you think your character adventured enough, simply call stop.

curl -H "Content-type: application/json" -X POST -d '{"name":"awesome"}' http://localhost:8989/api/1/stop

Installing

GoProgressQuest uses mongodb for it's back-end storage. The storage medium is interfaced, so any kind of database can be plugged in and used if you implement these three functions:

// Storage defines a storage medium. It could be anything that implements this interface.
type Storage interface {
	Save(Character) error
	Load(string) (Character, error)
	Update(Character) error
}

API

API Version is 1

/api/1/*

The following end-points are available:

Creational

/

Currently returns:

{
    "message":"Welcome!"
}
# Character names don't have to be unique
/create
POST:
{
    "name":"MyAwesomeCharacterName"
}

Return:

{
    "name":"MyAwesomeCharacterName"
}
# Load a character by ID since names are not unique at the moment
/load/{ID}
/load/3da541559918a808c2402bba5012f6c60b27661c

Return:

{
    "Inventory":{"Items":[]},"Name":"MyAwesomeCharacterName","Stats":{"Str":0,"Agi":0,"In":0,"Per":0,"Chr":0,"Lck":0},"ID":"3da541559918a808c2402bba5012f6c60b27661c","Gold":0
}

Adventuring related

# Start adventuring
/start
POST:
{
    "name":"MyAwesomeCharacterName"
}

Return:

{
    "message":"Started adventuring for character: MyAwesomeCharacterName"
}
# Stop adventuring
/stop
POST:
{
    "name":"MyAwesomeCharacterName"
}

Return:

{
    "message":"Stopped adventuring for character: MyAwesomeCharacterName"
}

Running it

go build

Currently the project is simple enough so that no Makefile is needed for this process.

Dependencies

This project uses Glide as its package handler. Please add vendor and glide.lock to your ignore files. The project should always work with the latest versions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].