2010-05-18 3 views
0

Est-il possible d'ajouter une fonction pour enregistrer le jeu dans votre jeu sans trop manger de mémoire?Iphone sdk - enregistrer le jeu dans un jeu

Je veux permettre à l'utilisateur d'enregistrer le jeu comme une sorte de fichier vidéo si c'est possible? // Éditer - simplifier les choses pour être plus relictif // L'idée est que l'utilisateur peut utiliser l'application pour changer les textures dans une scène pré-animée et quand elles ont fini, elles peuvent l'exporter vers la vidéo.

Merci

Répondre

0

Votre jeu est-il déterministe? Si c'est le cas, vous devriez pouvoir enregistrer l'entrée de l'utilisateur. Ensuite, pour le rejouer, il vous suffit de lancer le jeu et de fournir l'entrée enregistrée au lieu de l'entrée en direct.

Selon le type de jeu, la partie la plus difficile sera déterministe. Vous aurez besoin de capturer toutes les graines de générateurs de nombres aléatoires et combien de fois vous avez obtenu un nombre à partir du générateur de sorte que vous obtenez exactement les mêmes résultats. Puisque nous parlons d'un seul noyau, vous n'avez pas à vous soucier trop de l'ordre d'évaluation, ce qui est bien, mais assurez-vous qu'il est bien défini. Deuxièmement, il sera plus facile si vous utilisez une configuration MVC (contrôleur de vue de modèle) alors tout ce dont vous avez besoin est un contrôleur de lecture et un contrôleur d'utilisateur en direct qui enregistre l'entrée horodatée si nécessaire. Remarque: selon la façon dont vous le faites, il peut être plus facile d'utiliser un nombre de trames plutôt qu'un temps réel. Lorsque le joueur frappe un record, rassemblez l'état complet du jeu et commencez à capturer l'entrée du joueur.

Pour exporter de la vidéo, tout ce que vous avez à faire est de charger l'état de départ en lisant une image, capturez le cadre puis parcourez tout l'enregistrement de lecture. Si vous avez des choses dans votre jeu qui sont basées sur le temps, vous devrez manipuler l'horloge pour que le temps passé à faire la capture vidéo soit supprimé. Vous pouvez également enregistrer des événements basés sur le temps avec un nombre de trames afin qu'il se produise dans le bon cadre, mais vous devez ensuite vous assurer que l'ordre de traitement différent ne change pas le jeu. Une seconde option consiste à aller sur la base d'événements, il suffit d'enregistrer tous les événements qui se produisent dans le jeu. Puis, pendant la lecture, déclenchez simplement ces événements pendant le cadre dans lequel ils se sont déroulés. pour simuler tout (vous avez encore besoin de faire des animations et autres), mais cela pourrait améliorer les temps de rendu puisque vous ne courez pas tout le jeu.

+0

Le problème avec cela est que je ne serais pas en mesure de permettre à l'utilisateur de l'enregistrer en tant que fichier vidéo séparé? (qu'ils pourraient jouer sur leur ordinateur par exemple) – Dave

+0

Je ne me souviens pas avoir jamais vu un jeu qui a mis en œuvre l'enregistrement de jeux dans un format vidéo brut. C'est juste trop cher en termes de puissance d'encodage du processeur et d'espace de stockage. Certainement beaucoup trop cher pour un iPhone à cet égard. Vous voudriez enregistrer les actions et les rejouer dans une sorte d'émulateur. – DougW

+0

J'ai vu ceux qui permettent le téléchargement sur youtube si cela fait une différence? – Dave