Comment nous avons créé Mad Racer

Bonjour cher lecteur. Dans cette note, je décrirai mon expérience de création du premier jeu pour Android. téléphones portables. Beaucoup de gens aiment cette histoire, je pense qu’elle doit être publiée. Ce n’est pas une réussite, mais je pense que cela permettra à de nombreux développeurs débutants de comprendre par où commencer et ce qui doit être fait pour créer un jeu simple. Je vais certainement décrire mes erreurs et ce qui aurait pu être mieux fait.

Hewl-Tanky

Pardonnez-moi Jamie Hewlett et Alan Martin, je publie de superbes œuvres d’art Tank Girlsans leur autorisation

Parfois, vous tombez dans un état dans lequel vous voulez créer quelque chose pour que tout le monde halete, ouvre la bouche et dise « Eh bien, vous êtes cool ». Cette histoire m’est arrivée en 2011, alors que je regardais un extrait du film “Tank Girl”. a eu l’idée de créer un jeu d’arcade dans un style bande dessinée.
Pourquoi pour Android et pas iOS ? La raison est simple : Je n’avais ni Macintosh ni iPhone, mais j’avais un grand désir de prendre en charge Linux sur les téléphones mobiles. À cette époque, j’aimais l’idéologie de la FSF et Richard Matthew Stallman était mon dieu.


Chanson des hackers Linux. Avant de chanter – croire en la paix mondiale

Au moment du développement, la dernière version d’Android était la 2.0, il fallait aussi laisser le support des anciennes versions, puisqu’il y avait beaucoup d’utilisateurs 1.6. De nombreux fabricants de téléphones n’ont même pas publié de mises à jour vers la version 2.0.

J’ai immédiatement fixé un calendrier pour la mise en œuvre de ce projet – un mois. Pendant ce temps, j’ai dû améliorer mes connaissances en Java, étudier le SDK Android, Eclipse, rencontrer le monstre face à OpenGL ES et le mettre à l’épreuve. Côté graphisme, nous avons dû créer environ six modèles 3D optimisés pour les téléphones mobiles. Il était également nécessaire de lancer le projet contre de l’or sur l’Android Market, c’est ainsi que Google Play s’appelait à l’époque)

jpct_logo
jPCT-AE бесплатный 3д движок для Андроида

Comme il y avait peu de temps, il a fallu choisir un moteur 3D prêt à l’emploi. Il est possible de créer votre propre moteur à partir de zéro, mais ce n’est pas très productif, car les tests et la compatibilité avec tous les appareils prendront la plupart du temps. Avant l’arrivée d’Unreal Engine, Unity, ThreeJS (HTML5), le moteur phare était JPCT-AE. Le moteur était fourni sous forme de bibliothèque Java prête à l’emploi et prenait en charge les anciennes versions d’Android. De plus, son créateur EgonOlsen fournit rapidement une assistance et des corrections de bugs à la demande des développeurs.

antonHooligan

Le personnel décide de tout – le hooligan Anton a accepté d’écrire la musique du jeu. J’ai toujours admiré sa créativité, son travail a servi de locomotive à tout le gameplay, obligeant l’utilisateur à jouer jusqu’au dernier hélicoptère abattu.

Tant de choses, par où commencer ? Vous devez commencer par installer le SDK Android. Il est désormais livré avec un IDE intégré – AndroidStudio. Mais à cette époque, l’IDE et le SDK étaient fournis séparément. D’après la documentation sur le site Web de Google, j’ai installé le SDK Android et Eclipse. Les packages nécessaires à Eclipse ont également été installés pour assurer l’assemblage et le lancement de l’émulateur Android. Une heure plus tard, j’ai assemblé un projet de test jpct-AE :

Wow ! Mais dans l’émulateur téléphonique, tout était très lent. Par conséquent, la décision a été prise d’acheter un téléphone sur la plateforme Android. À ces fins, un LG Optimus One P500 a été acheté. Depuis lors, je n’ai pas utilisé d’excellents téléphones à bouton-poussoir Nokia sur la plate-forme Symbian). Il y a eu des problèmes de connexion du téléphone à Linux, si quelqu’un les rencontre encore, vérifiez les paramètres udev.


Citations d’emploi Pablo Picasso

En regardant Alien Runner, j’ai réalisé que l’extraterrestre pouvait être remplacé par une moto et deux punks par un bazooka, que la clairière pouvait être transformée en métropole et que le brouillard pouvait être remplacé par une soirée de ballades d’Iron Maiden.

Comment réaliser des modèles 3D ? Oui, c’est très simple, vous ouvrez une leçon sur la création de modèles low-poly sur Youtube et vous le faites. L’ensemble du processus consistait à tracer des projections dans un éditeur 3D. J’ai trouvé des dessins d’un hélicoptère Apache et j’ai réalisé un modèle de l’hélicoptère. Les textures proviennent de sources ouvertes de l’armée américaine.

McDONNELL_DOUGLAS_AH-64_APACHE

Pourquoi avez-vous besoin d’un hélicoptère dans un jeu avec deux punks et un bazooka ? Lorsque j’ai joué au prototype, j’ai remarqué que le joueur pouvait simplement rester immobile et marquer des points. La solution idéale était un hélicoptère qui volait et bombardait le joueur avec des torpilles sous-marines, l’empêchant de s’arrêter.

Dans les applications mobiles et les jeux de cette époque, le problème du manque de mémoire était aigu, tant sur le téléphone lui-même que dans la RAM. Les performances étaient également excellentes. Un processeur ARM avec une fréquence de 300 à 500 MHz. À la suite de tests sur les téléphones d’amis, il s’est avéré que HTC disposait de deux fois moins de mémoire vidéo que LG, 8 Mo et 4 Mo, c’est pourquoi le jeu a dépassé les limites de mémoire et n’a pas démarré. Toutes les ressources ont été compressées au point d’obtenir une fréquence d’images de 30 images par seconde et la possibilité de fonctionner sur presque tout.


Ne répétez pas !

Alien Runner était contrôlé en touchant l’écran. Ce type de contrôle me semblait peu pratique, j’ai donc mis en place un contrôle à l’aide d’un accéléromètre. Autrement dit, vous allumez le téléphone – la moto tourne. Je l’ai tellement aimé que j’ai même ajouté une vue à la première personne, pour les plus courageux.

J’ai eu besoin de l’aide du développeur du moteur jpct-AE lorsque j’ai vu que le black-out devant disparaissait dans le jeu. Cela s’est produit après avoir réduit et maximisé l’application. J’ai créé un sujet sur le forum jpct-AE et en deux jours le problème a été résolu. J’ai intégré la version corrigée du moteur dans le jeu.

La question se posait également de savoir comment mettre en œuvre une réserve infinie de machines. Pour un jeu mobile, il était nécessaire de trouver un moyen d’ajouter RAPIDEMENT des voitures à la scène du jeu. L’option de chargement depuis une mémoire lente ou une carte SD a été immédiatement rejetée. Un modèle de conception appelé pooling d’objets est venu à la rescousse. Lorsqu’une voiture disparaissait ou était détruite, elle était éteinte et au moment où il fallait amener une nouvelle voiture au début de la scène – puis il a été allumé et placé là.

android-market

Eh bien, le jour de la sortie est arrivé. Le jeu a été testé, présenté en avant-première à des amis, et il était désormais sur le point de devenir disque d’or sur l’Android Market. L’inscription sur l’Android Market coûte 20 $, payés. Ajout d’une description et de captures d’écran. Et à ce moment-là, j’ai réalisé que je devais enregistrer une vidéo.

Comment enregistrer une vidéo pour un projet mobile ? Est-il vraiment possible de filmer un téléphone portable puis de le poster ? La solution était intéressante, j’ai utilisé un émulateur Android, j’ai joué au jeu avec une fréquence d’images de deux images par seconde, enregistrant tout ce qui se passait à l’écran à l’aide d’un programme appelé quelque chose comme gtkDesktopRecorder. Grâce à VirtualDub, la vitesse de la vidéo a été augmentée à 30 images par seconde. Puis, dans le meilleur programme de montage vidéo – Windows Movie Maker J’ai ajouté tous les sons et la musique du jeu.

Vient maintenant le moment des erreurs. Rien n’a été investi dans la promotion du projet, ni effort ni argent. J’ai alors cru que le projet allait revenir en arrière. Le jeu est devenu gold, j’ai créé un fil de discussion sur le forum jpct-AE à propos de Mad Racer. J’ai obtenu 12 installations pour un dollar en deux semaines. Et j’ai trouvé le jeu disponible gratuitement sur un tas de sites warez dès le lendemain.

Chanter la chanson de la FSF “Partagez le logiciel” J’ai décidé de faire une version gratuite avec de la publicité. Le jeu a été transféré dans la catégorie AdWare et une bannière publicitaire du réseau AdMob est apparue ci-dessous. L’intégration avec le système publicitaire s’est déroulée sans problème. En un mois, le jeu était installé sur dix mille appareils. J’ai reçu 50 $ du réseau publicitaire.

En général, n’oubliez pas la publicité, je pense que cela devrait être l’une des principales dépenses de votre projet.

Du côté positif, je tiens à souligner que j’ai obtenu un poste de développeur iOS dans l’une des meilleures entreprises de notre ville. Et bien sûr, une expérience inestimable.

madracerLogoСсылка на Google Play

Si vous avez aimé l’article, republiez-le sur VKontakte, Facebook)

Demens Deum

Un programmeur expérimenté avec une large expérience de développement multiplateforme pour les systèmes mobiles, de bureau, diverses architectures (x86, x86-64, ARM, PowerPC, Motorola 68000, Z80, MSP-430), le développement Web et les programmes de programmation pour les macos. Je peux créer des projets à partir de zéro, les amener sur le marché et soutenir des projets internes et externes. Je peux facilement maîtriser les nouvelles technologies pour résoudre les tâches commerciales.
J’ai mis en œuvre et soutenu des projets pour des marques telles que Decathlon, Mother and Child, Fitbit et Playboy.
& # 8211; Développement d’architectures et d’applications à partir de zéro.
& # 8211; Formation et création des employés des départements de développement et de test.
& # 8211; Prendre des décisions de personnel et mener des entretiens techniques.
& # 8211; Effectuer des présentations et des classes de maître.
& # 8211; Délégation et gestion des équipes de développeurs.
J’ai également de l’expérience avec un analyste, en interagissant avec les clients internationaux pour collecter les exigences et évaluer les tâches commerciales.

Github:
https://github.com/demensdeum

E-mail:
demensdeum@gmail.com

Télégramme:
@demensdeum

LinkedIn:
https://www.linkedin.com/in/demensdeum