A soulslike rendered in real 3D and drawn entirely in text.

Every frame is a real 3D scene, rendered small. Then each cell of the screen is replaced by the character whose shape fits it best: a blade becomes a run of / and |, a knight a column of #, M and X. Press 5 to see the 3D underneath, or 4 to see both side by side.

What's in it

  • One knight and one level, the Ashen Margin: a shrine courtyard, a bridge over the dark, a ruined nave, a terrace and a sealed court.
  • Husks, husk pikemen, the Margin Knight, and Osric, Keeper of the Last Page, who changes halfway through the fight.
  • Stamina, rolls that pass through blows, lock-on, a three-hit combo and a heavy spin.
  • Bonfires and an ember flask. Ink is what you earn: die and it stays where you fell until you go back for it. Die again on the way and it is gone. Offer ink at a bonfire for more health.
  • Two cameras: isometric, from above, where the mouse aims; or over the shoulder. Press C to switch.
  • Five ways to see it: Text, Ramp, Mono, Split and 3D (keys 1 to 5).
  • Beat the Keeper and you can walk it again with what you earned, against tougher foes.

Controls

Keyboard and mouse

  • Move: W A S D
  • Aim (isometric camera): mouse
  • Strike: left click or J. Heavy strike: right click or K
  • Roll: Space. Run: hold Shift
  • Lock on: Q, Tab or middle click
  • Ember flask: R. Interact: E
  • Turn the view a quarter: ← →. Zoom: mouse wheel, or ↑ ↓
  • Camera: C. Pause: Esc. Sound: M
  • Views: 1 to 5. Character size: [ and ]

Gamepad: left stick moves; right stick turns and zooms the view (or looks around, behind the knight); RB strike, RT heavy strike; tap B to roll, hold it to run; R3 or LB lock on; X flask; A interact; Back camera; Start pause.

Touch: drag on the left to move, swipe on the right to turn the view, and use the buttons on screen for the rest (hold ROLL to run).

How it works

No engine and no libraries: one HTML file of about 300 KB. A small software renderer draws the scene with six samples for every character cell. Once, at start-up, the game measures how much ink each printable character puts in the same six parts of its cell; every cell then gets the character closest to its own six values, coloured by the light that falls on it. Outlines keep the figures apart from the stage, and each side has its own colour: the knight steel and red, the husks green, the Margin Knight violet, the Keeper gold.

Status

A prototype: one level and one boss. There are no saves yet, so a run lasts as long as the page is open. We'd like to hear what worked and what didn't, especially whether you could read the fights.

Credits

Made by DarkRootLab. Fonts: IBM Plex Mono and Cinzel, under the SIL Open Font License 1.1.

Updated 1 day ago
Published 5 days ago
StatusPrototype
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorDarkRootlabGames
GenreAction
Tags3D, Action RPG, ascii, Boss battle, Dark Fantasy, Experimental, Isometric, Short, Souls-like, Text based
Average sessionA few minutes
LanguagesEnglish, Spanish; Latin America
InputsKeyboard, Mouse, Gamepad (any), Touchscreen, Smartphone
AI DisclosureAI Assisted, Code, Graphics, Sounds, Text

Development log

Comments

Log in with itch.io to leave a comment.

(1 edit) (+1)

This is really great! Extremely impressive that this is 300kb, i have absolutely no idea how you've done that but it shows in how smooth the game is.

The mechanics feel good, Everything i love about dark souls is there.  The boss has a clear attack pattern which can be learned, there's a few delays and stutters in there to throw you off. The second phase with the fire sword adds another layer of challenge. Really top work.

Having the choice between the two cameras, and to switch between visual styles, is a fun addition which makes the game feel really different. for me personally, i love the over the shoulder view, but the isometric view makes it feel very runescape like.

Overall, really top work. You've captured the dark souls vibe, added your own fun twist to it and created a really mechanically solid game!

Thanks so much for playing, and for such a detailed comment!