Please note that I don't update this web site anymore. You can visit my new personal blog at www.williamwilling.com.
Friday, January 28, 2005
Behold! Trichromix reached beta!
I decided to release my very first beta version to the public. Don't hesitate to download the Trichromix Beta (.zip, 1.35MB) and tell me what you think.
The beta version is feature complete, with two exceptions. First of all, the final version will have a lot more levels, including some extra tutorial levels. Secondly, the beta version doesn't have music and sound yet.
I'm actually a bit nervous about this. Strange, that. I mean, you expect a beta version to have bugs, so there is no problem if somebody runs into one. Oh well.
If you decide to help me out by running the beta version, please leave a comment, even if you find nothing wrong. I'm especially interested to know how the game holds up on low-end systems. The lowest-end system I have tested Trichromix on is currently a Pentium II 450 MHz with 256 MB of RAM running Windows 2000 Professional and it holds up fine on that particular configuration.
Back to blog index
This looks like a game with potential, but you're not quite there yet. :-) Here are some comments:
- The GUI controls need feedback. Rollovers would be nice, but more important: make the buttons press down when the user clicks them. (It would be even better if you made the buttons work exactly like they do in Windows and most other GUI toolkits: When you click on a button but then move the mouse cursor out of the button again, the button should unpress. Releasing the mouse at this point should no longer activate the button.)
- Being able to drag the pieces to their next position (and to the next, and the next, and so on) would be nice.
- When playing the final move, you immediately pop up the "Finished" box. However, if the piece you were playing is being obscured by this message box, you never see the final move being made. It would be nicer to show that final move, and pop up the box after a few seconds.
- It's nice to have keyboard control shortcuts, but the ones you chose are a little hard to remember. There is no intuitive mapping between Ctrl/Shift/Alt and the circle/triangle/star. Maybe you can come up with something easier? If not, you could show a reminder below the help bar on the left and/or show an indicator on the circle/triangle/star (like a blue border) depending on which meta key the user is currently holding down.
- When using the keyboard shortcuts, I often pressed a key too many. As a result, when the "Finished" message box pops up, it immediately disappears again. Maybe restrict the keys that can dismiss this dialog (just Space and Enter?).
- I don't know if it's planned or not, but a funky intro screen would be nice, especially because the level select screen is a little boring.
- Put a Sleep(1) in your event loop. Right now, you're using over 90% CPU time,
which is totally unnecessary (since you have no animations, etc). Trichromix is frying my laptop! (Better yet, don't loop at all, simply block until an event comes in.)
- Is it kosher to distribute Arial.ttf? (And why would you, everyone has it already.)
Hope it helps!
Saturday, January 29, 2005 2:35 PM
It certainly helps! Thank you.
"The GUI controls need feedback."
I'm not entirely clear on what you mean. There is no rollover-effect, but it probably wouldn't take too long to add it. Apart from that, the buttons should work as you describe, except for the ones in the popup windows. Are you just talking about the buttons in the popup windows or about all other buttons, too?
"Being able to drag the pieces to their next position (and to the next, and the next, and so on) would be nice."
That might not be trivial to implement, but that of course is no excuse. I agree that drag and drop would provide the most intuitive interface. I'll look into it. Do you want to be able to drag and drop shapes over multiple tiles at once or tile-by-tile?
"It would be nicer to show that final move, and pop up the box after a few seconds."
Consider it done. I did some experimenting and half a second seems to provide enough time to see your last move without taking so long that it becomes annoying. Good thing you told me; I never would've noticed.
"It's nice to have keyboard control shortcuts, but the ones you chose are a little hard to remember."
I have to think about this one for a bit. I agree this is a problem, I'm just not too sure about a solution yet. I'll test a couple of alternatives.
"Maybe restrict the keys that can dismiss this dialog (just Space and Enter?)."
Consider it done.
"...the level select screen is a little boring."
Now you hurt my feelings. :-) Do you think I should change the design of the level select screen? Personally, I don't like being treated to an intro screen every time I start a game.
"...simply block until an event comes in."
You are right, the difference is huge.
"Is it kosher to distribute Arial.ttf?"
It's a free font in the sense that you can embed it into your documents. I don't know if it's okay to distribute it with your application, though. I'll change the code so that it uses Arial.ttf from the Windows Font-folder.
Thanks again for the great feedback. It's helping me out a lot.
Sunday, January 30, 2005 12:52 AM
About the GUI feedback: Yes, I was talking about the buttons in the popup windows. I hadn't noticed that the other buttons did work correctly -- which I suppose is a good thing, because a good user interface is one you don't notice. :-) (Oh, and don't worry about the rollover effects, that was just an example. It's nice to have it, but hardly necessary.)
About drag-and-drop: Just dragging one tile at a time would be fine, although if you don't release the mouse button you should keep dragging. So you don't have to click-drag-release, click-drag-release, etc. Instead you click-drag-drag-drag-release. (No need for pathfinding algorithms or anything fancy.)
About the level select screen: The wood theme is nice, but all the brown makes the screen a little bland. Maybe make the title stand out. Add some contrast (possibly using the primary red, green, blue, yellow and orange colors from the game itself). Also, the button text (and font) just looks nasty, especially compared to the nice anti-aliased font you're using for the level names.
I hope that clarifies it a little. :-)
Sunday, January 30, 2005 2:29 PM
To illustrate what I meant with the contrast on the level select screen, I made a very rough mockup of what I had in mind:
The idea is to use colored paint splashes to brighten it up a little. Anyway, just a thought.
Sunday, January 30, 2005 3:03 PM
Because it's a slow Sunday afternoon, I made another quick 'n dirty mockup, just for the hell of it. I promise this is the last one :-)
Sunday, January 30, 2005 5:33 PM
Having played Trichromix for a couple of days now, I can't help feeling something's missing: the game lacks a notion of progress.
Although the levels in the level-selection menu are more or less ordered by difficulty, there's no restriction on the order in which they are played. So, actually, they are not _levels_. Rather, they just form a collection of stand-alone puzzles.
While each puzzle individually offers a challenge—well, the harder puzzles anyway—there's no mechanism for making me feel frustrated when I'm not able to solve a puzzle. However, I think, here, frustration is an excellent fuel for addiction.
Note that I'm not suggesting that you enforce a strict playing order for the puzzles. But wouldn't it be nice to group puzzles in levels and make the puzzles of a given level available only if all puzzles in all lover levels are solved?
Of course, this would mean that you should maintain state between successive runs of the program, for people don't want to be forced playing the easy levels over and over again, just to get to the level that matches their current puzzle skills.
I can see that an extension like this is not trivial to implement, but, as you said yourself, that's no excuse. ;)
Just my €0.02.
Monday, January 31, 2005 2:07 PM
Allowing players to play any level they want at any time was a conscious decision. Personally, I don't really enjoy frustration, but maybe that's just me. :-)
Before I continue, let me define some terminology so that we are talking about the same things. A level is a single puzzle, as you call it. Levels are grouped in level packs. The beta currently has three level packs. The final version will of course have more level packs (and therefor more levels) with the levels in a single level pack being of approximately equal difficulty.
It's true there is no real incentive to try and solve the next puzzle other than that you enjoyed the last one. This could be a problem, but I'm not certain about the solution you suggest. Limiting the levels you can choose from to the current level pack becomes very frustrating if you have only one level in the level pack left and you can't finish it. Too frustrating if you ask me.
A sliding window would be an improvement, yet I still don't like it very much. Supaplex used this approach (you could skip a maximum of three levels) and it made me put away the game. (Well, it made me 'hack' it, but that's a different story.) Basically, my philosophy is: you payed for the game, so you get to decide which parts of it you play and which parts of it you don't play.
There might be a middle ground, though. What if I mark the levels you finish explicitly as solved? That way you have an incentive to keep trying the levels that give you trouble, even if you have finished all others. It might not be as strong an incentive as with your solution, but it's also less frustrating.
More opinions on this matter are certainly welcomed.
Monday, January 31, 2005 2:38 PM
Thinking about this brings back memories to playing Prince of Persia. If you have PRINCE MEGAHIT available, do you use it or not? ;)
Monday, January 31, 2005 2:45 PM
If I recall correctly, it's MEGAHITS. :-p But anyway...
Most of the games offer you ways to cheat. There is often a way to make yourself invincible, to skip the current level or simply to win. Remember Monkey Island 2? Press Alt-W and it ask you: 'Are you sure you want to win?'. Answering 'yes' takes you to the end credits.
But my favourite way of handling cheats is the way Civilization 2 does it. It offers you the means to cheat right there in the ever-present menu bar. You can't miss it. It's even clearly labeled: cheat. And that might be exactly the reason lots of people don't use it, because it's called cheating. Of course, Civilization also stops keeping score when you decide to cheat. I can think of no such penalty I could introduce in Trichromix.
I'm not convinced that skipping a level in Trichromix is cheating, though. As you have pointed out yourself, Trichromix is just a set of unrelated puzzles that happen to share a rule set. Locking levels because you haven't finished previous ones is like receiving today's newspaper without the crossword puzzle. After all, you haven't finished yesterday's crossword puzzle yet.
Monday, January 31, 2005 4:57 PM
Hey - look! I read your weblog, too...! ;)
The GUI has an incredible slow response time on my main desktop machine (believe it or not), which is an AMD-K6(2) 3D 266mhz with 128mb ram, running Windows 2000. To give you an example of what 'incredibly slow' means... if I press 'Play' on the 'main' screen it takes about five seconds before the button is actually pressed and another five to load the level.
Hope this is useful information somehow.
Saturday, February 5, 2005 12:03 AM
Thanks for the info. I've noticed myself that sometimes when I start the game, it is really slow even on my 2.6GHz PC. Quitting the game and restarting it usually takes care of the problem. Does that work for you, too? I've experienced the problem with other games too, so I figured it was my computer setup.
Also, I have adjusted the event loop as Mahlzeit suggested, so now it takes very little CPU time. That probably helps a lot on low-end PCs like yours. I'll release a second beta as soon as I have things sorted out. Hopefully, you can give it another test run then.
Saturday, February 5, 2005 8:59 AM
According to task manager's CPU monitoring the game simply can't find enough CPU to do everything it does. Running it several times does not produce any different resuls.
I'll await the second demo. :)
Sunday, February 6, 2005 7:51 PM
Tell me what you think
Since I'm not updating this site anymore, I disabled comments. You can visit me at my new site: www.williamwilling.com.