Git Product home page Git Product logo

carbonmu's People

Contributors

nateberkopec avatar openmailbox avatar thejonanshow avatar tkrajcar avatar waffle-iron avatar zoevkay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

carbonmu's Issues

'look' command (argument-less form)

Needs to show:

  • Location room name
  • Location description
  • If any contents, "Contents:" header, and content object names
  • If any exits, "Exits:" header, and exit names with destination names

Bonus points: Subtle ANSI for headers and highlight players in exits.

Notifying & locale storage refactoring

  • Add locales to Players, have Connections inherit locale from Player once logged in
  • Add .notify to Players and Connections, running through i18n layer (Player.notify will notify all of Player's connections)
  • Remove Notify.one and update all existing uses

Primitives discussion

I'd like to get some thoughts from those who might be interested about the 'primitives' that should be supported out of the box - these are the data types that every game should have. For example, MUSH/MUX use 'Player', 'Thing', 'Room', and 'Exit' - with players and things being pretty damn similar. MUDs have items, NPCs, players, rooms, etc. Some MUD drivers also have 'blueprint items' which are interacted with slightly differently than regular items, and so on.

Obviously, as a fresh engine, we have the power to completely rethink this. I don't want to put more datatypes than we need to in CarbonMU core since part of the focus of this project is to build something modular - something like 'weapon' is too game-style-specific IMO - but I've also been building exclusively MUSH/MUX/MUSE games for 20 years, so I could use some input on what other core primitives we should support.

It feels to me like the traditional four (Player/Thing/Room/Exit) are a lock, but I'm open to disagreement, and also any new ideas. Just comment.

Name matching

Need internal call for matching names to GameObjects, to be used in commands (ie 'look foo', need to turn foo into an object).

Parameters:

  • Name to search
  • Type(s) to return, default to all
  • Local or global, default to local
  • Searcher (optional unless local search)
  • Expected cardinality ('find first' or 'error if more than one match')

Error when connecting to server using PuTTYtel

When connecting to the telnet port (127.0.0.1:8421) using the PuTTYtel telnet client, the server crashes.

Steps I took:

  1. Run 'rake console' , and then 'carbonmu start' once the console has loaded.
  2. Wait until the 'edge router sending connections to server' message appears (because of
  3. Now, start up the telnet client using localhost and the default port number 8421.

The server crashes, printing the following log:

$ rake console
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/celluloid/depr
ecate.rb:13: warning: already initialized constant Celluloid::Logger
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-essentials-0.20.0.pre17/lib/cel
luloid/essentials.rb:27: warning: previous definition of Logger was here
I, [2015-06-01T03:47:37.226786 #8624]  INFO -- : +------------------------------
--------------------+
I, [2015-06-01T03:47:37.227764 #8624]  INFO -- : |    Celluloid version running
now: 0.17.0.pre15   +
W, [2015-06-01T03:47:37.227764 #8624]  WARN -- : +------------------------------
--------------------+
W, [2015-06-01T03:47:37.228737 #8624]  WARN -- : |     Celluloid is running in B
ACKPORTED mode.     |
W, [2015-06-01T03:47:37.228737 #8624]  WARN -- : |   Time to update deprecated c
ode, before v1.0!   |
W, [2015-06-01T03:47:37.229723 #8624]  WARN -- : +------------------------------
--------------------+
W, [2015-06-01T03:47:37.229723 #8624]  WARN -- : |  Prepare! As of v0.17.5 you c
an begin updating.  |
W, [2015-06-01T03:47:37.230696 #8624]  WARN -- : +------------------------------
--------------------+
W, [2015-06-01T03:47:37.231675 #8624]  WARN -- : |    Want to read about it? htt
p://git.io/vJf3J    |
W, [2015-06-01T03:47:37.231675 #8624]  WARN -- : +------------------------------
--------------------+
WARN: Unresolved specs during Gem::Specification.reset:
      minitest (~> 5.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
I, [2015-06-01T03:48:12.502302 #8624]  INFO -- : MONGOID: Created indexes on Car
bonMU::GameObject:
I, [2015-06-01T03:48:12.503303 #8624]  INFO -- : MONGOID: Index: {:_special=>1},
 Options: {}
I, [2015-06-01T03:48:12.503303 #8624]  INFO -- : MONGOID: Index: {:location_id=>
1}, Options: {:background=>true}
I, [2015-06-01T03:48:12.504304 #8624]  INFO -- : MONGOID: Index: {:destination_i
[1] pry(CarbonMU)> carbonmucarbonmu starttart
I, [2015-06-01T03:48:22.988525 #8624]  INFO -- CarbonMU: *** Starting CarbonMU e
dge router.
I, [2015-06-01T03:48:22.990525 #8624]  INFO -- CarbonMU: *** Starting Telnet rec
eptor on 0.0.0.0 8421.
I, [2015-06-01T03:48:23.000532 #8624]  INFO -- CarbonMU: *** Edge router waiting
 for IPC on port 56091
I, [2015-06-01T03:48:45.697289 #26876]  INFO -- CarbonMU: *** Starting CarbonMU
game server to connect to edge router port 56091.
I, [2015-06-01T03:48:45.792357 #26876]  INFO -- : MONGOID: Created indexes on Ca
rbonMU::GameObject:
I, [2015-06-01T03:48:45.793358 #26876]  INFO -- : MONGOID: Index: {:_special=>1}
, Options: {}
I, [2015-06-01T03:48:45.794358 #26876]  INFO -- : MONGOID: Index: {:location_id=
>1}, Options: {:background=>true}
I, [2015-06-01T03:48:45.795359 #26876]  INFO -- : MONGOID: Index: {:destination_
id=>1}, Options: {:background=>true}
D, [2015-06-01T03:48:45.813370 #26876] DEBUG -- CarbonMU: SERVER SEND: <IPCMessa
ge: {:port=>56103, :pid=>26876, :op=>:started}>
D, [2015-06-01T03:48:45.849390 #26876] DEBUG -- CarbonMU: SERVER SEND: <IPCMessa
ge: {:op=>:retrieve_existing_connections}>
D, [2015-06-01T03:48:45.869404 #8624] DEBUG -- CarbonMU: EDGE ROUTER RECEIVE: <I
PCMessage: {:port=>56103, :pid=>26876, :op=>:started}>
D, [2015-06-01T03:48:45.870404 #8624] DEBUG -- CarbonMU: *** Edge router receive
d server IPC start. Pid 26876, port 56103.
D, [2015-06-01T03:48:45.875412 #8624] DEBUG -- CarbonMU: EDGE ROUTER RECEIVE: <I
PCMessage: {:op=>:retrieve_existing_connections}>
I, [2015-06-01T03:48:45.875412 #8624]  INFO -- CarbonMU: Sending connections to
server...

(This was the moment where I tried connecting using the telnet client. Now the server crashes:)

E, [2015-06-01T03:48:55.034487 #8624] ERROR -- CarbonMU: Actor crashed! ThreadError: deadlock; recursive locking c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/nio4r-1.1.0/lib/nio/selector.rb:4 0:in synchronize'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/nio4r-1.1.0/lib/nio/selector.rb:4
0:in deregister' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/nio4r-1.1.0/lib/nio/monitor.rb:40 :in close'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-io-0.16.5.pre0/lib/cell
uloid/io/reactor.rb:52:in wait' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-io-0.16.5.pre0/lib/cell uloid/io/reactor.rb:21:in wait_readable'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-io-0.16.5.pre0/lib/cell
uloid/io.rb:53:in wait_readable' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-io-0.16.5.pre0/lib/cell uloid/io/tcp_server.rb:19:in accept'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/carbonmu-0.0.3/lib/carbonmu/edge_
router/telnet_receptor.rb:23:in block in run' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/carbonmu-0.0.3/lib/carbonmu/edge_ router/telnet_receptor.rb:23:in loop'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/carbonmu-0.0.3/lib/carbonmu/edge_
router/telnet_receptor.rb:23:in run' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul oid/calls.rb:28:in public_send'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul
oid/calls.rb:28:in dispatch' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul oid/call/async.rb:7:in dispatch'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul
oid/cell.rb:50:in block in dispatch' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul oid/cell.rb:76:in block in task'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul
oid/actor.rb:363:in block in task' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul oid/task.rb:57:in block in initialize'
c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/celluloid-0.17.0.pre15/lib/cellul
oid/task/fibered.rb:14:in block in create'

My system: Windows 8.1, Ruby 2.1.6

Implement pubsub pattern

Anything should be able to publish an event, and anything should be able to subscribe to an event.

wisper / wisper-celluloid maybe?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.