Game review

Civis

7.5 / 10

Developer
Daniele Veneroni
Publisher
Daniele Veneroni (open source)
Released
1 January 2013
Platforms
Web browser (desktop and mobile)
Genre
Strategy / 4X
Monetisation
Free, open source, no ads and no in-game purchases
Players
Local hotseat only (up to 4 players, human or AI)

The short version

Civis is a genuine attempt at a Civilization-style 4X in the browser — hex-grid map, city building, research, diplomacy, and combat, playable solo against up to three AI opponents — and for a project with no corporate backing and 570 GitHub stars, it gets a surprising amount right. The turn structure (upkeep, trade, production, movement, research) is confirmed working end to end: tapping the phase-advance button correctly moved the game from one phase to the next in testing, with the on-screen label updating to match every time. The hex map itself, rendered with Snap.svg, responds to a tap by panning the camera, and the player-setup screen uses genuinely native HTML `<select>` dropdowns rather than a custom touch-unfriendly widget. What holds it back from a stronger score is real, verified incompleteness: reading the source confirms Save, Load Game, Help, and Settings are all literal unimplemented stubs, and testing turned up at least one city label rendering as the literal word "undefined" rather than an actual name. This is a serious, ambitious project that works, not a finished one.

Biggest strengths

  • The turn-phase system is confirmed functional, not assumed — tapping the phase-advance button correctly moved the game through upkeep, trade, and production in sequence during testing, with the visible phase label updating to match at every step
  • Touch works because most of the interface is built on genuinely touch-native web standards: real `<select>` dropdowns for player setup, and a Snap.svg-rendered map whose own drag handling includes touchstart/touchmove/touchend directly in its source, not just mouse events
  • Real 4X scope for a solo open-source project: four possible players (human or AI), multiple civilizations with distinct leaders, and a full phase cycle covering trade, production, movement, and research rather than a single simplified loop

Biggest weaknesses

  • Reading `js/main.js` directly confirms Save, Load Game, Help, and Settings are all unimplemented `// TODO` stubs — the buttons exist and can be tapped, but nothing happens behind three of them, and Load Game silently just closes the menu
  • A city or map label rendered as the literal text "undefined" during testing on desktop, pointing to a lookup that fails to resolve a name in at least one code path
  • Archived since 2019, so no ongoing fixes; the incomplete menu features described above are not going to be addressed unless someone forks the project

Who it's for: Strategy fans who want a real, if unfinished, Civilization-style game for free in a browser, and who don't mind an abandoned project's rough edges

Our recommendation: Worth a look for genuine 4X depth on a phone — go in knowing you can't save

7.5 / 10

Building a Civilization-style 4X alone, in JavaScript, without a studio behind you, is a serious undertaking — the genre lives or dies on a lot of interlocking systems staying coherent: cities, research, trade, diplomacy, combat, turn order. Civis attempts all of it on a hex grid, rendered with Snap.svg and jQuery, and reaches v0.6.0 before its last commit in 2019. Played today, it's a genuinely interesting case: the core loop works, confirmed by testing rather than taken on faith, but real pieces of the surrounding experience were never finished.

The turn cycle actually turns

The most important thing to verify in a turn-based strategy game is whether turns actually advance correctly, and this was tested directly rather than assumed. Civis structures each turn into phases — init, upkeep, trade, production, movement, research — and a single button in the sidebar, marked with an hourglass icon, advances to the next one. Tapping it on a simulated 390×844 touch phone correctly moved the game from "Upkeep" to "Trade" to "Production" in sequence, with the on-screen phase label updating to match at each step and the map remaining interactive throughout. The four small icons in the header — often mistaken for buttons on first glance — are actually a stats readout (turn count, research, culture, trade), not controls, and testing confirmed they don't need to be tappable for anything to work.

Touch support here isn't a bolt-on so much as a consequence of good foundations. Player setup uses real HTML <select> elements rather than a custom-drawn picker, which means touch behaviour comes for free from the browser rather than needing game-specific code. The hex map itself is rendered with Snap.svg, and its own dragging implementation includes touchstart, touchmove, and touchend handling directly in the library's source — confirmed by reading it rather than inferring it from a plausible-sounding library name. A tap on the map produced a visible camera pan in testing, exactly as it should.

What's actually missing

Reading js/main.js line by line turns up the honest state of the project: the click handlers for Save, Help, and Settings inside the in-game menu are each a literal // TODO comment doing nothing, and Load Game on the title screen just hides the menu without loading anything. None of that is inferred or guessed — it's what the code says it does. Separately, one label on the desktop map rendered as the plain word "undefined" during testing, the kind of bug that suggests a name lookup somewhere returns nothing under certain conditions. None of this crashed the game or blocked the core phase-and-map loop, but it means "complete v0.6.0" describes the underlying systems more accurately than it describes the full player-facing experience — you can play a session, but you can't currently save it, and three of the four options in the main menu don't do anything.

Worth stating plainly rather than papering over: this review did not confirm the specific city-management and production-building interaction beyond reaching the "Production" phase. That's the same gap the discovery pass that surfaced this candidate flagged, and repeated attempts to locate and interact with a specific city tile during testing didn't produce a clear building-menu screenshot. The phase and map systems it sits on top of are solid, which is a reasonable basis for confidence, but it's not the same as having watched it happen.

Where that leaves it

A 7.5 reflects a genuinely ambitious, mostly-working strategy game whose fundamentals — turn phases, map interaction, player setup — are confirmed solid on both touch and desktop, held back by real, verified gaps in save/load/settings functionality and at least one cosmetic bug. This is a serious, unusual find for a browser games shelf: a real 4X, not a simplified imitation of one, just an unfinished one.

Pros and cons

Pros

  • The turn-phase system is confirmed functional, not assumed — tapping the phase-advance button correctly moved the game through upkeep, trade, and production in sequence during testing, with the visible phase label updating to match at every step
  • Touch works because most of the interface is built on genuinely touch-native web standards: real `<select>` dropdowns for player setup, and a Snap.svg-rendered map whose own drag handling includes touchstart/touchmove/touchend directly in its source, not just mouse events
  • Real 4X scope for a solo open-source project: four possible players (human or AI), multiple civilizations with distinct leaders, and a full phase cycle covering trade, production, movement, and research rather than a single simplified loop
  • Handsome presentation — a leather-bound book aesthetic on the menus, a clean hex-tile art style for the map, and UI that reflows correctly between a 390px phone and a 1280px desktop without any layout breakage observed in testing
  • GPL-3.0 licensed with a genuine LICENSE.md at the repository root, verified directly

Cons

  • Reading `js/main.js` directly confirms Save, Load Game, Help, and Settings are all unimplemented `// TODO` stubs — the buttons exist and can be tapped, but nothing happens behind three of them, and Load Game silently just closes the menu
  • A city or map label rendered as the literal text "undefined" during testing on desktop, pointing to a lookup that fails to resolve a name in at least one code path
  • Archived since 2019, so no ongoing fixes; the incomplete menu features described above are not going to be addressed unless someone forks the project
  • This review confirmed menu navigation, dropdown setup, and phase advancement thoroughly, but did not confirm the full city-management/production-building interaction specifically — the discovery pass that flagged this candidate noted the same gap, and it remains open
  • With no save function working, any session is a one-sitting commitment; closing the tab loses all progress

Category scores

Category scores are the reviewer's read on each area. They inform the overall score but do not average into it — the number at the top of the page is a judgement, not a calculation.

  • Gameplay 7.5 / 10
  • Visuals 7.5 / 10
  • Originality 7.5 / 10
  • Replayability 7 / 10