1:HL["/_next/static/css/cc4372a95c3f4d70.css","style",{"crossOrigin":""}] 0:["6Hf9gjeptnXwb-ZeqYZY2",[[["",{"children":["projects",{"children":[["uid","skyjo-en-kotlin--multijoueur-en-ligne","d"],{"children":["__PAGE__?{\"uid\":\"skyjo-en-kotlin--multijoueur-en-ligne\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/cc4372a95c3f4d70.css","precedence":"next","crossOrigin":""}]],"$L3"]]]] 5:I[6954,[],""] 6:I[7264,[],""] b:I[9817,["51","static/chunks/795d4814-c504a020f883e502.js","980","static/chunks/980-b29bb817c89dbc45.js","439","static/chunks/439-b7e88012734c3f8e.js","185","static/chunks/app/layout-f202332b787806de.js"],"Analytics"] 2:[null,["$","html",null,{"lang":"en","className":"text-slate-100 m-0 p-0","style":{"height":"100%","minHeight":"100vh"},"children":[["$","body",null,{"className":"__className_472caf min-h-screen w-full relative","style":{"minHeight":"100vh","height":"100%","width":"100%","background":"transparent"},"children":[["$","div",null,{"style":{"position":"fixed","top":0,"left":0,"width":"100vw","height":"100vh","zIndex":-2,"backgroundImage":"url('/background/dark-green.jpg')","backgroundSize":"cover","backgroundPosition":"center","backgroundRepeat":"no-repeat"}}],["$","div",null,{"style":{"position":"fixed","top":0,"left":0,"width":"100vw","height":"100vh","zIndex":-1,"background":"rgba(0,0,0,0.45)","pointerEvents":"none"}}],"$L4",["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"initialChildNode":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","projects","children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","initialChildNode":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","projects","children",["uid","skyjo-en-kotlin--multijoueur-en-ligne","d"],"children"],"loading":"$undefined","loadingStyles":"$undefined","loadingScripts":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","initialChildNode":["$L7","$L8",null],"childPropSegment":"__PAGE__?{\"uid\":\"skyjo-en-kotlin--multijoueur-en-ligne\"}","styles":null}],"childPropSegment":["uid","skyjo-en-kotlin--multijoueur-en-ligne","d"],"styles":null}],"childPropSegment":"projects","styles":null}],"$L9"]}],"$La",["$","$Lb",null,{}]]}],null] c:I[2678,["51","static/chunks/795d4814-c504a020f883e502.js","922","static/chunks/c15bf2b0-9d8717324b1e67d6.js","870","static/chunks/bd904a5c-f823905c5d28c40c.js","689","static/chunks/b536a0f1-448ca6f7d4d2250f.js","980","static/chunks/980-b29bb817c89dbc45.js","815","static/chunks/815-2e6a34b73afd6a5c.js","686","static/chunks/686-b55b0103a39ae4a7.js","634","static/chunks/634-8d76538b675fe546.js","439","static/chunks/439-b7e88012734c3f8e.js","994","static/chunks/994-a46ca7a9077e0ce9.js","345","static/chunks/app/projects/%5Buid%5D/page-c3b7d53ee912614b.js"],"PrismicPreviewClient"] d:I[3994,["51","static/chunks/795d4814-c504a020f883e502.js","922","static/chunks/c15bf2b0-9d8717324b1e67d6.js","870","static/chunks/bd904a5c-f823905c5d28c40c.js","689","static/chunks/b536a0f1-448ca6f7d4d2250f.js","980","static/chunks/980-b29bb817c89dbc45.js","815","static/chunks/815-2e6a34b73afd6a5c.js","686","static/chunks/686-b55b0103a39ae4a7.js","634","static/chunks/634-8d76538b675fe546.js","439","static/chunks/439-b7e88012734c3f8e.js","994","static/chunks/994-a46ca7a9077e0ce9.js","345","static/chunks/app/projects/%5Buid%5D/page-c3b7d53ee912614b.js"],"*"] e:I[678,["51","static/chunks/795d4814-c504a020f883e502.js","980","static/chunks/980-b29bb817c89dbc45.js","439","static/chunks/439-b7e88012734c3f8e.js","185","static/chunks/app/layout-f202332b787806de.js"],""] f:I[8326,["51","static/chunks/795d4814-c504a020f883e502.js","922","static/chunks/c15bf2b0-9d8717324b1e67d6.js","870","static/chunks/bd904a5c-f823905c5d28c40c.js","689","static/chunks/b536a0f1-448ca6f7d4d2250f.js","980","static/chunks/980-b29bb817c89dbc45.js","815","static/chunks/815-2e6a34b73afd6a5c.js","686","static/chunks/686-b55b0103a39ae4a7.js","634","static/chunks/634-8d76538b675fe546.js","439","static/chunks/439-b7e88012734c3f8e.js","994","static/chunks/994-a46ca7a9077e0ce9.js","345","static/chunks/app/projects/%5Buid%5D/page-c3b7d53ee912614b.js"],""] 10:I[8326,["51","static/chunks/795d4814-c504a020f883e502.js","922","static/chunks/c15bf2b0-9d8717324b1e67d6.js","870","static/chunks/bd904a5c-f823905c5d28c40c.js","689","static/chunks/b536a0f1-448ca6f7d4d2250f.js","980","static/chunks/980-b29bb817c89dbc45.js","815","static/chunks/815-2e6a34b73afd6a5c.js","686","static/chunks/686-b55b0103a39ae4a7.js","634","static/chunks/634-8d76538b675fe546.js","439","static/chunks/439-b7e88012734c3f8e.js","994","static/chunks/994-a46ca7a9077e0ce9.js","345","static/chunks/app/projects/%5Buid%5D/page-c3b7d53ee912614b.js"],"*"] a:["$undefined",["$","$Lc",null,{"repositoryName":"portfolio-benjamin-lecomte","isDraftMode":false}],["$","$Ld",null,{"src":"https://static.cdn.prismic.io/prismic.js?new=true&repo=portfolio-benjamin-lecomte","strategy":"lazyOnload"}]] 4:["$","header",null,{"className":"top-0 z-50 mx-auto max-w-7xl md:sticky md:top-4","children":["$","$Le",null,{"settings":{"id":"Z5rjARAAACEA12z4","uid":null,"url":null,"type":"settings","href":"https://portfolio-benjamin-lecomte.cdn.prismic.io/api/v2/documents/search?ref=aK97FhEAACkAOt-T&q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z5rjARAAACEA12z4%22%29+%5D%5D","tags":[],"first_publication_date":"2025-01-30T02:25:07+0000","last_publication_date":"2025-02-25T09:59:56+0000","slugs":["settings"],"linked_documents":[],"lang":"en-us","alternate_languages":[],"data":{"name":"Benjamin Lecomte","nav_item":[{"link":{"id":"Z5rmVRAAACAA13Ky","type":"page","tags":[],"lang":"en-us","slug":"sur-moi","first_publication_date":"2025-01-30T02:39:21+0000","last_publication_date":"2025-08-27T21:37:23+0000","uid":"about","url":"/about","link_type":"Document","key":"f8cedee2-d360-4f7a-8ba5-b6461d24fc32","isBroken":false,"text":"About"},"label":"A propos"},{"link":{"id":"Z5scsBAAAB8A18J9","type":"page","tags":[],"lang":"en-us","slug":"projects","first_publication_date":"2025-01-30T06:31:16+0000","last_publication_date":"2025-02-25T10:02:03+0000","uid":"projects","url":"/projects","link_type":"Document","key":"986be582-356b-4244-94a3-d103b6c3a554","isBroken":false,"text":"Projects"},"label":"Projets"}],"cta_link":{"link_type":"Web","key":"9f54416b-f6ad-4f68-b90c-fe46f1a2a672","url":"mailto:benjamin.l06@outlook.fr","text":"Contact"},"cta_label":"Contact","twitter_link":{"link_type":"Any","key":"1f0f43b1-aa42-4ba1-bdc5-fa80bbb95a51"},"github_link":{"link_type":"Web","key":"78ab3d20-74c6-4a8c-84c4-eb7c26c17a50","url":"https://github.com/Benjam1Lct","target":"_blank","text":"GitHub"},"linkedin_link":{"link_type":"Any","key":"7ddbcbca-ad04-4372-9ec2-768d82dd0687","text":"LinkedIn"},"meta_title":null,"meta_description":null,"og_image":{}}}}]}] 11:T518,M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z9:["$","footer",null,{"className":"px-4 md:px-6 ","children":["$","div",null,{"className":"mx-auto w-full max-w-7xl text-slate-600","children":["$","div",null,{"className":"container mx-auto mt-20 flex flex-col items-center justify-between gap-6 py-8 sm:flex-row ","children":[["$","div",null,{"className":"name flex flex-col items-center justify-center gap-x-4 gap-y-2 sm:flex-row sm:justify-self-start","children":[["$","$Lf",null,{"href":"/","className":"text-xl font-extrabold tracking-tighter text-gray-50 transition-colors duration-150 hover:text-[#7D79D9]","children":"Benjamin Lecomte"}],["$","span",null,{"className":"hidden text-5xl font-extralight leading-[0] text-gray-200 sm:inline","aria-hidden":true,"children":"/"}],["$","p",null,{"className":" text-sm text-gray-100 ","children":["© ",2025," ","Benjamin Lecomte"]}]]}],["$","nav",null,{"className":"navigation","aria-label":"Footer Navigation","children":["$","ul",null,{"className":"flex items-center gap-1","children":[[["$","li",null,{"children":["$","$L10",null,{"target":"$undefined","className":"group relative block overflow-hidden rounded px-3 py-1 text-base font-bold text-slate-100 transition-colors duration-150 hover:text-[#7D79D9]","href":"/about","rel":"$undefined","children":"A propos"}]}],["$","span",null,{"className":"text-4xl font-thin leading-[0] text-slate-400 ","aria-hidden":"true","children":"/"}]],[["$","li",null,{"children":["$","$L10",null,{"target":"$undefined","className":"group relative block overflow-hidden rounded px-3 py-1 text-base font-bold text-slate-100 transition-colors duration-150 hover:text-[#7D79D9]","href":"/projects","rel":"$undefined","children":"Projets"}]}],false]]}]}],["$","div",null,{"className":"socials inline-flex justify-center sm:justify-end","children":[["$","$L10",null,{"target":"_blank","className":"p-2 text-2xl text-slate-300 transition-all duration-150 hover:scale-125 hover:text-[#7D79D9]","aria-label":"Benjamin Lecomte on GitHub","href":"https://github.com/Benjam1Lct","rel":"noreferrer","children":["$","svg",null,{"stroke":"currentColor","fill":"currentColor","strokeWidth":"0","viewBox":"0 0 496 512","children":["$undefined",[["$","path","0",{"d":"$11","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]}],false,false]}]]}]}]}] 8:"$L12" 3:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","meta","2",{"name":"twitter:card","content":"summary"}],["$","link","3",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]] 7:null 13:"$Sreact.suspense" 14:I[8170,["51","static/chunks/795d4814-c504a020f883e502.js","922","static/chunks/c15bf2b0-9d8717324b1e67d6.js","870","static/chunks/bd904a5c-f823905c5d28c40c.js","689","static/chunks/b536a0f1-448ca6f7d4d2250f.js","980","static/chunks/980-b29bb817c89dbc45.js","815","static/chunks/815-2e6a34b73afd6a5c.js","686","static/chunks/686-b55b0103a39ae4a7.js","634","static/chunks/634-8d76538b675fe546.js","439","static/chunks/439-b7e88012734c3f8e.js","994","static/chunks/994-a46ca7a9077e0ce9.js","345","static/chunks/app/projects/%5Buid%5D/page-c3b7d53ee912614b.js"],""] 16:[] 18:{"link_type":"Web","key":"d31a0413-baa4-4e41-91af-45d6b20faaaa","url":"https://github.com/Benjam1Lct/Skyjo","target":"_blank","text":"GitHub"} 17:{"title":"GitHub","link":"$18"} 15:{"variation":"default","version":"initial","items":"$16","primary":"$17","id":"external_link$7332dc62-a04e-4e9d-93f8-aa7ebd907302","slice_type":"external_link","slice_label":null} 12:["$","article",null,{"className":"px-4 md:px-6 ","children":["$","div",null,{"className":"mx-auto w-full max-w-7xl mt-24","children":["$","div",null,{"className":"rounded-2xl bg-black/75 px-4 py-10 md:px-8 md:py-12 z-1000 border-2 border-slate-600","children":[["$","div",null,{"className":"relative rounded max-w-fit","children":[["$","div",null,{"className":"z-10 absolute left-0 top-0 rounded h-full w-4 bg-gradient-to-r from-white via-white to-transparent pointer-events-none"}],["$","div",null,{"className":"flex gap-4 text-black max-w-fit bg-white px-4 rounded-[10px] py-2 text-xl font-bold overflow-x-auto scrollbar-hide relative","children":[["$","span","Kotlin",{"children":"Kotlin"}],["$","span","JavaFX",{"children":"JavaFX"}],["$","span","Game",{"children":"Game"}]]}],["$","div",null,{"className":"z-10 absolute right-0 top-0 rounded h-full w-4 bg-gradient-to-l from-white via-white to-transparent pointer-events-none"}]]}],["$","h1",null,{"className":"font-bold leading-tight tracking-tight text-gray-50 text-6xl md:text-8xl mt-8","children":"Skyjo"}],["$","p",null,{"className":"py-4 mt-4 border-b-2 border-slate-600 text-xl font-medium text-slate-300","children":"Saturday, July 13, 2024"}],["$","div",null,{"className":"prose prose-lg prose-invert mt-8 w-full max-w-none md:mt-12 text-slate-300 prose-strong:text-slate-50 prose-headings:text-slate-50 ","children":[["$","$13",null,{"fallback":null,"children":["$","img",null,{"src":"https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&w=600","srcSet":"https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&width=640 640w, https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&width=828 828w, https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&width=1200 1200w, https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&width=2048 2048w, https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format%2Ccompress&width=3840 3840w","alt":"$undefined","className":"rounded-2xl"}]}],["$","$13",null,{"fallback":null,"children":["$","$L14",null,{"slice":{"variation":"default","version":"initial","items":[],"primary":{"title":"GitHub","link":{"link_type":"Web","key":"d31a0413-baa4-4e41-91af-45d6b20faaaa","url":"https://github.com/Benjam1Lct/Skyjo","target":"_blank","text":"GitHub"}},"id":"external_link$7332dc62-a04e-4e9d-93f8-aa7ebd907302","slice_type":"external_link","slice_label":null},"index":1,"slices":[{"variation":"default","version":"initial","items":[],"primary":{"image":{"dimensions":{"width":1920,"height":1022},"alt":null,"copyright":null,"url":"https://images.prismic.io/portfolio-benjamin-lecomte/Z5wgZZbqstJ9-EXj_skyjo.png?auto=format,compress","id":"Z5wgZZbqstJ9-EXj","edit":{"x":0,"y":0,"zoom":1,"background":"transparent"}}},"id":"image_block$eeeb4602-df62-4630-9666-149b939a9d97","slice_type":"image_block","slice_label":null},"$15",{"variation":"default","version":"initial","items":[],"primary":{"text":[{"type":"heading3","text":"Skyjo en Kotlin – Multijoueur en ligne","spans":[],"direction":"ltr"},{"type":"paragraph","text":"Projet : Refonte du jeu de société Skyjo en Kotlin avec mode multijoueur en ligne\nTechnologie principale : Kotlin","spans":[{"start":0,"end":8,"type":"strong"},{"start":35,"end":40,"type":"strong"},{"start":82,"end":106,"type":"strong"}],"direction":"ltr"},{"type":"heading4","text":"Présentation du projet","spans":[{"start":0,"end":22,"type":"strong"}],"direction":"ltr"},{"type":"paragraph","text":"J’ai développé une version numérique du jeu de société Skyjo en utilisant Kotlin, avec un mode multijoueur en ligne permettant aux joueurs de s'affronter à distance. L'objectif était de reproduire les mécaniques du jeu tout en intégrant un système de gestion des parties en ligne pour une expérience fluide et interactive.","spans":[{"start":55,"end":60,"type":"strong"},{"start":74,"end":80,"type":"strong"},{"start":186,"end":218,"type":"strong"},{"start":240,"end":279,"type":"strong"}],"direction":"ltr"},{"type":"heading4","text":"Fonctionnalités clés","spans":[{"start":0,"end":20,"type":"strong"}],"direction":"ltr"},{"type":"paragraph","text":"✔ Interface dynamique permettant aux joueurs de manipuler leurs cartes facilement\n✔ Système de connexion et de gestion des parties en ligne\n✔ Mécanique de jeu respectant les règles officielles de Skyjo\n✔ Gestion des scores et affichage en temps réel\n✔ Optimisation des échanges réseau pour minimiser la latence","spans":[{"start":2,"end":21,"type":"strong"},{"start":84,"end":139,"type":"strong"},{"start":142,"end":201,"type":"strong"},{"start":204,"end":249,"type":"strong"},{"start":252,"end":284,"type":"strong"}],"direction":"ltr"},{"type":"heading4","text":"Pourquoi Kotlin ?","spans":[{"start":0,"end":17,"type":"strong"}],"direction":"ltr"},{"type":"paragraph","text":"✅ Langage moderne et robuste – idéal pour un développement fluide et structuré\n✅ Bonne gestion du multithreading – parfait pour synchroniser les actions des joueurs en ligne\n✅ Interopérabilité – possibilité d’étendre le jeu vers d’autres plateformes facilement","spans":[{"start":2,"end":28,"type":"strong"},{"start":81,"end":112,"type":"strong"},{"start":176,"end":192,"type":"strong"}],"direction":"ltr"},{"type":"heading4","text":"Objectif du projet","spans":[{"start":0,"end":18,"type":"strong"}],"direction":"ltr"},{"type":"paragraph","text":"Ce projet m’a permis de développer un jeu de société interactif en ligne, d’approfondir mes connaissances en développement réseau et d’optimiser les mécaniques de synchronisation des joueurs pour un gameplay réactif et sans accroc.","spans":[{"start":24,"end":72,"type":"strong"},{"start":109,"end":129,"type":"strong"},{"start":149,"end":190,"type":"strong"}],"direction":"ltr"}]},"id":"text_block$7bd11717-4357-46bf-a942-c34fc41d639a","slice_type":"text_block","slice_label":null}],"context":{}}]}],["$","$13",null,{"fallback":null,"children":["$","div",null,{"className":"max-w-prose","children":[["$","h3","134",{"dir":"$undefined","children":[["Skyjo en Kotlin – Multijoueur en ligne"]]}],["$","p","144",{"dir":"$undefined","children":[["$","strong","136",{"children":[["Projet :"]]}],[" Refonte du jeu de société "],["$","strong","139",{"children":[["Skyjo"]]}],[" en Kotlin avec mode multijoueur en ligne",["$","br","1__break",{}],""],["$","strong","142",{"children":[["Technologie principale :"]]}],[" Kotlin"]]}],["$","h4","147",{"dir":"$undefined","children":[["$","strong","146",{"children":[["Présentation du projet"]]}]]}],["$","p","161",{"dir":"$undefined","children":[["J’ai développé une version numérique du jeu de société "],["$","strong","150",{"children":[["Skyjo"]]}],[" en utilisant "],["$","strong","153",{"children":[["Kotlin"]]}],[", avec un mode multijoueur en ligne permettant aux joueurs de s'affronter à distance. L'objectif était de "],["$","strong","156",{"children":[["reproduire les mécaniques du jeu"]]}],[" tout en intégrant un "],["$","strong","159",{"children":[["système de gestion des parties en ligne"]]}],[" pour une expérience fluide et interactive."]]}],["$","h4","164",{"dir":"$undefined","children":[["$","strong","163",{"children":[["Fonctionnalités clés"]]}]]}],["$","p","181",{"dir":"$undefined","children":[["✔ "],["$","strong","167",{"children":[["Interface dynamique"]]}],[" permettant aux joueurs de manipuler leurs cartes facilement",["$","br","1__break",{}],"✔ "],["$","strong","170",{"children":[["Système de connexion et de gestion des parties en ligne"]]}],["",["$","br","1__break",{}],"✔ "],["$","strong","173",{"children":[["Mécanique de jeu respectant les règles officielles de Skyjo"]]}],["",["$","br","1__break",{}],"✔ "],["$","strong","176",{"children":[["Gestion des scores et affichage en temps réel"]]}],["",["$","br","1__break",{}],"✔ "],["$","strong","179",{"children":[["Optimisation des échanges réseau"]]}],[" pour minimiser la latence"]]}],["$","h4","184",{"dir":"$undefined","children":[["$","strong","183",{"children":[["Pourquoi Kotlin ?"]]}]]}],["$","p","195",{"dir":"$undefined","children":[["✅ "],["$","strong","187",{"children":[["Langage moderne et robuste"]]}],[" – idéal pour un développement fluide et structuré",["$","br","1__break",{}],"✅ "],["$","strong","190",{"children":[["Bonne gestion du multithreading"]]}],[" – parfait pour synchroniser les actions des joueurs en ligne",["$","br","1__break",{}],"✅ "],["$","strong","193",{"children":[["Interopérabilité"]]}],[" – possibilité d’étendre le jeu vers d’autres plateformes facilement"]]}],["$","h4","198",{"dir":"$undefined","children":[["$","strong","197",{"children":[["Objectif du projet"]]}]]}],["$","p","209",{"dir":"$undefined","children":[["Ce projet m’a permis de "],["$","strong","201",{"children":[["développer un jeu de société interactif en ligne"]]}],[", d’approfondir mes connaissances en "],["$","strong","204",{"children":[["développement réseau"]]}],[" et d’optimiser les "],["$","strong","207",{"children":[["mécaniques de synchronisation des joueurs"]]}],[" pour un gameplay réactif et sans accroc."]]}]]}]}]]}]]}]}]}]