CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

programmer sur android C++?

Engineer
Engineer
Niveau 12
20 août 2013 à 23:46:08

Salut,
je me demandais si c'était viable de faire des jeux sur android via le C++. De ce que j'ai compris c'est surtout le Java qui est utilisé puisque Android est écrit en Java, et que il est presque impossible de faire du code 100% C++ sur Android même avec le JNI. Mais d'autre part j'ai lu à quelques endroits que des gens avaient développé et porter des jeux SDL sur android en C++.
Je viens de réussir à faire un Snake via la SFML en C++ (voir sur le forum meme pseudal) mais si il faut repasser au Java pour Android ca me dérangerait un peu...
Qu'en est il de l'iPhone ? j'ai entendu que le Java était aussi la seule option par là a part l'objective-C...
Serait il facile de faire des jeux C++ sur android ou est ce mieux de passer au Java (que je connais déja mais que je n'ai plus appliqué depuis un certain temps) alors que je suis en train de commencer à faire des trucs sympas avec la SFML en C++?

Est ce que quelqu'un d'expérimenté sur la programmation Android pourrait confirmer/infirmer mes dires ? Et me conseiller une librairie (entre libgdx et AND) ?

Merci d'avance. :)

Vis1teur
Vis1teur
Niveau 10
21 août 2013 à 02:25:08

Franchement je serai toi je ferai en java.
Moins de prise de tête et tu apprends un nouveau langage au passage.

Le C++ de toute façon tourne aussi pour la VM, c'est uniquement à utiliser dans des cas où tu as vraiment besoin de performance, les trucs très lourd en calcul

http://developer.android.d.com/tools/sdk/ndk/index.html

LECROU
LECROU
Niveau 10
21 août 2013 à 02:56:12

Si tu gères le C++ tu n'auras pas de mal à passer au Java si tu souhaites vraiment te mettre à dev sous Android. :oui:

godrik
godrik
Niveau 30
21 août 2013 à 15:11:51

C'est tout a fait possible de faire des jeux en C++ pour android. Android depuis les version 2.3 supporte des application ecrite integralement en C+. Parcontre, l'interfacage avec certaines fonctionnalite d'android vont demander de repasser dans l'espace java.

Actuellement je pense que la majorite des jeux solides sur google play sont ecrit en C ou en C++. La plupart sont des ports de jeux venant d'autres architectures et ils ne sont probablement pas ecrit en java pour commencer.

La question de quel libva etre disponible est aussi importante. Pour l'instant je me fous assez des performances d'affichages, donc je fais tout avec libcairo. Mais opengl est disponible, donc il n'y a pas de raison que l'on ne puisse pas faire fonctionner autre chose.

Cela etant dit, si tu pense que ca va etre difficile/chiant de te mettre a java, je te conseille de commencer par regarder java. Ce n'est pas si different de C++ que ca, le passage de l'un a l'autre se fait relativement bien. Et si tu en es au point ou tu ne connais qu'un seul langage, en apprendre un deuxieme te fera du bien :).

Engineer
Engineer
Niveau 12
21 août 2013 à 15:59:36

En fait je connais déja Java parce que je l'ai étudié à l'unif, donc une simple remise à niveau suffira je pense, c'était surtout parce que maitriser une nouvelle librairie (libgdx/slick) + se remettre à niveau ce serait quand même plus chiant que de rester à faire du C++.
libcairo est une lib C non ? Tu as réussi à faire un jeu sur android avec libcairo en C ?
C'est vrai que ce que le site du NDK dit ("In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++.") me refroidit un peu, je pense que je vais regarder libgdx.
Merci de vos réponses

smartties
smartties
Niveau 6
21 août 2013 à 16:13:54

Salut il est en effet possible de développer en C/C++ sur android, sans utilisé une ligne de code.
Je développe moi même une application (Smart Defender) "entierement"(ou presque) codéz en c++, je n'ai que 400 ligne de code java qui servent à initialisé quelque fichiers, envoyer les events au code natif et à appeler mes fonctions native C++ du genre

public void onCreate(Bundle savedInstanceState)
{
native_fonction_initialisation();
...
}

public boolean onTouchEvent(MotionEvent e)
{
int x = e.getX(0);
int y = e.gety(0);
native_fonction_event(x, y);
...
}

public void onDrawFrame(GL10 gl)
{
native_fonction_render();
}

Mais depuis quelque version déjà, JNI offre la possibilité de faire 100% du c++
c'est à dire que les fonction que j'ai cité ci dessus sont disponible directement
depuis le c++.

Est il viable de développer en c++ sur la plateforme Android ?
moi je dirais que oui, mais je pense que c'est un peu plus difficile
que de coder directement en java, après si tu te sens plus à l'aise
en C++ que en java c'est à toi de voir.

godrik
godrik
Niveau 30
21 août 2013 à 18:24:09

je pense que ca depend beaucoup de ce que tu veux developper. Si tu veux une appli qui s'interface avec plein d'autre composant android autour, perso, je ne ferais pas ca en C++ mais en Java. Mais un jeu a typiquement besoin que de peu de ces connexion et du coups c'est certainement faisable comme ca. Perso, je trouve ca plus simple de developper en jeu en C ou C++ sur PC et de faire un port natif Android.

Sinon, oui j'utilise libcairo en C++. J'ai ecrit Cassis comme ca [1].

[1] http://erik.deblan.org/blog/index.php?article10/releasing-cassis-v0-9

Engineer
Engineer
Niveau 12
21 août 2013 à 20:41:53

Merci beaucoup de vos réponses, mais j'ai une question (peut etre stupide) : on ne peut faire des jeux en C++ que avec des librairies supportant Android, on peut pas juste prendre n'importe quelle librairie et l'utiliser (ici je comptais utiliser la SFML) ? Donc godrik tu utilise libcairo juste parce que c'est la seule lib utilisable sur android ?
Merci d'avance

godrik
godrik
Niveau 30
21 août 2013 à 21:02:22

Il faut une lib qui soit un peu compatible. Comme il y a une interface opengl sur android j'imagine que la plupart des lib classique seront disponbile sur PC. Perso j'aime beaucoup utiliser cairo parceque c'est une lib proche d'opengl dans son interface (vectoriel a base de matrices de transformation). C'est auss une lib entierement logicielle, donc c'est assez facil a porter d'une architecture a une autre. Apres ca a un grand defaut, c'est une lib completement logiciel, donc ca manque de patate.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment