[{"data":1,"prerenderedAt":504},["ShallowReactive",2],{"navigation":3,"\u002F2026-05-creer-jeu-video-debutant":84,"\u002F2026-05-creer-jeu-video-debutant-surround":498},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80],{"title":5,"path":6,"stem":7},"Découvrir le Markdown — la syntaxe qui vous suivra partout","\u002F2025-09-decouvrir-markdown","2025-09-decouvrir-markdown",{"title":9,"path":10,"stem":11},"Le logiciel libre, en quelques idées simples","\u002F2025-09-logiciel-libre-open-source","2025-09-logiciel-libre-open-source",{"title":13,"path":14,"stem":15},"Utiliser l'ENT et Capytale au quotidien","\u002F2025-09-utiliser-ent-capytale","2025-09-utiliser-ent-capytale",{"title":17,"path":18,"stem":19},"Excalidraw — dessiner des schémas qu'on ose montrer","\u002F2025-10-excalidraw-schemas","2025-10-excalidraw-schemas",{"title":21,"path":22,"stem":23},"Concours Castor — l'informatique en 45 minutes","\u002F2025-11-concours-castor","2025-11-concours-castor",{"title":25,"path":26,"stem":27},"Godot, un moteur de jeu libre pour démarrer sérieusement","\u002F2026-01-godot-moteur-jeu","2026-01-godot-moteur-jeu",{"title":29,"path":30,"stem":31},"Prologin — s'entraîner toute l'année à l'algorithmique","\u002F2026-01-prologin-entrainement","2026-01-prologin-entrainement",{"title":33,"path":34,"stem":35},"Le voyage d'un programme à travers le CPU","\u002F2026-02-voyage-programme-cpu","2026-02-voyage-programme-cpu",{"title":37,"path":38,"stem":39},"Coloration syntaxique côté serveur avec Shiki","\u002F2026-03-tuto-shiki","2026-03-tuto-shiki",{"title":41,"path":42,"stem":43},"Bun 1.2 — où en est-on ?","\u002F2026-03-veille-bun","2026-03-veille-bun",{"title":45,"path":46,"stem":47},"Club prologin — bilan de la session","\u002F2026-04-club-prologin","2026-04-club-prologin",{"title":49,"path":50,"stem":51},"L'IA dans nos cours, sans s'y noyer","\u002F2026-04-edito-ia-cours","2026-04-edito-ia-cours",{"title":53,"path":54,"stem":55},"Semaine des langues — quand Python lit nos textes","\u002F2026-04-semaine-langues-nlp","2026-04-semaine-langues-nlp",{"title":57,"path":58,"stem":59},"Sous le capot de nsi.rocks","\u002F2026-05-coulisses-nsi-rocks","2026-05-coulisses-nsi-rocks",{"title":61,"path":62,"stem":63},"Créer votre premier jeu vidéo — le guide pragmatique","\u002F2026-05-creer-jeu-video-debutant","2026-05-creer-jeu-video-debutant",{"title":65,"path":66,"stem":67},"Le tableau de bord élève — mode d'emploi","\u002F2026-05-dashboard-eleve-mode-emploi","2026-05-dashboard-eleve-mode-emploi",{"title":69,"path":70,"stem":71},"Évaluations notées, auto-évaluations — qui sert à quoi","\u002F2026-05-evaluations-et-auto-eval","2026-05-evaluations-et-auto-eval",{"title":73,"path":74,"stem":75},"La Nuit du Code 2026 — coder en équipe, manette en main","\u002F2026-05-nuit-du-code-2026","2026-05-nuit-du-code-2026",{"title":77,"path":78,"stem":79},"Pourquoi LLVM ?","\u002F2026-05-pourquoi-llvm","2026-05-pourquoi-llvm",{"title":81,"path":82,"stem":83},"git bisect : trouver un bug en log(n) étapes","\u002F2026-05-tuto-git-bisect","2026-05-tuto-git-bisect",{"id":85,"title":61,"authors":86,"body":89,"category":488,"date":489,"description":490,"extension":491,"featured":492,"image":493,"meta":494,"navigation":495,"path":62,"readingTime":285,"seo":496,"stem":63,"__hash__":497},"posts\u002F2026-05-creer-jeu-video-debutant.md",[87],{"name":88},"Mathieu N.",{"type":90,"value":91,"toc":479},"minimark",[92,101,452,456,475],[93,94,95,96,100],"p",{},"« J'aimerais créer un jeu vidéo » — la phrase revient chaque année. Et\nchaque année, beaucoup d'élèves abandonnent au bout de deux semaines, non\npar manque de talent, mais faute d'une ",[97,98,99],"strong",{},"trajectoire réaliste",". Voici\nquelques repères pour éviter les pièges classiques.",[102,103,105,110,129,136,160,163,167,254,264,268,271,322,329,333,336,377,380,384,387,423,427,430,449],"steps",{"level":104},"2",[106,107,109],"h2",{"id":108},"acceptez-de-faire-petit","Acceptez de faire petit",[111,112,113],"warning",{},[93,114,115,116,120,121,124,125,128],{},"Le piège n°1 du débutant : vouloir reproduire ",[117,118,119],"em",{},"Zelda",", ",[117,122,123],{},"Minecraft"," ou\n",[117,126,127],{},"Elden Ring"," en projet personnel. C'est mathématiquement impossible —\nces jeux représentent des centaines d'années-personnes de travail.",[93,130,131,132,135],{},"Votre premier jeu doit tenir en ",[97,133,134],{},"une phrase",". Quelques bons exemples :",[137,138,139,145,150,155],"ul",{},[140,141,142],"li",{},[117,143,144],{},"Un vaisseau évite des astéroïdes qui tombent du ciel.",[140,146,147],{},[117,148,149],{},"Un personnage saute d'une plateforme à l'autre sans tomber.",[140,151,152],{},[117,153,154],{},"Deux joueurs s'affrontent au Pong sur le même clavier.",[140,156,157],{},[117,158,159],{},"Un serpent grandit en mangeant des pommes.",[93,161,162],{},"Si votre idée tient en plus d'une phrase, c'est trop ambitieux pour le\npremier essai. Mettez-la de côté pour le deuxième.",[106,164,166],{"id":165},"choisissez-votre-outil","Choisissez votre outil",[168,169,170,186],"table",{},[171,172,173],"thead",{},[174,175,176,180,183],"tr",{},[177,178,179],"th",{},"Outil",[177,181,182],{},"Langage",[177,184,185],{},"Pour qui ?",[187,188,189,203,215,228,241],"tbody",{},[174,190,191,197,200],{},[192,193,194],"td",{},[97,195,196],{},"Pygame Zero",[192,198,199],{},"Python",[192,201,202],{},"Si vous débutez tout court. Très pédagogique, peu de cérémonie.",[174,204,205,210,212],{},[192,206,207],{},[97,208,209],{},"Pygame",[192,211,199],{},[192,213,214],{},"Une fois Pygame Zero compris. Plus de contrôle, plus de boilerplate.",[174,216,217,222,225],{},[192,218,219],{},[97,220,221],{},"Godot",[192,223,224],{},"GDScript \u002F C#",[192,226,227],{},"Quand vous voulez un vrai éditeur, du 2D ou du 3D, et publier sur plusieurs plateformes.",[174,229,230,235,238],{},[192,231,232],{},[97,233,234],{},"Construct \u002F GDevelop",[192,236,237],{},"Pas de code",[192,239,240],{},"Si vous n'avez jamais programmé et que vous voulez voir votre idée tourner ce week-end.",[174,242,243,248,251],{},[192,244,245],{},[97,246,247],{},"Unity \u002F Unreal",[192,249,250],{},"C# \u002F C++",[192,252,253],{},"Plus tard. Outils professionnels, courbe d'apprentissage raide.",[255,256,257],"note",{},[93,258,259,260,263],{},"Choisissez ",[97,261,262],{},"un seul"," outil. Et tenez-vous-y au moins jusqu'à votre\npremier jeu fini. Sauter d'un moteur à l'autre est la cause la plus\nfréquente d'abandon.",[106,265,267],{"id":266},"la-boucle-de-jeu-le-cœur-de-tout","La boucle de jeu, le cœur de tout",[93,269,270],{},"Tout jeu vidéo, du Pong aux AAA, repose sur la même structure :",[272,273,278],"pre",{"className":274,"code":275,"language":276,"meta":277,"style":277},"language-python shiki shiki-themes github-light github-light github-dark","while jeu_en_cours:\n    gerer_les_entrees()      # touches, souris, manette\n    mettre_a_jour_le_monde() # déplacements, collisions, score\n    dessiner_a_l_ecran()     # sprites, fond, HUD\n","python","",[279,280,281,294,304,313],"code",{"__ignoreMap":277},[282,283,286,290],"span",{"class":284,"line":285},"line",1,[282,287,289],{"class":288},"s8jYJ","while",[282,291,293],{"class":292},"sxrX7"," jeu_en_cours:\n",[282,295,297,300],{"class":284,"line":296},2,[282,298,299],{"class":292},"    gerer_les_entrees()      ",[282,301,303],{"class":302},"sCsY4","# touches, souris, manette\n",[282,305,307,310],{"class":284,"line":306},3,[282,308,309],{"class":292},"    mettre_a_jour_le_monde() ",[282,311,312],{"class":302},"# déplacements, collisions, score\n",[282,314,316,319],{"class":284,"line":315},4,[282,317,318],{"class":292},"    dessiner_a_l_ecran()     ",[282,320,321],{"class":302},"# sprites, fond, HUD\n",[93,323,324,325,328],{},"Cette ",[97,326,327],{},"boucle principale"," tourne 30 ou 60 fois par seconde. Comprendre\nqu'un jeu n'est qu'un programme qui répète ces trois étapes change la façon\ndont vous le concevez.",[106,330,332],{"id":331},"construisez-par-étapes-successives","Construisez par étapes successives",[93,334,335],{},"Voici un ordre de progression robuste pour un premier jeu :",[337,338,339,345,351,357,362,367,372],"ol",{},[140,340,341,344],{},[97,342,343],{},"Une fenêtre s'ouvre, un fond coloré apparaît, on peut la fermer\nproprement."," C'est un succès.",[140,346,347,350],{},[97,348,349],{},"Un sprite s'affiche au milieu."," C'est un autre succès.",[140,352,353,356],{},[97,354,355],{},"Le sprite se déplace avec les flèches."," Encore un succès.",[140,358,359],{},[97,360,361],{},"Un autre sprite apparaît, et il y a une collision détectée.",[140,363,364],{},[97,365,366],{},"Un score s'affiche en haut, il augmente sur événement.",[140,368,369],{},[97,370,371],{},"Un écran \"Game Over\" apparaît à un moment.",[140,373,374],{},[97,375,376],{},"Un écran titre permet de relancer.",[93,378,379],{},"À ce stade, vous avez un jeu complet. Tout le reste (graphismes, sons,\nniveaux) est de l'embellissement.",[106,381,383],{"id":382},"récupérer-des-assets-quand-on-nest-pas-graphiste","Récupérer des assets quand on n'est pas graphiste",[93,385,386],{},"Pas besoin de savoir dessiner pour faire un jeu présentable. Plusieurs\nbanques proposent des sprites et des sons libres de droits, avec\nl'obligation parfois de créditer l'auteur :",[137,388,389,399,407,415],{},[140,390,391,398],{},[392,393,397],"a",{"href":394,"rel":395},"https:\u002F\u002Fopengameart.org",[396],"nofollow","OpenGameArt"," — sprites, tuiles, musiques.",[140,400,401,406],{},[392,402,405],{"href":403,"rel":404},"https:\u002F\u002Fkenney.nl",[396],"Kenney.nl"," — packs gratuits cohérents,\nparticulièrement adaptés aux débutants.",[140,408,409,414],{},[392,410,413],{"href":411,"rel":412},"https:\u002F\u002Fitch.io\u002Fgame-assets\u002Ffree",[396],"Itch.io — free game assets"," —\nimmense fonds, qualité variable.",[140,416,417,422],{},[392,418,421],{"href":419,"rel":420},"https:\u002F\u002Ffreesound.org",[396],"Freesound"," — bruitages.",[106,424,426],{"id":425},"publier-même-imparfait","Publier, même imparfait",[93,428,429],{},"Un jeu non publié reste invisible. Quand votre prototype tient debout :",[137,431,432,435,446],{},[140,433,434],{},"Compilez-le en exécutable (PyInstaller pour Python, export Godot pour\nGodot, etc.).",[140,436,437,438,445],{},"Publiez-le sur ",[97,439,440],{},[392,441,444],{"href":442,"rel":443},"https:\u002F\u002Fitch.io",[396],"itch.io"," — la plateforme est\ngratuite, accueille les jeux de toutes tailles, sans pression\ncommerciale.",[140,447,448],{},"Partagez le lien à votre classe, à vos amis, sur le serveur Discord du\nclub.",[93,450,451],{},"Voir ses joueurs réagir est l'expérience la plus motivante qui soit. C'est\nce qui transforme un essai en envie de recommencer — en mieux.",[106,453,455],{"id":454},"pour-aller-plus-loin","Pour aller plus loin",[137,457,458,465,472],{},[140,459,460,461,464],{},"Notre article sur ",[392,462,463],{"href":26},"Godot, le moteur libre",".",[140,466,467,468,471],{},"L'annonce de la prochaine ",[392,469,470],{"href":74},"Nuit du Code"," — l'occasion\nrêvée de tester votre setup en équipe.",[140,473,474],{},"Le club jeu vidéo du lycée, le mercredi après-midi.",[476,477,478],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":277,"searchDepth":296,"depth":296,"links":480},[481,482,483,484,485,486,487],{"id":108,"depth":296,"text":109},{"id":165,"depth":296,"text":166},{"id":266,"depth":296,"text":267},{"id":331,"depth":296,"text":332},{"id":382,"depth":296,"text":383},{"id":425,"depth":296,"text":426},{"id":454,"depth":296,"text":455},"tuto","2026-05-08","Une feuille de route honnête pour passer de \"j'aimerais faire un jeu\" à un premier prototype jouable, sans abandonner en chemin.","md",false,null,{},true,{"title":61,"description":490},"mYQ_wZCFc-nNMm9_WB4erOWj1_w1DdAbKAyuGr8D0yM",[499,502],{"title":57,"path":58,"stem":59,"description":500,"category":501,"readingTime":285,"children":-1},"Pourquoi ce site existe, comment il est construit, et ce qu'il vous propose au-delà du simple cours en ligne.","edito",{"title":65,"path":66,"stem":67,"description":503,"category":488,"readingTime":285,"children":-1},"Reprendre une lecture, suivre sa progression, retrouver ses notes et ses prochaines deadlines. Tour d'horizon de votre dashboard.",1788015772044]