-- Leo's gemini proxy

-- Connecting to esa.prk.st:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

New Year 2023: Making the game fun

Categories: [Dev] [Log] [2023cards]

Back home


Look like I kept updating this devlog, yay! Like previously, If you think you might get sent one and want to avoid spoilers, please stop reading ;)


New inspirations


I discovered a tiny gemini game full of nice ideas I feel like stea... *cough* reimplementing in 2023cards (yes, that's the short name of this project from now on). The game in question is Astrobotany [1].


The game is about planting and caring for a plant that is growing an blooming if properly cared for. What's more, you can interact with sufficiently grown plants to get "money" used to buy misc stuff in a small shop, including postcards to be sent to other players. This made me think of new ways to gamify what would be a cheap tamagotchi knockoff.


[1] Astrobotany, a community gardening experience in geminispace


What is Astrobotany?


The gemini version is a port of the original Botany game[2].


It is a community garden with plants tended by players. Players must water and fertilize their plant for it to grow, they can shake it to drop money and pick petals when plant is blooming. The nice trick is any player can go and water any plant, even if owner has been missing for months (yes, this info is displayed). Postcards used to send messages to other players are one of the items available, along with nice tools unlocking new interaction with plants: I *think* there might be a synthesizer available to compose melodies for your plant.


There is a "generation" system for subsequent plants, with a growth bonus. I haven't experienced it yet, but I've seen 700th+ generation plants growing *really* fast. My plant[3] is still pretty young :)


[2] The original Botany game

[3] My Astrobotany plant (public link)


New ideas from Astrobotany


I like the idea of players being able to "save" a creature abandoned by its owner. If this is implemented, I'll probably add some privacy settings to disable this feature (maybe as a default for some circles). I might add some king of currency (easy to get) that would be used to pay for multiplayer interactions, which in turn means I would have to add a way to make pets generate this currency. Some big collaborative goal like "generate energy for a big fireworks show" might give a an incentive to pets "work"; Circle-related goals might be nice too. Work would tax pets well-being, getting it tired and less happy so players should be kind and not overwork them.


So to sum it up, I want to implement these concepts:

- some currency generated by pets over time (maybe boosted by "work" action or something similar)

- a shop where players can buy stuff allowing for multiplayer interaction

- some shared goal (global or circle bound) to spend extra resources


Design ramblings


Circles


This feature is not about geometric shapes. It is the term I've chosen for what could be described as non-customizable, overlapping player groups.


I need this kind of feature to prevent some unhealthy player interactions as well as customizing some settings. For example, I will have circles for family groups so people living together will be able to interact, and so on. I will mostly set circles as a way to group together people who know each other. The other use for circles will be customization: I might add some *really* crazy stuff and make it available only to some people who would enjoy it.


Circles will be used to list pets/players available for multiplayer interaction as well as available interactions. For example, kids might be able to invite their siblings' or parent's pets to amusement park, while some very specific players might send invites to each other for pets rave parties. I won't give too much details as multiplayer interactions are not fully defined yet and that would be too much of a spoiler (I see you lurking, Alex...).


Gemini frontend?


Players/pets data will be managed by a small server backend. As stated in my previous post, there will be an HTML/JS client with a retro LCD look&feel. But what about adding a Gemini frontend? It could be very similar to the faux-LCD HTML rendering except there will be no animations. I'm not sure it is even worth doing (very few of my friends are using Gemini) but it might be a nice goal for a public version.


What's new this week?


Nothing much to be honest, real life got a pretty firm grip upon me this week.


I still managed to setup a basic nodejs server (never really used nodejs before, mind you) with socket.io[4] for easier websocket management. Its main selling point (for my use case) are auto-reconnect, auto-fallback to classic polling if websocket is not available and custom event types.


Currently, frontend will send a pet refresh event to websocket and listen to pet status updates from backend. First backend implementation returns random values for pet-related values (food, health, fun). Frontend is updated accordingly, changing pet status and selecting related animations.


Here is an animated screencap[5] of a pet being updated randomly every 3 to 4 seconds from server.


[4] Socket.io homepage (was this link really needed? 😁)

[5] Screencap of a pet being updated through websocket (animated GIF)


What's next?


Next week will mostly be backend implementation, with basic interactions from players (like "feed pet" or "play with pet") being implemented. I might get some help with graphics starting next week, so maybe new original pets too.


As usual, feel free to keep in touch (contact info on capsule homepage).


Back home

-- Response ended

-- Page fetched on Mon May 13 16:44:52 2024