Projets:HexArcade

From Electrolab
Revision as of 16:09, 6 January 2017 by Clément (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.

Hexarcade-pentapong-original.jpg 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:

Hexarcade table crobar20170106 144430.jpg

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.


Hexarcade vueJoy.jpg
Vue arrière du joystick à modifier
Hexarcade joyModif8crobar.jpg
Crobard de principe pièce d'adaptation 6-way
Hexarcade CAD Piece joystick.JPG
CAD de la pièce correspondante, merci Audran!
Hexarcade CAD Piece capot.JPG
CAD de la pièce capot, merci Audran!
Hexarcade firstJoy.jpg
La pièce imprimée et montée, merci Vincent!
Hexarcade firstJoy closeup.jpg
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

  • pentapong (trouver la ref/ajouter des pics.)

Starcab

Hexarcade stuff.jpg
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.

Hexarcade bouton.jpg
Bouton et switch
Hexarcade boutons.jpg
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