XBOX ONE游戏开发常见问题-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

XBOX ONE游戏开发常见问题

简介: XBOX ONE游戏开发常见问题   终于弄懂这个在Unity的sdk在Account Picker切换账号的机制了,一个手柄注册一个账号,在游戏里面的时候,只有另外一个手柄选择自己的账号,系统的Active User才改变 如果同一个手柄选择另外一个账号的话,不改变系统active user...

XBOX ONE游戏开发常见问题

 

终于弄懂这个在Unity的sdk在Account Picker切换账号的机制了,一个手柄注册一个账号,在游戏里面的时候,只有另外一个手柄选择自己的账号,系统的Active User才改变

如果同一个手柄选择另外一个账号的话,不改变系统active user

 

最基本的 如何让XBOX开发机 开启开发模式?

勾开发者套件

在系统里面依次按下LBRBLTRT

然后重启,重启后会有 开发者设置,里面可设定沙盒等参数

 

1.微软提供了一个DelegatedAuthServer的ASP.NET网站例子,作用是做SSO登陆服务器

restService.svc里面有一个方法messageOfTheDay

主要是用于测试XBOX Console 发来的令牌解密,

在XBOX Console里调用DLL IMPORT 函数XboxLiveService_CallWebService

会返回False或True,一般False表明用户没有登陆,当然还有其它的几种情况

 

生成证书,原文档有一些错误,主要是最后-号有问题,然后是生成文件名没有放在最后

正确的如下:

makecert -sv RP_Private_Key.pvk -n "CN=Contoso Relying Party" -b 01/01/2015 -e 12/31/2199 -sky exchange -ss My -a sha256 -len 2048 -r -pe RP_Cert.cer

 

 

服务器的证书还出过一次问题,现象为XBOX Console没有把令牌发过来,

经查看服务器,发现证书的私钥管理的用户里,原来的SERVICE变成了?号,重新添加了一下

然后又重新导入后RelyingPart证书解决

 

*如何得知上面说的其它的几种情况?

由于这个代码是C++写的,在C#中调试,需要启动2个visual stuido2013,

c++项目 选择附加到进程-》XBOX Console 的IP ,在列表中选择XboxOnePlayer.exe

这样就可以调试从托管环境到非托管环境

 

2.使用UNITY来编写XBOX游戏,使用UNITY提供的插件,出现闪退

UNITY提供的插件有托管的和非托管的,是配对的

比如Friends.dll(C++),那么就有一个FriendsImport.dll(C#),

通过非托管和托管之间进行数据交互,回调

如果少导入一个,启动时会出现闪退,并且编译器也不会提示出错

 

3.在UNITY发布时出现错误

Failed to Push deploy, AUMID and PFN could not be found in the output.
args: Push "C:/Users/FUX-hp/Desktop/MP2105/MP2105/Building\MP2105"

 

 

那时因为UNITY生成的文件都很大,每一次编译需好几分钟,为提高发布效率

有几种DEPLOY METHOD

PACKAGE为完整发布

PUSH和PULL是快速发布

必须先完整发布一次,直接使用PUSH就会报这个AUMID and PFN could not be found的错

 

 

4.在编写多人游戏功能时,调用tryWriteSessionAsync时报错0x810910900,但是参数是对的

需要先注册RTA,否则会出这个错

RTAMultiplayerManager.RegisterBothCallbacks(

 

5.XBOXLIVE服务器抽风造成的问题

某天周一,下午下班后仍在调多人游戏接口,结果程序报异常

还打出好多EXCEPTION,开始是以为程序没布好,但是自已没改过代码

经查看发现

NETRUM: MatchmakingSession::BeginMatchmaking()
NETRUM: SwitchState CreateLobby -> Lobby
== [XBOX SERVICE CALL] #8
[HttpMethod]: POST
[URI]: https://momatch.xboxlive.com/serviceconfigs/8d950100-0b51-40ad-a13c-b0fb56d74423/hoppers/GoodReputationHopper
[RequestHeaders]: Accept-Language: en-US; Content-Type: application/json; charset=utf-8; x-xbl-api-build-version: xdk,6.2.13004.0; x-xbl-build-version: current; x-xbl-contract-version: 103;
[RequestBody]: {"giveUpDuration":300,"preserveSession":"never","ticketSessionRef":{"scid":"8d950100-0b51-40ad-a13c-b0fb56d74423","templateName":"LobbySession","name":"lobby-bb81e728-412c-4c57-a6b7-9a30cd6244b1"}}
[ErrorCode]: 0x00000000
[HTTP Status]: 504
[HRESULT]: 0x801901f8 HTTP_E_STATUS_GATEWAY_TIMEOUT
[ResponseHeaders]: Connection: close; ;

 

原来是XBOXLIVE服务器抽风,上官网一看果然如此

http://support.xbox.com/zh-CN/xbox-live-status?icid=furl_status

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: