echoes of the lake

a tiny, mystical, multiplayer world simulator.

screenshot of echoes of the lake

about#

i always wanted a multiplayer game like pokemon but _not_ pokemon where you can walk around and build stuff and do things with buddies. i love DF and rimworld like games too so i scaled back the size and figured we could try to make it work.

it's also kinda inspired by the world maps of the discworld MUD.

devlog#

books, bookcases, and a library goal#
  • added books and bookcases prefabs
  • added a WellRead component: if you Relax by a bookshelf with a skill book within 1 tile, you get that component which gives u buffs
  • added a simple library goal for the Automation
  • also updated the website with a wasm/web option

books gotta be first class in this game

sprites

16x16 sprites and building floors#
  • moved from 8x8 sprites to 16x16, and modified a few of them
  • tried out new sprites with more detail, didn't like the style
  • so 16x16 is same graphics but double hte pixels
  • performance seems fine
  • i added a few more icons and updates sprites using the extra pixels but keeping things simple
  • added new toolbar icons as a base
  • added the concept of Floors to Buildings, with staircases acting as portals

the biggest change here is for sure the floors on buildings! i've wanted to do it for a while and the tower was hard to explain away but then yeah, it really feels nice to have multi-storey buildings that work with same portal logic as doors.

16x16 sprite examples floor interior designer example

zones, build menu categories, and new things#
  • fixed allowing zones to be built on and not block
  • added sub categories to the build menu (based on Component presense)
  • created some new things: Tent, Ogre, Skeleton, and Tombstone

the build menu was getting long and gross, so the sub categories help a lot to find things

example build menu categories

basic event/incidents system#

the event system is in! this is a big one, but it's still very incomplete and early days. basically everyone gathers some points every tick and once you've gathered enough, you can roll for "Incidents" or "events" and those can spawn little routines. The Incidences are defined in data toml files, and there's a simple little parser than knows how to implement them in game logic.

so far we've got ones that:

  • all yoru crops grow to 100% at once
  • all your stored food is stolen/taken/eaten
  • a castaway joins
  • a rare tome washes up on shore
  • meteor shower dumps a ton of rocks n stuff
  • shipwreck crate drops some useful reesources on beach tile
notifications/popups, auto-haul, and some quality of life stuff#
  • the default url for the demo server/engine/websocket host is now demo.echoesofthelake.com
  • if there's work that can be done to a selected entity, you can now do it right from the entity's popup menu (chop, mine etc)
  • clicking a stack of something now shows how many are in the stack in the popup header not just details
  • the population panel shows the sleeping 'zzz' next to an entity if they're sleepin
  • you can no longer build something in a spot if there are already things there — mostly to avoid trees growing inside walls
  • auto haul! i kept forgetting to have guys haul stones that were sitting in random places, so now they just do it
  • you can edit zones, so if you want a larger stockpile you can resize it
  • launching the server now has an easy way to load a save
build menu cleanup and tree tweaks#

small QoL stuff.

  • trees dont't need seeds anymore
  • made trees grow a bit slower
  • the log reserve goal now defaults to a smaller size area zone
  • cleaned up the build menu so it's aligned and the list of requirements is clearer
  • added a toggle button so you can "continue to build" if something is selected (roads, fences, anything you might want to place more than one of)
  • added a way in the UI to remove entities

the "continue to build" is dope and was a pain before... placing a long road or a fence line one tile at a time was getting tedious. now its a dream

hello, and welcome#

hi there, this is where I plan to write out any updates or devlogs about this game I'm making.

for context, im unsure if i'll ever finish it or what it's meant to be. all i know is that since i started playing games with friends and older cousins, i've wanted to create something of my own that could create some of those experiences i had. the joy of discovery, of opening up my childhood eyes to the potential of worlds yet unexplored (even though i didnt really have an idea of how limited some systems really were, it didnt matter). i'd spend so much time in my head designing ideas, whether for ski hill tycoons, ripoffs of runescape classic, simcity or command&conquer strategy gems on pen and paper, the inspiration was endless.

Then Zelda: A link to the past and links awakening came long. And pokemon. And ultima online (which I was never convince my parents to get me a real subscription for). I was blown away. But there was always something limited about pretending to go on Vacation to Cinnabar island with my friends. Firstly, I couldn't actually go there together with them on the gameboy. Secondly, the whole experience had to be created by my imagination, the game was pokemon, not vacation with friends with pokemon and do whatever you want in the world. visiting your mum, while sweet, did nothing tangible in the game. it was like role playing tied up in a very limited rule set.

I never got around to learning how to code as a kid. I've always been afraid of anything rigorous. I definitely installed Ultimate shards and messed around with my parents PC with other things like first star online servers etc. I bought a used Pentium 1 133MHZ PC from a school buddy for 20$ so that I could have a PC to mess around on for myself. Still didnt know how to code.

Highschool ended and college came, and I discovered Dwarf Fortress. This was new. This was something emergent! The simplicity of the graphics let me imagine a lot more than was there, but also, theres just SO MUCH THERE. Then Rimworld -- which I found by accident. It blew my mind. Simulation games were now way more open, way more emergent. But still, both didn't have multiplayer baked in, and while Dwarf fortress had some really great graphics sets that I used and loved, Rimworld was attached to an art style that for me was just a shade too complex. I wanted something simple, minimal, like dwarf fortress in aesthetics (maybe not full ASCII), but with multiplayer baked in. with the ability to create your own town, your own vision.

Some of the first things I'd always ask my buddy when we tried a new MMO or RPG or Farming game or what have you: "Can you buy a house?" I don't know why that customization and that personalization were so important to me. And not in the Sims way (although thats a great set of games, at least the earlier ones). But multiplayer, player owned housing in a real limited phsyical space kinda thing. Now that I have a mortgage this kinda makes me laugh but still, that ability to create/own your own little slice of a digital pie. Habbo hotel had a cool idea around this, but i digress.

So here it is, the very first thing I'm really willing to share that kinda approaches this lazily laid out vision. It's called Echoes of the Lake. It's been through 7-8 rewrites and reimagingings since I started writing code 16 years ago. Of course as soon as I could write a line of code the first thing I did was start trying to write a game engine. And no, not a 3d game engine for some AAA style game, but this bespoke, iterative engine that this is in front of you.

I failed so hard so many times. but each time got closer to what we have here. And this one might yet fail, but I've learned so much about computers, web frameworks, networking, graphics, and everyting else along the way. I wouldn't trade those commits into those failed repos for anything. It's helped me on this and it's helped me as a developer writ large.

Im not even sure what I wanna do with this yet. but i wanted to start putting it out there. Maybe it's something, maybe it's not. But now you've got the backstory.

getting started#

maybe play right now in your browser at play.echoesofthelake.com. the demo server might be up, who knows. the web version is rust compiled -> wasm and so also on mobile things wont work. you probably dont wanna play this on mobile tho

else, download the source and build the server and client and run your own! the main client is a native rust build for your platform.

hardware#

right now the project is software only. later i hope to document some of the prototype small-footprint builds being worked on; think SBC/Raspberry Pi with the server so you can plug in a box and play on the LAN or serve over the internet.

licensing#

in the spirit of projects like ornament & crime, this is meant as a post-capitalist thing: a sharing-economy artifact. source is free and MIT licensed; run it on your machine, build it yourself, and whenever they exist, buy or commission hardware from whoever you trust.