Skip to content

imdavehack/blockfall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Octofill

A calm, ad-free block-puzzle game for iOS, open source. Published on the App Store as Octofill. (The Xcode project and this repo keep their original Blockfall codename, so all the file paths below say Blockfall.)

I built Octofill because I love a casual drop of blocks with my daughters, but every free game we tried was riddled with ads. So I made the one I wanted: fun with or without kids, no ads, no tracking, and no internet required. The code is here so anyone can verify that promise.

Links: Website · Privacy Policy · Support

Download on the App Store

📱 Pending App Store review. Octofill has been submitted and is awaiting approval; the link above goes live the moment it's approved. Can't wait? Build and self-install it today: run it in the iOS Simulator, or put it on your own iPhone straight from Xcode (a free Apple ID works).

Bomb Blitz mode Five game modes Pass-and-play tournament Player profiles

A block-puzzle game for iOS. Drag pieces from the tray onto the 8x8 board; complete rows or columns to clear them. Clearing multiple lines at once scores more, and consecutive clearing moves build a streak multiplier. The run ends when none of the remaining pieces fit.

Modes: Classic, Time Attack, Daily Challenge, Puzzle, and Bomb Blitz. A pass-and-play Tournament mode lets a group take turns on one device — pick the players, choose a game (defaults to Time Attack with a configurable round time), and the highest score wins.

No ads, no analytics, no network access. High score and the in-progress game are stored on-device.

Original implementation: all code, artwork, and the icon are generated for this project. Only the genre mechanics (shared by many block-puzzle games) are in common with other titles.

Project layout

  • Blockfall.xcodeproj - Xcode project (iOS 17+, iPhone, portrait)
  • Blockfall/GameEngine.swift - pure game logic: board, pieces, clears, scoring
  • Blockfall/GameState.swift - observable game state, persistence, haptics triggers
  • Blockfall/GameView.swift - board, drag-and-drop, tray, score, game-over UI
  • Blockfall/Tournament.swift / Blockfall/TournamentViews.swift - pass-and-play tournament: setup, turn handoff, standings
  • Blockfall/Theme.swift - colours and block/piece rendering
  • tools/make-icon.swift - regenerates the app icon (swift tools/make-icon.swift <out.png>)
  • tools/engine-check.swift - engine sanity checks (cp tools/engine-check.swift /tmp/ec/main.swift && swiftc Blockfall/GameEngine.swift /tmp/ec/main.swift -o /tmp/engine-check && /tmp/engine-check)

Run in the simulator

xcodebuild -project Blockfall.xcodeproj -scheme Blockfall \
  -destination 'platform=iOS Simulator,name=iPhone 17' build

Or open Blockfall.xcodeproj in Xcode and press Run.

Put it on your iPhone via TestFlight

Requires a paid Apple Developer Program membership (AUD ~$149/yr).

  1. Open Blockfall.xcodeproj in Xcode. Select the Blockfall target > Signing & Capabilities, tick "Automatically manage signing", and pick your Team.
  2. Check the bundle identifier (app.blockfall.app). It must be globally unique; change it if it clashes with anything you own.
  3. In App Store Connect (appstoreconnect.apple.com) > Apps > "+" > New App: pick iOS, any name (e.g. Blockfall), the bundle ID from step 2, and an SKU (e.g. blockfall-001).
  4. In Xcode, select "Any iOS Device (arm64)" as the destination, then Product > Archive.
  5. When the Organizer opens, click "Distribute App" > "TestFlight & App Store" (or "TestFlight Internal Only") > Upload.
  6. In App Store Connect > your app > TestFlight, wait for the build to finish processing (usually 5-15 minutes). Export compliance is already answered in the build (ITSAppUsesNonExemptEncryption = NO), so no extra questions should appear.
  7. Create an Internal Testing group, add your own Apple ID as a tester, and add the build to the group.
  8. Install TestFlight on your iPhone, accept the invite, and install Blockfall.

Internal-tester builds do not go through App Review. TestFlight builds expire after 90 days; upload a new build (bump the build number in the target's General tab) when one expires.

No paid membership?

With a free Apple ID you can skip TestFlight: plug in your iPhone, select it as the run destination in Xcode, and press Run. The app installs directly but expires after 7 days, after which you just run it again.

App Store submission

The App Store listing copy, privacy/age-rating answers, and reviewer notes live in app-store/METADATA.md. The public Privacy Policy and Support pages are served from docs/ via GitHub Pages.

Contributing

Issues and pull requests are welcome — open one on the issue tracker. The game logic lives in GameEngine.swift (pure, no UIKit) and is covered by tools/engine-check.swift.

License

MIT © 2026 Still Waters. The app name "Octofill" (and the "Blockfall" codename), the app icon, and the App Store listing are not covered by the licence; please ship your own fork under a different name and icon.

About

A calm, ad-free block puzzle for iOS. No ads, no tracking, no internet. Open source.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages