2011-02-18 12 views
9

un ex compañero de trabajo (artista) y yo (programador) estamos desarrollando un pequeño juego juntos en nuestro tiempo libre. Como él no está interesado en aprender a usar XCode, excepto hacer sus propias creaciones (no lo culpo, es un gran artista, pero con muy poco conocimiento técnico), así es como hemos estado trabajando hasta el momento:Colaborando en un juego iOS con un artista viviendo en otro lugar/modificando archivos en una aplicación iOS sin reconstruir

  • compartimos una carpeta Dropbox donde almacenamos toda la obra dentro del juego
  • una vez que se han realizado cambios importantes o suficientes, que crearía una acumulación (distribución ad hoc) y enviarlo a él
  • De vez en cuando nos reuniremos y trabajaremos juntos un par de horas, tal vez una vez por semana, ya que vivimos en diferentes ciudades

Esto estuvo bien la mayor parte del tiempo. Sin embargo, ahora estamos ocupados perfeccionando el contenido y la mecánica del juego. En esta etapa de desarrollo, nuestro flujo de trabajo es solo lento y "desconectado". Cuando trabaje en la obra de arte, tendrá que esperar a que haga una compilación para poder ver los cambios reflejados en el contexto real. Como no siempre estamos trabajando al mismo tiempo, esto a veces significa que tendrá que esperar durante días, para nada satisfactorio.

Entonces, lo que me gustaría saber ...: ¿Cuál sería la mejor manera de permitirle cambiar el contenido sin la necesidad de reconstruir el juego?

Sé que el contenido de un paquete de aplicaciones iOS no se puede cambiar una vez compilado. Así que esto es lo que estaba pensando en lo que va:

  • mover el contenido de la carpeta de documentos durante el desarrollo para que se pueda acceder a través de iTunes (manejo además probablemente incómoda en vista de la cantidad de archivos en cuestión)
  • incorporar Dropbox en el juego, para que el contenido se cargue directamente desde nuestra carpeta compartida (se necesita más trabajo para implementarlo, Dropbox restringido a 5000 llamadas API por día mientras no esté en estado de producción)
  • cargue el contenido de un servidor web (aún más complicado en comparación con el uso de la Dropbox)

¿Qué piensan? ¿Hay formas mejores y más cómodas de lograr una colaboración fluida en nuestro caso? ¿Me estoy perdiendo de algo?

Gracias mucho !!

Edit: Por el momento, no tengo ningún plan para enseñarle a mi artista a hacer sus propias creaciones. Puedes considerar seriamente que esto sea una opción solo mientras no lo conozcas en persona. Sin embargo, es un gran artista.

Así que esta cuestión se reduce a:

¿Cómo modificar los archivos/consigo nuevos archivos en una aplicación para el iPhone después de que se ha construido - tan fácilmente como sea posible y, de nuevo, sin volver a generar la aplicación?

Esto tiene que funcionar solo durante el desarrollo, por cierto, por lo que los enfoques sucios son bienvenidos.

Respuesta

10

En algunos de los videos de la WWDC 2010, Apple analiza esto. Recomiendan cargar obras de arte de la web y aplicarlas a elementos UIKit o contextos OpenGL programáticamente.

Esto es complicado, pero es un buen método, porque entonces usted NO realiza ningún cambio en su binario y luego sus artistas pueden trabajar libremente, cargar el arte en un servidor y usted está dorado.

Sugiero una buena biblioteca HTTP, como ASIHTTPRequest, para hacer esas peticiones más fáciles.

+0

Estoy tratando de encontrar ese video, todavía no tengo suerte. – Moshe

+1

Comentario de [@Andrew HunzekerHesed] (http://stackoverflow.com/users/622030/andrew-hunzekerhesed): Los videos en los que estás pensando son Game Development para el iphone 1 y 2 de wwdc2010. –

+0

@JoachimSauer - Suena bien. – Moshe

-1

Diría que creó un repositorio de CVS. Cuando esté satisfecho con lo que tiene, puede confirmar su código. Puede actualizar su código y cambiar las imágenes como quiera.Cuando está contento, puede enviar sus cambios para que también tenga las últimas imágenes (siempre y cuando no se meta con los archivos, debería estar bien).

Enséñele cómo actualizar las imágenes, cómo implementarlas en un dispositivo, cómo comprometerse con el repositorio y debería ir sin problemas (aunque creo que habrá algunos problemas iniciales).

+0

Gracias, pero eso no eliminaría la necesidad de él para construir el proyecto, si es que quiere un resultado inmediato. Esto, como mencioné, actualmente no es una opción. Estamos buscando una forma en la que no necesite lidiar con todo el proyecto, sino que simplemente necesite cambiar, agregar o reemplazar algunos archivos en alguna carpeta (por ejemplo). – Toastor

+0

Ah, había asumido que querías decir sin tener que reconstruirlo para él. En ese caso, no estoy muy seguro. Para ser sincero, enseñarle a construir un proyecto (no es muy difícil) parece ser más fácil que las soluciones que mencionas. – NRaf

+0

¿Cómo construir un proyecto significa qué? Abra el proyecto en xcode y presione el botón de compilación y ejecución? Estoy seguro de que puede hacer esto. Él puede manejar toda la interacción de archivos en Finder. Lo único que debe hacer en Xcode sería hacer clic en Compilar y ejecutar. Esto acelerará mucho su proceso, porque puede usar el simulador de iphone. –

0

Yo diría que su primera opción es probablemente la mejor. Usted declara el problema con la transferencia de una gran cantidad de archivos a través de iTunes. Para solucionarlo, quisiera lo siguiente:

Cree una aplicación para crear archivos "paquete". Se puede tomar una carpeta de datos y guardarlo en un único archivo en el siguiente formato:

int - length of name string 
char[] - filename 
int - length of data chunk 
char[] - data chunk 

hacer esto para cada archivo en la carpeta, y se le dejó con un solo archivo de imagen. Copie eso a través de iTunes y haga que su juego vea esa misma carpeta.

Así que ahora su flujo de trabajo es el siguiente: 1) el arte de edición 2) ejecutar el compilador de 3 activo) copiar el archivo activo para el dispositivo 4) cargar el juego

espero que esto ayude.

+0

Interesante, al menos esto haría que la ruta a través de iTunes sea menos problemática ... – Toastor

+0

Este no es el enfoque correcto, pero es ¡muy genial! – Moshe

+0

¿Desea hacer una copia de seguridad de su reclamo o simplemente va a generar afirmaciones aleatorias? –

2

Vaya con la opción del servidor web/Dropbox. Podrías hacer esto subclasificando o extendiendo UIImage y usando la subclase en toda tu aplicación.

1

Jailbreak su iPhone, entonces usted puede ssh en el dispositivo usando Cyberduck. De esta forma, puede navegar a la carpeta de Recursos de la aplicación (o) a la carpeta de documentos de la aplicación y cambiar los archivos como desee.

Deberás asegurarte de que los permisos de la carpeta son los adecuados, o si no necesitas cambiarlos. También en su juego, en la primera ejecución, asegúrese de que todos sus recursos se copien en la carpeta de documentos de la aplicación.

+0

Espero que el artista no use su dispositivo para el desarrollo, sino que simplemente lo pruebe. Como no estoy seguro si el uso del dispositivo jailbreak para el desarrollo es ilegal. Hágalo bajo su propio riesgo :) –

+0

Tengo curiosidad por saber por qué esto es gente downvoted? Jailbreaking es legal para su información. –

+0

Jailbreaking es legal desde una perspectiva gubernamental pero no desde la perspectiva de Apple. Además, este no es el enfoque correcto. – Moshe

0

También podría hacer algo como esto:

  • modificar la aplicación para en su primera apertura que copia las imágenes en la carpeta de documentos
  • carga de las imágenes de la carpeta doc en lugar de desde el haz
  • con una herramienta como el Explorador de iPhone a continuación, puede sobrescribir los archivos en la carpeta de documentos

que es un poco aburrido para encontrar la aplicación real en la lista que iPhone expl orer te da, pero solo es cuestión de arrastrar y soltar los archivos en la carpeta correcta.

Puede funcionar también con algunos archivos en el paquete .app, pero no encontré ninguna aplicación adecuada para probarlo desde allí. De todos modos, si desea mantener la cosa casi sin problemas para su artista es posible que desee poner todo en una subcarpeta Documentos obstante :)


EDITAR

simplemente traté de editar algo en el .app carpeta y funcionó bien, por lo que ni siquiera tiene que cambiar su código si utiliza iPhone Explorer para reemplazar imágenes.

Simplemente recuerde desactivar la optimización PNG si está utilizando PNG. Mira here para la explicación (búsqueda "PNG"):

buena suerte :)

+0

Gracias por su respuesta, garph0! Esto es casi lo que he estado buscando, excepto que requeriría que mi artista haga un jailbreak en su dispositivo.Esto hubiera estado bien como una especie de último recurso, sin embargo, desarrollar un mecanismo para descargar el contenido de un servidor parece ser un enfoque más "a prueba de futuro" y puede dar resultado en otros proyectos (con otro equipo). Gracias por apuntarme hacia esta herramienta, podría ser útil en algún momento ... – Toastor

+0

No creo que necesites hacer jailbreak en el dispositivo para copiar archivos, pero podría estar equivocado :) La remotización de los medios es probablemente la forma correcta de hacerlo, de todos modos. – garph0

Cuestiones relacionadas