unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* [ANN] gzochi project development release 0.12
@ 2018-07-02 19:13 Julian Graham
  2018-07-03 21:07 ` Arne Babenhauserheide
  0 siblings, 1 reply; 5+ messages in thread
From: Julian Graham @ 2018-07-02 19:13 UTC (permalink / raw)
  To: Guile Users

Hello,

I'm pleased to announce the release of version 0.12 of the gzochi game
development framework.

gzochi (/zoʊ-tʃiː/) is a programming framework for developing online
games in GNU Guile, and a distributed middleware container that hosts
your games for thousands of connected players. gzochi takes care of
the hard parts of online game development - concurrency, data
persistence, and network communications - so you can focus on the
stuff that matters!

This is a large release that adds distributed task management to the
capabilities of the gzochi meta server, allowing it to track task
assignments, completions, and cancellations for a game running across
multiple application server nodes, and ensuring that tasks assigned to
failed nodes are re-assigned elsewhere to finish. With this release,
games can run on a single application server or across a cluster of
servers connected to a meta server without modification, making them
fault-tolerant and enabling them to scale horizontally and take
advantage of new hardware as it is added.

In addition, this release includes the following notable changes:

* Faster and more object-efficient implementations of the scalable
vector and hash table collection types in the Scheme API

* Support for large transactional changesets when running in distributed mode

* ...and more! As usual, see the NEWS files in the distribution for details

This is a development release, but there's extensive server and client
documentation, and the distribution includes three example games with
heavily-annotated source code. For more information, visit the web
site at http://www.nongnu.org/gzochi/


Regards,
Julian



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ANN] gzochi project development release 0.12
  2018-07-02 19:13 Julian Graham
@ 2018-07-03 21:07 ` Arne Babenhauserheide
  2018-07-03 21:29   ` Julian Graham
  0 siblings, 1 reply; 5+ messages in thread
From: Arne Babenhauserheide @ 2018-07-03 21:07 UTC (permalink / raw)
  To: Julian Graham; +Cc: Guile Users

[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]


Julian Graham <joolean@gmail.com> writes:

> gzochi (/zoʊ-tʃiː/) is a programming framework for developing online
> games in GNU Guile, and a distributed middleware container that hosts
> your games for thousands of connected players. gzochi takes care of
> the hard parts of online game development - concurrency, data
> persistence, and network communications - so you can focus on the
> stuff that matters!

That sounds great and got me intrigued!

I looked into the documentation and didn’t find an example how such a
game would look, but the example in the docs was too minimal to
understand what I can do with gzochi. And I did not understand how users
would launch the game (essentially: What shell command to run to start
the game).

Do you have a somewhat larger example online, along with deployment info?

> This is a development release, but there's extensive server and client
> documentation, and the distribution includes three example games with
> heavily-annotated source code. For more information, visit the web
> site at http://www.nongnu.org/gzochi/

Can I find these examples without installing so that I can have a quick
look how the game code reads?

Best wishes,
Arne
--
Unpolitisch sein
heißt politisch sein
ohne es zu merken

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1076 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ANN] gzochi project development release 0.12
  2018-07-03 21:07 ` Arne Babenhauserheide
@ 2018-07-03 21:29   ` Julian Graham
  0 siblings, 0 replies; 5+ messages in thread
From: Julian Graham @ 2018-07-03 21:29 UTC (permalink / raw)
  To: arne_bab; +Cc: Guile Users

Hi Arne!

On Tue, Jul 3, 2018 at 5:07 PM Arne Babenhauserheide <arne_bab@web.de> wrote:
> I looked into the documentation and didn’t find an example how such a
> game would look, but the example in the docs was too minimal to
> understand what I can do with gzochi. And I did not understand how users
> would launch the game (essentially: What shell command to run to start
> the game).
>
> Do you have a somewhat larger example online, along with deployment info?

Yes! The source distribution ships with client- and server-side code
for two example games: AberMUD and MazeWar. The easiest way to get
started would be to build the server container, deploy one of the
server-side game implementations, then build and run its associated
client. For example:

$ cd gzochi-0.12/gzochi-server
$ ./configure && make

...then, to deploy and launch the AberMUD example server:

$ cd meta/deploy
$ ln -s ../../../examples/abermud/server abermud
$ cd ..
$ ./gzochid

Then, to build and run the AberMUD example client:

$ cd gzochi-0.12/examples/abermud/client
$ ./configure && make
...
$ cd src
$ ./abermud localhost 8001


> Can I find these examples without installing so that I can have a quick
> look how the game code reads?

Yes! The server-side implementations probably have the strongest
dependency on the framework. See:

- https://gitlab.com/joolean/gzochi/tree/master/examples/abermud/server
  - E.g., https://gitlab.com/joolean/gzochi/blob/master/examples/abermud/server/gzochi/example/abermud.scm
- https://gitlab.com/joolean/gzochi/tree/master/examples/mazewar/server
  - E.g., https://gitlab.com/joolean/gzochi/blob/master/examples/mazewar/server/gzochi/example/mazewar.scm


Regards,
Julian



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ANN] gzochi project development release 0.12
       [not found] <mailman.115.1530633621.17504.guile-user@gnu.org>
@ 2018-07-03 22:36 ` Zelphir Kaltstahl
  2018-07-04 15:01   ` Julian Graham
  0 siblings, 1 reply; 5+ messages in thread
From: Zelphir Kaltstahl @ 2018-07-03 22:36 UTC (permalink / raw)
  To: guile-user

Sounds really good! I did not know about gzochi.

I am interested in the networking part. Do you have some document
somewhere describing how gzochi handles distributed servers and what the
approach is to keep stuff synchronized over multiple servers? Or how it
deals with disconnects from servers? As I have not done much network
programming, these things seem complex and I don't know much about them
yet. It would be great to have a learning resource that describes these
things and how they are implemented using Guile.


On 03.07.2018 18:00, guile-user-request@gnu.org wrote:
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 2 Jul 2018 15:13:47 -0400
> From: Julian Graham <joolean@gmail.com>
> To: Guile Users <guile-user@gnu.org>
> Subject: [ANN] gzochi project development release 0.12
> Message-ID:
> 	<CANdC_RCCYRUVSFB2jc6ZpJo0ApLx0y7o7Zggr-yhyqiHQF4+nA@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Hello,
>
> I'm pleased to announce the release of version 0.12 of the gzochi game
> development framework.
>
> gzochi (/zo?-t?i?/) is a programming framework for developing online
> games in GNU Guile, and a distributed middleware container that hosts
> your games for thousands of connected players. gzochi takes care of
> the hard parts of online game development - concurrency, data
> persistence, and network communications - so you can focus on the
> stuff that matters!
>
> This is a large release that adds distributed task management to the
> capabilities of the gzochi meta server, allowing it to track task
> assignments, completions, and cancellations for a game running across
> multiple application server nodes, and ensuring that tasks assigned to
> failed nodes are re-assigned elsewhere to finish. With this release,
> games can run on a single application server or across a cluster of
> servers connected to a meta server without modification, making them
> fault-tolerant and enabling them to scale horizontally and take
> advantage of new hardware as it is added.
>
> In addition, this release includes the following notable changes:
>
> * Faster and more object-efficient implementations of the scalable
> vector and hash table collection types in the Scheme API
>
> * Support for large transactional changesets when running in distributed mode
>
> * ...and more! As usual, see the NEWS files in the distribution for details
>
> This is a development release, but there's extensive server and client
> documentation, and the distribution includes three example games with
> heavily-annotated source code. For more information, visit the web
> site at http://www.nongnu.org/gzochi/
>
>
> Regards,
> Julian



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ANN] gzochi project development release 0.12
  2018-07-03 22:36 ` [ANN] gzochi project development release 0.12 Zelphir Kaltstahl
@ 2018-07-04 15:01   ` Julian Graham
  0 siblings, 0 replies; 5+ messages in thread
From: Julian Graham @ 2018-07-04 15:01 UTC (permalink / raw)
  To: zelphirkaltstahl; +Cc: Guile Users

Hi Zelphir!

I'm afraid I'm going to disappoint you: Most of gzochi is written in
C, including the networking and message-delivery code. The C code
links with libguile to host Guile applications and inject them with
services like messaging and data storage. So there isn't much Guile
networking code to study.

You're right that keeping state synchronized across multiple servers
is difficult. It's handled in different ways in different parts of the
system, but at a high level, the architecture works like this: There
are application container servers, which clients log into and which
actually run Guile application code; and, when running in distributed
mode, there is a meta server, which the application container servers
log into and which takes care of maintaining shared state like lock
tables, task assignments, message routing, etc.


On Tue, Jul 3, 2018 at 6:36 PM Zelphir Kaltstahl
<zelphirkaltstahl@gmail.com> wrote:
>
> Sounds really good! I did not know about gzochi.
>
> I am interested in the networking part. Do you have some document
> somewhere describing how gzochi handles distributed servers and what the
> approach is to keep stuff synchronized over multiple servers? Or how it
> deals with disconnects from servers? As I have not done much network
> programming, these things seem complex and I don't know much about them
> yet. It would be great to have a learning resource that describes these
> things and how they are implemented using Guile.



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-07-04 15:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.115.1530633621.17504.guile-user@gnu.org>
2018-07-03 22:36 ` [ANN] gzochi project development release 0.12 Zelphir Kaltstahl
2018-07-04 15:01   ` Julian Graham
2018-07-02 19:13 Julian Graham
2018-07-03 21:07 ` Arne Babenhauserheide
2018-07-03 21:29   ` Julian Graham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).