05/11/2009

Middleware day: UDK, Offload, OpenFeint...

Retour sur des choses concrètes: le monde des middlewares est en constantes évolutions, donc flash forward sur les petits nouveaux intéressants...

 

 

devHeaderBG.png

 

OpenFeint: On parlais l'autre jour dans les commentaires au sujet de l'évolution des jeux IPhone vers des modèles de plus en plus proche de l'éxpérience plateforme du Xbox Live : jeux en lignes, persistance des informations du joueurs, trophées ou achievements, réseau sociaux...

 

OpenFeint est donc un middleware dédié aux titres IPhone cherchant à implémenter une telle plateforme:

 

Want multi-player for your game? Want to see the latest OpenFeint features? Sign up today to get an early peak at the latest feature and help us get it ready for primetime.

 

Let your players instantly see who has bragging rights for your game. Now OpenFeint has a concise comparison screen between two players for every single game.


Stop building leaderboards for players that opt-out of OpenFeint. Now our leaderboards will work for everyone. And if a player who opted-out decides to opt-in, her scores will automatically be uploaded to her new profile. Magic!


By player request, players can now check out leaderboards, achievements, challenges, who's playing, and chat for your game from within any other OpenFeint enabled title.


[ OpenFeint ]

 

 

debuggerscreenshotsmall.png

 

Offload Codeplay: Ceux qui ont eu à travailler sur PS3 au plus bas niveau savent que c'est une plateforme qui est à la fois enrichissante et parfois très frustrantes. Pour en retirer le meilleur, il faut investir du temps et des moyens. Et ça commence par correctement exploiter les SPU.

 

Offload codeplay se propose de simplifier la démarche, en automatisant le port de certaines portions de codes sur SPU (d'une façon un peu similaire à d'autres outils d'optimisations parrallèles à la compilation). Je ne sais pas si ça fonctionne (j'en ferai bien une évaluation un de ces 4), mais ce processus pourrait permettre à des stusios moins bien doté en terme d'expertise technique de combler une partie du retard par rapport aux studios first party...

 

Easily offload code to SPU's. Codeplay Offload takes C++ code and puts it onto SPUs, letting programmers optimize code easily afterwards.

Offload: Community Edition is a development tool suite for writing real-world C++ applications for the Cell Broadband Engine™. Offload provides a simple method for offloading the parts of your code you want to execute on the SPE's of the Cell processor. All you need to do is mark up the code you want offloaded and Offload will automatically handle the scheduling, data transfer and execution.

The Offload tool suite includes everything you need; Compiler, Multi-Core Runtime Library, Source Level Debugger and an Eclipse IDE plugin for Linux developers or a Visual Studio plugin for games developers. All of these components can integrate seamlessly with your existing development tools.

 

[ Offload Codeplay ]

 

 

logo-udk.gif

 

Unreal Development Kit: Le petit dernier n'est donc autre que le fameux Unreal, donc pas la peine de faire une introduction ^_^

 

A vue de nez, le kit semble contenir la totalité de la toolchain plus l'interpréteur de script minus le code source. C'est donc un formidable outil qui devrais vous permettre d'évaluer Unreal, de prototyper gratuitement vos jeux, et éventuellement de comparer vos outils ou votre toolchain à moindre frais.

 

The world’s best game engine...
Now at your fingertips.



Experience the power and potential of Unreal Engine 3. Create amazing games, lifelike scenes and fantastic worlds... for free.



DK is Unreal Engine 3 – the complete professional development framework. All the tools you need to create great games, advanced visualizations and detailed 3D simulations. The best tools in the industry are in your hands.

 

[ UDK ]

 

De là à penser qu'Unreal Engine 3 arrive à maturité, il n'y a qu'un pas... UE4 bientôt ?

Commentaires

Je pense que tu peux meme rajouter Unity qui vient de passer en version 2.6, ajoutant enfin le support de Visual Studio (hop, edition de code profitant de l'intellisence et surtout de tout les addons de VS, Resharper en tete), et surtout, totalement gratuit dans sa version Unity Indie (minus quelques features, bien sur. Faut laisser de la marge au unity pro ^_^ ).

C'est l'outil que nous sommes en train d'utiliser sur notre projet a l'ENJMIN (3 equipes sur 5 sont sur Unity Pro cette annee), et il faut avouer que c'est quand meme super propre, et relativement puissant.

http://unity3d.com/

Écrit par : Ravine | 05/11/2009

Exact, merci de me reprendre! ^_^

J'avais parlé d'Unity auparavant, et de sa popularité croissante je crois, l'exemple est tout à fais approprié.

Mais bon, la nouvelle du jour, c'est l'accessibilité à la formation à Unreal qui devient enfin réellement viable avec un éditeur à jour et un système complet...

J'ai goulé Unity, j'espère y jeter un œil attentif ce week end ou la semaine suivante (le pont du 11 novembre aidant). Donc si tu as tes conseils, n'hésite pas à nous les donner :-)

Écrit par : Daz | 05/11/2009

On entame notre second projet avec Unity ici.

Par contre Unreal c'est quoi les problèmes ?

Écrit par : Whirly | 05/11/2009

Sur Unity, sur les versions payantes, je n'ai pas du tout compris si le prix était par poste ou autre.

Sinon, après avoir testé une heure, ça donnait un envie de pousser. J'ai encore pas mal d'interrogation sur l'intégration à un pipeline.

Mais ça à de la gueule.

Écrit par : Mokona | 05/11/2009

De ce qu'on a ici (MickaelG/MGodard qui intervient ici regulierement dans les commentaires me corrigera peut etre), le prix des licences est "par poste" (nombre d'install limite, les contacter pour reactiver en cas de formatage).

Ensuite les conseils que j'ai du point de vue de programmeur, c'est l'integration directe a VS (leur version de Scite est ok sans plus, et on ne profite pas du tout de tout ce qui est intellisense, signature des methodes, XML Doc, de C#/.Net). Ensuite, il est completement possible d'ecrire son code sans suivre les canons Unity (par defaut, les scripts C# heritent de MonoBehaviour, et empechent donc leur instanciation directe).

Les scripts s'attachent a des GameObject, ce qui est avantageux pour la creation de contenu, mais en tant que prog je me sens tout frustre de pas pouvoir tout driver par mon propre code. Peut etre que c'est une mauvaise direction que je prends, de par mon sentiment de "power user", mais ca donne d'autres avantages.

Par defaut, tout ce qui est dans la hierarchie de projet de Unity est rattache a une reference, et on attache les scripts aux objets de la hierarchie (assez similaire a GameMaker pour ceux qui ont eu l'occasion de bosser dessus, et/ou de devoir merge 2 "projets" GMK). Le probleme se pose avec un SCM derriere, car il me semble que les metadata des objets sont considerees comme "binaire" par le SCM. Donc wallou en ce qui concerne les merges la dessus.

Attention, je tiens a preciser que ca fait pas tres longtemps que je suis sur Unity, et que ce que je dis au dessus ressort de mon experimentation avec, et des discussions avec d'autres progs de ma promo qui ont eu l'occasion de bosser avec l'an dernier. Ils recommandent fortement le decouplage code/gameobject (gerer par le code plutot que par l'editeur) pour eviter des soucis de pertes de references (du style "oh allez j'ai decide de planter et de te faire perdre 2h de taf").

Du coup je suis preneur de tips et autres bonnes pratiques ^_^

Écrit par : Ravine | 05/11/2009

@Whirly Oula, les problèmes d'Unreal, par quoi commencer... Humm ^_^

Allez, soyons simple, commençons par les + : complet, puissant, efficace, data driven jusqu'au bout des ongles (grace à Kismet, Unreal Script, Matinee...), excellent pipeline dans sa globalité, réellement flexible en terme de gameplay, professionnel.

Et d'après ce que jai vu de l'UDK, à jour et identique à la version délivré aux studios qui ont une licence (à l'exception du code source évidemment).

Les - : Usine à gaz, gourmand en ressources, incohérent par endroit, très (mais alors très) facile à prendre à rebrousse poil (aussi bien au niveau des bugs qu'au niveau des perfs), learning curve particulièrement péchue, code script complètement brouillon, franchement très orienté FPS.

Son plus gros défauts est son plus gros avantage aussi: Unreal est un framwork qui a été mis en place pour les grosses prods, il manque surement la flexibilité ou l'accessibilité d'un Unity...

@Mokona: UDK aussi propose une version payante pas tête de pipe, soit 2500 dollars par développeur (pour une utilisation commerciale bien sur).

@Ravine: Donc, si je te suis bien, Unity est scriptable en C# modulo un certain nombre de contraintes particulières, c'est ça ? Par contre, je ne t'ai pas suivi au sujet des GameObject: comment ça marche ? ^_^

Écrit par : Daz | 05/11/2009

Le C# est un des langages de base des scripts Unity (avec Javascript et Boo). Don on peut scripter en JS, en C#, et en Boo indifferement (derriere c'est Mono qui bosse et qui compile tout ca dans le meme IL). Ce que je fais en revanche c'est que je m'affranchis du MonoBehaviour (tous les scripts CS heritent de MonoBehaviour) pour pouvoir instancier mes classes sans avoir a rattacher ca a des gameobjects de la hierarchie de scene.

En gros "tout est GameObject" dans la hierarchie de scene (tu peux creer plusieurs scenes, plusieurs hierarchies donc). Dans l'editeur, tu attaches un ou plusieurs scripts a ton GameObject que tu a graphiquement cree dans l'editeur (attachement que tu realises a l'aide d'un habile glisser-deposer). Du coup, pas de code derriere, c'est super accessible. Mais. (bah ouais sinon c'est pas drole)

Du coup c'est dans les metadatas du projet que ce lien est cree, pas de generation de code derriere pour dire "ce game object a le script bidule". Ca pose pas de souci quand 1 personne bosse dessus, mais j'emets de serieux doutes sur un truc a plus grande echelle, avec des Level Designers, des progs, des artistes. Du coup je suis plus d'avis a tout faire "a la main" (modulo ma remarque, "power user" tout ca, peut etre que je me plante).

Cela dit, peut etre que Whirly qui a plus d'xp avec Unity a aussi plus d'infos. Perso je dis ca principalement suite aux discussions avec mes condisciples ayant travaille avec Unity l'an dernier (et qui remettent ca cette annee pour le projet de Master 2), qui m'ont recommande d'eviter le fonctionnement par l'editeur, et de la jouer plutot "main script attache a un gameobject invisible qui va appeler les autres scripts, totalement detache de la hierarchie de la scene". C'est peut etre pas une bonne facon de faire, mais elle me rassure et me donne le sentiment d'avoir la main sur ca.

Écrit par : Ravine | 05/11/2009

Le C# est un des langages de base des scripts Unity (avec Javascript et Boo). Don on peut scripter en JS, en C#, et en Boo indifferement (derriere c'est Mono qui bosse et qui compile tout ca dans le meme IL). Ce que je fais en revanche c'est que je m'affranchis du MonoBehaviour (tous les scripts CS heritent de MonoBehaviour) pour pouvoir instancier mes classes sans avoir a rattacher ca a des gameobjects de la hierarchie de scene.

En gros "tout est GameObject" dans la hierarchie de scene (tu peux creer plusieurs scenes, plusieurs hierarchies donc). Dans l'editeur, tu attaches un ou plusieurs scripts a ton GameObject que tu a graphiquement cree dans l'editeur (attachement que tu realises a l'aide d'un habile glisser-deposer). Du coup, pas de code derriere, c'est super accessible. Mais. (bah ouais sinon c'est pas drole)

Du coup c'est dans les metadatas du projet que ce lien est cree, pas de generation de code derriere pour dire "ce game object a le script bidule". Ca pose pas de souci quand 1 personne bosse dessus, mais j'emets de serieux doutes sur un truc a plus grande echelle, avec des Level Designers, des progs, des artistes. Du coup je suis plus d'avis a tout faire "a la main" (modulo ma remarque, "power user" tout ca, peut etre que je me plante).

Cela dit, peut etre que Whirly qui a plus d'xp avec Unity a aussi plus d'infos. Perso je dis ca principalement suite aux discussions avec mes condisciples ayant travaille avec Unity l'an dernier (et qui remettent ca cette annee pour le projet de Master 2), qui m'ont recommande d'eviter le fonctionnement par l'editeur, et de la jouer plutot "main script attache a un gameobject invisible qui va appeler les autres scripts, totalement detache de la hierarchie de la scene".

Écrit par : Ravine | 05/11/2009

Je vois, c'est comme ça qu'ils découplent l'éditeur du code gameplay... Cool, faut que je l'essaie ce petit Unity bientôt ^_^

Écrit par : Daz | 05/11/2009

(hum visiblement j'ai eu quelques problemes de connexion et j'ai poste 2 fois. Flute)

Écrit par : Ravine | 05/11/2009

J'ai une base de formation de programmeur et de l'expérience pro dans le domaine, et je suis chef de projet sur le projet de Ravine en master 2.

Pour ce qui est de "ouai passer par le script c'est mieux" etc, je ne peux pas juger (évidemment, j'y vois une déviance habituelle des programmeurs qui préfèrent coder parce que "coder c'est bien" mais on verra réellement à l'usage les avantages et inconvénients j'imagine).

Les 2 grands avantages de Unity de mon point de vue sont sa tool chain qui semble vraiment bien foutue et la rapidité avec laquelle on peut obtenir des résultats. On s'affranchit de beaucoup de difficultés.

A un autre niveau, les features de publishing (PC/Mac/WebPlayer/IPhone/Wii...) et le prix des licences me semblent particulièrement pertinentes dans le contexte actuel de l'industrie.

On verra ce qu'on aura produit pour fin mars mais ce qui a été fait est réellement encourageant.

Écrit par : MickaëlG | 06/11/2009

Unity à la base c'est un outil qui redonne un gros pouvoir aux GD / LD. Le sentiment de frustration des programmeurs vient sans doute de là.

La version indy est à présent gratuite, mais si vous bossez sur un projet à plusieurs faut clairement passer à la pro qui offre ... le support des outils de controle de code source hu hu hu.

Le prix niveau licence c'est par machine, et globalement c'est du même ordre d'idée que Flash. D'ailleurs le passage au gratuit de la version de base sent fort le "adobe on va te bouffer le ...".

On a fait un advertgame pour Norton avec Unity, c'était un FPS assez simple, en gros une semaine de boulot a été nécessaire pour le faire.

Unity c'est le genre de produit qui si on le rapportait à l'industrie musicale fait passer ed la nécessité d'avoir un gros studio au home studio à la maison.

Écrit par : Whirly | 09/11/2009

Je vois. Unity serait donc une bonne alternative au tank que constitue Unreal, au moins pour les projets lightweight.

Qu'en est il du support console ? Y a t-il eu des titres publié avec Unity ?

Écrit par : Daz | 09/11/2009

Pour l'instant Unity supporte que la Wii. Il y a eu quelques jeux Wii Ware je crois (mais rien de significatif).

Son coeur de cible reste le webplayer et l'iphone. Il y a un support annoncé pour X360 pour le futur et on sait qu'il bosse sur un support PS3 (mais non annoncé).

Écrit par : MickaëlG | 09/11/2009

J'ai l'habitude de ne pas publier dans Blogs, mais votre blog m'a forcé à, le travail impressionnant, magnifique!

Écrit par : Van Insurance UK | 17/06/2011

Want multi-player for your game? Want to see the latest OpenFeint features? Sign up today to get an early peak at the latest feature and help us get it ready for primetime.

Écrit par : ray ban wayfarer sunglasses | 06/07/2011

Blog de ​​Nice, mais tu aurais pu faire ce blog plus cool si vous pouviez configurer le plugin changeur de langue mais tout de même vous avez fait un bon travail.

Écrit par : cannes real estate | 19/09/2011

Écrire un commentaire