최근에 짧고 간단한 다중 사용자 지하 감옥을 만들었습니다. 내가 만든 것들은 게임 엔진과 실제 머드 자체입니다. 그래서 파일을 클릭하면 머드 게임을 할 수 있습니다. 내가 가진 문제는 둘 이상의 플레이어가 플레이 할 수 있도록 연결하는 방법을 모른다는 것입니다. 서버 또는 뭔가에 연결합니까? 필자는 파이썬과 머드에 익숙하지 않으므로 어떻게해야할지 모르겠다. 코드를 통해 나를 도울 수있는 몇 가지 예와이 게임을 연결하고 실행하는 방법을 통해 나를 도울 수 있습니까?여러 플레이어가 내 머드에 연결할 수있는 기능을 어떻게 제공합니까?
답변
귀하의 머드는 이어야합니다. 서버는이어야합니다.
먼저 엔진이 여러 사람이 동시에 던전 상태를 변경하는 것을 처리 할 수 있는지 확인하고자합니다.
다음으로 서버를 만드는 방법을 살펴보십시오. SocketServer 클래스를보고 싶을 수도 있습니다. 머드의 경우 TCP 서브 클래스 중 하나를 원할 것입니다.
각 사용자가 서버에 대한 연결을 엽니 다. 일반적으로 각 연결은 프로세스 또는 스레드에 의해 처리됩니다 (ThreadingMixin
참조). 이 스레드 안에는 연결을위한 사용자 인터페이스 코드가 있습니다 (사용자로부터 한 줄을 읽은 다음 엔진에 전달하고 결과를 사용자에게 출력).
엔진이 별도의 스레드/프로세스로 실행되어 지하 감옥 상태 (객실, 사용자, 항목 목록)를 유지 관리 할 수 있습니다.
행운을 빈다.
'선택'메소드는 스레딩에 대한 좋은 대안입니다 : http://docs.python.org/library/select.html#select.select –
일반적으로 MUD 서버 코드는 소켓 연결을 처리하고 명령 파서를 통해 내부 플레이어 개체에 연결합니다. 너는 SocketMUD을보고 싶을지도 모르다; MUD 사용을위한 베어 본 소켓 핸들링 아키텍처이며, 필요한 것일 수도 있습니다.
- 1. svnserve는 어떻게 여러 저장소를 제공합니까?
- 2. JW 플레이어가 여러 명입니까?
- 3. Axis2는 서비스가 배포되었는지 여부를 결정하는 기능을 제공합니까?
- 4. Play Framework에서 동일한 기능을 제공합니까?
- 5. 메모리 내 데이터베이스는 내구성을 어떻게 제공합니까?
- 6. 왜 내 메뉴 막대는 다음과 같은 기능을 제공합니까?
- 7. appDomain은 어떻게 격리를 제공합니까?
- 8. Alfresco : 커뮤니티 에디션이 문서 라이브러리 기능을 제공합니까
- 9. Apple은 CGSize를 CGPoint로 변환하는 기능을 제공합니까?
- 10. 제네릭에 기본 유형을 어떻게 제공합니까?
- 11. 어떻게 SharePoint 2007 기능을 사이트의 Application_Start에 연결할 수 있습니까?
- 12. 내 응용 프로그램에 온라인 기능을 추가하고 싶습니다. 내가 어떻게 해?
- 13. gdbserver에 연결할 수있는 그래픽 디버거
- 14. Wifi는 어떤 형태의 오류 정정 기능을 제공합니까?
- 15. Mirah는 어떤 메타 프로그래밍 기능을 제공합니까?
- 16. Silverlight를 고객에게 어떻게 제공합니까?
- 17. 항상 최신 버전의 파일을 다운로드 할 수있는 URL을 어떻게 제공합니까?
- 18. 사용자가 WiX를 사용하여 설치 경로를 지정할 수있는 UI를 어떻게 제공합니까?
- 19. 개발중인 CSS를 장고에 어떻게 제공합니까?
- 20. 내 플레이어가 다르고 내 ipad에서 작동하지 않는 이유는 무엇입니까?
- 21. iphone에서 비디오 플레이어가 닫습니다.
- 22. 웹 사이트에서 무료 벨소리를 어떻게 제공합니까?
- 23. 내 웹 페이지에 HTML 내장 코드를 어떻게 제공합니까?
- 24. Graph API는 페이지 탭을 사용자 정의하는 기능을 제공합니까?
- 25. PHP로 연결할 수있는 mySQL Workbench에서 데이터베이스를 어떻게 작성합니까?
- 26. Interface Builder에서 보낸 메시지를 어떻게 제공합니까?
- 27. Team City에 파일을 어떻게 제공합니까?
- 28. GKPeerPickerController 객체를 사용하여 여러 피어에 어떻게 연결할 수 있습니까?
- 29. Spring JDBC는 SQL 삽입 공격으로부터 어떤 보호 기능을 제공합니까?
- 30. Google 및 Facebook은 다른 사용자보다 먼저 어떤 기능을 제공합니까?
이 두 이전에 닫힌 스레드와 동일하지 않습니까? http://stackoverflow.com/questions/2621465/muti-user-dungeon-help-closed http://stackoverflow.com/questions/2623657/mud-server-in-python-closed – wasatz
나는 당신에게 행운이 있기를 바랄 뿐이다. 특히 그저 Google 만 할 수 있고 몇 가지 예를 찾을 수 있기 때문에 그다지 어려운 것은 아닙니다. 보다 구체적인 질문이 있으면 기꺼이 도와 드리겠습니다. – extraneon
wasatz 나는 당신이 그들이 굉장히 비슷하다고 말하면서 이해하지만, 나는 그 (것)들을 쓰지 않았다 – jason