Repository navigation
Dereth 0.2.0
·
102 commits
to main
since this release
Highlights
Added
- Every era of the game's data, 1999 to 2017, is read, and worlds built on the February 2005 data files (Infiltration) play: the client logs in, draws their palette-shifted ground, objects, clothing and portal tunnel, casts and logs out as on an end-of-retail world.
- The classic interface, the game's interface from before its 2005 redesign, is a choice on the options page (Interface), switched live at the character screen or in the world. It needs the early-2005 data files. On later worlds it shows their systems in its own style: titles, contracts, the journal, Friends and Squelch pages, the eighth-level and Void spells, and the cloak, trinket and aetheria slots, which open from an Accessories button beside the shield.
- The web client plays in the classic interface too, with the early-2005 files picked beside the later ones.
- The classic interface runs on macOS and Linux, and its text in the web client comes out the same in every browser: it is drawn with the Liberation fonts the client carries, at the sizes and spacing the Windows desktop gives it, so every line is as long and wraps where it does on Windows.
- The screens follow the world's era and the systems it announces: what it lacks (Contracts, Titles, the journal, luminance, cloak and trinket slots, House) is left out, and the tabs and panel buttons left close up without a gap. On a February 2005 world, character creation uses that world's own texts and shows a dot on the map for each starting town.
- The launcher lists the community's worlds, with each world's era and emulator, and keeps a Modern and a Classic data set, each with its own default.
- The launcher shows an Empyrean world's live state, players, era and systems, server version and name from the world itself, with no status page, refreshed every minute, and hands the world's systems to the client.
- A world can keep its own changes to the data files: the client keeps them in a separate overlay for that world and never alters the installed files. One data folder (
--dat-dir) holds both the later and the early-2005 sets;--classic-dat-dirnames another folder for the early set. - Terrain Mode (Palette Shift, Classic Blend, Modern Blend) and Sky Mode (Classic Software, Classic Hardware, Modern) draw any world's ground and sky in another era's style, given the older data files. Object Mode draws the world's objects, buildings, rooms and bodies, the paper doll included, in another era's look, switched live.
- Landscape Detail Textures lays the fine ground texture over nearby land, as the clients of 2005 to 2012 did. Off at first.
- Spell research, on a world that has it: the magic window's Create Spell tab, in both interfaces, takes up to eight carried components, by double-click or drag, and Test casts the formula. A spell learned there brings up the spellbook.
- The character screen shows the world's message in both interfaces: in the modern interface, an Announcements window beside Create Character, scrolled with the wheel.
- A performance panel over either interface shows the frame rate, frame times and where each frame's time goes. It is an option on the client options page and an action a key can be bound to.
- Every key that can be bound does something in the modern interface: Show Cloak, Select Self, Give, Drop, Move to Main Pack, hold sidestep, and the trade and spell research windows. This client's own actions are listed under Dereth on the key page.
- On a world that charges unassigned experience to swear allegiance again, the swear confirmation and the classic allegiance panel say what the oath costs.
Changed
- One options set for both interfaces: the same pages (Game and Support, Character Options, Chat Options, Client Options), each drawn in its interface's style. A change on either page shows on the other, takes effect when applied and lasts past logging out; rows for what the world's era lacks are left out. Urgent Assistance and Report Abuse open the in-game forms.
- One set of key bindings for both interfaces, each with key map files of its own (
<name>-modern.keymap,<name>-classic.keymap). Each key page lists only the rows its interface acts on and offers both interfaces' defaults, and a cleared key stays cleared at the next start. The classic defaults are the game's 2004 key map, and classic keys held with Shift, Ctrl or Alt work. - Multiple Pass Alpha softens the edges of cut-out textures such as leaves, and particles and translucent objects are drawn in their true order by distance.
- Detail levels are measured from the eye the frame is drawn from, and Degrade Distance applies on every world.
- The modern interface's 3D view fills any screen, however wide.
- The chat font's face and size are chosen on the modern interface's Chat Options page.
- Use Mouse Turning Settings sets the mouse-turning preset; it no longer restores the defaults or changes the character's options.
- The client starts in a 1024 by 768 window, and Defaults keeps that size.
- A word the language filter censors keeps the punctuation at either end of it, so a censored first or last word keeps the line's quote.
- A crash log is kept only for a run that goes wrong, without the login, and only the newest 20 are kept.
DERETH_SETTINGS_DIRnames the settings folder outright. --world-dat-dir,--legacy-dat-dirand theLegacyDatDirsetting are gone: one--dat-dirholds every set.
Fixed
- Animated scenery and objects move: butterflies flutter over the meadows, and the other placed objects with an animation of their own play it instead of standing frozen in their first pose.
- Switching interface from the options page no longer leaves the other interface needing an extra click for every switch made.
- The classic chat log shows the world's welcome once, however often you log back in or switch interface.
- A random heritage in character creation is always one the screen offers: Aluvian, Gharu'ndim or Sho in the classic interface, and one the world has in the modern one.
@versionnames the client's own version instead of 0.0.0.- At a load of exactly 110% the burden penalty shows 20%, as the game's own client does.
- Components carried at log-in are listed in the Components tab whatever order they arrive in.
- Component icons, in the magic window and a spell's examination, have black outlines instead of white, and an examined spell shows its icon composed as the spellbook does.
- Scenery and buildings draw each part at its own scale.
- Logging off releases the world, its objects and its sounds, so the next login starts clean.
- With mouse turning on, the body stops turning when the mouse stops under mouse look, and when the mouse-look button is let go.
- Switching back to the modern interface brings it up on the screen the game is at, with the paper doll at its own size and every option as the other interface left it.
- The classic interface: its Brightness slider no longer doubles the world's brightness; the pointer no longer trails the mouse; text is drawn as the game's own glyphs are; it draws in a fraction of the time it took; the copy key copies the chat log's selection; a drag in the 3D view picks up only what is under the pointer; a salvaging tool opens the salvage window; inverted mouse look reverses every step; holding the run key walks; tells read "Name tells you"; the wheel scrolls every list and the window under the pointer; the startup screen's text is centred.
- On a February 2005 world, objects without a detail record of their own (Holtburg's cottage stairs, doors, beams) draw their own models, and the portal tunnel is no longer black; drawn in the later look, a room's furniture keeps its detail up close.
All changes
Gameplay
- Infiltration plays by its own rules, formulas and loot; Empyrean credits ClassicACE
- Spell research: a world can turn on the early clients' formula test
- Spell research in the classic interface follows the world
- The later paper-doll slots wear classic slots made from the early portal
- Earlier eras keep earning at the level cap and charge for a second oath
- Classic lists report a press on the row already chosen: Break Allegiance and Dismiss act on a selected vassal or fellow, and a chosen attribute or skill pressed again is unselected
- Classic Options page: Show Trade tab (off at first, on worlds with trade), Show Friends tab and Show Squelch tab (on at first, on any world); a hidden page's tab goes and the others share its room
- The Create Spell page's slots stand on the empty item slot's frame
- Classic vitals text sits in the middle of its bar, down as well as across
- Components carried at log-in are listed whatever order the server sends them in
- Examining a spell shows its icon composed and its components with black outlines
- A word the language filter censors keeps the punctuation at either end of it, so a censored first or last word of a message keeps the line's quote (CD-024)
- A stretched part is lit along its true surface when it moves too
- Count selected vendor purchase quantities once in both interfaces
- Preserve vendor carts and synchronize basket controls
- Reconcile vendor receipts and apply described player scale
- Use the active viewport for interior portal clipping
- Reconcile merchant baskets after independently ordered inventory delivery
- The patch's log lines name the file actually patched: portal.dat or cell.dat beside an older world, and the overlay container when one will not write
- Retail interface: a spell learned on the Create Spell page brings up the Spells tab
Graphics & sound
- The dat readers read the February 2005 files: the older container and every record's layout
- Empyrean runs on the February 2005 dats, and the client draws that world
- Ground and sky styles for any world, and the landscape detail texture
- Object Mode: any world's objects drawn with another era's look
- Object Mode draws each part, interior and body wholly from one era
- Older graphics objects draw their detail levels, and Landscape Texture Detail applies to blended ground
- An older world's objects without a detail record of their own draw themselves
- An older world drawing the later look places its detail levels by the later rule
- The classic paper doll and creation model keep their own lens
- The classic interface's text is drawn from grey glyph bitmaps, as the game's glyph sheets are
- The classic interface lays out and draws its overlay without rebuilding it each frame
- The examined creature's model is drawn over its attribute list's rows, under their text
- The client options page's Defaults leaves the Interface choice at the interface being shown, in either interface, and the classic Defaults puts the texture sizes and the detail textures back where the retail one does
- Multiple Pass Alpha draws each cut-out texture a second time, blended, so its edges come out soft
- Detail levels are measured from the eye the frame is drawn from, and Degrade Distance applies on every world
- Both interfaces caption the graphics options as the final retail client does, and the classic page keeps the detail textures on
- Multiple Pass Alpha's soft edges are drawn with the clip list of their own flush, before anything translucent
- Particles are drawn as parts of their objects: sorted by distance with every other part, through the same two alpha lists
- Translucent statics are drawn in their place by distance among the objects' and particles' translucent parts
- Scenery and statics draw each part at its setup's own scale
- Use world palette colors and named towns in character creation
- Logging off tears the world down
- Terrain, Sky and Object Mode name their older styles Classic
Interface
- The screens leave out what the world's era lacks, and the web client plays its server's era
- Every UI reaches the game through the same seam, the retail UI included
- The game's presentation rules are shared by both interfaces
- Spell research in the retail interface: the magic window's Create Spell tab
- The classic interface's journal, kept in the same file as the retail one
- A click on the classic paper doll works on a world of any era
- The copy key copies the classic chat log's selection
- Using a salvaging tool opens the classic salvage window
- The classic Brightness slider's middle leaves the world as bright as it was
- The classic interface's pointer is the window system's pointer
- The classic toolbar has a journal button on worlds with the journal or contracts
- The classic world's social window keeps to its three pages
- The retail interface draws its own art over an older world, and its panel buttons close up
- The character screen shows the world's message in both interfaces
- A performance panel over any interface, shown by F7 or an option
- One key map for both interfaces, in one action vocabulary
- The oath's experience cost shows only where the world charges one
- Classic journal window opens on Contracts and gains the Page List tab: pages by number, title, timer and label, sorted by column, searched, deleted, and opened with a second press; the page list's sorts and search are shared presentation rules
- Classic Friends page: Tell begins a tell to the chosen friend in the chat entry, and an Appear Offline option replaces the note under the buttons
- Classic character screen keeps its five character slots and scrolls them when the world allows more characters
- The journal follows the character while the classic interface is up, so a character entered from its character screen has a journal
- Classic key bindings held with Shift, Ctrl or Alt fire, laid over the classic scheme from the key map, while plain keys still work with a modifier held; Select Self, Give Selected, Tell Selected, the slash-command key and the chat-entry keys do what they say
- The character screen's message window: Announcements, beside the Create Character button
- Component icons in the retail magic window; dragging a component onto the formula
- Tabs and panel buttons close up without a gap over what the era lacks
- The retail interface, shown again, comes up on the screen the game is at
- The item keys and show cloak act; this client's own actions carry names and tabs
- Every key that can be bound does something in the retail interface
- Classic chat shows a speaker's name where the game's line marks it up, so a tell reads "Name tells you"
- Classic character screen uses all six slots its art frames, with a scroll bar the width of the message box's
- Classic Select Self, Give and Drop keys go to the shared handlers both interfaces use
- Defaults: the client starts in a window at 1024 by 768 and Defaults keeps that size; the performance panel has no key until the player binds one; the classic Character page's Defaults are the character's default words with right-click mouse look on, which a fresh profile also has; the classic page tells the server each option it changes as the other interface does, and turning off one of refusing and automatically accepting fellowship requests follows the other; the tests count the options as they are
- One options set for both interfaces: four pages (Game and Support, Character Options, Chat Options, Client Options), each of headings and rows, every row naming where its value is kept, which interfaces show it and what of the world's era it needs
- The retail options window draws the shared options set: Character Options under seven headings and Client Options under five (Sound, Display, Graphics Quality, Era Look, Camera and Mouse) with no Sync with Refresh Rate row and a Landscape Detail Textures row; rows the world's era lacks are greyed out, and Manual Degrade Bias is greyed while Adaptive Degrade is on; Urgent Assistance and Report Abuse open the in-game forms and In-Game Help is hidden
- One set of key bindings for both interfaces, a key map for each
- A key given to one of this client's own actions is taken from whatever else had it, after the page asks, as a shipped action's key is, so the action answers it; any key given to a shipped action is taken from them the same way
- A key page lists only the rows its interface acts on; none of the others has a default key in that interface
- A settings folder given with DERETH_SETTINGS_DIR takes nothing from the original game's folder on its first run, and the original's key maps come in as the modern interface's, -modern.keymap
- Each interface's saved key maps are its own: -modern.keymap and -classic.keymap
- With mouse turning on, the body's mouse turn stops when the mouse has been still a fifth of a second under mouse look and when the mouse-look button is let go, as retail stops the drift; a turning key still held keeps its turn
- The retail interface's 3D view fills any screen: the world view's maximum width and height are lifted, its minimum and every other element's limits kept (CD-025)
- A run whose settings folder is named in DERETH_SETTINGS_DIR reads that folder's preferences and writes them back at exit, with or without a window
- Inverted mouse look reverses every vertical step, not only the first of a hold
- An interface shown again shows every option as the other interface left it, and greys the manual degrade bias by adaptive degrade as it is now
- Options pages leave out the rows for what the world's era lacks; the classic pages' lists reach down to their buttons at the foot of the page, framed, with the Client rows and the Options buttons further apart
- The chat font's face and size are chosen on the modern interface's Chat Options page, under the windows' opacity
- Configure Keyboard leaves the world and opens the key page on the character screen once it is there
- Keep book menu selection stable across shared state refresh
- Deliver global channel replies to the active Classic chat
- Correct option defaults and keybinding presentation
- Correct Classic drag feedback and adaptive panel layout
- Remove unsupported local chat clearing
- Keep starter town headings readable and describe each choice on hover
- Classic startup screen: the copyright notice is centred on the screen and each progress caption under its vial
- Classic creation screens: the wheel scrolls every list, three lines of help text a notch
- Retail interface's creation wizard on a February 2005 world: the world's own texts, and a dot on the map for each start
- The classic journal button in the owner's own art, normal and lit, from the client's records
- The classic paper doll's later slots open from one accessories button
- A Windows client carries no classic fonts unless built to compare them
- Only a Windows client builds the Windows font source
- The classic chat log holds each line once after relogs and switches
- This client's own actions take keys from the classic page or a saved key map
- An interface switched away from mid-press keeps nothing of the press
Launcher
- Empyrean plays an era: where characters start, the level cap and the world pack's era
- Launcher: the community world list, eras, and Modern and Classic data sets
- Launcher: the community list alone, emulators named, whole data sets only
- Launcher: Classic sets read their iterations; emulators and Play Again tidied
- A world answers a status ping on its game port, and the launcher and client share one era-feature bitfield
Fixes
- Crash logs are kept only for runs that go wrong, without the login, and DERETH_SETTINGS_DIR names the settings folder
- Use Mouse Turning Settings sets the mouse-turning preset: camera stiffness 0.95, adjustment speed 50, mouse-look sensitivity 0.7, align to slope off, inverted mouse look and turning with the camera on, the wheel on the camera zoom, a chat line for each change; it no longer restores defaults or writes the character's options
- Fix Classic creation controls and preview presentation
Other changes
- @Version names the running program's version, not the runtime library's
- A client on the February 2005 world logs in, materializes, casts, and keeps its ground and clothing
- Every record of every held dat capture decodes, 1999 to 2017
- A world's systems are announced, configurable and enforced
- Motion commands in the numbering of the world's data files
- The object identity verdicts are prepared a few milliseconds a frame from start-up
- Object Mode: one skin across a mixed body, and an unmatched dye left off
- The classic interface in the shared client, chosen live
- The classic interface presents the systems of later worlds
- Classic character creation on a world of the classic interface's own era
- The classic character sheet shows the augmentation and luminance section
- The burden penalty is worked out in double precision, as the client does
- A scripted run can log out as the player does: --use logout
- A drag in the classic 3D view picks up only what is under the pointer
- An in-process driver can give the client real input
- The classic social window: the allegiance page as the early clients laid it out, and Friends and Squelch pages on later worlds
- People of the world show their faces in the classic examination
- A click selects a spell in the classic spellbook; the right button examines it
- A run can press an action part way through (--action-at)
- Both interfaces' options pages edit one store
- Classic spell component icons draw without a white outline, in the components list and in a spell's examination
- Classic toolbar buttons stay lit for every page they stand for (the research page under the magic button, the social and character tabs), and a press closes whichever is shown
- Classic titles list leaves out titles the world's title table has no name for, as the retail interface's does
- Classic secure trade and salvage windows show their empty slots, with drag hints for what each takes; the trade window names the player on its right; a cancelled trade leaves the window up with nothing to accept, and the Secure Trade page goes back to offering a trade
- Classic vitals bars in icon mode draw their icons with the bar showing through, not on black boxes
- Classic combat panel gains the final client's Keep in View option: the camera keeps the combat target in view
- The retail paper doll keeps its own lens after the classic interface
- Classic run key held over movement walks again: holding it is the shared walk-mode action, whose answer reaches the body
- Classic vitals text sits high in its bar as the 2005 client set it: capitals from the fifth pixel row to the fourteenth
- The classic options window draws the shared options set the classic way: its Options page is Leave World, Exit Game, Configure Keyboard and the two in-game forms; Character Options lists the character's options under the shared headings, greying what the era lacks, and keeps every bit it does not show; the Client page scrolls and holds every client option the classic interface has, the interface choice, the social window's pages, the landscape detail texture and a Very High texture step among them; a new Chat page sets which messages the chat window shows; Display Tooltips shows or hides the name of what is under the pointer
- The classic Display Timestamps row has no format box: nothing wrote the time in another format, and the character's saved format passes through unchanged
- A world built again at the next login takes the drawing, camera and mouse-look options as they are now, so what either interface's page changed lasts past logging out
- The classic interface's option changes reach the scene, the camera and the display as the other interface's do: degrade distance, draw distance, the era looks, mouse-look sensitivity and align to slope take effect when applied
- The Graphics Performance slider runs from speed at its left to detail at its right, as the other interface's does
- The wheel anywhere over a window with one scroll bar scrolls it, and moves the character screen's message three lines a notch
- The character-session input test expects this client's own map to stay for the whole run
- A drawn selection beyond radar range stays selected while the pointer rests on the world view
- Use the selected classic pack as the pickup destination
- Preserve literal character names in squelch list actions
- Open classic housing payments on profile receipt
- Start special-body creation previews with the whole body visible
- Preserve feedback meaning through both interfaces
- One dat folder, with the classic set found beside it or in --classic-dat-dir
- A world's patch goes into its own overlay over the locked data files
- The world's data set follows its overlay's base; overlays may carry a world's own iterations
- Empyrean serves a world as base data files plus a data overlay, and patches Dereth to it
- Records that overtake the overlay manifest are kept and held to it
- A dat's identity and iteration count in a few small reads, in either layout
- An iteration list is decoded only up to a million values, and no run past its count
- The client's own records over the data files, and the classic paper doll's later slots in the owner's art
- The classic doll takes trinkets and aetheria, and the accessories flyout keeps a drag
- Keep shared settings current across interface previews and switches
- Restore each interface live camera settings across world entry and switching
- The classic interface in the web client
- The web client in CI, and its releases
- Read the 1999 to mid-2001 character-generation tables again
- End a scripted run on a character error or a lost link
- The classic interface draws its text from carried Liberation fonts off Windows
- Random heritages in creation stay within the heritages on offer
- The notices about the older data files say classic DATs
- Animated scenery and statics play their default animation
- Formatting of the animated scenery change
Full changes: dereth-v0.1.3...dereth-v0.2.0
Downloads
Dereth 0.2.0: the launcher, with the Dereth client inside it, for Windows (10 or newer, x86-64), macOS (11 or newer, Apple silicon and Intel) and Linux (x86-64, glibc 2.35 or newer: Ubuntu 22.04 and later).
| system | download | |
|---|---|---|
| Windows | dereth-0.2.0-windows-x86_64.zip |
unzip anywhere and run dereth.exe; no installer |
| macOS | Dereth-0.2.0-macos-aarch64.app.tar.gz (Apple silicon), -x86_64 (Intel) |
unpack and move Dereth.app to Applications |
| Linux | Dereth-0.2.0-linux-x86_64.AppImage |
mark it executable and run it |
The launcher keeps itself and the client up to date from this repository's newest Dereth release.
No game data is included: the client plays with the data files of your own Asheron's Call install.
These builds are not code-signed yet. Windows SmartScreen asks once (More info, then Run anyway); macOS asks once (System Settings, Privacy & Security, Open Anyway).
Verifying a download: sha256sum -c SHA256SUMS --ignore-missing