FAQ Search
Memberlist Usergroups
Profile
  Forum Statistics Register
 Log in to check your private messages
Log in to check your private messages
Moonpod Homepage Starscape Information Mr. Robot Information Free Game Downloads Starscape Highscore Table
Word Games
Post new topic   Reply to topic    Discussion Pod Forum Index -> Independent Game Development View previous topic :: View next topic  
 Author
Message
Patriarch



Joined: 01 Feb 2005
Posts: 6



PostPosted: Tue Feb 01, 2005 1:08 am    Post subject: Word Games Reply with quote

Hey! My first post here, but loved Starscape.

Anyway, I'm working on a Word Game/Tetris fusion in C#. Graphics are Bare Bones GDI+ Vector graphics. I have just about everything in place engine wise, so next up is the actual content.

In essence, blocks fall like Tetris, you guide them, and while they're falling, you try and make words from adjacent blocks. It's simple. My main problems are:

1) What should the frequencies be per letter?
2) What should the scores be per letter?
3) C# apps require the .NET framework... which near noone has. Anyone know of a way to get around this? It's really a pain when sharing with friends.
4) How do you reference file locations relative to the .exe? My wordlist is sitting in my C:\\ folder Razz

Does anyone here know C#? It's a great language... But as I said, a pain to share. If any of you have the .NET framework, or are interested in screens, just ask, and I'll post the engine and some screens.
Back to top
View user's profile
Poo Bear
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 4121
Location: Sheffield, UK



PostPosted: Tue Feb 01, 2005 6:03 am    Post subject: Re: Word Games Reply with quote

Patriarch wrote:
1) What should the frequencies be per letter?
2) What should the scores be per letter?


Setup the game so this data is read from a text file, put anything that sounds reasonable in to start with and then just play the game. By having these values in a text file you can change them very easily and play around with different combinations. Once you are happy get other people to play it in front of you, see how long it takes before they get stuck and how much time they need to get what they think is a good score. This is the process of "play testing" where you seek to achieve the right balance of difficulty and reward.

Initial settings could be based on other word games i.e. scrabble, bookworm, but my guess would be:

a,e,i,o,u - appear most often, score the least

b,c,d,f,g,h,k,l,m,n,p,r,s,t - appear regularly, score a little

z,q,x,w,j,v,y - appear infrequently, score a lot

The different letter groups should be different colours so people know the score they are likely to get. So those rare high point scoring, but tricky letters might be coloured red and then you would spot them straight away.

You can have different sets of frequency data and use that to get easy/med/hard difficulty setting. So in hard mode you get slightly less of the common easy to use letters and slightly more of the high point scoring but difficult to use letters.

It would also make sense to have a score multiplier bonus based on the length of word. In the game you describe it will be very difficult to create long words as there wont be much time so I think once you go beyond 3 letters your score should start doubling.
Back to top
View user's profile Visit poster's website
Goober
Pod Team
Pod Team


Joined: 11 Oct 2002
Posts: 449
Location: Moonpod Central



PostPosted: Tue Feb 01, 2005 7:29 am    Post subject: Re: Word Games Reply with quote

Patriarch wrote:
3) C# apps require the .NET framework... which near noone has. Anyone know of a way to get around this? It's really a pain when sharing with friends.


If you're sharing with friends then you could download the .NET runtime for them and put it on a CD for them to install. If you intend distributing your game over the internet then you need to think carefully about what you plan to do in that event.

Patriarch wrote:
4) How do you reference file locations relative to the .exe? My wordlist is sitting in my C:\\ folder Razz


You should just be able to refer to the files by name. When your app is started the OS will set the current directory for your process to be the same as your executable. If that's not the case then here's what I do when our apps start up. This is C++, obviously, but there should be equivalent functionality in C#

Code:

   /* set the current directory to the game folder */
   g_commandLine = GetCommandLineA();

   char drv[_MAX_DRIVE], dir[_MAX_DIR];
   _splitpath( &(g_commandLine[1]), drv, dir, NULL, NULL );

   char launchPath[_MAX_PATH];
   strcpy( launchPath, drv );
   strcat( launchPath, dir );

   SetCurrentDirectoryA( launchPath );


If the current directory is where your app is, then you can just refer to the files in that folder by their name (or their relative path from the exe, if they're in a subdirectory).

Patriarch wrote:
Does anyone here know C#? It's a great language... But as I said, a pain to share. If any of you have the .NET framework, or are interested in screens, just ask, and I'll post the engine and some screens.


Nope, sorry, not a clue about C# Wink. But feel free to post screens when you've got cool stuff happening Smile
Back to top
View user's profile
Patriarch



Joined: 01 Feb 2005
Posts: 6



PostPosted: Sun Apr 24, 2005 12:07 am    Post subject: Reply with quote

Harr! I am bumping this topic 'cause I have something playable - yet challenging. Options doesn't work yet, so don't bother clicking it.
I'll upload screenies when I get to it. However: the game works.

Explanation:
Blocks fall one by one. Line them up horizontally, diagonally, or vertically to make words longer than 3 letters long, select the words, and gain points - Just like Scrabble! Every 50 points, the speed of the falling blocks increases. The word score will be multiplied by the amount of letters over two it has; For example:
3 letters: 1x Multiplier
4 letters: 2x Multiplier
5 letters: 3x Multiplier
And so on and so forth. The word score box includes the multipliers.

Controls:

Up Arrow: Makes block fall all the way to the bottom.

Right/Left Arrows: Makes block move left and right one slot.

Down Arrow: Makes block jump down a small amount. Hold down to make it fall rapidly.

Left Click (On unselected blocks) : Select Blocks. Makes a chain if the block you click is adjacent or diagonal to the block you last selected.

Left Click (On selected blocks) : If the block is not the end of the chain, but is part of the chain, makes that block the last block.

Double Click (On end of chain) or Enter : Checks if the chain is a word. If so, the blocks disappear and the word score (Middle Blue Box) is added to your total score (Top Gray Box).

That's all there is to it. It may seem complicated now, but start playing, and you should get used to it.

Please, respond with suggestions, bugs, and all other manners of comments.

Downloads:
.NET Framework (needed to run this app... sorry Sad )
64 Bit Operating System:
http://www.microsoft.com/downloads/details.aspx?FamilyId=DE4539CF-5D5C-4981-B27B-8AE747A7EA98&displaylang=en
32 Bit Operating System:
http://www.microsoft.com/downloads/details.aspx?FamilyID=b7adc595-717c-4ef7-817b-bdefd6947019&DisplayLang=en

Game:
http://chaos.gutreflex.com/Wordtris.zip


Last edited by Patriarch on Sun May 01, 2005 5:30 pm; edited 2 times in total
Back to top
View user's profile
Rup



Joined: 19 May 2003
Posts: 363
Location: London, UK



PostPosted: Sun Apr 24, 2005 5:54 pm    Post subject: Reply with quote

Neat.

Needs more colour. As Poo Bear suggested you could shade by letter points - or vowel vs. constant or something. Perhaps a brighter selection colour as you make longer words to go with the more points?

I'm having a lot of trouble clicking the words, especially after the first speed-up - which is a bit vicious maybe. Or maybe I just need more practice!

I've a niggling feeling the keypad enter didn't work as an enter, although I can't remember now. Maybe right-click too?

You could add a tetris-alike one or two letter look ahead. Maybe fill up three rows or so at the bottom with random letters so you've something to chip away at from the start? And maybe a few fewer vowels - I ended up with huge stacks of vowels piling up which makes longer words tricky. Also, maybe some sort of "timeout" you earn every X points so you've some number of seconds to click away words? I keep ending up with a huge pile of letters in the middle Smile

As an alternative, you could highlight words in the grid automatically and let the user clear the word with one double-click. It'd make the game much simpler to play but would change the whole feel somewhat.
Back to top
View user's profile
Patriarch



Joined: 01 Feb 2005
Posts: 6



PostPosted: Sun Apr 24, 2005 7:05 pm    Post subject: Reply with quote

Rup, I like all of your ideas except for that last one. It shouldn't be too hard to implement a lot of them too. Did you play the latest version with the score multipliers?

Ooh, I don't know if the numpad enter works as an enter. The Enter/Return one does. Right-Click I could add to finish it off.

And yeah, the general consensus so far is that the first one is tough; It is doubling the speed, after all. It works by increasing the y with a dy (delta y, or change in y for non-programmers) variable that changes after 50 points. It starts at 1 (1 pixel lowered per frame), then increases to 2, then 3. This is basically a 2x change, 1.5x change, 1.333..x change, etc. The first change is much more vicious, for sure. I tried to get around it, but if I made it a float, it messes up my detection of when you passed a 50 mark, which is in pseudo-code below.

Speed = (Score - (Score % 50))/50 + 1

It basically rounds it down to the closest factor of 50, and then gets which factor it is. the +1 is so that if the factor is 0, the blocks still move. The only way I could theoretically lessen the viciousness, and give me more increments to work with would be by changing the framerate, which throws a bit of my programming off.

Quote:
And maybe a few fewer vowels - I ended up with huge stacks of vowels piling up which makes longer words tricky. Also, maybe some sort of "timeout" you earn every X points so you've some number of seconds to click away words? I keep ending up with a huge pile of letters in the middle Smile


I based the word values and frequencies off of a Scrabble board. It seems to go both ways though, at least for me. Sometimes I'll have far too many consonants, and sometimes too many vowels. Just lucky and unlucky breaks, I guess Razz. I definitely like the idea of a Time-out bar that fills up, and you can just hit Space and you get a freeze based on how filled up that bar was. Of course, if you got it filled all the way up, it would have a larger effect, such as permanently going back one speed (Oooooooh...).

Gonna jump to the beginning here, also.
Quote:
Needs more colour. As Poo Bear suggested you could shade by letter points - or vowel vs. constant or something. Perhaps a brighter selection colour as you make longer words to go with the more points?


More colour in the sense of the game overall, or just for distinctions? If it was for distinctions, it would make more sense for the direction of the project; I'm working alone and I'm definitely not graphically inclined... so programming graphics and the engine to work together is challenging.

I also find it interesting that you have trouble clicking words... I was told that people were on an old version ages ago, but it was relatively smaller, so I spent a while double-sizing it. (Anyone who's worked with vector-based programming is gagging right now). The clicking problem would probably be alleviated somewhat with the stop timer.

And finally, the tetris look ahead... ooooh, that'd be odd to program in. Probably not too hard, but it's hard to tell. I would be shifting a LARGE block of programming from one place to the other, but it could work.
Back to top
View user's profile
Rup



Joined: 19 May 2003
Posts: 363
Location: London, UK



PostPosted: Thu Apr 28, 2005 5:28 am    Post subject: Reply with quote

Hi, sorry I've only just got back to you. Hectic week, as ever.

I tried the one dated 23-04-05 21:37 in the .zip which I got about half an hour before I posted. I see you've updated it - I'll have to try it again soon.
Patriarch wrote:
More colour in the sense of the game overall, or just for distinctions? If it was for distinctions, it would make more sense for the direction of the project; I'm working alone and I'm definitely not graphically inclined... so programming graphics and the engine to work together is challenging.

A bit of both, I suppose. I guess its so I can look up and down the screen and go back to where I was looking at from the colour pattern too as well. Maybe that'd help, maybe I'm just hopeless Smile
Patriarch wrote:
I also find it interesting that you have trouble clicking words... I was told that people were on an old version ages ago, but it was relatively smaller, so I spent a while double-sizing it.

Oh no sorry - I could click on the letters fine, they're a reasonable size. I meant I had trouble splitting concentration between dropping new letters and clicking old ones.
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    Discussion Pod Forum Index -> Independent Game Development All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group