Difference between revisions of "Projets:HexArcade"
(→Ressources) |
(→proof of concept) |
||
(16 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= Actus = | = Actus = | ||
− | Démarrage projet. | + | * 2015/11/1: Prototypage |
+ | * Démontage & réflexions pour réalisation sticks | ||
+ | * Achat deux joysticks + boutons [http://www.starcab.net ici]. | ||
+ | * Démarrage projet. | ||
= Introduction = | = Introduction = | ||
− | Il s'agit de réaliser une borne d'arcade générique, prévue pour six joueurs. D'inspiration directe du pentapong | + | Il s'agit de réaliser une borne d'arcade générique, prévue pour six joueurs. D'inspiration directe du [http://www.djeff.net/pentapong.php pentapong], vu lors d'une visite du computerspiele museum à Berlin. |
+ | |||
+ | [[File:Hexarcade-pentapong-original.jpg|300px]] Ceci est le PentaPong d'origine. L'objectif du présent projet est de faire le même genre de chose en hexagonal, et avec plus de jeux. | ||
+ | |||
== Objectifs == | == Objectifs == | ||
Line 19: | Line 25: | ||
*Joystick arcade modifié pour avoir 6 directions | *Joystick arcade modifié pour avoir 6 directions | ||
*4 boutons classiques. | *4 boutons classiques. | ||
− | *controlleur type arduilol=>usb | + | *controlleur type arduilol (32u4 based)=>usb, avec HID joystick |
*chaque joystick + 4 boutons est indépendant, pour disposer d'une meilleure modularité. | *chaque joystick + 4 boutons est indépendant, pour disposer d'une meilleure modularité. | ||
− | *écran x" disposé à l'horizontal, intégré dans une table hexagonale. | + | *écran x" disposé à l'horizontal, intégré dans une table hexagonale. A terme peut être vidéoprojecteur pour intégration meilleure..? |
− | *PC quelconque. | + | *PC ou équivalent quelconque. |
=== software === | === software === | ||
+ | |||
+ | Un article vraiment bien sur comment gérer les grilles hexagonales dans les jeux: http://www.redblobgames.com/grids/hexagons/ | ||
+ | |||
+ | Quelques idées de jeux: | ||
+ | |||
+ | - [http://www.java-gaming.org/index.php?topic=32981.0 Armor Critical] probablement mignon en split screen hexagonal | ||
== Module Joystick == | == Module Joystick == | ||
Line 41: | Line 53: | ||
=== proof of concept === | === proof of concept === | ||
+ | Pour l'écran, imaginons prendre une dalle LCD toute bête, que l'on cale sur une planche découpée en hexagone, avec une fenetre de visu en hexagone, et des emplacements pour les 6 ensembles stick+boutons. En gros, voici le crobard: | ||
+ | |||
+ | [[File:Hexarcade_table_crobar20170106_144430.jpg|600px]] | ||
+ | |||
+ | Prochaine étape: dans une plaque de MDF ou autre d'épaisseur suffisante, tailler la table supérieure: découpe intérieure pour l'affichage, percages pour boutons + sticks + papattes pour "pieds de table" et on pistocollera un écran au dos... | ||
+ | |||
+ | |||
+ | ==== ecran 4/3 19" ==== | ||
+ | Prenons http://www.ldlc.com/fiche/PB00151513.html qui est un 19" à 150€. Peut être que l'angle de vue est pas génial, ou autre spec. Pour l'instant, on s'en tape. | ||
+ | |||
+ | Calculs: | ||
+ | * Ecran 4/3, diagonale 19", taille de dalle effective: x=11.4" (hauteur) et y=15.2" (largeur) | ||
+ | * Si on aligne l'hexagone (inscrit dans cercle de rayon R) "à l'horizontale" en prenant toute la longueur, on a 2R = y = 15.2" => R=7.6". | ||
+ | * La hauteur est donc cos(30°)*7.6=6.58, ca fait plus que 2*x, la hauteur est donc l'élément limitant! | ||
+ | * Si on met l'hexagone "à l'horizontale" toujours, mais cette fois ci au lieu de prendre toute la largeur, on ajuste sur la hauteur, on a un hexagone visible inscrit dans un cercle de rayon R = x/2 / cos(30°) = 6.58" ce qui est inférieur à y/2 | ||
+ | |||
+ | Sur un écran 19", on case donc pas un hexagone très grand: 33cm de diamètre (taille pizza standard, quoi). Peut être suffisant pour un POC, mais la vraie version devra intégrer un vidéoprojecteur ou un écran plus grand, probablement... | ||
+ | |||
+ | La taille de la table supérieure est donc: | ||
+ | * hexagone inscrit dans un cercle de 33cm de diametre au centre pour zone d'affichage | ||
+ | * 19" de diagonale pour la dalle, donc la zone "pour les manettes" doit être au delà. Disons pour simplifier et vu qu'on peut tricher et décaler, qu'il y a 20" de rayon pris par l'écran, et qu'il faut 4" pour loger les manettes : hexagone extérieur 28" de diamètre soit 70cm. Si on a un rectangle de 70x60cm, on arrive à caler le tout. | ||
+ | |||
+ | ==== ecran 16/9 24" ==== | ||
+ | Calculs: | ||
+ | * diagonale 24", taille de dalle issue de x²+y²=24² et x=(16/9)*y on trouve x=11.76" et y=20.91" | ||
+ | * on aligne l'hexagone de visu "à l'horizontale", l'élément limitant sera probablement la hauteur, égale à (x/2)/cos(30°) soit 6.79" | ||
+ | * dans la largeur, on a donc 13.58" ce qui est très inférieur à y, on s'en doutait c'est un 16/9e et déjà un 4/3 c'est la hauteur qui est limitante! | ||
+ | * on a donc l'hexagone de visu dans un cercle de diamètre 13.58" soit 34.5cm environ. | ||
+ | * le cercle "de zone réservée à l'écran" est un cercle de diametre 24"+1" (pour viser large) soit 62.5cm | ||
+ | * on prend encore une fois une bande de 4" pour les manettes & boutons, soit 29" de diamètre total, soit 72.5 | ||
+ | |||
+ | Bon au final, ca change pas la face du monde de prendre une dalle 4/3 ou 16/9... | ||
= Réalisation = | = Réalisation = | ||
− | == | + | == Electronique joystick == |
+ | Pour prototyper, on va réaliser un shield pour arduino leonardo. Requirement: | ||
+ | * 6 boutons direction | ||
+ | * 4 boutons action | ||
+ | * connectique porc bornier a vis | ||
+ | * Pilotage de leds | ||
+ | |||
+ | |||
+ | On peut ptet utiliser une teensy, qui intègre directement le biniou pour faire un joy USB. | ||
+ | |||
+ | == Firmware joystick == | ||
+ | [http://www.instructables.com/id/Add-USB-Game-Controller-to-Arduino-LeonardoMicro/ ressource pour le firmware]. Pour info ca ne compile pas en l'état, il faut faire quelques modifs à la machette pour que ca marche. | ||
+ | |||
+ | |||
+ | On peut ptet utiliser une teensy, qui intègre directement le biniou pour faire un joy USB. | ||
+ | |||
+ | == Hardware joystick == | ||
+ | On va tenter de modifier un joystick de borne d'arcade du commerce, car plus robuste. Il faudra fabriquer des pièces d'adaptation pour monter 6 switchs au lieu de 4. | ||
+ | |||
+ | |||
+ | Fichiers 3D à imprimer ici: https://www.dropbox.com/sh/iz0l7rsaomcbaxw/AABz8me5P4Y5HQKkWfNki_B1a?dl=0 attentions, retouches à faire. | ||
+ | |||
+ | |||
+ | [[File:Hexarcade_vueJoy.jpg|400px|center|thumb]] | ||
+ | <center>Vue arrière du joystick à modifier</center> | ||
+ | |||
+ | [[File:Hexarcade_joyModif8crobar.jpg|400px|center|thumb]] | ||
+ | <center>Crobard de principe pièce d'adaptation 6-way</center> | ||
+ | |||
+ | [[File:Hexarcade_CAD_Piece_joystick.JPG|400px|center|thumb]] | ||
+ | <center>CAD de la pièce correspondante, merci Audran!</center> | ||
+ | |||
+ | [[File:Hexarcade_CAD_Piece_capot.JPG|400px|center|thumb]] | ||
+ | <center>CAD de la pièce capot, merci Audran!</center> | ||
+ | |||
+ | [[File:Hexarcade_firstJoy.jpg|400px|center|thumb]] | ||
+ | <center>La pièce imprimée et montée, merci Vincent!</center> | ||
+ | |||
+ | [[File:Hexarcade_firstJoy_closeup.jpg|400px|center|thumb]] | ||
+ | <center>Closeup de la même pièce</center> | ||
+ | |||
+ | Yapluca cabler le bouzin et voir ce que ca donne. Peut etre qu'on pourrait avoir envie de rotater l'hexagone de 30° histoire qu'en position extreme (dans un angle) on ne switch qu'un bouton... Maiiis en l'état on devrait arriver à en faire quelque chose! | ||
+ | |||
+ | = Ressources = | ||
* sparkfun stuff: | * sparkfun stuff: | ||
**https://www.sparkfun.com/products/9337 bouton arcade bleu, <$2 | **https://www.sparkfun.com/products/9337 bouton arcade bleu, <$2 | ||
Line 53: | Line 140: | ||
* pentapong (trouver la ref/ajouter des pics.) | * pentapong (trouver la ref/ajouter des pics.) | ||
+ | |||
+ | == Starcab == | ||
+ | |||
+ | [[File:Hexarcade_stuff.jpg|400px|center|thumb]] | ||
+ | <center>Finalement, achat de quelques pièces pour tester</center> | ||
+ | |||
+ | '''Stick''' | ||
+ | Stick le moins cher, avec boule changeable (pour mettre des couleurs differentes | ||
+ | Switchable 2 - 4 - 8 | ||
+ | Microswitches inclus | ||
+ | |||
+ | http://www.starcab.net/product_info.php?cPath=219_246&products_id=885 | ||
+ | |||
+ | '''Boutons standards''' | ||
+ | 28mm, Microswitch inclus, vissable | ||
+ | 6 couleurs. | ||
+ | [[File:Hexarcade_bouton.jpg|400px|center|thumb]] | ||
+ | <center>Bouton et switch</center> | ||
+ | [[File:Hexarcade_boutons.jpg|400px|center|thumb]] | ||
+ | <center>Lot de boutons</center> | ||
+ | |||
+ | |||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=521 | ||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=520 | ||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=518 | ||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=519 | ||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=523 | ||
+ | http://www.starcab.net/product_info.php?cPath=219_165&products_id=524 | ||
+ | |||
+ | Prendre du rab pour les boutons start et autres trucs de maintenance eventuels. ( 10 boutons) | ||
== Macro-planning == | == Macro-planning == | ||
*HW: lister le stuff, commander le stuff, assembler le stuff. Jnat & clem dès que ya du temps | *HW: lister le stuff, commander le stuff, assembler le stuff. Jnat & clem dès que ya du temps | ||
*SW: chopper un framework sympa, installer un PC kivabien: emptty ; gameplay & premiers protos de jeu: emptty/jnat | *SW: chopper un framework sympa, installer un PC kivabien: emptty ; gameplay & premiers protos de jeu: emptty/jnat |
Latest revision as of 16:09, 6 January 2017
Contents
Actus
- 2015/11/1: Prototypage
- Démontage & réflexions pour réalisation sticks
- Achat deux joysticks + boutons ici.
- Démarrage projet.
Introduction
Il s'agit de réaliser une borne d'arcade générique, prévue pour six joueurs. D'inspiration directe du pentapong, vu lors d'une visite du computerspiele museum à Berlin.
Ceci est le PentaPong d'origine. L'objectif du présent projet est de faire le même genre de chose en hexagonal, et avec plus de jeux.
Objectifs
On souhaite concevoir et réaliser une borne d'arcade utilisable pour six joueurs. L'objectif est d'en installer un exemplaire dans le hall d'accueil du lab v2 notamment, et de se servir de cette plateforme pour expérimenter différents gameplay particuliers.
Principes
On intègre un PC dans une table hexagonale, incluant 6 controleurs customisés pour disposer de 6 directions. Tous les jeux proposés sont axés autour de ce form factor spécifique.
Fonctionnellement, les controlleurs sont vus comme des claviers, et mappés en logiciel.
Les jeux sont adaptés à cette plateforme, qui d'ailleurs peut servir de support pour se frotter à la programmation de jeux.
Fonctionnalités
hardware
- Joystick arcade modifié pour avoir 6 directions
- 4 boutons classiques.
- controlleur type arduilol (32u4 based)=>usb, avec HID joystick
- chaque joystick + 4 boutons est indépendant, pour disposer d'une meilleure modularité.
- écran x" disposé à l'horizontal, intégré dans une table hexagonale. A terme peut être vidéoprojecteur pour intégration meilleure..?
- PC ou équivalent quelconque.
software
Un article vraiment bien sur comment gérer les grilles hexagonales dans les jeux: http://www.redblobgames.com/grids/hexagons/
Quelques idées de jeux:
- Armor Critical probablement mignon en split screen hexagonal
Module Joystick
pré-étude
Il faut modifier un joystick du commerce pour obtenir 6 directions. On cable 4 boutons classiques arcade. On peut faire une arduilol custom si nécessaire (type leonardo cheapo). On peut envisager de réaliser d'autres types de controleurs (volant, etc) pour des jeux différents... mais ce sera pour plus tard !
proof of concept
Module table
pré-étude
- Structure en bois toute bête ; prévoir cependant un truc assez robuste pour survivre aux maltraitances des joueurs.
- intégration du PC, de l'écran (CRT pour meilleurs angles de vision?), des joysticks.
proof of concept
Pour l'écran, imaginons prendre une dalle LCD toute bête, que l'on cale sur une planche découpée en hexagone, avec une fenetre de visu en hexagone, et des emplacements pour les 6 ensembles stick+boutons. En gros, voici le crobard:
Prochaine étape: dans une plaque de MDF ou autre d'épaisseur suffisante, tailler la table supérieure: découpe intérieure pour l'affichage, percages pour boutons + sticks + papattes pour "pieds de table" et on pistocollera un écran au dos...
ecran 4/3 19"
Prenons http://www.ldlc.com/fiche/PB00151513.html qui est un 19" à 150€. Peut être que l'angle de vue est pas génial, ou autre spec. Pour l'instant, on s'en tape.
Calculs:
- Ecran 4/3, diagonale 19", taille de dalle effective: x=11.4" (hauteur) et y=15.2" (largeur)
- Si on aligne l'hexagone (inscrit dans cercle de rayon R) "à l'horizontale" en prenant toute la longueur, on a 2R = y = 15.2" => R=7.6".
- La hauteur est donc cos(30°)*7.6=6.58, ca fait plus que 2*x, la hauteur est donc l'élément limitant!
- Si on met l'hexagone "à l'horizontale" toujours, mais cette fois ci au lieu de prendre toute la largeur, on ajuste sur la hauteur, on a un hexagone visible inscrit dans un cercle de rayon R = x/2 / cos(30°) = 6.58" ce qui est inférieur à y/2
Sur un écran 19", on case donc pas un hexagone très grand: 33cm de diamètre (taille pizza standard, quoi). Peut être suffisant pour un POC, mais la vraie version devra intégrer un vidéoprojecteur ou un écran plus grand, probablement...
La taille de la table supérieure est donc:
- hexagone inscrit dans un cercle de 33cm de diametre au centre pour zone d'affichage
- 19" de diagonale pour la dalle, donc la zone "pour les manettes" doit être au delà. Disons pour simplifier et vu qu'on peut tricher et décaler, qu'il y a 20" de rayon pris par l'écran, et qu'il faut 4" pour loger les manettes : hexagone extérieur 28" de diamètre soit 70cm. Si on a un rectangle de 70x60cm, on arrive à caler le tout.
ecran 16/9 24"
Calculs:
- diagonale 24", taille de dalle issue de x²+y²=24² et x=(16/9)*y on trouve x=11.76" et y=20.91"
- on aligne l'hexagone de visu "à l'horizontale", l'élément limitant sera probablement la hauteur, égale à (x/2)/cos(30°) soit 6.79"
- dans la largeur, on a donc 13.58" ce qui est très inférieur à y, on s'en doutait c'est un 16/9e et déjà un 4/3 c'est la hauteur qui est limitante!
- on a donc l'hexagone de visu dans un cercle de diamètre 13.58" soit 34.5cm environ.
- le cercle "de zone réservée à l'écran" est un cercle de diametre 24"+1" (pour viser large) soit 62.5cm
- on prend encore une fois une bande de 4" pour les manettes & boutons, soit 29" de diamètre total, soit 72.5
Bon au final, ca change pas la face du monde de prendre une dalle 4/3 ou 16/9...
Réalisation
Electronique joystick
Pour prototyper, on va réaliser un shield pour arduino leonardo. Requirement:
- 6 boutons direction
- 4 boutons action
- connectique porc bornier a vis
- Pilotage de leds
On peut ptet utiliser une teensy, qui intègre directement le biniou pour faire un joy USB.
Firmware joystick
ressource pour le firmware. Pour info ca ne compile pas en l'état, il faut faire quelques modifs à la machette pour que ca marche.
On peut ptet utiliser une teensy, qui intègre directement le biniou pour faire un joy USB.
Hardware joystick
On va tenter de modifier un joystick de borne d'arcade du commerce, car plus robuste. Il faudra fabriquer des pièces d'adaptation pour monter 6 switchs au lieu de 4.
Fichiers 3D à imprimer ici: https://www.dropbox.com/sh/iz0l7rsaomcbaxw/AABz8me5P4Y5HQKkWfNki_B1a?dl=0 attentions, retouches à faire.
Yapluca cabler le bouzin et voir ce que ca donne. Peut etre qu'on pourrait avoir envie de rotater l'hexagone de 30° histoire qu'en position extreme (dans un angle) on ne switch qu'un bouton... Maiiis en l'état on devrait arriver à en faire quelque chose!
Ressources
- sparkfun stuff:
- https://www.sparkfun.com/products/9337 bouton arcade bleu, <$2
- https://www.sparkfun.com/products/9338 jaune
- https://www.sparkfun.com/products/9341 vert
- https://www.sparkfun.com/products/9336 rouge
- https://www.sparkfun.com/products/9136 joystick 1: modifiable..?
- https://www.sparkfun.com/products/9182 joystick 2: modifiable..?
- pentapong (trouver la ref/ajouter des pics.)
Starcab
Stick Stick le moins cher, avec boule changeable (pour mettre des couleurs differentes Switchable 2 - 4 - 8 Microswitches inclus
http://www.starcab.net/product_info.php?cPath=219_246&products_id=885
Boutons standards 28mm, Microswitch inclus, vissable 6 couleurs.
http://www.starcab.net/product_info.php?cPath=219_165&products_id=521
http://www.starcab.net/product_info.php?cPath=219_165&products_id=520
http://www.starcab.net/product_info.php?cPath=219_165&products_id=518
http://www.starcab.net/product_info.php?cPath=219_165&products_id=519
http://www.starcab.net/product_info.php?cPath=219_165&products_id=523
http://www.starcab.net/product_info.php?cPath=219_165&products_id=524
Prendre du rab pour les boutons start et autres trucs de maintenance eventuels. ( 10 boutons)
Macro-planning
- HW: lister le stuff, commander le stuff, assembler le stuff. Jnat & clem dès que ya du temps
- SW: chopper un framework sympa, installer un PC kivabien: emptty ; gameplay & premiers protos de jeu: emptty/jnat