Les ports PC des jeux sur console sortent souvent un mois ou deux plus tard. Pourquoi est-ce?
Les jeux sont écrits dans des langues qui se compilent également sur PC, donc la logique du jeu devrait se compiler sans problème. Qu'est-ce qui les retient alors? Est-ce que ça rend du code ou quoi?
Réponses:
Il existe un certain nombre de raisons pour lesquelles un port PC peut prendre un certain temps. (Je m'excuse si je semble me répéter quelque part; c'est en quelque sorte écrit à la volée.)
Adapter les contrôles et le gameplay
Lorsque vous jouez sur une console, cela seul impose certaines limites à ce que vous pouvez faire, car tout ce que l'utilisateur a est une manette de jeu.
La création de mappages 1: 1 entre les touches du clavier et les entrées du contrôleur n'est pas toujours une bonne idée - si possible - il est donc parfois plus long de trouver une bonne solution.
Abstraction / fragmentation matérielle
Lorsque vous développez par exemple pour une Wii U, vous savez exactement comment se comporte une Wii U, car toutes les Wii Us sont identiques. Ce n'est pas vrai pour les PC; vous avez de nombreuses cartes graphiques et processeurs différents, et parfois quelque chose ne fonctionne pas sur certains d'entre eux. Il faut beaucoup de tests pour découvrir ces bogues, et les corriger prend également du temps.
Si vous n'avez jamais utilisé votre moteur pour créer une version PC, vous devez également coder votre abstraction matérielle en conséquence. Certains jeux veulent prendre en charge plusieurs versions DirectX et OpenGL pour Linux / Mac, et tout cela prend du temps à écrire si cela n'a pas été fait auparavant.
Conflit de ressources
Sur les consoles, le jeu n'a pas à rivaliser avec un système d'exploitation pour les ressources, etc. - il ne se passe pas beaucoup de choses en arrière-plan.
Sur un PC, vous avez le système d'exploitation en cours d'exécution, vous avez une pléthore de programmes d'arrière-plan, et cela signifie que vous n'obtiendrez pas une part aussi importante que vous l'espériez. Cela signifie que vous devez parfois effectuer des optimisations supplémentaires, en particulier pour les joueurs sur les systèmes bas de gamme
Amélioration des actifs
Avec une console, vous avez une cible fixe, vous écrivez donc des shaders, etc. pour correspondre à cette cible.
Sur un PC, certaines cartes graphiques prennent en charge des fonctionnalités plus avancées, et vous souhaitez peut-être utiliser un meilleur shader pour celles-ci. Eh bien, cela signifie que vous devrez écrire ce shader.
Trucs spécifiques à la plateforme
Les SDK de console peuvent avoir de nombreuses fonctionnalités pratiques qui ne sont pas facilement mappées sur un PC - par exemple, elles peuvent donner accès à des minuteurs matériels ou à une bonne API audio.
Ces choses ne sont généralement pas disponibles sur PC; vous devez utiliser d'autres façons d'accomplir ces choses et peut-être que cela change la façon dont vous devez résumer les différences de plate-forme.
la source
Une raison simple est qu'une console possède un seul ensemble de matériel identique par console.
Votre XBox, PS3 et Wii ont tous le même matériel que vos voisins XBox, PS3 et Wii. Cependant, votre ordinateur a un processeur différent, une carte graphique différente, une quantité différente de RAM, en fait la configuration entière et les paramètres du système d'exploitation, les pilotes installés pourraient tous être une permutation complètement unique qu'aucune autre personne au monde ne possède.
C'est ce qui rend difficile le portage sur un PC. Vous devez tenir compte de chaque pièce matérielle possible dans la configuration minimale requise et au-dessus. C'est un processus délicat et difficile à programmer et à déboguer. Il est très difficile pour les développeurs de connaître chaque configuration à programmer et presque impossible d'exécuter des tests sur ces configurations.
Une fois qu'ils l'ont développé pour PC, les développeurs effectuent de nombreux tests en interne, mais ils peuvent également dépendre des tests bêta des utilisateurs pendant une période allant de quelques semaines à quelques mois. Cette externalisation des tests avec les joueurs bêta avant la sortie officielle du port vers PC est généralement la raison pour laquelle vous voyez l'écart sur les dates de sortie entre les consoles et le PC.
la source
Le portage de code vers une nouvelle plateforme prend du temps. La création d'une minuterie nanoseconde pour Xbox 360 (je n'ai jamais développé dans XNA) va avoir besoin d'une implémentation différente de la même minuterie nanoseconde sous Linux, Mac ou Windows. Imaginez maintenant que vous ayez des centaines de ces types de fonctions à porter, des milliers si le moteur est suffisamment massif.
L'ajout de ces différentes implémentations pour les nouvelles plates-formes peut facilement prendre un mois ou deux. En plus de cela, vous ne pouvez pas toujours utiliser les mêmes bibliothèques sur Xbox 360 que sur Windows, Playstation 3 ou une autre plate-forme. Cela signifie que vous devrez potentiellement utiliser une toute nouvelle bibliothèque pour faire la même chose que vous avez fait sur la version Xbox 360.
Dans l'ensemble, ce genre de choses s'additionne dans une grande quantité de temps. Le portage sur une nouvelle plateforme est rarement facile pour les gros titres AAA.
la source
Cela n'a presque rien à voir avec le fait d'être dur dans de nombreux cas.
Ce n'est tout simplement pas une priorité. Ils tournent pour sortir à peine à temps. Chaque minute de différence prend du temps à prendre en compte. Si vous pouvez libérer sur quelques consoles ou le PC dans un délai, faites-le d'abord, puis terminez les ports. Relâchez tôt, gagnez plus d'argent. Généralement, les consoles ont fait mieux pour les jeux en boîte de cette dernière génération, même si cela a commencé à changer - les nouvelles consoles pourraient inverser la tendance.
De plus, dans certains cas, les fabricants de consoles offrent des avantages à des versions exclusives, de sorte que l'éditeur bénéficie d'une remise ou de quelque chose de ce type s'il sort d'abord sur une console particulière et sur d'autres plateformes. Rien de technique à ce sujet.
la source
Au départ, les jeux sont plus difficiles à faire sur une console que sur un PC. De plus, les consoles ont des spécifications très différentes et un matériel différent entre nintendo, sony et microsoft, ce qui entraîne non seulement des performances différentes, mais aussi des problèmes de goulot d'étranglement différents.
Habituellement, le jeu ajustera simplement son moteur pour maximiser la qualité et les performances sur chaque console.
Lors de l'adaptation au PC, il y a d'autres problèmes. Les consoles sont homogènes, ce qui signifie que toutes les consoles ont le même matériel (toutes les PS3 ont les mêmes performances matérielles). Lorsque vous créez votre jeu pour PC, vous ciblez une spécification minimale, mais vous permettez également à l'utilisateur d'augmenter la qualité pour des PC plus puissants. Les jeux destinés aux PC sont moins optimisés, mais plus faciles à réaliser pour les programmeurs.
La programmation sur console a un avantage, elle permet aux programmeurs de maximiser les performances, donc tout jeu sur console fonctionnera toujours bien.
Sur un PC, c'est pire, car il y a beaucoup de matériel, mais d'accord, c'est plus de liberté, le meilleur jeu résultant sera toujours sur PC, car le PC est toujours à la pointe, à un coût.
Le portage d'un jeu de la console au PC peut être délicat, car la console est conçue pour les performances du jeu, contrairement au PC, mais dans l'ensemble, il est beaucoup plus facile de porter un jeu de la console au PC que l'inverse, car la console a beaucoup moins de mémoire, quelque chose comme 2 ou 4 fois moins.
Changer le code pour l'adapter à cette restriction de mémoire signifie généralement toujours une re-programmation complète.
Je ne pense pas qu'il soit difficile de porter un jeu de la console au PC, c'est juste une question d'API. Les entreprises et les programmeurs qui travaillent uniquement avec des consoles auront du mal à porter sur PC, car ils n'y sont pas habitués, mais aussi parce qu'ils s'adaptent constamment à l'API de la console, ce qui signifie que leur code répondra souvent à la restriction du compilateur de console, et pas nécessairement prendre soin des apis PC.
Bien sûr, les moteurs peuvent être programmés pour fonctionner sur toutes les consoles et tous les PC, une fois que c'est fait, c'est plus facile que de dire à vos programmeurs de porter le moteur sur PC après qu'on leur ait dit que cela n'a jamais été prévu pendant 3 ou 4 ans.
Les consoles TL; DR sont homogènes et représentent la dernière génération de console, les PC sont hétérogènes et le matériel et l'API évoluent constamment. Les coûts sont répartis entre la programmation et la construction matérielle, qui sont des compromis.
Une bonne chose serait de permettre à tout le matériel de tout faire fonctionner, mais les prix des consoles sont compensés parce que les sociétés de jeux payent une licence aux fabricants de consoles, de sorte qu'ils verrouillent leur matériel pour ne faire fonctionner que les sociétés de jeux qui paient. C'est désordonné.
la source