The Na'vi Word Puzzle Game

Started by eanayo, April 08, 2010, 05:59:15 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

eanayo

NOTE: Due to lack of interest and laziness on my part, this project is currently not maintained. It may or may not work, depending on whether or not the DB has been kicked from the free server. PM me if you are interested in resurrecting the game. *tumbleweed*

Kaltxì, ma eylan!

Well, it's either because I'm a pathetic sad nerd or (more likely) because I haven't seen Avatar in over a month, but I somehow felt that I should do something for the LearnNavi community.
Well... my language knowledge isn't good enough to make something useful, but... there was this thread. Which got me thinking. And then I spent a couple of days torturing myself with C# (instead of learning Na'vi) to bring you:

The Na'vi Word Puzzle Game - current version 0.1.0.3

Online and multiplayer ;)

Download from this post, manual in the next post.

The game itself is somewhat similar to another popular word puzzle game, and the rules are fairly self-explanatory anyway, so I guess there shouldn't be any major problems getting started.

This is the first release version, and every player is a guinea pig to see if the game works in the "world out there". I hope it does, and I hope that I can improve it as time goes by, but it might as well be a complete failure and disappear again.

But don't just sit around there playing idly - you can help this project by providing:

  • A SQL Server! Currently, I use some whacky free MySQL server to host the database. This is very bad. First, I have no idea how much hitting that server can take or if they will kick me off, and secondly it is only for a limited time. If we can't find a server, this game will die sooner or later. The size of the database is fairly small, but there is a fair amount of simultaneous connections and connecting/disconnecting going on (let's say about 1 connection opened/closed per second per player).
  • Bug reports! With my programming skills (object-orie...what?), I expect about two metric tons of bugs in the program. So, if you find one, please let me know. As a guide, if it's something very straightforward, send me a PM rather than posting here; if you want to check with others or get some comments, please post here.
  • Programming suggestions While I tried my best to make the program as usable as possible, I sincerely welcome any suggestions. Have an idea how to make the user interface less hostile? Want another game rule enforced? Some feature added? Bad English? Whatever it is, post!
  • Game-realted suggestions! I haven't spent much thought on some aspects of the game itself: The bonus squares are placed more or less arbitrarily, the letter distribution is from the thread linked above, adapted to a smaller board... but there is much to be improved! Have a letter distribution that includes digraphs? (pwetty pwease!) Know a better bonus square distribution? Great! I want that!

Another, more technical note:
As stated above, I only use a SQL database as a server - no dedicated server application between the clients and the database (I really suck, I know...). This has some implications: First, the passing of information between clients is a bit laggy and there may be short glitches, but, more seriously, anyone with enough determination could fairly easily sabotage the whole thing. While I will try and keep the DB in a healthy state, I have better things to do with my life than restore the database twice a day. So, if there are repeated serious attempts to break the game, I will just stop caring.

But anyway... now, find a couple of people to play with and have fun!

History:
0.1.0.1 on 2010-04-08: initial release
0.1.0.2 on 2010-04-09: (incompatible) added undo button, board size now 15x15, 10 letter rack
0.1.0.3 on 2010-04-10: (compatible) fixed problem with two-digit letter scores, got rid of unused DLLs ;)

Visit Our Dictionary for eBook readers, The Na'vi Word Puzzle Game and the Cryptogram Generator
srake tsun pivlltxe san [ˈɔaχkat͡slʃwɔaf]?

eanayo

#1
Overview
The objective of the game is to place letters on a 15x15 grid, forming words which are scored according to individual letter scores and special modifier squares on the grid.
Each player has a "pool" of 10 letters they can play, which is drawn and re-filled from a larger "pool" of letters for all players on a given board.
Players take turns putting words on the grid, and any words may be challenged (found incorrect and removed) by the player who takes the next turn.
The game ends when there are no more letters left in the common "pool" and all players have passed in a row, or when all players have passed five times in a row.

Installation
You need to have Microsoft's .NET Framework version 3.5 installed. Chances are, you have it already, but if not, you can get it from Microsoft.

It should run on any halfway modern Windows machine, a screen resolution of 1024x768 is recommended.

Apart from that, just extract all files from the .zip to some folder and double-click the .exe file to run. That's pretty much it.

The UI





When you start the program, you see the "Connection" tab. To the left is a list of boards that currently exist. You can see who is playing on a board by clicking it, the players appear in the player list right to the board list.

To join an existing board, enter a player name, select a board and click "Join".

To create a new board, enter the board name, click "Create new board", then join this board as above.

Joining a board will bring you to the "Game" tab.
At the left is the board, with a grid separating the playing squares. Special bonus squares are marked with colors.

At the top right is some general information about the board, and some controls.

"Letters remaining" indicates how many letters are left in the board's common pool

"Your score" is the score you have been awarded so far for your words.

By toggling "Allow new players" you can determine whether or not you want new players to be able to join this board. So once you've set up with your mates, un-tick this if you want to play in peace.

"Leave board" does what is says: It removes you from the board, returns the letters from your pool to the common pool, and passes on the turn.

"Claim turn" you hopefully shouldn't ever need. If a player disconnects (by losing Internet connection, no by closing the program), they are removed from the game after one minute. However, turn information is not changed. This means that (if the disconnected player had the turn) the board can be left with no-one having the turn. In this case, you can click this button to claim the turn.

Below that is the main control for your turn.
First is a list of all players on the board, showing their name and current score. The player who has the turn is highlighted.

The "Pass" button passes the turn to the next player in the list.

The "Exchange" button allows you to select a number of letters in your pool, and exchange then for letters in the common pool. This will also pass on your turn to the next player and count as passing for determining the end of the game.

Clicking the "Play" button means you want to make a play, and will allow you to place letters from your pool onto the board.

The "Select words" button is used to mark words from the letters you just played, and the text box next to it shows the word you are just selecting

The "Undo" button has two functions:
When you are placing letters on the board (i.e. after clicking "Play"), it removes all letters you just played from the board and places them back into your pool.
When you are selecting words for scoring (i.e. after clicking "Select words"), it de-selects all currently selected letters (to allow you to correct mistakes in your selection)

The "Challenge" button challenges a word played by a player in the previous turn. You can select any of their words from the list underneath, and click "Challenge" to remove them from the board.

At the bottom is your letter pool, eight fields and a drop-down menu to select a letter so substitute for a joker.

Note the text box at the bottom of the window. This is where the program tells you what to do, what it's just doing or that it just died (writing something to a text box should be enough exception handling...). Keep an eye on it. Always! (Can you tell I usually don't make GUIs? ;) )


Step-by-step walkthrough

Assuming you're the one who created the board, you'll see an empty board, some other user on it, have a full letter pool and, most importantly, it's your turn!




If there are letters in your pool from which you can form a word, click "Play", then select a letter from your pool by clicking it (it's colored yellow to indicate it's selected), then click an empty square on the board to place the letter in that position. Repeat this for as many letters as you like to form a word. All letters you've played are colored pink, to indicate they are "new" and not yet part of a word.
Hint: The first letter on a board must be placed on the center square
Hint: You can only place letters in squares next to a square which already has a letter in it. So you may have to build words by placing the letters out-of-order.

If you want to play a joker (aptly marked by an ASCII smiley), click on it in your pool, then select the letter you want it to stand for in the list, and then place it on the board.
Hint: Once a joker has been placed on the board, it transforms into the letter you selected. Even if that letter is returned to your pool later, it will remain the letter you selected and not turn back into a joker

When you're done placing all letters of your word, it should look something like this.

Now you need to mark the word(s) from the letters you just played. To do this, click "Select words", and then click on the letters of the word, one after another. The letters you clicked will turn yellow (selected), and the word will be built in the box next to the "Select words" button.

Once all letters are selected (and the correct word is in the box), click "Select words" again to "confirm" this word. The letters on the board will turn red (marked for scoring) and the word will be added to the challengeable words list.
Hint: Words can only read left-to-right and top-to-bottom
Hint: A word can contain any number of previously played letters. If fact, you could select a word consisting entirely of previously played letters... but you're not a skxawng, are you?
Hint: All letters played that are not part of a word are returned to your pool. This also includes selected (yellow) letters that have not been added as a word (red). So be sure to click "Select words" after marking each word.

There is nothing left for you to do, so click "Pass" to give the turn to the next player.

Hint: Clicking "Pass" will re-fill all empty places in your pool from the common pool, as long as there are letters left in it.

If you receive a turn, there are basically three things you can do: Pass the turn on immediately, Exchange letters from your pool, or form a play.
Before you can choose what to do, however, you can challenge any words played by the previous player. You must do this before clicking any of "Play", "Pass" or "Exchange" - any of these will award scores for all unchallenged words, that is, all words the previous players has marked for scoring that have not been challenged.
Hint: Only the player who received the turn can challenge words

If you want to challenge a word (marked by red letters), select it from the challengeable words list. The currently selected word is marked yellow on the board to make it easier to see when there are multiple words marked for scoring. Once you're convinced you want to get rid of a word, click "Challenge" and it will be removed from the board, along with all potential scores associated with it. You can do this with as many words marked for scoring as you like.

If you're happy with the remaining words, click any of "Play", "Pass" or "Exchange" to effectively start your turn and award a score for the remaining words. Their color will change from red to white, meaning that they are now "fixed" on the board.


some more details:

If you have a word that uses parts of another word, just select all the letters "as normal" for scoring. In this example, you played WRRPA, using the P of PATE, which has been played by someone else already. To mark the word for scoring, click W R R P A, including the P of PATE.

You can play multiple words at once. However, note that you have to play all letters first (like in this picture, the intended words are going to be TSEO and YOM), and then select one word after another for scoring

This is the above example, with TSEO already marked and YOM just selected (just before clicking "Select words" to confirm).
So, to make this play you need to
Click "Play", place S E O Y M on the board (in an order that is valid), click "Select words", click on T S E O, click on "Select words" (to mark TSEO), click on Y O M (to mark YOM). You may then pass on the turn.

This (incorrect) word has been played, and it's our turn, so let's see how challenging works:
Click on "RìKX" in the "challengeable words" list (R ì K X on the board will be marked yellow), and click "Challenge".

The offending word has been removed from the board, an its letters returned to the board's common letter pool.

This is how a board might look like after a couple of plays. There are two conditions for a game to end:
a) No more letters in the common pool, and all players have passed in a row (i.e. no-one was able to form a play on the board)
b) Letters left in the common pool, but all players have passed (or exchanged their pools) five times in a row (i.e. even after everyone has exchanged their pool for five times, no-one was able to make a play)
Once a game is over, the names and scores of all players involved are added to the highscore list.

Some technical notes:
Due to entirely passive role of the game server, there may be (short) glitches on the board when it's not your turn and you're watching. For example, you may see a word only partially selected for scoring or a square not returning to its original color immediately. These glitches will disappear after a maximum of five seconds, and are nothing to worry about.
To keep the database tidy, all players who have not been on a board for more than one minute will be removed. Similarly, all boards that have no users on them will be deleted after one minute, too.

Visit Our Dictionary for eBook readers, The Na'vi Word Puzzle Game and the Cryptogram Generator
srake tsun pivlltxe san [ˈɔaχkat͡slʃwɔaf]?

Kayrìlien

Quote from: Aysyal on April 08, 2010, 05:59:15 AM
Kaltxì, ma eylan!

Well, it's either because I'm a pathetic sad nerd or (more likely) because I haven't seen Avatar in over a month, but I somehow felt that I should do something for the LearnNavi community.
Well... my language knowledge isn't good enough to make something useful, but... there was this thread. Which got me thinking. And then I spent a couple of days torturing myself with C# (instead of learning Na'vi) to bring you:

The Na'vi Word Puzzle Game

Online and multiplayer ;)

Download from this post, manual in the next post.

The game itself is somewhat similar to another popular word puzzle game, and the rules are fairly self-explanatory anyway, so I guess there shouldn't be any major problems getting started.

This is the first release version, and every player is a guinea pig to see if the game works in the "world out there". I hope it does, and I hope that I can improve it as time goes by, but it might as well be a complete failure and disappear again.

But don't just sit around there playing idly - you can help this project by providing:

  • A SQL Server! Currently, I use some whacky free MySQL server to host the database. This is very bad. First, I have no idea how much hitting that server can take or if they will kick me off, and secondly it is only for a limited time. If we can't find a server, this game will die sooner or later. The size of the database is fairly small, but there is a fair amount of simultaneous connections and connecting/disconnecting going on (let's say about 1 connection opened/closed per second per player).
  • Bug reports! With my programming skills (object-orie...what?), I expect about two metric tons of bugs in the program. So, if you find one, please let me know. As a guide, if it's something very straightforward, send me a PM rather than posting here; if you want to check with others or get some comments, please post here.
  • Programming suggestions While I tried my best to make the program as usable as possible, I sincerely welcome any suggestions. Have an idea how to make the user interface less hostile? Want another game rule enforced? Some feature added? Bad English? Whatever it is, post!
  • Game-realted suggestions! I haven't spent much thought on some aspects of the game itself: The bonus squares are placed more or less arbitrarily, the letter distribution is from the thread linked above, adapted to a smaller board... but there is much to be improved! Have a letter distribution that includes digraphs? (pwetty pwease!) Know a better bonus square distribution? Great! I want that!

Another, more technical note:
As stated above, I only use a SQL database as a server - no dedicated server application between the clients and the database (I really suck, I know...). This has some implications: First, the passing of information between clients is a bit laggy and there may be short glitches, but, more seriously, anyone with enough determination could fairly easily sabotage the whole thing. While I will try and keep the DB in a healthy state, I have better things to do with my life than restore the database twice a day. So, if there are repeated serious attempts to break the game, I will just stop caring.

But anyway... now, find a couple of people to play with and have fun!

OH

MY

EYWA!

It's really here! Na'vi (famous word game)!

I don't know how much my thread you have read, but I'd been collaborating with Ezy Rider, Keylstxatsmen, and Erimeyz, among others, to create an online version of Skìräpll nìNa'vi for some time now, and although I have absolutely zero knowledge of programming, it's just so amazing that so many of you are able to create computer programs like this!

I've downloaded the game, and have tried to play a couple of test games with it, and here are some things I've noticed:

1. I haven't found a way to recall a letter that you've played on your turn, say if you've made a mistake and want to correct it. While this is not a bad thing per se, it might be wise to inform people that once they've placed a letter, there is no way to remove it.

2. Was the choice of a 13x13 board (instead of the 15x15) arbitrary or did you do it for some programming reason? While the ratio (169/225 ~= 0.75) of areas makes recalculating letter distributions fairly easy, I'm curious as to why you shrank the board.

3. By the way, I'd say you did a rather fine job at reducing the letter distribution. The only thing I was really afraid of when I saw a smaller board would be a large number of single-letter tiles, and you avoided that trap perfectly.

4. This is a gameplay thing that took me a lot of hours of testing to figure out: A rack of 8 tiles is EXTREMELY hard to play with. All of my playtested boards that I have posted in the Skìräpll thread use racks of 10 tiles, and even then, it was often a challenge to find a play. While I can see how having 10 tiles to choose from on a 13x13 board is somewhat silly, I wouldn't want the situation of having NO plays at all to come up very often, which is why I stuck with the traditional 15x15 board and 10-tile racks.

The other option, if you wanted to make the game rather easy (read: more fun for non-Grammar Nazis) is to make it so that every player has 7 regular tiles, as in normal Skìräpll, and one blank (joker), that they can use every turn. This is a house rule that I've played with when young kids are playing, but it's not something to consider to be a dumbing-down of the game; it can actually make you think a lot harder about what the best word is on every turn.

5. This is extremely nit-picky (don't kill me!), but I wouldn't put the triple-word-score spaces only five squares away from the center (starting) square. The advantage that this creates for the first player is nigh insurmountable; if they begin with a six-letter word, its score is multiplied by SIX.

I look forward to testing this version of the game. Perhaps you can pängkxo with Ezy Rider and Keylstxatsmen to get their perspectives on how to program the game? Like I said, my knowledge of computer programming is near zero, so they would be the best people I know of to talk to about programming this game. Maybe you guys can combine your efforts and make something really awesome!

Irayo, ma tsmukan. Kìyevame ulte Eywa ngahu frakrr,

Kayrìlien

P.S. - I will post more playtest boards on my thread later...I don't want to sound like a closed-minded purist, but the 15x15 board seems integral (to me) to the flow of the game.

eanayo

#3
Ma 'eylan, ngeyä aylì'uri irayo si!

Quote from: Kayrìlien on April 09, 2010, 12:06:05 AM
I don't know how much my thread you have read, but I'd been collaborating with Ezy Rider, Keylstxatsmen, and Erimeyz, among others, to create an online version of Skìräpll nìNa'vi for some time now, and although I have absolutely zero knowledge of programming, it's just so amazing that so many of you are able to create computer programs like this!

Oh... I didn't actually know that there was an active project ongoing. Apologies for not syncing with you guys then.

Quote
1. I haven't found a way to recall a letter that you've played on your turn, say if you've made a mistake and want to correct it. While this is not a bad thing per se, it might be wise to inform people that once they've placed a letter, there is no way to remove it.
Ok, I'll incorporate that in the next version. I actually had an "undo" function and all underlying code already, but didn't include it for some reason.

Quote
2. Was the choice of a 13x13 board (instead of the 15x15) arbitrary or did you do it for some programming reason? While the ratio (169/225 ~= 0.75) of areas makes recalculating letter distributions fairly easy, I'm curious as to why you shrank the board.
Hehehe... you see, I initially went for an exact "copy" of that other word puzzle game, including bonus square colors, and all. But then I stumbled across some cases where the owner of that other game fairly aggressively shut down online games that mimicked their game. So I changed a couple of things (board size being a fairly big one, avoiding some distinct terms another one) to make it different enough, which should hopefully limit chances of me getting barked at. Though I reckon that a free Na'vi game is probably not important enough for them to care about.

But if, as you said, the board size is an integral part, I'll set it to 15x15, no big deal, except that the window will get higher by 70 pixels ;)

Quote
4. This is a gameplay thing that took me a lot of hours of testing to figure out: A rack of 8 tiles is EXTREMELY hard to play with. All of my playtested boards that I have posted in the Skìräpll thread use racks of 10 tiles, and even then, it was often a challenge to find a play. While I can see how having 10 tiles to choose from on a 13x13 board is somewhat silly, I wouldn't want the situation of having NO plays at all to come up very often, which is why I stuck with the traditional 15x15 board and 10-tile racks.

The other option, if you wanted to make the game rather easy (read: more fun for non-Grammar Nazis) is to make it so that every player has 7 regular tiles, as in normal Skìräpll, and one blank (joker), that they can use every turn. This is a house rule that I've played with when young kids are playing, but it's not something to consider to be a dumbing-down of the game; it can actually make you think a lot harder about what the best word is on every turn.

That's why you're the one who worried about gameplay for hours ;)

Both options are fairly easy to implement - so anything is fine for me. From the programming side, I wouldn't mind having both options in the game, so every board (or even player) could choose what they want. Thoughts?

I think for the next version I'll just increase the "pool" size to 10, because that's really just 2 minutes work.

Quote
5. This is extremely nit-picky (don't kill me!), but I wouldn't put the triple-word-score spaces only five squares away from the center (starting) square. The advantage that this creates for the first player is nigh insurmountable; if they begin with a six-letter word, its score is multiplied by SIX.

As said above, the placement of the bonus squares was to reduce similarities with another game, but yeah, I'll have that changed right away (no client update needed, that's in the DB)

Another thing to note though, with the current scoring system, any given word will only receive one (the highest) word bonus. So if your word spans across both 2x and 3x word bonus squares, it will only receive a 3x bonus. Unless I screwed up somewhere...

Quote
I look forward to testing this version of the game. Perhaps you can pängkxo with Ezy Rider and Keylstxatsmen to get their perspectives on how to program the game? Like I said, my knowledge of computer programming is near zero, so they would be the best people I know of to talk to about programming this game. Maybe you guys can combine your efforts and make something really awesome!

Yes... as I said I didn't know that there was any active development going on, so: apologies again, I hope we can arrange so collaboration ;)
As for this program, it's actually a fairly quick hack with a terrible server concept. Literally any other multiplayer concept, be it peer-to-peer or a proper server are orders of magnitude better and more support-worthy.
One thing I'm planning (or hoping) is to, if there is enough interest that warrants the effort, get a neat server application and have that hosted properly (I could even do that at home, doesn't need much bandwidth). That should eliminate a whole bunch of problems, and I could open the protocol specs so that other people could program clients for other platforms. But that's for summer... ;)

Kìyevame!

edit: Just made a small software update: Board size up to 15x15 (with your letter original letter distribution), rack size increased to 10, undo button added.

Visit Our Dictionary for eBook readers, The Na'vi Word Puzzle Game and the Cryptogram Generator
srake tsun pivlltxe san [ˈɔaχkat͡slʃwɔaf]?

Kayrìlien

I played through an entire solitaire game using the 10-tiles-per-rack version, and here is the result:



I didn't notice very many bugs other than that the "Z" tile displays as being worth only one point; I didn't think to check it by using it in an arbitrary "word", and I drew it very late in the game such that I couldn't make a real Na'vi word with it, so I don't know how it scores. Also, I don't know if the game automatically saves high scores. By the way, I had a monster of a play; with "KERUSEY" and "KEWONG" already played, creating "AHìYìK" and "AKERUSEY" both on a triple-word-score netted me 129 points in a single turn! Hooray for attributive markers! (I don't think any of us will ever beat Eywa, though...10000 is a tall order!)

Basically, the game works great! Ngeyä uvan lu txantsan, ma 'eylan, ulte oel nasyew uvan sivi smukhu krr a tsun! Sìlpey oe tsnì smukanìl sì smukel apxay uvanit ngeyä uvan sayi mìzusawkrr!

I'll have some more commentary for you once I play through a couple more games, hopefully this time with people!

Kìyevame ulte Eywa ngahu frakrr,

Kayrìlien

eanayo

#5
Ma Kayrìlien,

Quote from: Kayrìlien on April 10, 2010, 02:59:05 AM
I played through an entire solitaire game using the 10-tiles-per-rack version, and here is the result:
Tewti! Great to see you actually managed to get a great play out of it!

Quote
I didn't notice very many bugs other than that the "Z" tile displays as being worth only one point; I didn't think to check it by using it in an arbitrary "word", and I drew it very late in the game such that I couldn't make a real Na'vi word with it, so I don't know how it scores.
Bam! Fixed. You were right, it's just the display that's cut off, it would have scored correctly.

Quote
Also, I don't know if the game automatically saves high scores.
That's an interesting one. I've added your score manually, because... you know... you spent your time playing, so you deserve it! ;)

Basically, the game is flagged as "over" when
a) every player has passed 5 times in a row
b) there are no tiles left in the board's pool, and every player has passed once.
For you, it's obviously the last condition that's of interest.

The thing is, a turn is only counted as "passed" when you do nothing but click "Pass" or exchange letters from your rack. So, if there's only one player on a board, you would actually need to click "Pass" two times after your last play: Once for passing the turn on to the next player (doesn't count as passing yet), and then another time to actually pass your turn (saying: "I can't make a play"). This should flag the game as over and add your name to the scrolls of glory.
If that still doesn't work, I'll investigate further.

Quote
By the way, I had a monster of a play; with "KERUSEY" and "KEWONG" already played, creating "AHìYìK" and "AKERUSEY" both on a triple-word-score netted me 129 points in a single turn! Hooray for attributive markers! (I don't think any of us will ever beat Eywa, though...10000 is a tall order!)

Hehe, that's indeed a good one! Congrats! As for Eywa: Well, she is fairly good, with all the accumulated wisdom of generations. But who knows, maybe someday she'll be replaced by an RDA officer who absolutely sucks at Blue Monkey Language.

Quote
Basically, the game works great! Ngeyä uvan lu txantsan, ma 'eylan, ulte oel nasyew uvan sivi smukhu krr a tsun! Sìlpey oe tsnì smukanìl sì smukel apxay uvanit ngeyä uvan sayi mìzusawkrr!

I'll have some more commentary for you once I play through a couple more games, hopefully this time with people!
Irayo, ma 'eylan! Nìteng sìlpey oe tsnì tsayun uvan sivi sutehu ye'rìn.

Kìyevame, and thanks for your kind words! :)

Visit Our Dictionary for eBook readers, The Na'vi Word Puzzle Game and the Cryptogram Generator
srake tsun pivlltxe san [ˈɔaχkat͡slʃwɔaf]?

Niwantaw

1) this is awesome
2) offtopic - isn't your profile pic the soviet leader in red alert 2? (until Yuri kills him)
Only mostly AWOL.

eanayo

#7
Ma Tawtute akawng,

Quote
2) offtopic - isn't your profile pic the soviet leader in red alert 2? (until Yuri kills him)

Nope, that's General Burkhalter (played by Leon Askin) from the 1960's TV series Hogan's Heroes. My favourite character from that show. :)

Visit Our Dictionary for eBook readers, The Na'vi Word Puzzle Game and the Cryptogram Generator
srake tsun pivlltxe san [ˈɔaχkat͡slʃwɔaf]?