- The strip is depressing, but the actual city outside of the strip is pretty cool. It's rapidly growing with very affordable housing. The food scene is excellent because of a diverse population. The nature scene is excellent. Electricity is very cheap, no income tax, low property taxes. Extremely well maintained and overbuilt infrastructure, very little traffic. A very nice airport (my favorite in the US) that is very near the population center and also with reasonably priced parking.
Vegas has a lot to offer and the strip really dominates the perception of it which is unfortunate.
- I'm working on a distributed object storage system to be the backing store behind my website (https://scmscx.com). It currently uses back blaze b2 which is good and cheap but I thought it would be fun to roll my own.
- I'm not sure about how it works in WoW but I can give you a warning about what happens in StarCraft. To prevent other people from editing StarCraft maps (which are MPQs), users would intentionally mangle the MPQ format in just the right way so that the game could still play it but other tools could not open it for editing. So, if there is anything like that going on in WoW world then it might be very hard to reassemble the original MPQs and get a byte for byte match.
- I see many people in the comments nostalgically talking about the custom mapping scene and how it got them into programming.
The same is true for me, so I think here is a good place to plug my starcraft custom map archive website [0]. In 2020 because of the pandemic StarCraft enjoyed a surge of popularity again, I went looking for some custom maps that I remembered from the early 2000s but I couldn't find them. The existing websites at the time were not solving the problem for me so I set out to solve it myself. The website is a passion project for me, I don't want it to generate any revenue. It's been a fun ride and it's now easily the largest map archive that has ever existed. I think eventually I'll make a show HN post about it when I implement a few more cool features, but that will have to be for a later date.
- In 2020 I wanted to look up some classic StarCraft 1 maps that I used to play but there wasn't a good database around that I could easily search through. So I made https://scmscx.com to serve that purpose.
- This is a nice solution. I came up with something similar where once it got stuck without making much progress I would just blow away a big radius and that would often help it get unstuck. I did eventually abandon this approach though. I can't remember the exact reason why but I think my back tracking system was not compatible with it. So if it got stuck after blowing away some tiles then it would be truly stuck and could not backtrack anymore.
- a) determine in bounded time whether any solution exists at all
I can't prove it but I think this is roughly the same thing as the circuit satisfiability problem, which is np-complete. So, I think the best thing you can do there is a very large exponential time bound.
b) use a deterministic procedure to find a solution
You can solve this problem deterministically with depth first search. But I found that to be pretty slow and generate not very aesthetically interesting results most of the time.
- I implemented this algorithm to generate StarCraft 1 maps and it worked quite well. The results it generates have quite a natural property to them that you don't see with similar things like perlin noise. I wrote it in rust which I compiled down to wasm, put it on a web page with an ugly UI and gave it to the community. They used to to produce some interesting maps and the results of one run even got included in a real released and finished map. One other benefit of this algorithm is that people can hand craft a map, placing tiles in certain places, and then you can ask the algorithm to complete the map. The algorithm will seemlessly blend generated content with your original tile placements (which are just more constraints). This is really nice for filling in unimportant areas with a consistent level of detail.
Unfortunately I could never really get it to be fast enough. There are an enormous number of tiles in StarCraft, 15,000+ for some tilesets, and people want to generate maps of up to 256x256 tiles. This is a huge state space and under these conditions the algorithm very often gets stuck in a local minima. I've tried so many different heuristics to get it to work but it doesn't work reliably enough to be a truly useful tool in this situation unfortunately.
There are many explanations out there about how this algorithm works, more so than many other algorithms. I think the reason for that is because from hearing the basic high level idea of this algorithm most people are able to then go and implement it and then that makes for an interesting blog post (I could do the same after implementing, I think). What almost all of these blog posts are missing is how to make it fast, and how to implement back tracking efficiently. I had to try a lot of things to get to where I am now and I don't feel like I've fully explored the space of possible implementations despite trying a lot of different approaches.
Here are some example generated maps: https://media.discordapp.net/attachments/583406212272619571/... https://i.imgur.com/LK5a6jU.jpg https://cdn.discordapp.com/attachments/583406212272619571/10... https://cdn.discordapp.com/attachments/583406212272619571/99... https://cdn.discordapp.com/attachments/583406212272619571/99...
see: https://en.wikipedia.org/wiki/Linear_no-threshold_model