Skip to content

Releases: SysopNetwork/Fracture

Release list

Fracture v1.0.0

Choose a tag to compare

@laudenbachm laudenbachm released this 21 Oct 16:36

First release: the complete core game — a persistent tile world with daily
midnight evolution, exploration and first discoveries, camp building, resources,
workers and passive production, weather and seasons, a research track, a trading
post, player raiding, a server chronicle with daily news, a Fame leaderboard,
in-game sysop tools, and a freely sysop-editable message file (every dynamic
value is a named text variable).

Changed

  • Every dynamic value in the message file — names, amounts, costs, coordinates,
    the weather — is a named text variable (FRA_FAME, FRA_TARGET,
    FRA_WX, ...) substituted by the host wherever it appears in the text,
    replacing the positional %s/%ld printf tokens. Sysops can therefore
    reword, reorder, repeat, or drop any value when editing message text without
    breaking the module — previously the token order had to match the code's
    argument list exactly. World size and the day's weather and season are
    computed live, so they are always current wherever the text mentions them.
    New source pair TVARS.C/TVARS.H; message names, types, and order are
    unchanged.
  • The main menu and the compact command bar were rebuilt as aligned grids. The
    full menu is now two columns (half its former height) and lists U
    Upgrade; the compact bar is a four-column grid with every tab starting at a
    fixed column, its rows themed — world, camp, progress/rivals, then help/exit —
    instead of the old ragged 4/4/4/2 wrap that left Board and Upgrade dangling.
    Message names, types, and order were preserved, so the numbering is unchanged.
  • The location/map screen and every command prompt gained consistent spacing: a
    single blank line after the location header, after the legend, and before the
    menu. The menu itself now carries the leading gap, so the separation is uniform
    on every screen.
  • Raid targets (A name) now match case-insensitively, so a rival's name need only
    be spelled right, not cased right (A himmey finds Himmey).
  • The status screen (T) and the how-to-play text now show the real configured
    world size (N x N) instead of a hardcoded value.
  • A new player's camp/home tile is charted on first entry (and when an
    out-of-bounds player is relocated home), so it is never shown as "unknown" —
    previously visible after the world was grown past its original size.
  • The screens were widened to use the full 80-column display: banners, rules, and
    the menu tab bar now span ~74 columns (was 52), the tabs are spread out, and the
    status and camp screens gained a blank line above and below their fields. Message
    names, types, and argument order were preserved.
  • Visual overhaul: every player-facing screen was restyled in a consistent
    shaded block-art ANSI look (CP437 ░▒▓█ banners and gradient rules, ▐▌
    half-block menu tabs, a fixed cyan/white/yellow palette). The main menu,
    welcome, status, camp, location header, news chronicle, and weather line now
    share one visual language. Message names, types, and argument order were
    preserved, so no code changed and no rebuild is required (the host recompiles
    the .MSG to .MCV at startup). The .MSG is now generated from
    TOOLS/GENMSG.PY. Sysops can still reword the
    human-readable text.
  • The midnight cleanup routine now advances weather and seasons alongside the
    world's terrain evolution, and logs a second audit-trail line naming the new
    day's condition and season (summary Fracture's skies have turned).
  • The boot-time audit-trail entry now has personality: the console summary reads
    Fracture's here. Act impressed. with detail
    Fracture v1.0.0 Hold my juicebox. (was just Fracture). A second line,
    By SysopNetwork, follows it (each line carries the audit trail's own
    date/time stamp).
  • The midnight world-evolution audit entry got the same treatment: summary
    Fracture reshuffled the world, detail
    N unexplored tile(s) reborn in the dark while you slept. (the count keeps it
    verifiable).

Fixed

  • A sysop ! reset could later crash the door with a Btrieve duplicate-key error
    (status 5) on FRACHIST.DAT. The history file resumed its sequence counter from
    the physically-last record, which stopped matching the highest sequence once the
    reset began deleting entries, so a later insert reused an existing key. The next
    sequence number is now derived from the true maximum key by scanning the file,
    which is correct regardless of physical layout and self-heals an affected file on
    the next open.
  • The host's output more-prompt ((N)onstop, (Q)uit, or (C)ontinue?) could
    interrupt the game's own full-screen redraws for users with a short screen-pause
    length, because the line counter carries across screen clears. The module now
    runs nonstop while a player is in the game and restores their setting on exit,
    logoff, or hangup, so screens no longer page mid-draw.
  • Pressing Enter at the main prompt drew the menu — and the Choose: line —
    twice. The empty-input case now relies on the single shared prompt redraw like
    every other command path.
  • The first-time welcome (FIRSTM) was being wiped immediately by the main
    menu's screen-clear, so it never showed. The menu no longer clears the screen
    itself (the entry message clears instead), so the welcome — and the new
    arrival quips — now display above the menu.
  • A player whose stored position (or camp) fell outside the current world
    bounds — which happens when the world size changes after they have started —
    was stranded: the local map rendered blank and movement was blocked, though
    other actions still worked. The main routine now brings such a player home
    (re-founding an out-of-bounds camp at the map center) on entry. The WLDSIZ
    help text was corrected to describe how changing the size affects an existing
    world.

Added

  • Ten more sysop options, exposing balance values that were fixed in code:
    Fame rewards (FAMEDISC for first discoveries, FAMEBLD per camp tier
    built, RADFAME for a winning raid), action costs (TRAVAP per tile
    travelled, SRCHAP per search), the worker recruit cost (WRKCWOOD,
    WRKCFOOD), the camp tier required to raid or be raided (RADMIN), and
    the sizes of the news view and the Fame leaderboard (NEWSMAX, BRDMAX).
    The raid screens now name the required camp tier — and the raid-win Fame —
    from the live settings instead of fixed text. In the configuration editor
    all options appear under a single "Fracture: configurable options" section
    and all message text under a single "Fracture: module text" section (the
    editor shows one grouping per level per file).
  • In-game sysop tools (SYSOP.C/.H): live administration gated by the BBS
    SYSOP key, reached from the main prompt with a hidden ! command that is
    invisible to players. ! find <name> shows a player's full record; ! set <name> <field> <value> edits Fame, Action Points, resources, camp or research tier, or
    position; ! ap <name|ALL> <n> grants Action Points; ! wipe <name> YES deletes
    a player; ! reset CONFIRM wipes every player, regenerates the world, and clears
    the news. The two destructive commands require a literal YES/CONFIRM token,
    and names match case-insensitively. Admin output uses prf only, so no
    message-file entries were added. New data helpers pl_wipeall, pl_ap_all,
    pl_leaderboard, wld_reset, and hist_clear.
  • Fame leaderboard: F shows the top explorers by Fame, the caller marked with
    their rank beneath. It reads the roster and sorts in memory, and costs no Action
    Points. Listed in both menus (the compact bar also now surfaces the existing
    U Upgrade command).
  • Batch travel: <dir> [R] [count] (e.g. W R 3) walks several tiles in one
    direction, optionally searching each, stopping at the world edge or when Action
    Points run out, then redrawing the map once with a one-line trip summary (tiles
    charted, Fame, resources gathered, Action Points spent). A plain single step is
    unchanged.
  • How-to-play screen: ? now opens a one-page guide — the world, how Action
    Points work, what each command does, and that Look, Status, Help, and the Board
    cost no Action Points. (Previously ? only reprinted the command list.)
  • Player raiding (RAID.C/.H): the first player-versus-player interaction.
    A lists raidable rivals (players who have built past a Tent, with their camp
    tier and Fame); A name raids one. The clash rolls each side's camp tier plus
    research plus a die, the defender favored on home ground; win and you carry off a
    sysop-set share of the target's resources (capped by your storage) plus Fame, lose
    and the Action Points you spent are the cost. Both raider and target must have a
    Cabin or better, so newcomers are safe and can neither raid nor be raided. A raided
    player sees a "RAIDED!" notice on their next login. No new data file (the raid
    counter reuses a spare record byte). Sysop options: RADOPT (on/off), RADCOST
    (Action Points per raid, default 5), RADLOOT (percent looted on a win, default
    25).
  • Research track (RESEARCH.C/.H): a five-tier knowledge ladder (Untrained →
    Sharpened Tools → Field Survey → Logistics → Master Craft) that permanently
    improves how a player plays. Each tier raises gather yield (up to +100%) and, from
    the Logistics tier, shaves an Action Point off travel. K shows the research
    bench (the whole ladder with your tier marked and the next tier's cost); K R
    advances one tier for a scaling resource cost (Wood and Stone, Metal from tier 2).
    The tier is stored in a spare byte of the player record, so there is no new data
    file and existing players start untrained. Sysop option RSCHOPT (on/off).
  • Trading post (MARKET.C/.H): a server-wide exchange for turning resources into
    Fame and back. M shows the post — a sell and buy price per resource (each
    weighted by scarcity: Metal ×3, Food ×2, the rest ×1) and ho...
Read more