Visual Studio: Spin Game

Job ID: 39833138

Budget: £250 – £750 GBP

Project: Development of a 3-Wheel Pre-Determined Win Game (C# / Python) with CCTalk Integration

Overview

We are looking for an experienced developer to build a simple 3-wheel LED game for a touchscreen gaming machine running Windows 11.

The game uses a pre-determined sequence of 20,000 spins to control RTP and outcomes. It must integrate with Microcoin SP and Astrosystems ST2 note/coin acceptors via CCTalk protocol using a VAL362 interface.

The game flow is simple and fully automated except for the Double feature. Graphics will be provided. Developer will provide sound, animations, coding, and CCTalk integration.

System Requirements
- OS: Windows 11
- Screen: Touchscreen vertical (9:16) layout
Hardware:
- Microcoin SP coin acceptor
- Astrosystems ST2 note acceptor
- VAL362 CCTalk interface
- Connection: Standalone (no internet)
- Performance: Low-intensity, runs on modest PC hardware

Game Flow

State machine:
Idle → Insert Money → Auto Play (uses credits)
→ Nudge (if applicable) → Double (player option) → Return to Idle

- Idle: LED animations + sounds.
- Insert Money: Credits are added.
- Auto Play: Spins automatically until credits are exhausted or nudge feature triggers.
- Nudge: Pressable key.
- Double: At the end of a winning spin (above 1 credit), the player can choose to double.
- Screen shows two chests — the player taps one.
- If correct, winnings are doubled; if wrong, winnings are lost.
- Mini-games: All automatic.

Return to Idle: If credits = 0.

Predetermined Spins System

- 20,000 spin sequence stored in a text file.
- File structure suggestion (flexible for freelancer):

R1.1 R2.17 R3.12
R1.2 R2.14 R3.4
...
(R1, R2, R3 = 3 wheels; .1–.n = LED positions)

A Python script must be written to:
- Generate the list based on provided distribution table (medium volatility).
- Verify RTP = 78% over 20k spins.
- Verify the machine never exceeds 85% RTP at any point in 20k spins.
- After the 20,000th spin, the list loops back to the beginning.

Double feature win rate: ~30% of prize spins.
→ We welcome freelancer’s suggestion on how to best integrate this into a pre-determined spin structure (e.g. separate file, flags in spin list, or RNG layer on top of fixed outcomes).

Game Features
- Nudge - automatic when triggered.
- Double - manual by player (chest selection minigame).
- Pool - Each losing spin contributes 0.02 credits. When pool = 100, award to active player, then reset.
- Mini-Games - Two types remain:
- Random Prize: all LEDs light up, turn off one by one until one prize remains.
- LED Elimination: winning LEDs flash until one remains.
- Play with Credits - Players can use won credits to play manually.

Graphics, Sound & Presentation
- Graphics: All provided.
- Sound: Developer must supply royalty-free SFX (spin, win, background, etc.).
- Animations: Idle animations when machine is not being played + Spin animations
- Simple effects to make the game visually pleasing

Statistics Screen
- Accessible via macro key sequence + password.
- On-screen only (no exporting).
- Must display:
- Total credits in / out
- Total spins
- Wins & losses
- Double wins/losses
- Pool contributions & payouts
- Mini-game triggers

Tech Stack
- Frontend / Game: C# (Visual Studio)
- Backend / Scripts: Python for spin generation & RTP check
- Protocol: CCTalk for hardware comms
- Documentation: Required
- Source Code: Full source code & project files must be delivered

Project Milestones

Milestone 1 - Core Game Prototype (20%)
- Basic 3-wheel LED system implemented
- Reads and loops predetermined spin list
- Idle/Insert/AutoPlay basic flow
- Initial test with keyboard inputs

Milestone 2 - Game Features & CCTalk (25%)
- Nudge, Pool, Double, and Mini-games implemented
- CCTalk communication with note/coin acceptors working
- Basic sound and LED animation

Milestone 3 - Spin Generation & RTP System (20%)
- Python script to generate & verify spin list (78% RTP)
- Integrated with game loop
- Handles looping after 20k spins

Milestone 4 - Polish & Statistics (20%)
- Statistics screen with password protection
- Full game flow functional on touchscreen
- Graphics and sound integrated properly

Milestone 5 - Final Delivery & Testing (15%)
- Final bug fixing and delivery
- Full documentation and source code
- Testing on actual hardware

Required Experience
- Proven experience in C# game development (preferably in Visual Studio)
- Familiarity with CCTalk protocol and handling peripheral devices
- Experience writing Python scripts for data generation / validation
- Understanding of arcade or SWP (Skill With Prize) machines is a major plus

Additional Info
- Graphics assets and prize distribution table will be shared with the chosen freelancer.
- All code must be delivered in fully working order.
- Communication in English is required.