¿Cómo construir un juego para Android e iOS? ¿Cuáles son los pasos y el costo involucrados?

Primeros pasos para el desarrollo de juegos iOS

  1. Antes de que empieces
  2. Paso 1: Explore los juegos de muestra
  3. Paso 2: crea (o abre) tu proyecto Xcode
  4. Paso 3: agrega tu juego a la consola de desarrollo de Google Play
  5. Paso 4: instala los SDK
    1. Opción 1: uso de CocoaPods
    2. Opción 2: instalación manual
  6. Paso 5: agregue un botón de inicio y cierre de sesión
  7. Paso 6: importe el SDK de Play Games y habilite el inicio de sesión
  8. Paso 7: Agregue un GPGStatusDelegate
  9. Paso 8: Iniciar sesión automáticamente en los jugadores que regresan
  10. Paso 9: agregue algunos refinamientos de interfaz
  11. Próximos pasos

¡Bienvenido al desarrollo de juegos iOS con los servicios de Play Game!
El SDK de servicios de Play Game proporciona servicios de juegos multiplataforma que le permiten integrar fácilmente funciones populares de juegos como logros, tablas de clasificación y multijugador en su tableta y juegos móviles.
Este documento describe los pasos básicos para crear un juego de iOS utilizando el SDK de servicios de Play Game. Tenga en cuenta que estas instrucciones reemplazan el inicio de sesión de Google + para la documentación de iOS.
Antes de que empieces
Crear aplicaciones usando el SDK de Google Games requiere:

  • Xcode versión 5.0 o superior
  • Un dispositivo móvil con iOS 7.0 o superior

Paso 1: Explore los juegos de muestra
Si aún no lo ha hecho, puede que le resulte útil descargar y revisar los juegos de muestra, que demuestran el uso adecuado de todas las funciones de los servicios de juegos en iOS. Todos los juegos de muestra para iOS se pueden encontrar en la página de Descargas. Siga las instrucciones en el archivo README dentro de cada muestra para aprender cómo inicializarlas y ejecutarlas.
Paso 2: crea (o abre) tu proyecto Xcode
Cree un nuevo proyecto en Xcode o abra un proyecto existente. Tome nota de su Identificador de paquete, ya que necesitará este valor en el siguiente paso. Esto suele ser algo así como com. * Your_company *. * Your_project *.

Si está creando un nuevo proyecto, se le recomienda que seleccione la opción de aplicación de vista única. Esto se encarga de configurar el controlador de vista para tu juego.
Paso 3: agrega tu juego a la consola de desarrollo de Google Play
Crea una entrada para tu juego en la Consola de desarrollador de Google Play. Esto habilita los servicios de juego para su aplicación y crea una ID de cliente OAuth 2.0, si aún no tiene una.

  1. Agregue una entrada para su juego iOS siguiendo los pasos descritos en Habilitación de los servicios del juego.
  2. Tome nota de la identificación de cliente OAuth 2.0 de su juego; Necesitarás esto más tarde.
  3. (Opcional) Agregue logros y tablas de clasificación a su juego siguiendo los pasos descritos en Configuración de logros y tablas de clasificación.
  4. Agregue cuentas para que otros miembros de su equipo prueben su juego siguiendo los pasos descritos en Publicación de los cambios de su juego.

Paso 4: instala los SDK
Antes de utilizar las API de servicios de Play Game, debe instalar las bibliotecas necesarias con uno de estos enfoques.
Opción 1: uso de CocoaPods
CocoaPods es un administrador de dependencias para instalar bibliotecas Objective-C. Si tiene CocoaPods instalado, puede usarlo para instalar el SDK de servicios de Play Game para iOS siguiendo estos pasos:

  1. Cree un Podfile y asegúrese de que especifique una plataforma de iOS 7.0 o posterior
  2. Agregue el pod GooglePlayGames a su Podfile. Un podfile típico podría verse así:
    plataforma: ios, ‘7.0’
    pod ‘GooglePlayGames’
    // Otros pods pueden ir aquí
  3. Ejecute la instalación de pod desde la línea de comandos.
  4. Abra el archivo .xcworkspace generado para su aplicación.
  5. Abra su proyecto en XCode y continúe desde la sección Agregar un botón de inicio y cierre de sesión a continuación.

Opción 2: instalación manual
Para instalar el SDK de servicios de Play Game para iOS manualmente sin usar CocoaPods, sigue estos pasos:

  1. Descargue y extraiga el último SDK de iOS de Google+ desde la página de Descargas de Google +.
  2. Copie los siguientes elementos del SDK de Google+ en su proyecto:
    • GoogleOpenSource.framework
      • Alternativamente, puede usar los archivos de código fuente completo de la biblioteca de código abierto de Google con su proyecto. Esto puede ser útil si desea ingresar al código durante la depuración. Para hacerlo, agregue la carpeta OpenSource a su proyecto en Xcode.
    • GooglePlus.bundle
    • GooglePlus.framework
  3. Descargue y extraiga el SDK de servicios de Play Game para iOS. La última versión está disponible en la página de Descargas.
  4. Agregue los siguientes elementos a su proyecto Xcode:
    • GooglePlayGames.bundle
    • GooglePlayGames.framework
  5. Abra la configuración de su proyecto y en la pestaña Fases de compilación , en la sección Enlace binario con bibliotecas , haga clic en el signo + y agregue los siguientes marcos:
    • AddressBook.framework
    • AssetsLibrary.framework
    • CoreData.framework
    • CoreLocation.framework
    • CoreMotion.framework
    • CoreTelephony.framework
    • CoreText.framework
    • Marco de la fundación.
    • MediaPlayer.framework
    • QuartzCore.framework
    • Marco de seguridad.
    • SystemConfiguration.framework
    • libc ++. dylib
    • libz.dylib
  6. Agregue el indicador del vinculador ObjC a la configuración de compilación del objetivo de la aplicación. En la configuración de destino, seleccione Configuración de compilación > Vinculación > Otras banderas de vinculador, luego agregue -ObjC como bandera.
    Otras banderas de enlazador: -ObjC

Paso 5: agregue un botón de inicio y cierre de sesión
En su controlador de vista, agregue un botón de inicio de sesión y un botón de cierre de sesión. Asegúrese de que su botón de inicio de sesión cumpla con las pautas de marca de Google +. Para reducir su esfuerzo de desarrollo, muchas de las interfaces de usuario integradas proporcionadas por los servicios del juego ya incluyen una opción de cierre de sesión, por lo que no necesita agregar esto manualmente.
Para agregar los botones de inicio y cierre de sesión:

  1. Control-arrastre estos dos botones a la categoría privada del archivo .m del controlador de vista (la sección contenida en @interface). Esto crea objetos IBOutlet para estos botones.
    @interface ViewController ()
    @property (débil, no atómico) IBOutlet UIButton * signInButton;
    @property (débil, no atómico) IBOutlet UIButton * signOutButton;
    @fin
  2. Luego, arrastre con control estos dos botones a la sección @implementation del archivo .m de su controlador de vista. Esto crea los siguientes métodos para manejar las pulsaciones de los botones del jugador.
    – (IBAction) signInButtonWasPressed: (id) remitente {
    // manejar el botón de inicio de sesión presionar
    }

    – (IBAction) signOutButtonWasPressed: (id) remitente {
    // manejar el botón de cerrar sesión presionar
    }

Paso 6: importe el SDK de Play Games y habilite el inicio de sesión

  1. Importe el archivo de encabezado GooglePlayGames. Consejo : La forma más fácil de hacerlo es abrir el archivo .pch de su aplicación y agregar la siguiente línea:
    #import
    Al poner esta declaración de importación en el archivo de encabezado precompilado de su aplicación, no tiene que importar este encabezado en todos sus otros archivos.
  2. En el archivo .m de su controlador de vista, o en un archivo de constantes separado, configure su ID de cliente. Esta es la cadena que grabaste anteriormente en la sección ‘Agrega tu juego a la Consola de desarrollador de Google Play’.
    NSString estático * const kClientID = @ “Página en googleusercontent.com”;
  3. Agregue el siguiente código a los dos métodos buttonWasPressed que creó anteriormente en la sección ‘Agregar un botón de inicio y cierre de sesión’.
    – (IBAction) signInButtonWasPressed: (id) remitente {
    [[GPGManager sharedInstance] signInWithClientID: kClientID silenciosamente: NO];
    }

    – (IBAction) signOutButtonWasPressed: (id) remitente {
    [[GPGManager sharedInstance] signOut];
    }

  4. Cuando un jugador inicia sesión en Google, el proceso de inicio de sesión los envía a la aplicación Google+, Chrome para iOS o Safari móvil (en esa secuencia). Después de que el jugador inicia sesión, la aplicación abre una URL que apunta a su juego y contiene la información necesaria para completar el proceso de inicio de sesión. Asegúrate de que tu aplicación pueda manejar la URL que redirige a tu juego
    1. En la pestaña Información de configuración de destino, desplácese hacia abajo hasta la sección Tipos de URL y haga clic en el icono + para agregar un nuevo tipo de URL. En los campos Identificador y Esquemas de URL , ingrese su ID de paquete.
    2. En su aplicación delegue el archivo .m, importe el marco de Google+.
      #import
    3. Llame al controlador de URL GPPURLHandler desde el controlador de URL de su delegado de aplicaciones. Este método maneja la URL que recibe su aplicación al final del proceso de autenticación.
      – Aplicación (BOOL): aplicación (UIApplication *)
      openURL: (NSURL *) url
      sourceApplication: (NSString *) sourceApplication
      anotación: (id) anotación {
      return [GPPURLHandler handleURL: url sourceApplication: sourceApplication annotation: annotation];
      }

Ahora puede probar su aplicación y poder iniciar y cerrar sesión. Cuando los evaluadores inicien sesión, serán redirigidos a G +, Chrome o Safari para completar el proceso de inicio de sesión, y luego serán redirigidos nuevamente a su aplicación.
Paso 7: Agregue un GPGStatusDelegate
A continuación, agregue el código para que su aplicación sepa que cuando se complete el proceso de inicio de sesión.

  1. En su categoría privada viewDidLoad, declare que su controlador de vista es un GPGStatusDelegate
    @interface ViewController ()
  2. A continuación, dígale al GPGManager que esta clase será su delegado de estado. Puede hacerlo en muchos lugares de su aplicación (como en su AppDelegate). El siguiente fragmento muestra cómo puede hacer esto desde el método viewDidLoad para su controlador de vista inicial:
    – (nulo) viewDidLoad {
    [super viewDidLoad];
    [GPGManager sharedInstance] .statusDelegate = self;
    }
  3. Implemente estos métodos GPGStatusDelegate: didFinishGamesSignInWithError (para manejar la finalización del inicio de sesión del jugador) y didFinishGamesSignOutWithError (para manejar la finalización del cierre de sesión del jugador).
    – (nulo) didFinishGamesSignInWithError: error (NSError *) {
    if (error) {
    NSLog (@ “Recibió un error al iniciar sesión en% @”, [error localizedDescription]);
    } más {
    NSLog (@ “¡Iniciar sesión!”);
    }
    [self refreshInterfaceBasedOnSignIn];
    }

    – (nulo) didFinishGamesSignOutWithError: error (NSError *) {
    if (error) {
    NSLog (@ “Recibió un error al cerrar sesión% @”, [error localizedDescription]);
    } más {
    NSLog (@ “¡Salido!”);
    }
    [self refreshInterfaceBasedOnSignIn];
    }

  4. Cree un método vacío para la llamada refreshInterfaceBasedOnSignIn.
    – (nulo) refreshInterfaceBasedOnSignIn {
    // En breve estaremos completando esto.
    }
    Ahora, cuando los probadores inician o cierran sesión, deberían ver el mensaje apropiado informado en el registro de la consola.
  5. Rellene la implementación del método refreshInterfaceBasedOnSignIn. Use la propiedad isSignedIn de GPGManager para determinar qué botón mostrar.
    – (nulo) refreshInterfaceBasedOnSignIn {
    BOOLignedInToGameServices = [GPGManager sharedInstance] .isSignedIn;
    self.signInButton.hidden =ignedInToGameServices;
    self.signOutButton.hidden =! firmadoInToGameServices;
    }

Ahora, cuando los evaluadores terminen de iniciar sesión, el botón de inicio de sesión estará oculto. Cuando cierran la sesión, el botón de cerrar sesión se ocultará y el botón de volver a aparecer debería volver a aparecer.
Paso 8: Iniciar sesión automáticamente en los jugadores que regresan
También puede iniciar sesión en los jugadores automáticamente, para evitar que inicien sesión cada vez que inicien su juego. GPGManager iniciará sesión automáticamente en el reproductor cuando especifique en silencio: SÍ en el método signInWithClientID. Esta llamada tiene éxito si se cumplen todas las siguientes condiciones:

  • El jugador ha autorizado su solicitud en el pasado;
  • El jugador no ha revocado el acceso a su aplicación; y
  • La aplicación no solicita nuevos ámbitos desde la última vez que el jugador inició sesión.

Con este comportamiento, puede iniciar sesión automáticamente en el jugador en su juego agregando signInWithClientID: silenciosamente: llame al final de su método viewDidLoad, con silencio establecido en SÍ.
[[GPGManager sharedInstance] signInWithClientID: kClientID silenciosamente: SÍ];
Ejecute su aplicación y observe que, a menos que haya cerrado la sesión la última vez que la usó, ahora inicia sesión automáticamente.
Paso 9: agregue algunos refinamientos de interfaz
Cuando la aplicación inicia el inicio de sesión del jugador automáticamente, hay un pequeño retraso entre el inicio y la finalización del inicio de sesión. Su juego debe deshabilitar la interfaz de usuario durante este tiempo. Para hacer esto, use el hecho de que el método signInWithClientID: silenciosamente devuelve SÍ si está intentando iniciar sesión automáticamente en el reproductor.

  1. Primero, agregue una variable de instancia a su clase de controlador de vista para realizar un seguimiento de si está o no firmando el reproductor en silencio:
    @implementation ViewController {
    BOOL _silentlySigningIn;
    }
  2. Luego, use esa variable para registrar lo que se devuelve desde el método signInWithClientID: silenciosamente: e inmediatamente llame a refreshInterfaceBasedOnSignIn.
    – (nulo) viewDidLoad {
    [super viewDidLoad];
    [GPGManager sharedInstance] .statusDelegate = self;
    _silentlySigningIn = [[GPGManager sharedInstance]
    signInWithClientID: kClientID silenciosamente: YES];
    [self refreshInterfaceBasedOnSignIn];
    }
  3. Agregue las siguientes líneas a su método refreshInterfaceBasedOnSignIn para deshabilitar los botones de inicio y cierre de sesión si el reproductor inicia sesión de forma silenciosa:
    self.signInButton.enabled =! _silentlySigningIn;
    self.signOutButton.enabled =! _silentlySigningIn;
  4. Finalmente, establezca _silentlySigningIn en NO justo antes de llamar a refreshInterfaceBasedOnSignIn en los dos métodos GPGEventDelegate:
    – (nulo) didFinishGamesSignInWithError: error (NSError *) {
    // Otro código va aquí …
    _silentlySigningIn = NO;
    [self refreshInterfaceBasedOnSignIn];

    }

    – (nulo) didFinishGamesSignOutWithError: error (NSError *) {
    // Otro código va aquí …
    _silentlySigningIn = NO;
    [self refreshInterfaceBasedOnSignIn];
    }

Ahora, cuando los evaluadores inicien su aplicación, deberían ver su botón de inicio de sesión, pero estará oculto durante el inicio de sesión automático. Una vez que se completa el inicio de sesión del jugador inicial, el botón de inicio de sesión se oculta y aparece un botón de cierre de sesión.
¡Felicidades! En este punto, ahora estás listo para comenzar a agregar logros, tablas de clasificación, misiones y otras características de los servicios de Play Game a tu juego.
Próximos pasos

  • Obtenga más información sobre el SDK, la clase GPGManager y obtenga información sobre el reproductor.
  • Obtenga información adicional sobre el proceso de inicio de sesión.
  • Agrega logros a tu juego.
  • Incorpora tablas de clasificación en tu juego.
  • Guarda y carga los datos de tu juego en la nube.
  • Agrega multijugador multiplataforma en tiempo real a tu juego
  • Agrega multijugador multiplataforma por turnos a tu juego
  • Explore la referencia de la API.

Vía desarrolladores de Google

Necesitas un buen fondo de programación para crear tus propios juegos personalizados.
Es un largo viaje poder escribir aplicaciones y juegos, pero definitivamente vale la pena si estás interesado y decidido 🙂

O si tienes conocimientos básicos de HTML5, también puedes probar GameSalad 🙂 aquí.
GameSalad – Crea juegos para iOS, Android y HTML5 – Arrastra y suelta – No se requiere codificación. Creación de juegos para todos.

Espero que esto ayude 🙂

Gracias por la A2A

Herramientas

  1. Nativo
  • Para iOS necesitas usar Xcode.
  • Para Android Eclipse.
  • Cocos2d.

2. Plafroms cruzados:

  • Unidad 3d.
  • Cocos2d-x
  • Corona SDK.

Costo
Para Apple es de $ 99 / año.
Y para Android cuesta $ 25.

Hora
El tiempo de desarrollo depende del requisito.

Veltrod es una empresa global de consultoría de software especializada en el desarrollo de aplicaciones móviles para plataformas iPhone, Android, BB, Windows y Cross. Puede probar Veltrod para obtener soluciones rentables y de calidad enviando sus requisitos a [correo electrónico protegido]

Heya
Si desea desarrollar juegos tanto para iOS como para Android, me gustaría sugerirle que comience a desarrollar usando el motor de juegos Unity3D , es de uso gratuito.

Todo lo mejor
Paz