Giter Site home page Giter Site logo

combat's Introduction

Combat by Zaccaria

Brought back from the dead by Pinball Plaid. Thanks to the guys at FAST and the Mission Pinball Project for all the support.

Development

Most of the work is handled by a YAML config which we have split into smaller files contextually in the ./config directory. The ./monitor directory is the configuration of component positioning on the virtual playfield display.

Installing MPF

On Ubuntu/Debian

Get system deps

sudo apt-get -y install git libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libgstreamer1.0-dev libxine2-ffmpeg libsmpeg-dev libswscale-dev libavformat-dev libavcodec-dev libjpeg-dev libtiff5-dev libx11-dev libmtdev-dev build-essential libgl1-mesa-dev libgles2-mesa-dev pulseaudio

Install Python w/ Pyenv.

  curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  pyenv install 3.5.3
  pyenv global 3.5.3
  echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc
  source ~/.bashrc

Install kivy, Cython and mpf

  pip install kivy
  pip install setuptools cython==0.25.2 --upgrade
  pip install mpf mpf-mc mpf-monitor --pre

On MacOS

Install Homebrew.

  /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then, install pyenv (and Python 3.5.3).

  brew install pyenv
  pyenv install 3.5.3
  pyenv global 3.5.3
  echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc
  source ~/.bashrc

...and the mac-specific deps.

  wget https://mpf.kantert.net/mpf_mac_frameworks.zip
  unzip mpf_mac_frameworks.zip
  sudo mv Frameworks/* /Library/Frameworks/
  rm -Rf Frameworks
  rm -Rf __MACOSX
  rm -Rf ReadMe.txt
  rm -Rf License.txt
  rm -Rf mpf_mac_frameworks.zip

Finally, install mpf-recommended cython version and "dev" mpf.

  pip install pip setuptools cython==0.24.1 --upgrade
  pip install mpf mpf-mc mpf-monitor --pre

Testing

Run the test suite with python -m unittest tests/*.py.

Tinkering

It's ideal to run 2 separate terminal sessions.

  • In the first, run mpf both -X which will launch the MPF engine and the media controller.
  • In the other, run mpf monitor which will launch the virtual playfield and state monitor.

There is also a virtual keyboard for simulating the switch hits. Here is what we have mapped thus far:

Primary Switches

  • Use the keys z and / for left and right flipper respectively
  • The key s will start a game
  • The key l will launch a ball
  • Use the keys 1 and 2 to trigger a trough switch (drains a ball)

Scoring Switches

  • The key p hits a Pop Bumper
  • The key d hits a "B.O.M.B.S." Drop Target
  • The key g simulates a ball entering the "Gun" (right hole)
  • The key m simulates a ball entering the "Missile" (left hole)
  • The key h advances the "hole score" value
  • The key b advances the "end of ball bonus" value
  • The key c hits the "Special" stationary target
  • The key n simulates one tick of the "Spinner"
  • The key t triggers a tilt (3 ends the ball)

Conventions

  • time shows in with 0.3s base (0.15s, 0.6s, 1.2s, etc.).

combat's People

Contributors

unrared avatar

Watchers

James Cloos avatar  avatar Josh Buker avatar

Forkers

unrared

combat's Issues

Audio picks up from end of last ball

It gets tiresome hearing the same guitar-only intro of the base mode music each time a new ball begins. This will make it so the timestamp is stored at the end of each ball and restored upon launch of the next one.

Experiment with DMD Animation

Was thinking it would be cool to video a toy boat sinking, making it an animated gif (in a single shade) and seeing how it translates...

DMD blank during Game Over and never ends

Confirmed the result occurs regardless of high score being set. The game over music plays but the DMD is blank. Appears to be a problem with whatever triggers the game over mode.

Extend player capability to 4

We rolled with 2 players to simplify things, but it shouldn't be too difficult to add 2 more players to the mix. The biggest concern will be rearranging the DMD layout (and maybe moving some info to the LCD).

Do more with the LCD display

That's not a backglass... it's a 27" LCD that we're totally not taking advantage of. Maybe we could have the high scores up there at all times? Maybe it changes completely during Multi-ball? Ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.