9
votes

Collaborer sur un jeu iOS avec un artiste vivant ailleurs / modification de fichiers dans une application iOS sans reconstruire

Un ancien collègue (artiste) et moi-même (programmeur) développe actuellement un petit jeu ensemble dans notre temps libre. Puisqu'il n'est pas du tout intéressé à apprendre à utiliser Xcode, économisez ses propres constructions (je ne le blâme pas, il est un excellent artiste, mais avec seulement peu de compréhension pour des affaires techniques), c'est ainsi que nous travaillons Jusqu'à présent:

  • Nous partageons un dossier Dropbox où nous stockons toutes les œuvres d'encadrement
  • Une fois que des modifications suffisantes ou importantes ont été apportées, je créerais une construction (distribution ad hoc) et l'envoyer à lui
  • De temps en temps, nous nous rencontrerons et travailleront ensemble quelques heures, peut-être une fois par semaine depuis que nous vivons dans différentes villes

    C'était OK pour la plupart du temps. Cependant, nous sommes maintenant occupés à finaliser le contenu et la mécanique du jeu. Dans cette étape de développement, notre flux de travail est juste pour ralentir et «déconnecté». Chaque fois qu'il travaille sur les œuvres d'art, il devra attendre que je fasse une construction pour pouvoir voir les changements reflétés dans le contexte actuel. Puisque nous ne travaillons pas toujours en même temps, cela signifie parfois qu'il devra attendre des jours - pas du tout satisfaisant.

    Donc, ce que j'aimerais savoir ..: Quel serait la meilleure façon de lui permettre de changer le contenu sans la nécessité de reconstruire le jeu?

    Je sais que le contenu d'un ensemble d'applications iOS ne peut pas être modifié une fois compilé. Alors voici ce que je pensais jusqu'à présent:

    • Déplacez le contenu dans le dossier Documents pendant le développement, de sorte qu'il peut être accessible via iTunes (manipulation de manière proprable maladroite à la lumière de la quantité de fichiers en question)
    • Incorporer Dropbox dans le jeu, de sorte que le contenu puisse être chargé à partir de notre dossier partagé (travail supplémentaire nécessaire à la mise en œuvre, DropBox est limitée à 5000 appels d'API par jour, sans l'état de la production)
    • Chargez le contenu d'un serveur Web (encore plus compliqué par rapport à l'utilisation de la liste déroulante)

      Qu'est-ce que vous pensez? Y a-t-il de meilleurs moyens mieux et plus confortables d'atteindre une collaboration en douceur dans notre cas? Est-ce que je manque quelque chose?

      Merci beaucoup !!

      EDIT: Pour le moment, je n'ai aucun plan pour apprendre à mon artiste comment faire ses propres constructions. Vous pouvez considérer sérieusement que cela soit une option que tant que vous ne le connaissez pas en personne. C'est un grand artiste, cependant.

      Cette question se résume à:

      Comment modifier des fichiers / obtenir de nouveaux fichiers dans une application iPhone après sa construction - aussi facilement que possible et, encore une fois, sans reconstruire l'application?

      Cela doit fonctionner pendant le développement uniquement, à la manière, les approches si sales sont les bienvenues.


0 commentaires

6 Réponses :


-1
votes

Je dirais configurer un référentiel CVS. Lorsque vous êtes satisfait de ce que vous avez, vous pouvez commettre votre code. Il peut mettre à jour son code et changer les images, mais il veut. Quand il est heureux, il peut commettre ses changements afin que vous ayez aussi les dernières images (tant qu'il ne plaisante pas avec des fichiers, ça devrait aller).

Apprenez-lui comment mettre à jour les images, comment déployer sur un périphérique, comment s'engager dans le référentiel et aller être lisse (bien que je pense qu'il y aurait des problèmes de dentition).


4 commentaires

Merci, mais cela ne vous enlèverait pas le besoin de construire le projet, s'il veut un résultat immédiat. Comme je l'ai mentionné, ce n'est actuellement pas une option. Nous recherchons une manière dont il n'a pas besoin de faire face à l'ensemble du projet, mais il faut simplement modifier, ajouter ou remplacer certains fichiers dans certains dossiers (par exemple).


Ah, j'avais supposé que tu voulais dire sans que tu devais la reconstruire pour lui. Dans ce cas, je ne suis pas trop sûr. Pour être honnête, lui apprendre à construire un projet (ce n'est pas comme si c'est très difficile) semble être plus facile que les solutions que vous avez mentionnées.


Comment construire un projet signifie quoi? Ouvrez le projet en Xcode et appuyez sur le bouton de construction et d'exécution? Je suis sûr qu'il peut faire cela. Il peut gérer toute l'interaction de fichier dans Finder. La seule chose qu'il doit faire dans Xcode serait de cliquer sur Construire et exécuter. Cela accélérera beaucoup son processus, car il peut utiliser l'iPhone Simulator.


L'utilisation du simulateur ne fonctionnerait pas depuis que le jeu repose fortement sur MultiTouch. Nous avons donc besoin de dispositifs réels - ce qui signifie des certificats, des profils de provisionnement, des identités de code de code. Même si je fixais tout cela pour lui, je suis inquiet pour les paramètres de projet contradictoires, en particulier en ce qui concerne la repère, tout en travaillant avec le référentiel. Techniquement, tout cela peut être surmonté, mais ce n'est pas la solution que j'espérais trouver ...



0
votes

Je dirais que votre première option est probablement la meilleure. Vous indiquez la question avec le transfert d'un grand nombre de fichiers via iTunes. Pour résoudre ce problème, je voudrais suivre:

Créer une application pour créer des fichiers "package". Il peut s'agir d'un dossier de données et de l'enregistrer dans un seul fichier dans le format suivant: p>

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


2 commentaires

Soin de sauvegarder votre réclamation ou allez-vous simplement baisser des affirmations aléatoires?


Ha! Bienvenue dans le monde des archives de fichiers et réinventer Zip / Unzip! :-)



2
votes

Allez avec l'option Server Web / Dropbox. Vous pourriez être capable de le faire en sous-classant ou en prolongeant UiImage et en utilisant la sous-classe dans votre application.


0 commentaires

1
votes

Jailbreak Votre iPhone, alors vous pouvez SSH dans l'appareil à l'aide de Cyberduck. De cette façon, vous pouvez accéder au dossier de document de l'application du dossier (ou) de l'application et de modifier les fichiers que vous le souhaitez.

Vous devrez vous assurer que les autorisations de dossier sont correctes, sinon vous devez les modifier. Aussi dans votre jeu, en première course, assurez-vous que toutes vos ressources sont copiées sur le dossier Documents de l'application.


3 commentaires

J'espère que l'artiste n'utilise pas son appareil pour le développement, mais il suffit de tester. Comme je ne suis pas sûr que si vous utilisez un périphérique jailbreaké pour le développement, est illégal. Faites-le à votre risque s'il vous plaît :)


Je suis juste curieux comme pourquoi cela est bullevoté les gens? Le jailbreaking est légal pour votre information.


Le jailbreaking est légal du point de vue du gouvernement mais non du point de vue de Apple. En outre, ce n'est pas la bonne approche.



10
votes

Dans certaines des vidéos de la WWDC 2010, Apple en discute. Ils conseillent à charger les œuvres d'art de la bande et à l'appliquer à des éléments uikit ou à des contextes OpenGL de manière programmatique.

Ceci est compliqué, mais une bonne méthode, car alors vous ne modifiez pas votre binaire, puis vos artistes peuvent travailler librement, télécharger l'art sur un serveur et vous êtes doré.

Je suggère une bonne bibliothèque http, comme ASIHTTPEQUEST , pour rendre ces demandes plus faciles.


7 commentaires

J'essaie de trouver cette vidéo, pas encore de chance.


Commentaire de @andrew Hunzekerhesed : Les vidéos que vous envisagez de se développer pour les iPhone 1 et 2 de la WWDC2010.


Ou peut-être: [UIIMAGE ImageWithData: [Nsdata DatawithContentsofurl:]]


@Luke fait cette charge de manière asynchrone? Qu'en est-il des délégués et des erreurs de chargement?


Nope, il verrait l'interface utilisateur si vous le faites dans le fil principal. Vous pouvez faire initwithcontentsofurl: options: erreur et inspectez la NSError après. Ce n'est pas joli, mais il a demandé des solutions rapides et sales et il s'agit d'une bibliothèque moins à ajouter qui ne sera jamais utilisée dans l'application d'expédition.


@Luke je me repose mon cas. Aucun problème d'interface utilisateur.


@Moshe: Seulement si vous utilisez ASIHTTPRequest Asynchrone! ;) Étant donné que vous devrez attendre que les ressources soient à jour avant de lancer l'application principale, le verrouillage de l'interface utilisateur dans la version de développement ne semble pas avoir une grande affaire. @Toasttor: Qu'avez-vous fini par utiliser dans la pratique?



0
votes

Vous pouvez aussi faire quelque chose comme ceci:

  • Modifiez l'application ainsi sur son premier démarrage qu'il copie les images dans le dossier Document
  • Chargez les images du dossier DOC plutôt que de l'ensemble
  • avec un outil comme l'explorateur iPhone, vous pouvez ensuite écraser les fichiers du dossier de document

    C'est un peu ennuyeux de trouver l'application réelle dans la liste que l'explorateur iPhone vous donne, mais il s'agit simplement d'une question de glisser et de déposer les fichiers dans le bon dossier.

    Cela peut également fonctionner avec un fichier de fichier .app, mais je n'ai trouvé aucune application appropriée pour l'essayer à partir de là. Quoi qu'il en soit, si vous voulez garder la chose presque sans tracas pour votre artiste, vous voudrez peut-être tout mettre dans un sous-dossier de documents néanmoins :)


    Edit

    J'ai juste essayé de modifier quelque chose dans le dossier .app et cela a fonctionné correctement, vous n'avez donc pas besoin de changer votre code si vous utilisez l'explorateur d'iPhone pour remplacer les images.

    N'oubliez pas de désactiver l'optimisation PNG si vous utilisez PNGS. Look ici pour l'explication (recherche de "pngs:")

    bonne chance :)


2 commentaires

Merci pour votre réponse, Garph0! C'est presque ce que j'ai cherché, sauf que cela nécessiterait mon artiste de jailbreaker son appareil. Cela aurait été correct comme une sorte de dernier recours, cependant de développer un mécanisme de téléchargement du contenu d'un serveur semble être une approche plus «future» et peut payer dans d'autres projets (avec une autre équipe). Merci de me diriger vers cet outil, cela pourrait être utile à un moment donné ...


Je ne pense pas que vous ayez besoin de jailbreaker l'appareil pour copier des fichiers, mais je pourrais me tromper :) La remotisation des médias est probablement la bonne façon de le faire, de toute façon.