Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas for collaboration #1

Open
evert opened this issue Nov 6, 2022 · 10 comments
Open

Ideas for collaboration #1

evert opened this issue Nov 6, 2022 · 10 comments

Comments

@evert
Copy link

evert commented Nov 6, 2022

Hi!

I loved your article and this archive. I have a similar history with Neko and also wrote an article:

https://evertpot.com/neko/

I hope it's ok i used some of your information and images. I made sure to attribute you and link back to your post. If you're not OK with it, I can take it down

@eliot-akira
Copy link
Owner

Hi Evert,

Thanks for letting me know! No problem about the images and attribution - I think we can consider this whole Git repository as public domain, except if there's a specific license for each Neko implementation.

I enjoyed reading the article, and looking at jneko. I especially liked the part about how you extracted the image data from .xbm format. I had to do a similar deep dive with .ico format - I wish I had written down the details.

"Software pet" is a fun concept, and I feel like it has creative potential - maybe as part of a bigger "software garden". Even better if the gardens could be interconnected across websites somehow.. I love that it's pixel art, and an animated character like in a game.

That reminds me, one of my hobby projects these days is a custom version of MicropolisJS, which is based on the original SimCity Classic code, ported over several generations/platforms until it reached the web. The heart of it is similar to Neko, as a state machine with behaviors and animated icons.

@evert
Copy link
Author

evert commented Nov 7, 2022

Thanks for letting me know! No problem about the images and attribution - I think we can consider this whole Git repository as public domain, except if there's a specific license for each Neko implementation.

Nice! seems to be in the spirit of Neko =)

"Software pet" is a fun concept, and I feel like it has creative potential - maybe as part of a bigger "software garden". Even better if the gardens could be interconnected across websites somehow.. I love that it's pixel art, and an animated character like in a game.

Honestly I've been thinking a lot about how I could combine something like this with Hypermedia. Maybe for starters a tamagochi concept as a hateoas endpoint :P

That reminds me, one of my hobby projects these days is a custom version of MicropolisJS, which is based on the original SimCity Classic code, ported over several generations/platforms until it reached the web. The heart of it is similar to Neko, as a state machine with behaviors and animated icons.

It's wild because I've also looked into this. I have this folder sitting on my computer since February to extract the assets:

image

And another one from the last time I had this idea in 2014.

My wild idea was to make a version of this game with an extremely large map, and let people build their cities in a shared world map.

But I keep giving up because it's hard to work on things for a long enough time + I'm not good enough with Canvas

Definitely interested to hear about your progress!

@eliot-akira
Copy link
Owner

eliot-akira commented Nov 28, 2022

how I could combine something like this with Hypermedia. Maybe for starters a tamagochi concept as a hateoas endpoint

Tamagotchi as an API, yes I can see that. Like a "game server" where players can POST to create a creature, GET the current state of its life cycle, PUT actions like feed, water..

Another angle I'm thinking about is creating an actual little piece of hardware based on ESP32 with CPU, memory, WiFi/Bluetooth; and an e-ink mini-display. Something like:

esp32 e-ink display

It could run compiled Arduino code with a loop that maintains persistent state with wireless interaction.


While reading about the history of virtual pets, I saw this early version of a Japanese toy called Digital Monster.

tamagotchi-connection

Aww, I sure love the retro pixels.


Over the weekend I started organizing the code for my custom Micropolis fork.

https://github.com/eliot-akira/microcity

I figured out a way to load alternative tile sets, so it looks like a weird mutant city, haha.

The original codebase was quite difficult to customize, so I'm slowly taking it apart, so I can rebuild it how I want - especially the control panel, tools, zoom in/out, overviews..

Well, I see a good hobby side project is like tending a garden, it can take its sweet time to grow.

@eliot-akira eliot-akira changed the title Using some pics for my article Ideas for collaboration Nov 28, 2022
@crgimenes
Copy link

Hey!
I have good memories of that cat and ended up writing my version.
I'm collecting material to create a nice README.md with references.
Please have a look https://github.com/crgimenes/neko

@eliot-akira
Copy link
Owner

Nice! Thank you for letting me know, @crgimenes. I'll enjoy studying your Go version of Neko - I'm only a beginner with the Go language, so I imagine it will be good learning material. Please feel free to use any of the information from this repo and my article.

I see, with the use of Go and Ebitengine, your version of Neko can be compiled to a wide range of targets, including as desktop accessory on various operating systems and on the web with WASM. It's probably the most cross-platform implementation of Neko. It's fun to see how the cat continues to live many lives.

@eliot-akira
Copy link
Owner

eliot-akira commented Jun 20, 2023

@evert
Copy link
Author

evert commented Jun 20, 2023

😎

@eliot-akira
Copy link
Owner

eliot-akira commented Jun 20, 2023

By the way, I've really enjoyed looking at some of your projects (like curveball, a12n-server, oauth2-client), and also reading other articles on your site. Good stuff! Useful and educational.

My wild idea was to make a version of this game with an extremely large map, and let people build their cities in a shared world map.

I can imagine. I've had similar dreams where the shared world state lives on a central server, and everyone who visits the website/game connects via WebSocket; and each person can see and receive only a "slice" of the state at a time, within a limited perimeter and viewport, to make it scalable. Would be fun if the world was drawn in "isometric" style (like tilix and isometric).

@evert
Copy link
Author

evert commented Jun 20, 2023

Thanks so much for checking my stuff out!

Actually since then I made something:

http://world.evertpot.com/client/index.html

I haven't worked on this in like 2 months (got distracted). But I got some of the ideas in. It's not very fast when you zoom out, but you can search for any place in the world and it will give you something.

@eliot-akira
Copy link
Owner

eliot-akira commented Jun 21, 2023

Wow, that is a large map indeed. I see every view of the map is generated by the URL endpoint /map, and it returns 10MB of data. I imagine that can probably be reduced somehow by viewport size, resolution, position.

I like when you zoom in, the map is made of millions of SimCity tiles, R for residential, roads, train tracks. The canvas navigation works, that's nice. I was able to zoom in/out, drag and move quite a distance to visit continents.

It makes me wonder, how to efficiently "run" such a huge game world simulation and communicate its state among users. It could even be distributed, so that different parts of the map are generated by other servers. And what if it's populated with intelligent agents that uses machine learning or large language models to communicate amongst themselves.. Another idea I sometimes think about is a user-scriptable world and characters, where people would write scripts that interact and create/destroy collaboratively.

It's sure fun to think about. Now I want to try building a scrollable canvas with shared persistent state among its visitors. Maybe with something like ShareDB or Yjs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants