Repo commun pour l'arcade toulouse promo 2024

Overview

Arcade (Promo Toulouse 2024)

Pour proposer un changement / débattre sur github, suivez ce tutoriel.

Les fichiers sources dont vous aurez besoin pour le projet seront disponible dans src tandis que la documentation et les informations supplémentaires seront accessibles dans doc.

A propos

Ce repo sert a mettre en commun les fichiers de l'arcade nécessaires à chacun pour mener à bien le projet. Merci de fréquement jeter un oeil aux issues, aux débats et au mises à jours de ce repo.

Responsable

Les personnes responsables du maintien de ce repo sont :

N'hésitez pas à contacter l'un d'entre-nous, nous vous répondrons dès que possible (via discord, teams ou mail).

Liens utiles

Comment débuter

Voici un conseil pas à pas pour débuter :

  • Si vous ne savez pas comment utiliser les issues et les discussions github ou faire une pull request, nous vous conseillons de jeter un oeil à ce tutoriel.

  • Allez regarder la documentation pour avoir un aperçu à jour de l'architecture, des interfaces et des API.

  • Regardez les fichiers sources et téléchargez la dernière version disponible dans Releases.

  • Participez au débat principal de l'arcade.

  • Participez aux débats, proposez des idées et venez jeter un oeil fréquents aux mises à jours et changement dans les fichiers communs et la documentation (pourquoi ne pas jeter un oeil aux commits pour voir les changements effectués ?).

Issues
  • Format des métadonnées

    Format des métadonnées

    La méthode char *library_get_data() doit retourner des information sur la lib, le format doit être commun sinon il sera impossible de les interpréter entre arcade. Je propose le format simple suivant :

    [type] (GAME|GRAPHIC)
    [name]
    [date](mm/jj/aaaa)
    [description]
    [additional info]
    

    exemples :

    GAME
    Pacman
    03/25/2021
    pacman is a game whith ghosts and cheeses.
    
    GRAPHIC
    SDL
    
    GRAPHIC
    SDL
    03/25/2021
    the SDL Library for arcade.
    

    Seul les 2 premières lignes seraient obligatoire, le reste serait des informations addictionnelles facultatives, donc attention lors du parsing.

    enhancement 
    opened by Pebloop 18
  • Problème avec la méthode getEntity

    Problème avec la méthode getEntity

    Quand je souhaite implémenter la méthode getEntity dans une classe concrète et que je compile, j'obtiens erreur image

    J'en déduis que c'est à cause de la référence vers IEntity...

    opened by max-ndj 11
  • Problème avec le name dans IScene

    Problème avec le name dans IScene

    Bonjour,

    Les methods removeEntity et getEntity prennent un std::string name en argument et return un vecteur de IEntity. Du coup, on ne peut pas accéder à name. Y'a-t-il un moyen d'y accéder ou faut-il créer une abstract avec un getName()?

    opened by Jad31 10
  • Savoir si une lib graphique est Ascii

    Savoir si une lib graphique est Ascii

    Bonjour,

    que pensez vous d'avoir un moyen de savoir si une lib est graphique on non pour agir en conséquence ?

    Je propose l'ajour d'une méthode bool isAscii() const dans l'interface IGraphic.

    enhancement 
    opened by Pebloop 10
  • Changer Sprite en ISprite

    Changer Sprite en ISprite

    Je propose que l'on renomme Sprite en ISprite en mettant la fonction draw qui dessinera ce composant au lieu d'avoir des variables. ça permettra de ne pas avoir de problème pour ceux veulent dessiner des pixels ou ceux qui veulent charger une image pour la dessiner

    opened by smbss1 5
  • Créer classe Sprite

    Créer classe Sprite

    Créer l'interface ISprite, qui hérite de IComponent. Elle permet d'afficher un sprite représenté sous la forme d'un tableau de pixels colorés. LIB GRAPHIC ONLY !

    enhancement 
    opened by Pebloop 4
  • dt vraiment utile ?

    dt vraiment utile ?

    Est-ce-que dt est vraiment utile dans les fonctions void update(Scene &scene, float dt) du game et graphic ? Ca ne serait pas plus simple de gérer directement le fps dans la game loop ?

    opened by skyf0l 4
  • Ajout de la documentation

    Ajout de la documentation

    Je suis en train de documenter l'ensemble du code avec Doxygen. Je compte également ajouter une GitHub Action pour build et publier la documentation sur une GitHub Pages. Il y aura également pas mal de fichier Markdown expliquant les concepts plus en détails et montrant des exemples d'utilisation.

    Cette Pull Request n'est pas a merge immédiatement, je la créé juste afin de pouvoir traquer son avancement.

    Si il y a des questions ou remarques, n'hésitez pas à les partager ici!

    opened by nasso 3
  • Débat Arcade

    Débat Arcade

    Bonjour, il faut travailler sur quoi faire et comment améliorer les interfaces de l'arcade. Il faut définir ce que contient scène et comment intéragir entre le jeu, le core et la librairie graphique.

    Merci de participer et de donner vos avis ou de préciser ce que vous ne comprenez pas, sinon on fera l'archi sans vous tant pis pour vous.

    Premierement, la lib game interagie avec une scene, il serait bon de définir ce que l'on peut trouver dans cette classe.

    enhancement 
    opened by Pebloop 3
  • Problème avec std::find pour chercher une IEntity

    Problème avec std::find pour chercher une IEntity

    J'ai ce genre de problème qui est afficher à la compilation: " required from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = __gnu_cxx::__normal_iterator<arcade::IEntity*, std::vectorarcade::IEntity >; _Tp = arcade::IEntity]’" .

    Du coup, je propose que l'on rajoute un 'GetId' dans IEntity pour avoir l'index de l'entity dans le container.

    opened by smbss1 2
  • Il n'y a pas de coding style explicite

    Il n'y a pas de coding style explicite

    Actuellement les fichiers de ce repository ne suivent pas de style de code particulier. Afin de garantir un style commun et de permettre à tout le monde de plus facilement contribuer au projet, je propose de le rendre plus explicite, potentiellement via un fichier de configuration ou une documentation écrite.

    enhancement 
    opened by nasso 2
  • exit const

    exit const

    Alors je viens de capter que exit dans IScene est constant et retourne rien. Pourquoi c'est contant ? c'est censé faire un truc, si y en a qui on fait marcher avec le const je veux bien etre au courant mais c'est juste chelou...

    opened by Pebloop 0
Releases(v3)
  • v3(Apr 1, 2021)

    DU COUP, on a parlé de pas mal de trucs et je vais essayer de faire un compte rendu ici, hésitez pas si il y a un truc que vous comprenez pas c'est mieux si on peut y répondre en public et vite (Pcq dans quelque jours ce sera la sauce ultime)

    "getType()" sur les composants

    Au lieu d'une enum (ComponentType) décrivant les différents types de composants on passera maintenant par un dynamic_cast. (Références: https://en.cppreference.com/w/cpp/language/dynamic_cast https://stackoverflow.com/questions/2253168/dynamic-cast-and-static-cast-in-c )

    Simplification des callbacks pour les événements

    Exemple: virtual void onKeyDown(const Key& key) = 0 virtual void onKeyPressed(const Key& key) = 0;

    Devient maintenant "onKeyEvent(const event::KeyboardEvent& key)", les propriétés de l’événement se trouvant maintenant dans l'objet KeyboardEvent.

    Création d'entités

    La création d'une entité se fait maintenant grâce à la méthode newEntity() qui retourne une référence vers une nouvelle entité. (Les méthodes de gestion d'entités par index ont été retirées pcq dégueulasse)

    Optimisation mémoire sur les composants

    Les composants "Sprite", "Sound" et "AsciiSprite" utilisent maintenant des shared_ptr pour contenir les données. Cela permet d'éviter des copies inutiles de grosses données (Ex, les pixels de l'image) (Référence: https://en.cppreference.com/w/cpp/memory/shared_ptr)

    Ajout d'un composant "Sound"

    Pour ceux qui veulent, complètement facultatif.

    Ajout d'un composant "Transform"

    Ce composant remplace les méthodes "getPosition" et "setPosition" (certaines entités n'en ayant pas besoin). Il pourra contenir en bonus, la rotation et l'échelle.

    Source code(tar.gz)
    Source code(zip)
    src.zip(6.26 KB)
  • v2(Apr 1, 2021)

  • v1(Mar 22, 2021)

    Changelog

    Sommaire

    • Ajout de namespace précision
    • précision de library_get_data()
    • ajout de ILibrary

    Détails

    • [~] api.h
      • [+] struct library_info (library_info_t)
      • [~] char *library_get_data() -> library_info_t library_get_data()
    • [+] ILibrary.hpp
      • [+] void init(Scene &scene)
      • [+] void update(Scene &scene, float dt)
      • [+] void end(Scene &scene)
    • [~] IGame.hpp
      • [+] héritage : ILibrary
      • [-] void init(Scene &scene)
      • [-] void update(Scene &scene, float dt)
      • [-] void end(Scene &scene)
    • [~] IGraphic.hpp
      • [+] héritage : ILibrary
      • [-] void init(Scene &scene)
      • [-] void update(Scene &scene, float dt)
      • [-] void end(Scene &scene)
    Source code(tar.gz)
    Source code(zip)
    api.h(472 bytes)
    IGame.hpp(374 bytes)
    IGraphic.hpp(392 bytes)
    ILibrary.hpp(540 bytes)
    Scene.hpp(310 bytes)
  • v0(Mar 20, 2021)

    Changelog

    Sommaire

    Créations des fichiers de base, réalisé pendant le follow-up du Vendredi 19 mars 2021 à 17h30.

    Détails

    • [+] api.h
      • [+] void *library_create()
      • [+] void library_delete(void *library)
      • [+] char *library_get_data()
    • [+] IGame.hpp
      • [+] void init(Scene &scene)
      • [+] void update(Scene &scene, float dt)
      • [+] void end(Scene &scene)
    • [+] IGraphic.hpp
      • [+] void init(Scene &scene)
      • [+] void update(Scene &scene, float dt)
      • [+] void end(Scene &scene)
    • [+] Scene.hpp
    Source code(tar.gz)
    Source code(zip)
    api.h(301 bytes)
    IGame.hpp(400 bytes)
    IGraphic.hpp(418 bytes)
    Scene.hpp(259 bytes)
Owner
Pebloop
Life is Fun. Proof ? computers exist.
Pebloop
Le trio de l'enfer 2 Jan 23, 2022
This repo contains example software for the Kernelcon 2021 Hack Live! badge - the Hacker HotKey.

Hacker HotKey This repo contains example software for the Kernelcon 2021 Hack Live! badge - the Hacker HotKey. Default Hotkey Mapping Hacker Hotkey is

Kernelcon 14 Jan 24, 2022
Not related to software bugs and exploits; this repo contains snippets of code that demonstrate some interesting functionality or a handy trick.

Proof-of-Concept Not related to software bugs and exploits; this repo contains snippets of code that demonstrate some interesting functionality or a h

Alisa Esage 31 May 29, 2022
Repo for the DSA Mini-project Directory Manager

Directory Manager Repo for the DSA Mini-project Directory Manager Installation and Setup To setup the program on your desktop, do the following. git c

Pramod Rao Budramane 5 Oct 16, 2021
This is the repo for the microcontroller part of project Cleanurge - a scalable IoT powered waste management system, our solution towards a greener world.

Cleanurge A scalable waste management system powered by IoT. There are 3 repositories for the entire cleanurge system in total cleanurge-mcu: Containi

Developer Student Clubs KGEC 6 Oct 11, 2021
Repo per il corso di Programmazione 2 - canale M-Z - A.A. 2020/21

Argomenti del corso Principi della Programmazione a Oggetti Astrazione Incapsulamento e Information Hiding Ereditarietà Polimorfismo Classi e oggetti

null 23 May 9, 2022
This device repo aims to support booting AOSP on SDM845 devices supported by the mainline Linux kernel

device/generic/sdm845 (AOSP device config for SDM845 devices) This device repo aims to support booting AOSP on SDM845 devices supported by the mainlin

Caleb Connolly 15 Apr 7, 2022
Code repo for infos and demos on the DaFit Magic 3 Smartwatch

Magic3_DaFit Code repo for infos and demos on the DaFit Magic 3 Smartwatch Demos: Magic3_Display_test_by_atc1441 = Minimal full buffer Display example

null 6 Dec 28, 2021
Not a big fan of git. May create a nicer repo in the future.

os My x86-64 hobby operating system. Cooperative multitasking system with no user-mode support, everything runs on ring 0 (for now). Packed with a rea

tiagoporsch 13 Jun 27, 2022
THIS REPO IS PART OF WHAT ORCA TOLD ME TO UPLOAD

artifact64 THIS REPO IS PART OF WHAT ORCA TOLD ME TO UPLOAD Generate x64 arch undetactable executables directly from cobalt strike . USAGE : compile u

null 67 Jun 26, 2022
This repo is for the open source DSP filters made for alt:V.

voice-filters This repo is for the open source DSP filters made for alt:V. Editing & building Run generate.bat and find the Visual Studio project file

altMP team 4 Jun 16, 2022
This repo does not contain any skins that work by themselves, but rather addons to already existing skins like CakeOS and Polybar

Rainmeter-addons ⚠ This repo does not contain any skins that work by themselves, but rather addons to already existing skins like CakeOS and Polybar E

null 4 Oct 17, 2021
This repo contains solutions to coding questions available online on coding platforms like - Codeforces, Codechef, URI Online Judge, and Hackerrank.

CPP_Soln This repo contains solutions to coding questions available online on coding platforms like - Codeforces, Codechef, URI Online Judge , LeetCod

Rijul Jain 3 Nov 1, 2021
Pretty much the repo name sums it up.

?? Console_Calculator Version Supported Date Ended Support v.1.0 ✔️ ?? Features The ?? Console_Calculator can do basic arithmatic, and yes there is no

Angelo Petrai 3 Dec 31, 2021
hacktober fest 2021 repo, push any code which works for dsa

Hacktoberfest 2021 ✨ This repo contains collection of all competitive programming algorithms. I will be happy to accept any contributions during Hackt

Utkarsh Gupta 1 Oct 30, 2021
Repo for Hacktoberfest-2021

DSA This repository is for Hacktoberfest 2021 contribution Every Participant is allowed to add issues with the tag hacktoberfest2021 and send a pull r

null 5 Jan 15, 2022
Trusted QSL from the ARRL, this repo is a manual sync and only to generate a AppImage of the app

Trusted QSL from the ARRL, this repo is a manual sync and only to generate a AppImage of the app

Pavel Milanes (CO7WT) 2 Nov 17, 2021
Create Hacktoberfest PRs. Star this Repo!⭐

Hacktoberfest 2021 Link To HacktoberFest 2021 Event details : Hacktoberfest is a month-long challenge. It happens every year in the month of October.

Amsal Khan 32 Jan 23, 2022
The book and code repo for the FREE Fundamental C++ book by Kevin Thomas.

FREE Reverse Engineering Self-Study Course HERE Fundamental C++ The book and code repo for the FREE Fundamental C++ book by Kevin Thomas. FREE Book Do

Kevin Thomas 23 Jan 5, 2022