[DGD] Various questions

bart at wotf.org bart at wotf.org
Sun Jul 29 17:18:52 CEST 2018


On Fri, 27 Jul 2018 21:56:10 +0000, francisco del roio wrote
> Hello,
> 
> I’ve recently started to play with DGD and cloud server library 
> and now that I got it running I have some questions regarding to my 
> specific project needs.
> 
>   1.  How do you perform telnet negotiation and subnegotiation and 

That depends on if you are using DGD's builtin telnet server, or use a telnet
server written in LPC.

In the first case, you generally don't and you only get a very basic telnet
server. You could modify DGD's source and change it to your needs, but thats
not the recommended way for doing this.

For an example of a telnet server in LPC, https://github.com/shentino/kotaka
contains a pretty complete one, capable of doing ascii/ansi animations and
full screen operation and all the fanciness one could want from a telnet server.

> where is the code under the mudlib?

In general, you have 3 components:
- DGD
- some kind of kernel
- a mudlib

This is unlike say mud/fluffos, where you would only have a driver and a mudlib. 

While some mudlibs for DGD include their own kernel, like gurbalib or the old
lpmud 2.4.5 'emulation', they still contain a mudlib and a kernel component.
The code below the mudlib is in that kernel component, and the code below that
kernel is in DGD itself.

In case of DGD's builtin telnet server it is in src/comm.cpp

>   2.  What about translating text from and to various encodings 
> within LPC? I want to send Spanish accents and not ascii symbols to clients.

Iirc Phantasmal has code to support different encodings.

> 
>   3.  How you do GMCP within LPC code? Is there a JSON encoder/decoder?

Gurbalib contains one (tho iirc it has a few easy to fix bugs). Also, it is
fairly trivial to create a JSON encoder/decoder based on the mudmode
encoder/decoder included in kotaka or gurbalib.

> 
> Note that I tried the kernellib before cloud server.

Both give you a starting point for creating a mudlib, neither provide
something comparable to a mudlib on other drivers, rather, together with DGD
(or Hydra), they provide the functionality needed for creating a mudlib which
in turn has to implement game and user interface related functionality. One
could say DGD together with klib or cloudlib more or less provide what on
other LPC based drivers is provided by the driver alone.

That means you need more LPC code, but also means many things for which you
have to change the driver when using say mudos or fluffos can easily be done
in LPC on DGD.

The very first thing you need when starting with DGD is understand that very
fundamental difference between it and all other LPC based drivers, else things
just won't make sense.

Bart.
--
https://www.bartsplace.net/
https://wotf.org/
https://www.flickr.com/photos/mrobjective/




More information about the DGD mailing list