Skip to content

Repository files navigation

Vertex Capture

A 2–4 player offline strategy game for Android and iOS, built with Expo + React Native.

Game

  • Each vertex shows its jump value — your move must trace exactly that many edges.
  • Pieces of other players on the path are captured; the destination must be empty.
  • A player is eliminated when they have no pieces or no legal move on their turn (their pieces are removed from the board).
  • Running out of the 60s turn timer only skips your turn; it does not eliminate you.
  • Eliminated players become spectators.
  • Final ranking: last standing wins, then players are ranked by how late they were eliminated.

Run locally

npm install
npx expo start

Open the Expo Go app on a device, or press a (Android emulator) or i (iOS simulator).

Project layout

  • App.js — root, fonts, navigation container
  • src/game/engine.js — pure JS rule engine (no React)
  • src/screens/ — Title, Setup, Game, Results
  • src/components/Board, PlayerCorner, PrimaryButton, ScreenBackground
  • src/theme/theme.js — palette, player colors, typography, shadows

App icon, splash, favicon (SVG sources → PNG for Expo)

Expo’s native config (app.json) expects PNG (or JPEG) for icon, splash.image, android.adaptiveIcon.foregroundImage, and web favicon. SVG is not supported for those fields in production builds.

Workflow in this repo:

  1. Edit the vector sources in assets/: icon.svg, adaptive-icon.svg, splash.svg, favicon.svg.

  2. Regenerate PNGs:

    npm run assets:png

    This runs scripts/rasterize-assets.js (uses sharp). Outputs: icon.png (1024²), adaptive-icon.png (1024²), splash.png (1284×2778), favicon.png (64²).

Keep the SVGs in version control as the master artwork; PNGs are build artifacts you can regenerate anytime.

Smoke test

node scripts/test-engine.js

Ship APK, Play Store, and Google Ads

See step.md for: building an APK for testers, publishing on Google Play, and adding AdMob after each match (native build required; not in Expo Go alone).

Build for stores

npm install -g eas-cli
eas login
eas build:configure          # only the first time
eas build --platform android # APK or AAB
eas build --platform ios     # needs an Apple developer account

Submit:

eas submit -p android
eas submit -p ios

Replace placeholder art

scripts/make-placeholder-assets.js writes solid-color PNGs into assets/ so Expo can build day-one. Replace assets/icon.png, assets/adaptive-icon.png, assets/splash.png, and assets/favicon.png with real artwork before submission.

Notes

  • Window-fit, no scrolling. Board scales to viewport via onLayout.
  • All game logic lives in src/game/engine.js — UI is a pure projection.
  • The HTML prototype (index.html) is a reference only; the mobile app does not load it.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages