| Main > Software Forum |
| [4/1/2024] -Pi4/5 Support Incoming -Major League SkeeBall -- SkeeBall Controller |
| << < (9/60) > >> |
| nipsmg:
Fixed a bunch of bugs in Stranger in the Alps and Riskee related to the issue in the post above.. The issue I was having was something like this: In Riskee, lets say the player is on their last ball, and they hit 40 to spin the wheel. What was happening was: * Spin initiated * Ball count decremented * On the next game update loop, 0 balls detected, call game end * Game end fired, show high score if score merits it * Sometime after this, the bonus wheel spin completes * Score or ball count is incremented (or decremented), but game is over and high score is already recorded. I had to create a game event queue that would allow me to register game actions with a priority. High priority items always process before low priority items. In the case above, this happens now: * "SpinWheel" game event added with high priority. Since it's the only event, it starts executing immediately and is removed from queue * Ball count decremented * Update loop detects no balls left, adds "EndGame" event to the queue as LOW priority. Since Something is executing, this sits in queue * Wheel spin ends. When the "SpinComplete" event fires, it adds the result of the spin as a game event to the queue with HIGH priority. Since the "wheel spin" hasn't completed, this sits in queue. * The last line of SpinComplete() is Pipeline.ProcessNext() * Since there is an item in the high priority queue, it processes first, lets say "Play sound effect and add score" event. * Last line of "Play sound effect and add score" event is Pipeline.ProcessNext() * The next thing in the queue is a low priority item.. End Game. EndGame is called and does the whole check/register high score and display GameEnd thing. There's plenty of other occasions where this is an issue that I will eventually fix with the pipeline: In Zap: * Player hits the same number as another player * Zap sound starts playing * Please wait indictor comes up before the sound effect finishes and moves the score to 0 Plenty of others. These really are the last major nagging bugs keeping me from releasing an alpha for testing. I am hopeful for a weekend release. |
| big420atx:
I would love to get involved in the beta test and what not. This is something I have been interested in for awhile now. Good luck and maybe we can talk a little more about the actual hardware side soon. |
| nipsmg:
If you want to be a tester... I've got a PRE-Alpha release built that I'm happy to share with anyone who wants to test. I'm not quite comfortable making it globally available currently however. If you're interested in doing some testing for me, please respond inline in the thread and I'm happy to send you a copy for testing. Please post any bug reports, etc in this thread as well. Important things to know: The current build assumes a Model H/Model S with physical switches. The way these machines score, is the ball drops through a hole, then rolls down a chute hitting every switch below it, THEN hits a switch in the ball return chute that i call "Ball Drain" on the way out. The 100 pocket switches are worth 50, the others worth 10 in classic skeeball. Note: I WILL me making this an option in a future release. I know plenty of custom built solutions (and even newer real skeeball machines) use optical sensors that don't require a ball drain input. This will be configurable in the config file in the next alpha release. For example: If you hit 100, the score is calculated like this: score + 50 for 100 switch Score + 10 for 50 switch Score + 10 for 40 switch Score + 10 for 30 switch Score +10 for 20 switch Score +10 for 10 switch BallCount -1 for ball drain switch Because of this mechanic, all games OTHER than Classic SkeeBall register the first switch it hits, then NO OTHER SWITCHES until the ball drain switch is hit. So while testing, you have to manually advance the ball count. Default Keys: * A-10 * S-20 * D-30 * F-40 * G-50 * H-left 100 * J-Right 100 * N- Ball drain switch * Esc - Back / Exit * Left/Right - Left / right in menu. Also left/right allow you to navigate through game modes for games that support it (310 and ZAP currently) * UP/Down - Increase/Decrease Players. Only works in Bowling, Zap, and 310 Currently. * I - Info / High Score (only works in "game over" mode in a game. Hit I once to see instructions, again to see highscore table (if game tracks highscore) * Enter - Select / enter/ start game So to test a 100 in Classic Skeeball, you have to hit H,G,F,D,S,A,N in order. (N advances the ball count) In any other game, you hit the pocket ball then you HAVE to hit N before you can register another pocket. So to hit 40, you hit F then N. SETTINGS: The game is resolution independent, so you can set 4:3 resolutions and it *SHOULD* letterbox. There is a settings.json file you can inspect for settings. You can also adjust the timeouts for attract mode, set fullscreen mode, etc. I'm very open to comments, suggestions, etc. Please remember this is considered PRE-ALPHA.. it's by no means complete, but is definitely playable. I really appreciate any help anyone is willing to give to help squash bugs. I'm also VERY, VERY interested in feedback on current sound effects, suggestions for in-game sound effects, music, mechanics, graphics, improvements, etc. I'm also open for suggestions for new games/game modes. |
| jimdeprado:
Thanks! I would very much like to help test your software. Let me know and I can PM you my email. Jim |
| nipsmg:
Jim, sounds good, PM me your specs (processor/RAM/OS/version) and I'll send you a link to an alpha copy. |
| Navigation |
| Message Index |
| Next page |
| Previous page |