vapor

module
v0.0.0-...-bf055c7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2019 License: GPL-3.0

README

Vapor is a toolkit designed to support Liquid War 7.

While truely dedicated to power the multiplayer game Liquid War 7, it may be used to develop other similar games. The idea is to provide all the components that are not directly linked to the Liquid War gameplay, including, but not limited to, network tools, massive parallel computation, game loops, fixed-point math arithmetics, etc. Design might evolve but as of today, the most probable option is that this package would handle all game logic while a GUI client, typically written in C++, would connect to it. A candidate name for this client is Fumes.

Overview

Technology

Vapor is a set of golang packages.

Install

Packages can be installed from github with a standard go get command. For instance:

go get github.com/ufoot/vapor/go/vpdemo

Alternatively, on UNIXish platforms, a ./configure script sets up some Makefiles which allow a quite usual ./boostrap && ./configure && make sequence to work.

Documentation

Source code documentation is browsable online on godoc.org.

Project status

Experimental. Unstable. Under heavy work. Use at your own risks. Period.

Build Status

Why is it named Vapor?

The main author of Liquid War struggles to find free time to hack arround, so most of this is vaporware.

News

  • September 2014 : package creation, nothing yet, only ideas. Just an almost empty golang package.

  • March 2015 : some basic functionnalities such as matrix computation are well advanced, code published on github.

Authors

  • Christian Mauduit ufoot@ufoot.org : main developper, project maintainer.

  • All Liquid War 3, Liquid War 5 and Liquid War 6 contributors have indirectly helped for this project to exist. No real code snippets, but ideas were reused whenever possible.

License

Copyright (C) 2015, 2016 Christian Mauduit ufoot@ufoot.org

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Vapor homepage: https://github.com/ufoot/vapor Contact author: ufoot@ufoot.org

Directories

Path Synopsis
go
vpapp
Package vpapp contains small tools to handle app package "à la" autotools as well as version.
Package vpapp contains small tools to handle app package "à la" autotools as well as version.
vpbezier
Package vpbezier contains Bezier curves tools.
Package vpbezier contains Bezier curves tools.
vpbruijn
Package vpbruijn implements De Bruijn graphs.
Package vpbruijn implements De Bruijn graphs.
vpbus
Package vpbus contains the implementation of the Golang server callbacks called by the C++ client GUI.
Package vpbus contains the implementation of the Golang server callbacks called by the C++ client GUI.
vpbusapi
Package vpbusapi is generated by Thrift, it contains plumbery to thriftify the protocol between Golang server and C++ client GUI.
Package vpbusapi is generated by Thrift, it contains plumbery to thriftify the protocol between Golang server and C++ client GUI.
vpbusclient
Package main is auto-generated by Thrift and contains a command-line client-side implementation able to talk to the Golang backend server.
Package main is auto-generated by Thrift and contains a command-line client-side implementation able to talk to the Golang backend server.
vpbussrv
Package vpbussrv contains the glue between the implementation of the backend Golang server and the Thrift protocol.
Package vpbussrv contains the glue between the implementation of the backend Golang server and the Thrift protocol.
vpcommonapi
Package vpcommonapi contains the common, base, shared by all api.
Package vpcommonapi contains the common, base, shared by all api.
vpcommonclient
Package maincontains a sample client for thrift basic shared by all funcs.
Package maincontains a sample client for thrift basic shared by all funcs.
vpcrypto
Package vpcrypto contains some cryptographic utilities to sign and crypt content, mostly a wrapper over openpgp API.
Package vpcrypto contains some cryptographic utilities to sign and crypt content, mostly a wrapper over openpgp API.
vpdemo
Demo game as an example on steroids.
Demo game as an example on steroids.
vperror
Package vperror contains utilities to handle errors.
Package vperror contains utilities to handle errors.
vpid
Package vpid contains helpers to generate cryptographic IDs.
Package vpid contains helpers to generate cryptographic IDs.
vpkeydx
Package vpkeydx contains utilities to generate and analyze keys used in p2p messaging.
Package vpkeydx contains utilities to generate and analyze keys used in p2p messaging.
vplevel
Package vplevel contains the implementation of a level, the part of the game world that is not influenced by players and their actions.
Package vplevel contains the implementation of a level, the part of the game world that is not influenced by players and their actions.
vpline3
Package vpline3 contains tools for manipulating lines with 3 points.
Package vpline3 contains tools for manipulating lines with 3 points.
vplog
Package vplog contains a simple log helper which logs on both stderr and syslog.
Package vplog contains a simple log helper which logs on both stderr and syslog.
vploop
Package vploop implements main game loop.
Package vploop implements main game loop.
vpmat2x1
Package vpmat2x1 contains 2x1 matrix utilities.
Package vpmat2x1 contains 2x1 matrix utilities.
vpmat2x2
Package vpmat2x2 contains 2x2 matrix utilities.
Package vpmat2x2 contains 2x2 matrix utilities.
vpmat3x2
Package vpmat3x2 contains 3x2 matrix utilities.
Package vpmat3x2 contains 3x2 matrix utilities.
vpmat3x3
Package vpmat3x3 contains 3x3 matrix utilities.
Package vpmat3x3 contains 3x3 matrix utilities.
vpmat4x3
Package vpmat4x3 contains 4x3 matrix utilities.
Package vpmat4x3 contains 4x3 matrix utilities.
vpmat4x4
Package vpmat4x4 contains 4x4 matrix utilities.
Package vpmat4x4 contains 4x4 matrix utilities.
vpmath
Package vpmath contains mathematical functions, including fixed point implementations of typical floating point operations such as square root, sinus, and cosinus.
Package vpmath contains mathematical functions, including fixed point implementations of typical floating point operations such as square root, sinus, and cosinus.
vpnumber
Package vpnumber handles fixed point numbers, on 32 or 64 bits.
Package vpnumber handles fixed point numbers, on 32 or 64 bits.
vpp2p
Package vpp2p implements the top-level host, node and ring objects, required for the P2P system.
Package vpp2p implements the top-level host, node and ring objects, required for the P2P system.
vpp2papi
Package vpp2papi defines the p2p (peer to peer) Thrift API.
Package vpp2papi defines the p2p (peer to peer) Thrift API.
vpp2pclient
Package main contains a demo vpp2p client
Package main contains a demo vpp2p client
vpp2pdat
Package vpp2pdat implements some basic functions over the structures exposed by vpp2papi.
Package vpp2pdat implements some basic functions over the structures exposed by vpp2papi.
vpp2psim
Package vpp2psim is only a test/demo which instanciates elements from vpp2p to show and check how they work.
Package vpp2psim is only a test/demo which instanciates elements from vpp2p to show and check how they work.
vprand
Package vprand contains some random number generation helpers.
Package vprand contains some random number generation helpers.
vpring0
Demo game as an example on steroids.
Demo game as an example on steroids.
vpsum
Package vpsum contains checksum helpers.
Package vpsum contains checksum helpers.
vptimeout
Package vptimeout implements utilities to handle timeout of functions, typically usefull when using 3rd party blocking funcs.
Package vptimeout implements utilities to handle timeout of functions, typically usefull when using 3rd party blocking funcs.
vptypes
Package vptypes contains some general purpose basic types.
Package vptypes contains some general purpose basic types.
vpvec2
Package vpvec2 contains 4 members vector utilities.
Package vpvec2 contains 4 members vector utilities.
vpvec3
Package vpvec3 contains 3 members vector utilities.
Package vpvec3 contains 3 members vector utilities.
vpvec4
Package vpvec4 contains 4 members vector utilities.
Package vpvec4 contains 4 members vector utilities.
vpwire
Package vpwire implements basic wireframe rendering, mostly for testing purposes.
Package vpwire implements basic wireframe rendering, mostly for testing purposes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL