Devlog

LuvzillaGames.com

The game studio's home and its public devlog.

25 posts, newest first

Every devlog post has its own page

  • Every post now has its own address, like /devlog/chef-43/, with its words and picture in the page itself. Before this, posts existed only inside a feed page, so a link to one couldn't be shared, and a search engine saw two or three pages instead of 220.
  • Each project also gets a page — /devlog/project/chef/ and so on — with its own title, description and every post listed.
  • The site now has a sitemap at /sitemap.xml (227 addresses, each with the date it last changed) and a robots.txt that points at it. The internal site tells crawlers to stay out.
  • Shared links look right: each page carries its own title, description and share image, using that post's clip or screenshot.
  • The feed is unchanged for readers; post titles now open the post's own page.
  • Cost: the build takes 2.7 seconds longer and the 225 new pages add about 1 MB, against 137 MB of images already there. Nothing was added that tracks readers.
Every devlog post has its own page, screenshotEvery devlog post has its own page, screenshot

Every post shows its date and its project's day

  • Each post now shows its date and which day of its project it is, like "CHEF! Day 5". Day 1 is the day that project's first post went up, so GENERAL! started on September 12 and CHEF! on September 13.
  • Posts with a reconstructed date keep their "~date approximate" note, so their day number is approximate too.
Every post shows its date and its project's day, screenshot

GIFs lead their posts instead of hiding as thumbnails

  • Posts with an animated clip used to show it as a tiny thumbnail under the still. Now the clip is the main picture and the still becomes a small thumbnail beside it — the trash run (CHEF! Iteration 43) shows only its clip, since the clip already covers the whole trip.
  • Before/After posts keep the pair on top, because a clip only shows the "after"; the clip now plays underneath at a readable size (progress/059-shipped-pair-with-gif-below.png, the busboy cleaning the bathroom).
  • A clip is never shrunk to a thumbnail anywhere, and a tiny sprite clip still shows at its real in-game size.
GIFs lead their posts instead of hiding as thumbnails, screenshotGIFs lead their posts instead of hiding as thumbnails, screenshot

Also in: CHEF! GENERAL!

Actual-size pictures, nested lists, and the walk's GIFs in the thread

  • Small pictures are now shown at their real size with an "Actual size" label instead of being squeezed into a thumbnail — so the Galean soldier's in-game-size animation appears as tiny as he will be in the game. No screenshot is ever stretched past its real size any more.
  • Sub-points in a post (a bullet with indented bullets under it) now show as a nested list.
  • The Galean walk thread gained its two newest steps and now leads with the looping before/after animation of the whole walk; its "story so far" shows the first frames and the leg-measurement close-ups, two genuinely different stages.
Actual-size pictures, nested lists, and the walk's GIFs in the thread, screenshotActual-size pictures, nested lists, and the walk's GIFs in the thread, screenshotActual-size pictures, nested lists, and the walk's GIFs in the thread, screenshot

Also in: Sprite Manager

Story threads: the Galean walk becomes one card

  • Posts that tell one story can now be grouped into a thread. The eighteen public steps of the Galean soldier's walk — first frames, redraws, leg and height checks, the sword fix — show as one card in the Sprite Manager, GENERAL! and all-projects feeds instead of filling them.
  • The card leads with the latest step, shows a few pictures of earlier stages ("the story so far"), and "Read the full thread" opens every step. A link to any single step still lands on it.
  • Unrelated Sprite Manager tool updates stay as their own posts.
Story threads: the Galean walk becomes one card, screenshotStory threads: the Galean walk becomes one card, screenshotStory threads: the Galean walk becomes one card, screenshotStory threads: the Galean walk becomes one card, screenshot

Also in: Sprite Manager

Same-day posts appear in the order they happened

  • Posts only carry a date, so when several projects shipped on the same day the feeds ordered them by project name — CHEF!'s feed led with an older Art Director post. Every post now also records when its entry was first written in its project's history, and feeds order same-day posts by that time, newest first.
Same-day posts appear in the order they happened, screenshotSame-day posts appear in the order they happened, screenshot

Share card for links to the site

  • Pasting a luvzillagames.com link into a chat or social post now shows the studio card — the wide lockup with the mascot's head touching the wordmark, on the site's dark background — with the page's title and description (Open Graph and Twitter card tags on the landing page and every devlog page). The Owner picked this lockup over the kit's spaced-out card.

Also in: Art Director

Header lockup back on the left; crew accents match their mascots

  • The devlog header's Luvzilla lockup sits at the left again and the tab menu spreads across the rest of the banner with larger tabs — the centered version left the sides empty. On phones the header still stacks and centers.
  • The Art Director, Sprite Manager and Project Manager tiles, badges and feed pages now use the colour of their own mascot — purple, green and teal, sampled from the icons — instead of borrowed or default accents.
Header lockup back on the left; crew accents match their mascots, screenshotHeader lockup back on the left; crew accents match their mascots, screenshot

Every feed wears its brand: the Art Director's logo kit is live

  • The Art Director's template logo set now dresses every feed: an icon on each nav entry, filter chip and post badge, and a horizontal lockup on each feed page header and landing gate. The Art Director, Sprite Manager and Project Manager feeds had shown only their names until now.
  • CHEF! and GENERAL! switched to the kit's versions of their logos, and the site's favicons are the kit's Luvzilla icons. The older files are kept, renamed, never deleted.
Every feed wears its brand: the Art Director's logo kit is live, screenshotEvery feed wears its brand: the Art Director's logo kit is live, screenshotEvery feed wears its brand: the Art Director's logo kit is live, screenshotEvery feed wears its brand: the Art Director's logo kit is live, screenshotEvery feed wears its brand: the Art Director's logo kit is live, screenshot

Also in: Art Director

The PM gets a permanent address, and the devlog gets a PM feed

  • The Project Manager now runs from its own folder, so every Agent can find it by name instead of guessing among sessions.
  • The devlog became tagged, multi-feed and visibility-aware: CHEF!, GENERAL!, Art Director, Sprite Manager and this feed, with Owner Mode switches per post and per feed, and a private internal edition of the site. Coordinated here, built by the LuvzillaGames.com Web Dev.
  • The public devlog now covers game-studio work only, filtered by the site itself, so every project's own logs can stay complete.

Also in: LuvzillaGames.com

The public devlog only talks about studio work

  • Source projects keep complete, honest entries; the devlog now decides what's public. Any bullet or paragraph that names a non-studio project is dropped from the public copy of a post, a post whose title or tags are out of scope is withheld entirely, and the internal site keeps the full text.
  • The build's leak check also refuses to ship a public build in which any of those names appear anywhere — pages, data, alt text.
The public devlog only talks about studio work, screenshot

Internal site live behind Cloudflare Access

  • internal.luvzillagames.com now serves the internal build (every feed, including anything marked internal) from its own Cloudflare Worker, and Cloudflare Access sits in front of it: an anonymous visitor is redirected to a login and only the Owner's email is allowed, with a one-time PIN sent by email.
  • Nothing is marked internal at the moment, so the two sites currently show the same posts; the internal one becomes the place to see anything withheld from the public site.
Internal site live behind Cloudflare Access, screenshot

Project Manager feed public; unattended publishing ready

  • The Project Manager's feed is now public on luvzillagames.com (Owner's call: the internal machinery stays, but this feed can be public for now). 113 posts across five feeds live, and the version tag is gone from the live header.
  • scripts/publish.py is the one command a scheduled task will run to publish the public build unattended: sync, build, leak check, deploy only if the build changed, one log entry. It waits on an API token the Owner creates.
Project Manager feed public; unattended publishing ready, screenshot

Also in: Project Manager

luvzillagames.com is live

  • First public deploy: the landing page and the devlog now serve from luvzillagames.com and www.luvzillagames.com on Cloudflare, published from the leak-checked public build — 112 posts across CHEF!, GENERAL!, the Art Director and Sprite Manager.
  • Checked from outside after the deploy: pages and screenshots load, no project docs, tooling, git history or internal content are reachable, and the served post store contains nothing internal.
luvzillagames.com is live, screenshotluvzillagames.com is live, screenshot

Tagged feeds: a post appears in every project it was for

  • Feeds are now driven by each entry's Tags: line instead of which project wrote it. Sprite Manager's Galean walk-cycle entry, tagged for GENERAL!, shows up in GENERAL!'s feed as well as its own — the same post, never a copy — with an "also: GENERAL!" chip explaining why it's there.
  • Feed pages moved to devlog/feed.html?project=<path>; every old game.html?slug= link still lands on the right feed and post.
  • Filter chips, stats and the landing page follow the same rule: one gate per feed, four today, with the two sources that have no logo yet showing their name.
Tagged feeds: a post appears in every project it was for, screenshotTagged feeds: a post appears in every project it was for, screenshotTagged feeds: a post appears in every project it was for, screenshot

Also in: GENERAL! Sprite Manager

Art Director and Sprite Manager join the devlog as sources

  • The devlog now syncs four projects, not two: CHEF!, GENERAL!, the Art Director and Sprite Manager each get a feed, a nav entry, a filter chip and a stats column. 112 posts.
  • The source registry (data/sources.json, formerly games.json) records each project's domain-qualified path and default visibility; every post now carries its project, its tags (own project first) and its effective visibility. A post whose source marks it internal is withheld from the published post store entirely.
  • Landing-page gates stay games-only for now; roles and apps get a gate once feeds are tagged.
Art Director and Sprite Manager join the devlog as sources, screenshotArt Director and Sprite Manager join the devlog as sources, screenshot

Also in: Art Director Sprite Manager

Posts carry Tags and Visibility from their source entries

  • The parser reads each source entry's Tags:, Visibility: and Screenshot: none — <reason> lines (WORKFLOW.md §3) so they never leak into post bodies, and the sync carries them onto every post (107/107). Groundwork for tagged multi-project feeds and the internal/external split. Shipped by the Project Manager.

Canonized to the project root; new posts always show on reload

  • The winning build moved from its pilot subfolder to the project root (git history kept); the two other builds archived under _Retired/. One dev server on port 8200.
  • Pages fetch data/*.json with cache: "no-cache", so a returning browser sees posts the hourly sync added instead of a heuristically cached copy. Picked up CHEF! Iterations 19 and 20.

Visual redesign: stacked cards, Before/After pairs, screenshots never cropped

  • New presentation layer on the same pipeline (the build the Owner later canonized): a date-grouped timeline, a featured latest post, and cards that stack full-width with the text above the image (reading down, you hit the title before the picture). Side-by-side text/image only when the image is square or portrait.
  • Screenshots shrink to fit and open full-size in the lightbox — never cropped.
  • When an entry's text references an earlier image, the post renders a stacked Before/After pair (e.g. GENERAL! Iteration 52's unit portraits), with the entry's own caption underneath.
  • Long posts clamp with a "Read more" toggle decided by text length.
Visual redesign: stacked cards, Before/After pairs, screenshots never cropped, screenshotVisual redesign: stacked cards, Before/After pairs, screenshots never cropped, screenshot

Studio landing page

  • index.html at the site root: the full Luvzilla Games lockup, tagline, and a gate per game showing its latest milestone and post count, linking into that game's feed, plus a link to the all-games feed. Leaves room for the eventual studio homepage rather than making the devlog the root.
Studio landing page, screenshot

Devlog: universal and per-game feeds generated from PROGRESS.md

  • A static devlog (devlog/) with one universal feed and one feed per game, both views over the same data/posts.json — a post is never duplicated, only filtered.
  • Posts are generated, not written: a read-only sync (scripts/sync_devlog.py) parses each registered game's own PROGRESS.md, one milestone entry per post, copies the screenshots that entry references, and keeps the milestone's original date (inline Date: line, else a hand-derived overlay, else first-seen — never the sync date).
  • Full backfill of CHEF! and GENERAL!'s shipped history, then an hourly sync that reports thin new posts to the Owner and Project Manager.
  • Studio and per-game branding (logos, badges, per-game accent theming), a filter-chip switcher on the universal feed, a stats strip, a screenshot lightbox, and a visible site version tag.
Devlog: universal and per-game feeds generated from PROGRESS.md, screenshot

Also in: CHEF! GENERAL!