Projets:HexArcade

= 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.

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

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 !

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.

Vue arrière du joystick à modifier

Crobard de principe pièce d'adaptation 6-way

CAD de la pièce correspondante, merci Audran!

CAD de la pièce capot, merci Audran!

La pièce imprimée et montée, merci Vincent!

Closeup de la même pièce

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
Finalement, achat de quelques pièces pour tester

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. Bouton et switch Lot de boutons

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