Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
gamedev-page.js 7.83 KiB
Newer Older
"use strict";

const { images_url } = require("../../../../../constants");
const WebPage = require("../../../../lib/web-page");

const GAMEDEV_THEMES = [
    {
        title: "Dessin et création 2D",
        image: "learning_theme_2d.png",
        details: [
            "Création de décors et de personnages",
            "Dessin sur ordinateur, pixel art, vectoriel",
            "Animations 2D",
        ],
    },
    {
        title: "Musique et sons",
        image: "learning_theme_sound.png",
        details: ["Logiciels de son et synthétiseurs", "Composition", "Prise de son", "Mixage"],
    },
    {
        title: "Écriture",
        image: "learning_theme_write.png",
        details: [
            "Écrire une histoire, construire une narration",
            "Imaginer des mondes et des personnages",
        ],
    },
    {
        title: "Conception",
        image: "learning_theme_conception.png",
        details: [
            "Concevoir les différents éléments qui composent le jeu",
            "Développer les mécanismes de gameplay",
        ],
    },
    {
        title: "Programmation",
        image: "learning_theme_coding.png",
        details: [
            "Apprendre pas à pas à coder avec différents langages de programmation",
            "Découvrir les bases du web en créant des mini-jeux en lignes",
        ],
    },
    {
        title: "Mathématiques",
        image: "learning_theme_math.png",
        comment:
            "<em>Créer un jeu vidéo c'est l'occasion de découvrir plein de sujets en maths et en physique tout en s'amusant !</em>",
        details: [
            "Algorithmie",
            "Logique (algèbre booléen)",
            "Géométrie",
            "Trigonométrie",
            "Algèbre linéaire",
            "Repères 2D / 3D",
            "Vecteurs 2D / 3D",
            "Newton",
            "...",
        ],
    },
    {
        title: "Travail d'équipe",
        image: "learning_theme_team.png",
        comment: `
            <em>
                Faire son jeu tout seul c'est bien mais ça peut être long !
                <br />Créer des jeux c'est aussi l'occasion de se mettre à plusieurs pour tirer le meilleur parti des différents talents de chacun.
            </em>`,
        details: ["Gestion de projet", "Méthodologie", "Communication"],
    },
    {
        title: "Logiciels libres, GNU/Linux",
        image: "learning_theme_linux.png",
        comment:
            "<em>Nous utilisons essentiellement des logiciels libres sur Linux.<br />C'est donc une bonne occasion de découvrir et démystifier tout ça en douceur !</em>",
        details: ["Ubuntu / Debian", "GIMP", "LMMS", "Audacity", "Pencil2d", "..."],
    },
];

class GameStudioClub {
    render() {
        return {
            tag: "section",
            typeof: "EducationalOrganization",
            contents: [
                {
                    tag: "div",
                    class: "title-banner game-banner",
                    contents: [{ tag: "h2", contents: "Game Studio Club", property: "name" }],
                },
                {
                    tag: "div",
                    class: "section-contents page-contents-center",
                    contents: [
                        {
                            tag: "div",
                            class: "full-row",
                            contents: [
                                {
                                    tag: "h3",
                                    class: "big",
                                    contents:
                                        "Apprendre à créer un <blue>jeu vidéo</blue> de A à Z",
                                    property: "headline",
                                },
                                {
                                    tag: "strong",
                                    contents:
                                        "La création d'un jeu vidéo c'est l'occasion d'aborder plein de choses différentes !",
                                },
                                {
                                    tag: "p",
                                    contents:
                                        "<em><b><blue>Aucun prérequis nécessaire</blue></b>. Pas besoin d'être fort en maths ou en informatique, le but est d'apprendre et se détendre !</em>",
                                },
                            ],
                        },
                        {
                            tag: "div",
                            class: "list-wrapper",
                            property: "hasPart",
                            contents: [
                                {
                                    tag: "ul",
                                    class: "learning-themes",
                                    contents: GAMEDEV_THEMES.map(li => {
                                        return {
                                            tag: "li",
                                            class: "learning-theme",
                                            typeof: "ListItem",
                                            contents: [
                                                {
                                                    tag: "strong",
                                                    class: "title",
                                                    contents: li.title,
                                                    property: "name",
                                                },
                                                {
                                                    tag: "img",
                                                    alt: `learning theme image ${li.title}`,
                                                    src: `${images_url}${li.image}`,
                                                    property: "image",
                                                },
                                                {
                                                    tag: "div",
                                                    class: "details",
                                                    property: "description",
                                                    contents: [
                                                        li.comment && {
                                                            tag: "div",
                                                            class: "comment",
                                                            contents: li.comment,
                                                        },
                                                        {
                                                            tag: "ul",
                                                            contents: li.details.map(d => {
                                                                return {
                                                                    tag: "li",
                                                                    contents: d,
                                                                };
                                                            }),
                                                        },
                                                    ],
                                                },
                                            ],
                                        };
                                    }),
                                },
                            ],
                        },
                    ],
                },
            ],
        };
    }
}


class GamedevPage extends WebPage {

    render() {
        return {
            tag: "div",
            id: "game-studio-club-page",
            contents: [
                new GameStudioClub().render(),
            ],
        };
    }
}

module.exports = GamedevPage;