:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Autres > Aide au développement

Aide au développement Aide au développement amateur sur d'autres supports

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 13/04/2010, 04h50   #1
ivady
Membre confirmé
 
Date d'inscription: 05/10/2009
Messages: 87
Par défaut Faire des jeux sur la Odroid

Allo,
maintenant, j'aurais aimé m'informer pour la Odroid. Très peu d'info sur ce qui me parait une belle console. Comment savoir pour la licence (prix, accessibilité), et pour les API? Je peux partiellement m'informer auprès de l'entreprise hardkernel. Mais si vous avez de l'information, merci d'avance!
ivady est déconnecté   Réponse avec citation

Publicité

Vieux 13/04/2010, 09h40   #2
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par ivady Voir le message
Allo,
maintenant, j'aurais aimé m'informer pour la Odroid. Très peu d'info sur ce qui me parait une belle console. Comment savoir pour la licence (prix, accessibilité), et pour les API? Je peux partiellement m'informer auprès de l'entreprise hardkernel. Mais si vous avez de l'information, merci d'avance!
Je ne vois pas trop l'intérêt de la question, puisqu'on sait déjà tout sur cette console. Pour ceux qui ne connaissent pas, un petit récapitulatif.
Odroid est une console à base d'Android, le système d'exploitation par Google. Ca ressemble à ça :

C'est animé par un Cortex-A8 à 833 Mhz, 512 de DDR2, et un écran tactile capacitif de 3,5'', avec une sortie HDMI pour du 720p. Bien entendu, nous avons droit à un accéléromètre, du wifi et du bluetooth. Le stockage se fait via des cartes SDHC.
Un beau potentiel, gaché par un design des plus spéciaux et un choix d'Android qui me laisse un sentiment mitigé. En effet, pour y avoir gouté, ca démarre quand même très lentement, et nous n'avons pas d'information sur l'autonomie de la bête.
Par contre, c'est pas très cher, 199$. (enfin, c'est relatif, mais bon).

Alors pour développez, c'est pas très compliqué, il faut passer par le kit de développement Android, et le tour est joué. Pas plus compliqué que de développer pour le nexus One, ou tout autre terminaux android, ce qui signifie programmation de très haut niveau, pas d'optimisation spécifique, et un garbage collector à la rue pour les jeux.

Bref, nesgba va adorer...
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 13/04/2010, 10h04   #3
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 964
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Hum.... pour l'optimisation bah y en a un peu, je me souviens à l'époque être tombé sur une page du site officiel d'Android qui expliquait 2-3 bricoles à respecter pour coder avec Android, des trucs qui justement allait à l'encontre des règles de dev habituelles que l'on pratique en Java.

Sinon, pourquoi dis-tu que le GC est à la rue ?
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 13/04/2010, 10h22   #4
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par Dr.Vince Voir le message
Sinon, pourquoi dis-tu que le GC est à la rue ?
Citation:
Lorsqu’on me demande mon avis sur la VM Android j’aime utiliser l’expression : “la VM Android est tout ce qu’il y a de plus élémentaire !”. En effet, à force de jouer avec cette dernière on se rend compte qu’elle n’est pas ultra performante : c’est une simple VM interprétée. Le garbage collector (GC) n’est pas plus développé puisque c’est un basique GC “mark and sweep”
Citation:
Android ne repose donc pas sur une base “ultra” performante. Ainsi le GC prend, en règle général environ 100ms à s’exécuter bloquant totalement l’exécution du programme
via http://android.cyrilmottier.com/?p=182

A la rue est certes une expression un peu forte, disons que, comme il nous est impossible de la controller, pour du jeu vidéo, c'est la misère. (Pas possibilité de forcer le GC à certains moments, de vérifier correctement la mémoire utilisée, libre, de désallouer manuellement...)
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 13/04/2010, 17h23   #5
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 964
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

bon effectivement le GC d'Android est à la rue !
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 13/04/2010, 18h31   #6
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

La VM est interprétée? C'est n'importe quoi! Tous les téléphones, même bas de gamme, ont des VM java à recompilation dynamique, voir assistées par le processeur (Jazelle).
Mais on peut aussi faire du C(++) sous Android non?

Dernière modification par Brunni ; 13/04/2010 à 18h43.
Brunni est déconnecté   Réponse avec citation
Vieux 13/04/2010, 22h45   #7
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par Brunni Voir le message
Mais on peut aussi faire du C(++) sous Android non?
Certes, le NDK permet de faire du C/C++ sous Android, mais à certaines conditions. Si on lit la page que j'ai pointé, il est dit :

"Le NDK est un outils complémentaire au SDK d'Android pour permettre de créer des applications dont les performances sont critiques sur certains morceau de code, et qu'il est nécessaire d'avoir du code natif. Il est fait pour être utilisé en conjoncture avec le SDK d'android (comprendre le Java), et vous devez donc avoir le SDK d'installé.

Les applications Android fonctionne via la machine virtuelle Dalvik. Le NDK vous permet d'implémenter une partie de votre application en code natif via le langage C et le C++. Cela permet de bénéficier d'améliorer la vitesse, mais aussi la portabilité de certains codes."

Ce qui n'est pas vraiment dit par contre, et que je sais, c'est que l'on perd toutes les classes android Java, et donc l'interaction avec la machine. Nous n'avons ici que le code pur. D'ou la nécessité d'avoir encore du Java.
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 13/04/2010, 23h46   #8
snk4ever
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Bacon le Gruyère
Messages: 1 670
Par défaut

Il y a quand même des ports de quake 1 2 3 sur android, qui en plus tournent bien.
C'est quand même une machine de guerre en hardware cette console, plus que la pandora pour un peu moins cher, non ?

Après, niveau design........????.......
snk4ever est déconnecté   Réponse avec citation
Vieux 14/04/2010, 01h00   #9
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par snk4ever Voir le message
Il y a quand même des ports de quake 1 2 3 sur android, qui en plus tournent bien.
Les caractéristiques pour faire tourner Quake 3 :
- Pentium II 233 MHz
- 64 MB RAM
- 8 MB video card

Odroid :
- Cortex Arm8 833Mhz
- 512 de Ram
- OpenGL ES2 : 10M triangles/s (Transform only)

A l'époque de Quake 3, c'est la TNT2 et la 3dfx2 qui se battent en duel dans le haut de gamme, qui faisait tourner Quake 3 a fond de chez fond.
TNT2 achieve a peak triangle throughput of 9 million triangles per second

Et je ne parle même pas du T&L tous les shaders actuels...

TNT 2 bench sous Quake 3

De plus, l'Odroid a une résolution minuscule (320x480)

Mis à part la résolution et le clavier, cela ressemble en effet à une OpenPandora, avec 33Mhz de plus. Mais qui existe...
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 14/04/2010, 02h22   #10
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Citation:
Envoyé par Tiwaz Voir le message
Mis à part la résolution et le clavier, cela ressemble en effet à une OpenPandora, avec 33Mhz de plus. Mais qui existe...
Tu veux sûrement dire 233MHz de plus
Ayla est déconnecté   Réponse avec citation
Vieux 14/04/2010, 09h11   #11
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par Ayla Voir le message
Tu veux sûrement dire 233MHz de plus
Rhoo, oui... Mais bon, mea culpa avec ça :

Citation:
MWeston states that he raised the clock to 800MHz during this test to confirm that everything was stable, an increase in clock speed of 33% is very reasonable. It is expected that most Pandoras will be able to reach 900MHz +- 20MHz without much effort.
Source

Donc 800Mhz, mais ça mangera beaucoup de batterie. D'ailleurs, pas de retour sur l'autonomie de l'Odroid.
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 14/04/2010, 09h24   #12
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

Tiwaz> Ok, ben dommage. Je comprends qu'il y en a qui puissent préférer l'Objective C à ce moment. Ils devraient vraiment faire une vraie VM comme sur les téléphones portables. A ce moment là Java offre vraiment des performances proches du natif.
Brunni est déconnecté   Réponse avec citation
Vieux 14/04/2010, 10h02   #13
snk4ever
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Bacon le Gruyère
Messages: 1 670
Par défaut

Citation:
Envoyé par Tiwaz Voir le message
Les caractéristiques pour faire tourner Quake 3 :
- Pentium II 233 MHz
- 64 MB RAM
- 8 MB video card

Odroid :
- Cortex Arm8 833Mhz
- 512 de Ram
- OpenGL ES2 : 10M triangles/s (Transform only)

A l'époque de Quake 3, c'est la TNT2 et la 3dfx2 qui se battent en duel dans le haut de gamme, qui faisait tourner Quake 3 a fond de chez fond.
TNT2 achieve a peak triangle throughput of 9 million triangles per second

Et je ne parle même pas du T&L tous les shaders actuels...

TNT 2 bench sous Quake 3

De plus, l'Odroid a une résolution minuscule (320x480)

Mis à part la résolution et le clavier, cela ressemble en effet à une OpenPandora, avec 33Mhz de plus. Mais qui existe...
Ok, maintenant si on regarde les fleurons Android : Motorola Milestone/Droid, HTC Nexus One
On prend le fleuron maemo: Nokia N900
Le fleuron Apple: iPhone 3Gs

Si je ne m'abuse, ils sont tous en ARM Cortex ou équivalent avec des chips 3D équivalents. Ils doivent gérer un OS moderne avec des fonctions de téléphonie absolument prioritaires en tâche de fond, et sont donc comparables (c'est un peu différent d'un P2 (archi bien différente) sous win98...).

Il y a des différences entre performances max atteintes sur les 3 plateformes ?

J'imagine aussi qu'il doit y avoir pas mal d'optimisations notamment ASM pour i586 dans le Quake3 original qui ont été transformées en C portable dans ioQuake pour pouvoir l'adapter à l'arrache à tout un tas de plateformes. (je parle un peu sans savoir là)

Ce n'est pas une provocation gratuite, le débat m'intéresse réellement
snk4ever est déconnecté   Réponse avec citation
Vieux 14/04/2010, 13h58   #14
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par snk4ever Voir le message
[blablabla]
Oui, le débat est intéressant.
Alors, rapidement:

ARM Cortex A8 sorti en 2005 : 2,000 MIPS à 1.0 GHz
Donc 1600MIPS à 800Mhz
Donc 1200MIPS à 600Mhz
= 2.0 DMIPS/MHz

Intel Pentium III sortie en 1999 (Quake 3) : 1,354 MIPS à 500 MHz
Donc 631 MIPS à 233 MHz

Dans le Nexus One, c'est un équivalent Cortex A8 à 1Ghz
= 2000 MIPS (3 x PIII 233)
Dans l'iPhone 3GS, c'est un Cortex-A8 833 MHz cadencé à 600 MHz
= 1200 MIPS (2 x PIII)
Dans l'iPhone, c'est un ARM 1176JZ(F)-S à 412 Mhz
= ?
Dans le Mameo 900, c'est un ARM Cortex-A8 CPU à 430 MHz
= 860 MIPS (~ 1.2x PIII 233)

L'OS d'un téléphone portable n'est pas plus lourd qu'un OS pour PC, donc ton postulat est faux. Windows était déjà là en multitache pour Quake 3.
De plus, Quake 3 utilise l'openGL, et n'a pas de rendu software. Dans le code de Quake 2, par exemple, la grande partie du code ASM était uniquement pour le renderer software. Là, dans Quake 3, la plus belle optimisation est en C, et c'est le fast inverse square root, réutilisable partout. Du fait de son portage un peu partout et sa généricité, il y avait peu d'asm dans Quake 3 (contrairement aux précédents).

Ensuite, au niveau résolution d'écran :
l'iPhone est en 480x360 = 172800 pixels
Le Nexus One est en 800x480 = 384000 pixels
Le nokia est en 800x480 = 384000 pixels
PC pour Quake 3 : 800x600 minimum = 480000 pixels
souvent 1024x768 = 786732 pixels (30 fps avec une TNT2)


On peut donc dire qu'une partie de la puissance de l'iPhone est donc du à la taille de l'affichage à gérer, bien moindre. Le Nokia est un peu à la rue.

Concernant les puces graphiques, c'est très dur de faire des comparatifs, parceque la technologie n'est plus du tout la même avant que maintenant. Mais globalement, c'est quand même plus puissant.

D'autres questions?
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 14/04/2010, 14h53   #15
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Citation:
Envoyé par Tiwaz Voir le message
Oui, le débat est intéressant.
Alors, rapidement:

ARM Cortex A8 sorti en 2005 : 2,000 MIPS à 1.0 GHz
Donc 1600MIPS à 800Mhz
Donc 1200MIPS à 600Mhz
= 2.0 DMIPS/MHz

Intel Pentium III sortie en 1999 (Quake 3) : 1,354 MIPS à 500 MHz
Donc 631 MIPS à 233 MHz

Dans le Nexus One, c'est un équivalent Cortex A8 à 1Ghz
= 2000 MIPS (3 x PIII 233)
Dans l'iPhone 3GS, c'est un Cortex-A8 833 MHz cadencé à 600 MHz
= 1200 MIPS (2 x PIII)
Dans l'iPhone, c'est un ARM 1176JZ(F)-S à 412 Mhz
= ?
Dans le Mameo 900, c'est un ARM Cortex-A8 CPU à 430 MHz
= 860 MIPS (~ 1.2x PIII 233)
Wow. Une minute. Tu es en train de comparer le nombre d'instructions par seconde qu'effectue un Cortex A8 avec un Pentium III ?
T'es au courant que l'architecture n'est absolument pas la même ? Pour effectuer le même travail qu'un processeur x86, un processeur ARM nécessitera généralement plus de deux fois plus d'instructions…
Ayla est déconnecté   Réponse avec citation
Vieux 14/04/2010, 15h19   #16
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par Ayla Voir le message
Wow. Une minute. Tu es en train de comparer le nombre d'instructions par seconde qu'effectue un Cortex A8 avec un Pentium III ?
Zut, j'ai cru que cela ne se verrais pas...

Bon, je ne vais pas refaire un méga post, mais voici quelques comparaisons : ARM vs VIA vs Athlon vs Atoms

Après, c'est comme tu dis, parfois pire, parfois moins. Le problème des architectures ARM c'est clairement la bande passante mémoire. Parfois, c'est plus facile de faire sur ce proc une opération que de déréférencer une valeur. (Voir les developpeurs de e17 sur ça, ils en parlent bien). Et cela empire avec la montée en fréquence.

(Ca me rappelle la guerre ATI vs NVidia sur Doom 3, ou c'était une valeur était précalculé, et qu'on avait une optimisation sur ATI en calculant la valeur plutot qu'en récupérant la valeur précalculée.)
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 14/04/2010, 16h16   #17
snk4ever
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Bacon le Gruyère
Messages: 1 670
Par défaut

Citation:
Envoyé par Tiwaz Voir le message
Zut, j'ai cru que cela ne se verrais pas...

Bon, je ne vais pas refaire un méga post, mais voici quelques comparaisons : ARM vs VIA vs Athlon vs Atoms
Mais ça se voit gros comme une maison.

De ton lien (très judicieux et intéressant, c'est cool de lancer des débats), nous avons un rappel sur l'impact entre in-order et out-of-order :
Citation:
Like the Intel Atom, the ARM Cortex-A8 is a superscalar, in-order design. In other words, the Cortex-A8 is able to execute multiple instructions - in the case of the Atom, up to two - during each clock tick, but can only execute instructions in the order they arrive, unlike the VIA Nano and all current AMD and Intel chips beside Atom. The Nano, for instance, can shuffle instructions around and execute them out-of-order to improve processing efficiency by about 20-30% beyond superscalar in-order chips.
Pour le iPhone pre-3GS et mon pauvre HTC Dream, une explication du fossé, au dela du MHz, qui sépare l'ARM11 du Cortex-A8:
Citation:
The immediate predecessor of the Cortex-A8 is the ARM11 which found a home in the original Apple iPhone and countless other smartphones. The ARM11 is a simple, scalar, in-order microprocessor, so the best it can ever do is execute one instruction per clock cycle.
Ensuite on combine le handicap RISC vs CISC:
Citation:
An issue to watch out for when comparing ARM CPUs against x86 microprocessors is the size of binary files. In the past, RISC machines have produced larger executables because more instructions are often necessary than with CISC-derived systems. If binary sizes differ significantly, this places greater pressure on cache sizes, RAM size and memory bandwidth.
Avec cette info sur le x86 plus performant sur les I/O par sa maturité (ça je ne savais pas du tout) :
Citation:
Perhaps most importantly, the supporting x86 "ecosystems" are unmatched. "Ecosystem" is the current buzzword that refers to the surrounding chip set, memory, I/O, interconnect and peripheral infrastructure.
C'est le coup de grâce à une tentative de comparaison entre ARM (quel ARM ?) et un proco x86.

Sans parler effectivement de circuits graphiques, RAM, bus (fréquence certainement réduites sur les mobiles pour l'autonomie) ou même d'OS (sur mes 192 mo de RAM sur HTC Dream, il y a 100Mo toujours utilisé par l'OS... incomparable avec un win98 et il doit y avoir de nombreux autres facteurs).

Je serais plus intéressé par une comparaison de perfs entre iPhone 3GS, Nokia N900 et Motorola Milestone. C'est à dire des benchs pratiques et comparables (ok, il faudrait considérer la différence de résolution entre HVGA et WVGA) pour jauger la capacité d'un OS mobile à faire tourner des jeux.

C'était la question en suspend: Android bride-t-il les possibilités de création de jeux sur cette console ? Est-ce un point négatif de l'Odroid ?

Désolé pour la longueur et l'anglais dans les citations.

edit: juste pour dire que le Cortex est un processeur mobile impressionnant (je bave un peu pour me prendre un tel avec mais la raison me retient pour l'instant). J'ai pas eu beaucoup de surprises sur les processeurs depuis que je m'intéresse aux "ordinateurs de poche":
* sur les PocketPC, le passage du MIPS/SH3 à l'ARM avec l'iPAD vers 2000 a été un gros coup de WOW! ça booste !
* depuis, c'est le cortex que j'ai pu voir à l'oeuvre dans un N900 et un 3GS, re-gros coup de WOW! ça booste !
Entre les 2, un peu de gain de vitesse progressif mais pas de tels fossés.

Dernière modification par snk4ever ; 14/04/2010 à 16h23.
snk4ever est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
PSP Jouer aux jeux PS1 sur PSP Quentin Articles et Tutos 201 31/01/2010 16h08
Le topic de Nesgba... Nesgba Récréation 198 18/12/2009 21h30
NDS Test du M3 DS REAL archilolo Tests 21 23/02/2009 20h29
Le point sur PA, passé présent et futur DJP Le Site & Le Forum 36 04/12/2006 11h27


Fuseau horaire GMT +2. Il est actuellement 00h02.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince