I’ve decided not to restart Shapeshifter after I hit 100. While there is a lot of innovation left in the puzzle and numberless ways to improve the program — there’s just no point to it. Once I’ve won it, I’ve done as good as I will ever do. I’ve already been through the mid-level hell once. There’s only twelve #1s a year, and once I’ve had my turn at it, I think I will let everyone else have a shot. I’ll have my trophy and thirty days of glory to look back on.
Instead, I’ll be starting an entirely new project that will cover some of the same ground regarding parallel processin, but will also let me explore the PyGame library for creating games in Python on Linux and Windows. This will more closely align me with the kinds of things I want to do in the future.
I’m still playing with ideas and mocking up some screens in PyGame, and I’ll be talking more about that on this blog once Shapeshifter ends.
5 Comments
Well, it was bound to happen. And that’s ok.
Locking in first place for a month would be nice. You also have the option of just getting to level 100 tonight and getting 20 days of perfection.
That said, I’m a little sad to hear that you’re moving on, but I completely understand.
I hope that your next project is as successful, and that, at least, you got some different ideas on how to tackle “giant search space” problems, should any arise in your future.
For the record, Lost Souls MUD has something called the Catelius Puzzles.
http://lostsouls.org/wiki/Catelius_puzzles
It’s a 3×3 grid, between 2 and 4 states per puzzle. If you touch one tile, it advances state as well as the adjacent tiles (diagonals don’t count). You need to get all of the tiles to the same state.
This is very closely related to Shapeshifter, you can probably convert the code in a few minutes.
I just thought it was need to see this type of “flip” puzzle in a typical hack/slash online game.
I’ll have to check it out
I do want to spend more time on Shifter; I think making it better and exploring dozens of different ideas, going home and putting them in code and seeing how they did was one of the best programming experiences of my life. And it really is only the tip; I’m sure I could spend six more months on it easily.
But my changes to Shifter were going to send it down the parallel processing, highly threaded world. And there’s something else I want to do with that — explore emergent behavior.
At one point in Shifter development I tried to make the pieces look for their own best places to sit, but that failed because you can’t easily tell if one position is better than another early enough to make a difference.
Think of a chess game where the pieces were self-aware, to an extent. That’s kind of what I have in mind.
I just figured out that I can put a lot more words on my Pet’s webpage, so I will write more in-depth on these algorithms.
I will note that search algorithms can parallelize extremely efficiently. You can probably parallelize Shifter really well with a small change to one of the data structures. And hey, parallel is the way of the future, at least they tell me.
Have you looked at level 100 just to see if Shifter can solve it? Yes, you should forfeit the puzzle in Neopets anyway, at least until the end of the month.
But I think it would be good to know that you can reach the top of the mountain. At least for jig purposes.
Heh… well, there’s no harm in solving 100 ahead of time. I’ll give it a shot when I get home, and take a look at your Neopets page again too
Your approach to the puzzle sounds very different than mine, which after all is just a refinement of the very first thing anyone would try — a depth-first exhaustive search with pruning.