Penpals

Community Forums/Showcase/Penpals

Warpy(Posted 2008) [#1]
When I'm listening to the radio, I like to play a little puzzle game to keep the rest of my mind occupied but not distracted. Simon Tatham's Portable Puzzle Collection is especially good for this.

I've been thinking about what my ideal game for this situation would be, and I've come up with a few criteria:

- No words: I can't read and follow someone talking at the same time.

- It must always be possible to play succesfully, so you're never losing a game, just stuck. So Solitaire is out, but Freecell is in.

- It must always be different. Playing the same puzzle over and over again is boring. So books of sudoku are out, and so are old platform games.

- It mustn't rely on sound. I'm listening to the radio, after all!

- It must be quick to open and close, and not require any investment of time once started. Sometimes when I've started a really hard puzzle during a programme, I can still be solving it for another 15 minutes after the programme's ended. Not the best use of my time, but I hate leaving puzzles unfinished and my Freecell winning streak is in four digits now!

- Preferably, it should never end. I'm not playing in order to finish, I'm playing to distract my mind.



SO, with all that in mind, I've made this.

Here's a screenshot:


It's a game where you connect dots. There are limits on which dots you can connect, so you have to plan your moves. It has some very soft sounds, so you can play it on its own and still feel engaged. It never ends, and saves your progress when you quit so you don't lose all your hard work.

Don't worry about connecting all the dots, I don't think that's possible, just pan around looking for clusters to connect up into one big network.


A few notes about the implementation:
- I made a special data structure for storing the dots, which is a set of concentric circle segments radiating out from the start point. They are only generated when they come into view, and can be efficiently searched so only the areas on screen are displayed and used in game logic. I could've used squares to make the geometry a bit simpler, but I think that would've meant more bookkeeping.

- The networks are directed trees, which makes counting members and finding paths between member dots easy. You can also use the arrows on the links to track back along the tree.

- Because I wanted to make the game universe scale indefinitely, I had to reject a lot of gameplay ideas because they would grow in complexity with the networks - for example passing objects along the network between dots, having anything which depended on time elapsing, or having the dots move about in anything but a nonlinear fashion.

- The sound effects are chime notes on the minor harmonic scale, I think. I'm not musically trained at all but I think just using this selection of notes is the most pleasing. I considered using them in an order that makes a tune, but just picking them at random sounds nice enough.

- It's interesting, while panning around the space, that so many clusters of dots look like real star clusters. A good case for pareidolia, I think!

- The game is quite addictive if you're not really concentrating on it, so I'd call it a big success. I absent-mindedly connected up a thousand dots while I was meant to be debugging something yesterday.


Cripes, this looks like a manifesto! Anyway, please take a look at the game and give me your comments.


KillerX(Posted 2008) [#2]
Biggest network: 629 dots.


plash(Posted 2008) [#3]
Very cool! I'm quite curious why you chose to use JSON for the save format though..


Taron(Posted 2008) [#4]
Although it may be contrary to the games flow, but zooming would be fantastic!

Yes, it's much like a testimony or statement to severe personal boredom or depression, but it's quite ingenius at that! Surely it can be labeled as meditative and it may well serve as a medium to that, but in reality it's one heck of a way to disguise patience and grow hair. 8)

Great job! :o)


Warpy(Posted 2008) [#5]
plash - because I already had it written and I couldn't be bothered making something more appropriate. I agree, it's the least efficient method I could've used.

Taron - thanks! I think...


SpaceAce(Posted 2008) [#6]
I can't believe it took me until the paragraph under the screen shot before I realized this had to be a Warpy project.

I think I shall play this.

SpaceAce


Taron(Posted 2008) [#7]
Yup, yup, warpy, thanks were at order! 8)))
I think it's a riot.

Consider, just for fun, if you could create even more depth to it.


plash(Posted 2008) [#8]
It would be interesting to see this incorporated with ImaginaryHuman's metablob's..


Grey Alien(Posted 2008) [#9]
Warpy you are nothing short of prolific. Strangely compelling game. Where is the "score" is it ton the bottom of the window? I'm running in 1024x768 and wonder if I cannot see it...


Warpy(Posted 2008) [#10]
There's no score. It would only go up, what's the point in that? There is a line at the top of the screen keeping track of the size of your biggest network, though.


Plash - I've considered doing something like that, but I'm not sure it would look right. Early on, I thought about using this code I wrote for one of my previous games to display the areas you can link to, but the areas get much bigger than the screen very quickly so it's not much use, for the amount of effort to implement it.

Taron - I agree it could do with a bit more depth, but how? I'm stuck for ideas.


Grey Alien(Posted 2008) [#11]
Oh sorry I read in the instructions that it said it costs one point to link a dot but costs more points the further they are away etc. At one point I wasn't able to link far, so I linked two elsewhere and then it seemed to give me the power to link to the far one. So I thought there must be some kind of score/power stored internally or something.


jsp(Posted 2008) [#12]
Hmm, this is a strange, good, crazy? little game. Attracted me at least to build one network with more than 1500 dots.
As Taron said, a zooming function or may a reduced small overview screen would be fine (maybe just showing the network structure not the points).
I also second what Grey said, I didn't expect a score, but the power a network has, when it's selected. Until 500-600 dots I was always looking around what I could connect next, from that on the big network looked like had enough power to just connect what ever was reachable even in several large steps, but how much power I really had left – I don't know.
What I didn't like was the cpu power the game took. It starts very low and then takes more and more as points are added. When I reached the 1500 dots my cpu was almost at 100% on my laptop.


Warpy(Posted 2008) [#13]
OK, an explanation of the linking, because I didn't explain it massively well.

Every dot belongs to a network. Every network has an amount of 'money'. When two dots are linked, their networks are merged and their sums of money added together. The network's money is increased by 1 unit, and the cost of the link is subtracted. The cost increases with the distance between the two points.
Two dots can only be linked if the resultant network would have a positive amount of money after the link is made.

When you hover over a dot, the the dots it can link to are shown in red or green. A green dot is one you will make a profit on, i.e. the cost of the link is less than 1, and a red dot is one you will make a loss on.



About the CPU usage: I'd noticed this before, and thought it might either be my laptop failing to run vista again, or a memory leak. As you've got the problem as well, it's a bug in my code.
And having a look at it, it seems my sound objects aren't being removed from memory. Spotted the bug, fixed it! Download the zip again if you want.

It definitely shouldn't use more cpu as you play, I've designed the whole game around it not doing that!


jsp(Posted 2008) [#14]
Working fine now, still I would like to see the network “money” :)


ImaginaryHuman(Posted 2008) [#15]
I linked 11 dots and got stuck, because your app didn't recognize me pressing Ctrl and the left mouse button to mean a `right mouse click` - single button Mac's require this combination to simulate right-mouse clicks. Oh well ;-)

As an aside, you make a lot of small games Warpy - you must get quite a lot of satisfaction from frequently `finishing` stuff.


SpaceAce(Posted 2008) [#16]
After playing a bit, I agree with the comments saying that this (game?) needs a zoom function or at least a mini-map of some kind. I also think the window should be sizable, revealing more (or less) of the playing field. Otherwise, it's pretty cool.

SpaceAce