Hi Michal,
My project is more of a technical experiment than something ready for
use. I tend to find it easier to implement new systems than to design
a game to play. I would like to take a step back, design a game that
can be played and then create a new code base that picks useful pieces
of code out of the existing code base to make a simpler code base.
Cheers,
Richard.
Do you have your code checked in somewhere?
If you did and I could see you check in your progress, it would be
healthy competition for me to develop mine more.
Yes, check what you wish. It is open source.
Cheers,
Richard.
Cheers,
Richard.
You should put it in a repository. No-one uses my code but me, but
you never know who like yourself might stumble over it and have an
interest in talking about it.
> First I created it but soon started worrying about performance (e.g. I
> wanted to implement A* pathfinding algorithm to be useful for npc's). So I
> decided it will be fun to have one central server and as many clients as
> needed. So Central is taking care of connections with users, databases and
> Clients, whereas every Client runs one or more areas. Of course it is pretty
> much transparent for the gamer who can move between areas no mater whether
> they are on the same client, on client run as another process, or even
> client on another machine. There is also www comet solution that works like
> telnet but switched off by the moment. Oh, game is designed to be
> multilingual but at the moment only polish and English exists. English is
> not completely translated.
> I am during translation to client-server architecture and it barely works.
> And I am really bad coder. :(
> So I doubt you find anything interesting in my code but If you would like to
> see it - you are welcomed.
I don't really have any advice, it is hard to understand someone
else's framework without using it or experimenting with it. The code
looked fine to me, it looked like you had made progress in a wide
variety of areas. Lots where I am not making progress myself..
especially game-wise.
The presence of a GIL in Python is guaranteed, so the locking in your
web server is pointless I think.
I recommend mudbytes.net as a forum for mud discussion. It is the
most popular place for mud developers.
Cheers,
Richard.
On Fri, Sep 23, 2011 at 2:56 AM, Michal Mierzwa <mich.m...@gmail.com> wrote:You should put it in a repository. No-one uses my code but me, but
> I work on it by myself only so I did not bother to create repository. If you
> would like to take a look though here is the zip file with
> code. http://dl.dropbox.com/u/21455945/pymud.zip
you never know who like yourself might stumble over it and have an
interest in talking about it.
I don't really have any advice, it is hard to understand someone
> First I created it but soon started worrying about performance (e.g. I
> wanted to implement A* pathfinding algorithm to be useful for npc's). So I
> decided it will be fun to have one central server and as many clients as
> needed. So Central is taking care of connections with users, databases and
> Clients, whereas every Client runs one or more areas. Of course it is pretty
> much transparent for the gamer who can move between areas no mater whether
> they are on the same client, on client run as another process, or even
> client on another machine. There is also www comet solution that works like
> telnet but switched off by the moment. Oh, game is designed to be
> multilingual but at the moment only polish and English exists. English is
> not completely translated.
> I am during translation to client-server architecture and it barely works.
> And I am really bad coder. :(
> So I doubt you find anything interesting in my code but If you would like to
> see it - you are welcomed.
else's framework without using it or experimenting with it. The code
looked fine to me, it looked like you had made progress in a wide
variety of areas. Lots where I am not making progress myself..
especially game-wise.
The presence of a GIL in Python is guaranteed, so the locking in your
web server is pointless I think.
I recommend mudbytes.net as a forum for mud discussion. It is the
most popular place for mud developers.
I'd definitely consider it, but I don't think it is possible. We do
not have the exact same ideal feature sets or games in mind, and this
would get in the way of developing code. The best we could probably
do is to work together to create some libraries of specific shared
functionality.
Not sure what offhand though.
Cheers,
Richard.
It depends what you mean by scripting system, if you mean a way for
people to code and build while logged on rather than doing it in the
same codebase as the game engine itself.. then I have none :-) That
would be done locally by developers with a copy of the codebase and
then submitted as a patch or something.
I'm finding it difficult to find ideas that aren't dependent on my own
game design ideas :-)
Cheers,
Richard.
I've been thinking about some project ideas. They're pretty general
so would help out any Python MUD.
1) Web-hook-up mini-project that any developer can hook their MUD up to.
This should have as few dependencies as possible, use as much
non-custom only standard Python library support code as possible and
provide:
- Flexible web page to web server transport layer (web sockets,
otherwise flash, otherwise comet, otherwise ajax).
- Web-based support for text game, perhaps a terminal-like interface
with colours, links, etc. This could also be left out, maybe there is
a better option.
- Python server-side interface that is easy to use.
To me for the first point, socket.io seems like the best option.
Maybe you already have some code which we could use to be the start of
this, if you were interested in working on it together, since you
mentioned some disabled comet support.
2) Text-based graphics library.
Roguelike tiles:
Unicode, ascii, characters. Generating an array of "tiles"/characters
to display. Now, the way I envision it, there are going to be layers.
There's going to be the world which is rendered based on the viewed
contents of each given tile in the view window of the players. There
is going to be a user interface over this, perhaps with menus and
perhaps with speech bubbles and other gameplay enhancing elements.
It should be possible to only render selected layers, so that if there
were speech bubbles and overlaying game enhancing elements like that,
they would be rendered as tiles over the world view tiles. But if
the client was web based, then the opportunity would be there to use
javascript and floating divs or whatever to render something that
takes better advantage of the medium.
MUD text:
The library should be designed in such a way that for the viewable
area of the player, the API allows generation of "graphics" in the
form of a text description. This would be secondary and would just
generate the most straightforward representation in order not to
distract from the main focus of roguelike. It would also encourage
routing information in abstract ways, like where speech bubbles would
be used for heard dialogue in the roguelike, in the text-based MUD it
would appear as a normal "say" or "tell".
3) Internationalisation.
I know nothing about this and I think you homebrewed your own
solution. But if I were to do it, I'd want to research the current
game development state of the art and hopefully find some generic
Python library (or C/C++ library which might have Python bindings).
Or generify your solution if that were the best option and it was some
way towards that ideal solution already. Thoughts?
We might have a library which would wrap this and would provide a way
of registering known internationalised strings, and a fixed
straightforward format for messages which are to be processed. And
some way of making available game data in a standard way for it to use
to populate messages.
4) Telnet support library.
miniboa is all well and good, but I think I found it lacking. Maybe
look at these codes and see what we should do to provide something
better:
- https://github.com/Twisol/anachronism
- http://www.mudbytes.net/file-2811
5) MUD architecture
Something to be discussed is MUD architecture. So there is a
web-based interface. So there is a telnet interface with support for
colors, unicode and protocols. So there is internationalisation.
What is the MUD made up of? What functionalities are needed? How do
these things link together?
Anyway, just some ideas, Any thoughts / interest?
Cheers,
Richard.
2011/9/26 <mich.m...@gmail.com>:
> Ok, I see. In case you would like I am always open to discussion. :)I've been thinking about some project ideas. They're pretty general
so would help out any Python MUD.
1) Web-hook-up mini-project that any developer can hook their MUD up to.
This should have as few dependencies as possible, use as much
non-custom only standard Python library support code as possible and
provide:
- Flexible web page to web server transport layer (web sockets,
otherwise flash, otherwise comet, otherwise ajax).
- Web-based support for text game, perhaps a terminal-like interface
with colours, links, etc. This could also be left out, maybe there is
a better option.
- Python server-side interface that is easy to use.
To me for the first point, socket.io seems like the best option.
Maybe you already have some code which we could use to be the start of
this, if you were interested in working on it together, since you
mentioned some disabled comet support.
2) Text-based graphics library.
Roguelike tiles:
Unicode, ascii, characters. Generating an array of "tiles"/characters
to display. Now, the way I envision it, there are going to be layers.
There's going to be the world which is rendered based on the viewed
contents of each given tile in the view window of the players. There
is going to be a user interface over this, perhaps with menus and
perhaps with speech bubbles and other gameplay enhancing elements.
It should be possible to only render selected layers, so that if there
were speech bubbles and overlaying game enhancing elements like that,
they would be rendered as tiles over the world view tiles. But if
the client was web based, then the opportunity would be there to use
javascript and floating divs or whatever to render something that
takes better advantage of the medium.
MUD text:
The library should be designed in such a way that for the viewable
area of the player, the API allows generation of "graphics" in the
form of a text description. This would be secondary and would just
generate the most straightforward representation in order not to
distract from the main focus of roguelike. It would also encourage
routing information in abstract ways, like where speech bubbles would
be used for heard dialogue in the roguelike, in the text-based MUD it
would appear as a normal "say" or "tell".
3) Internationalisation.
I know nothing about this and I think you homebrewed your own
solution. But if I were to do it, I'd want to research the current
game development state of the art and hopefully find some generic
Python library (or C/C++ library which might have Python bindings).
Or generify your solution if that were the best option and it was some
way towards that ideal solution already. Thoughts?
We might have a library which would wrap this and would provide a way
of registering known internationalised strings, and a fixed
straightforward format for messages which are to be processed. And
some way of making available game data in a standard way for it to use
to populate messages.
4) Telnet support library.
miniboa is all well and good, but I think I found it lacking. Maybe
look at these codes and see what we should do to provide something
better:
- https://github.com/Twisol/anachronism
- http://www.mudbytes.net/file-2811
5) MUD architecture
Something to be discussed is MUD architecture. So there is a
web-based interface. So there is a telnet interface with support for
colors, unicode and protocols. So there is internationalisation.
What is the MUD made up of? What functionalities are needed? How do
these things link together?
Anyway, just some ideas, Any thoughts / interest?
Cheers,
Richard.
Cheers,
Richard.
I like the idea of a procedurally generated world in 3D.. but as a
programmer I want to stick with text as a medium for display. It
allows me to focus on programming, without getting distracted by
graphics programming. Unless the graphics programming was old-school
retro style lines and flat shading demo style :)
Cheers,
Richard.
I think that the only way to safely do scripting, is to embed another
language that supports sandboxing like lua. Or to move to PyPy as a
Python environment.
Cheers,
Richard.