Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con el GamerServicesComponent

Iniciado por Goosebrush, 24 de Octubre de 2011, 09:09:14 PM

« anterior - próximo »

Goosebrush

Tengo un problema con la siguiente linea:

this.Components.Add(new GamerServicesComponent(this));

Esto lo meto en el juego aqui:

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;

namespace WindowsGame6
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            this.Components.Add(new GamerServicesComponent(this)); // inicializamos los servicios del XBoxLive

        }
...

El caso es que cuando pongo esa linea y ejecuto el juego todo va bien, pero cuando llevo el ejecutable a otro ordenador (lo he probado en 2 diferentes) me da un error. En un Vista me dice que ha dado un error y debe cerrarse (no me da muchas mas indicaciones  :( ). He limpiado todo el codigo hasta dejar al final solo esto y si quito esa linea, ya no da error.   ???

¿Alguna idea?

Gracias.

Vicente

La maquina donde ejecutas necesita tener instalado el Games for Windows LIVE si no recuerdo mal cuando usas eso.

Goosebrush


Goosebrush

No ha funcionado. Lo he instalado pero sigue igual. En el XP me detalla el error, aunque a mi no me dice nada.  :-[

EventType : clr20r3     P1 : windowsgame6.exe     P2 : 1.0.0.0     P3 : 4ea5c6eb
P4 : system     P5 : 4.0.0.0     P6 : 4db90519     P7 : 3e3a     P8 : 3b8     
P9 : kksl2emmm0cljmabh5tyqy352myo42ze     

A ver si a alguno le dice algo.

Gracias.

blau

es eso que ha dicho vicente...

la unica solucion es hacer un try ... catch y deshabilitar las funciones que tiren de el...


este es mi codigo en el initialize:


        try
            {
                GamerServices = new GamerServicesComponent(this);
#if WINDOWS
                GamerServices.Initialize();
#endif
                Components.Add(GamerServices);               
            }
            catch (GamerServicesNotAvailableException e)
            {
                // // Logger.Log(20, "GamerServices can't be initialized");
                // // Logger.Log(20, e.Message);
            }
            finally
            {
                //StatesManager.Push<StateBloom>(true);
                //StatesManager.Push<StateFuego>(true);
                StatesManager.Push<StateTrialMode>(true);
               // StatesManager.Push<StateStoreHighScores>(true);               
                StatesManager.Push<StateGenesis>(true);

            }

Goosebrush

Muchas gracias blau por el ejemplo que me has pasado. Ya no me da error. Ahora he visto que la excepción salta con el error: ERROR RUNNING 'XNALIVEPROXY.EXE.

Por lo que he leido, parece ser que para hacer pruebas de red en PC debes tener instalado SI o SI el XNA Game Studio para que funcione. Como son para pruebas, lo hare así a ver que tal. Pero no me cuadra mucho, si quiero hacer un juego para jugar en red local, ¿todos los equipos deben tenerlo instalado? Tambien es verdad que he leido unos post de hace un tiempo, igual eso ha cambiado.

Gracias de nuevo.

WaaghMan

Microsoft no permite usar el componente de red, ni las funcionalidades de LIVE, para publicar juegos en Pc. Es sólo para juegos de Xbox. Por eso no está metido en el runtime.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

Goosebrush

Que majos estos de Microsoft...   >:(

Bueno, como solo es para hacer pruebas instalare el Game Studio en el resto de equipos, mi idea es hacerlo para que funcione en la Xbox.

Gracias a todos.  ;)

RendercodeGames

Ya que ha salido el tema del GamerServicesComponent aprovecho: a mi la inicialización de ese componente en PC me tarda como 10 segundos si no estoy conectado a Internet, cada vez que arranco el juego. Si estoy conectado pasa sólo la primera vez. ¿Alguien más lo ha notado?

Goosebrush

Lo pruebo esta noche y te comento si me pasa lo mismo.

Hans

Yo lo noto siempre, una castaña más. Yo tb voy a optar por quitar directamente las referencias y todo sitio donde se usen. Para lo que sirven en Windows como que me da igual.

Goosebrush

Ayer lo probé (conectado a internet). No vi ningún retardo al ejecutarlo. También es verdad que hice tantas pruebas que tampoco estoy al 100% seguro.  :)

Por lo demás, al final conseguir que los 2 equipos se comunicaran y muestro lo de un ordenador en el otro. Un pequeño paso para el juego, pero uno inmenso para mí.  :D

blau

Cita de: Hans en 25 de Octubre de 2011, 11:04:03 AM
Yo lo noto siempre, una castaña más. Yo tb voy a optar por quitar directamente las referencias y todo sitio donde se usen. Para lo que sirven en Windows como que me da igual.

El retraso se produce cuando tienes el automatico puesto para logearte en un profile al inicio... yendote al perfil y deshabilitando el log automatico va bien...

RendercodeGames

Pues a mi me sigue tardando aunque desactive el logueo automático. Tiene delito porque además es una cuenta local, sin conexión a Live.  >:(

WaaghMan

A mí me va por rachas, últimamente se me está portando bien, pero hay días que me tarda 10 segundos en inicializar el dichoso componente. Tengo el inicio de sesión automático desactivado.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.