Lampyre development journal (4)
And it's with some unexpected delay that we're concluding our third coding sprint ! An optic fibre outage occurred a week ago and I just simply kept coding offline until the service came back.
🗃️ What the ending sprint was about
🪔 Scene 1/5: Daily flame routine
Making sure the lights protecting the haven work fine, and that the daily patrol ritual stays interesting and organic.
What was planned
All game lights must display the correct contextual inputs whether the player has an available torch, flint or specific light-related buff. And the input, well, they must work correctly too.
🛠️ fixing and/or completing existing contextual inputs of fires, depending on:
- ⚙️ acceptable fuel (most lights will only burn on processed sap-fuel, but crude pyres will gulp wood logs and plant parts)
- ✅ lightning methods available to the vyrrlin (right now, fire propagation is only possible if you're holding a blazing torch yourself - blazes should be able to be started with flints too, as you can find yourself in many situations without an existing flame)
- ✅ the amount of fuel available on the lamp (AKA adding fuel)
Bonus and bugs
- 🛠️ ➕refueling fires with processed, classic sap fuel from the player's inventory
- 🛠️ ❌ adding the fuel-related window to our crafting UI, letting the player click to easily add possessed and/or stored items into the fire
- 🪲 ✅ double-clicking an item that has no special use in the inventory bugs out the drag-and-drop selection
- 🪲 ✅ opening the inventory while a crafting window is opened closes the latter (it should not)
- 🪲➕empty buff description correction
- 🪲➕repairing the lantern was not suggested anymore if it could be lit off
- 🪲➕ player input indicator script clean-up
- 🪲➕light contextual input not updating if we were equipping a flint next to a lantern that can be lighted
- 🪲➕ creature focus bar script clean-up
- 🪲➕fuel resupply would sometimes not stop when the lantern's capacity was full
New bugs found:
- 🪲not technically a bug, but I realized this week that GDScript functions descriptions need to be written with a double # instead of a single one. So I'll be updating that on a regular basis for the game documentation's sake.
- 🪲when next to the altar and items are lying around, the F lights up our torch without its prompt being displayed on screen
🗑️: abandoned / ➕: added and done / ✅: done / ❌: not done / ⚙️: incomplete / ⚖️: balancing / 🪲: bug fixing / 🩹: gameplay change / 🛠️: major feature / 📝 : game design
🪴 Sprint conclusions
Difficulty (how complex the sprint was): 2/5 🟢
Progress made (how much of the desired functionalities were developed): 5/5 🔵
Sprint time accuracy (did it take the time we thought it would take): 3/5 🟡
The time accuracy is a little awkward to estimate, since I got a few bonus days of code. But we did achieve these two gameplay results:
- It's now very clear whether you can, or even could, light a lantern when you stand next to it. The fire must have some fuel stored and you need either a lit torch (spreading the fire within seconds), or an equipped flint. Some specific buffs brought by rare reagents can let you instantly light a fire.
Flints are designed as a general fallback solution, for when there is no nearby fire active and you dearly need a spark. You can find your first flint while cleaning the altar's rubble or picking any natural rock. Once you have one equipped, it won't ever break, but its durability weakens with each use (making it even more slow to light a fire). Consuming other flints will restore this score and keep mining relevant.
With a few natural materials such as bone parts, carved wood or minerals, flints will be able to be customized into emberlings - a little tool well known to any vyrrlin living in the wilds. They can be dangerous to use as they make noise and provoke the ire of any nearby shadow - but the resulting flame might save your life. There's no functional difference between flints and their finely-crafted emberling counterpart, except for an efficiency bonus. It's mostly cosmetic and personal to each vyrrlin.
We'll soon be coding flint repairing and input mini-game for this first gameplay scene.
- We successfully coded the most simple form of fire refuel: using sapfuel. Sapfuel is Lampyre's general and most used fuel, for both lanterns and torches. Crafted from a large variety of materials (mostly plant parts, oils, fat), any blaze will need it to keep burning. As the player, you can now approach lanterns and hold the dedicated input to quickly fill up the fire storage's capacity. Sapfuel units are deduced from your bag and the resupply will automatically stop if you have none left, or if the storage's capacity is full.
🕯️ Notes and insights
I really enjoy shifting my attention towards playability and feelings, instead of focusing on the code and the systems. It feels more natural and driving.
I began to take extra-time to properly lay out the whole game's roadmap (it had been many months since I last updated it). It's kind of an intimidating quest, as I know for certain the various milestones will shapeshift along my game design decisions and a few change of hearts. But clarity is my first and foremost priority to keep the code rolling, no matter the size of the task list. So we'll have a giant herd of boxes to check. Or shadows to slay. Or cookies to eat - I did not choose my favorite metaphor yet.
I sincerely get antsy about art assets too. My programming philosophy has always been to not dedicate any effort to the game's graphics while mechanics are being developed. I was terrified by the idea of either spending too much time on it and getting discouraged, or producing visuals that would need upgrades months later.
But as the Godot Shader Bible hardcover edition is almost there, maybe the two-year anniversary of Lampyre could be a charming symbolic stepstone to start putting some visuals to our forests and ruins. I'm alone on the project. It's not like waiting three more years without creating any asset is going to transform me into a whole artistic bureau.
If I stay cool about it, I think it'll even be a driving factor to keep extending the game. If I stay cool about it.
🔭 Next sprint overview
Sprint end target: 16th February.
Objectives
This week, we're coding something very important for fire management, but also for the whole game, as it's going to be a shared feature between all crafting structures: proximity storage use.
A fancy name for a simple and intuitive system, sometimes found in recent survival games. When trying to resupply a fire or using a crafting structure, items contained in nearby storages will be automatically available to the vyrrlin doing the interaction.
Yes, it seems logical for your ressources to be stored close to the related crafting structure. No, it's not interesting having to micro-manage every unit of fibre and going back and forth between a workbench and a crate located two meters away (hello Aska !).
🪔 Scene 1/5: Daily flame routine
Making sure the lights protecting the haven work fine, and that the daily patrol ritual stays interesting and organic.
Completed
- 🟢The player is appearing next to its altar flame, it's late afternoon.
Planned this week
🟡Fire can be fuelled with curated sap fuel. The most basic ones can also accept raw and less effective materials such as twigs or logs - taken from the vyrrlin's inventory, or a nearby storage.
when interacting with a lantern, nearby storages must be taken into account as potential sapfuel sources
if fuel is available inside these containers, a visual indicator will hint it to the player and also display the number of units
the player can quickly select the desired source of sapfuel if multiple are available
using the desired source of sapfuel to resupply the fire (deducing the sapfuel units from storage and stopping if the source has been exhausted)
Planned for this scene
- 🟡All game lights must display the correct contextual inputs whether the player has an available torch, flint or specific light-related buff. And the input, well, they must work correctly too (missing crude material inputs that some basic pyres will accept.
- 🟡The player can repair, refuel, light or extinct each fire as they see fit.
- 🟡The player (and other vyrrlins) can equip a flint, a common stone fragment found in debris and splintered rocks. It can light fires without an existing flame and can never break, but using it is way slower. It's also noisy and can attract shadows to you. You can sharpen a flint again using other flints you found.
- 🟠The player can see its torch fuel and recharge it, either with its own items or directly with nearby stored resources.
- 🔴Lanterns (fires, not torches) display a visual effect that I call *the haven light belt. Each of them display the clear limit of their illumination perimeter when hovered. When lanterns are close enough to form a chain, hovering one at dusk will immediately inform you whether the belt is fully lit or not, letting you know if the village is safe for the night.
- *🔴Whether the light belt is complete or not, two allied vyrrlins will comment on the situation if they come near the player at dusk, indicating that the haven's protection could be incomplete.
- *🔴Flamebearer is a popular role in villages. Should the player spend efforts on lightning the fires himself, the villagers will passively gain some relationship points with him/her and throw appreciative comments at dusk.
- 🟡At night, ombrelgins and chimeras surrounding the village should be blocked by a lit light belt.
🔴: not implemented / 🟠: started / 🟡: progressed but incomplete /🟢: complete
Let's go and do this bit so all of our crafting endeavours become smoother !