Random thoughts
- When possible, use ROM space instead of RAM space. For instance, NPC-written letters are always based off of one of the game's pre-written templates, with the only differences being the occasional catchphrase, number, name, etc. By just storing the template ID and the template's needed variables, you could shrink almost any NPC-written letter down to 16 bytes or so worth of SRAM data. You could also apply a similar approach to NPC homes, which happen to offer very little in the way of player customization.
- Likewise, you might get better results when compressing letters if you use a clever dictionary-compression scheme rather than standard huffman-encoding. For instance, the values $00-$BF could be something like a list of 200 common words, while the values $C0-CF could point to different lists of common words (with the next byte or two determining the word). Values $D0-FF could be used similarly to other townsfolk, ingame items/locations, numbers, punctuation marks, and so on. Spacing between words and basic capitalization could be automated. The only downside I see to this approach is that it relies on the player knowing how to spell (in English, no less). (And I have no idea if it would be more efficient than huffman anyway.)
- Decreasing the number of players from 4 to 2 would put you right next to the 8KB memory limit.
- In the acre that serves as the town dump, X & Y coordinates for most objects would be unneeded.
--76.121.83.77 05:05, 10 December 2009 (UTC)
- A couple issues:
- Sure, word-based Huffman coding is more efficient than letter-based. That's why I planned to use "Huffword" coding in an e-book reader for NES, at least until it was discovered that a DVD player's built-in emulator was incompatible with the tricks that my VWF engine uses to expand text to the full screen. The problem with lossless compression is that you can never guarantee the ratio unless the incoming data had internal fragmentation. It's good for the safe deposit box at the post office, where the player won't notice if a letter happens to be bigger than another. But in letters in the player's inventory, you have to allow for the largest letter, and that would be a letter written by a player who can't spell. The "ink" metaphor for storage space loses believability once a bonus for good spelling enters the equation.
- Controller ports do not determine number of players in a strictly alternating game like AC. Part of the game involves writing letters not only to NPCs but also to other players. Even Zelda had 3 players, and the files didn't interact. If I did cut players, I'd have to compensate for the lack of player-to-player letter writing by making the AC clone into the hub of a more expansive RPG, a little like Shenmue.
- And in the DS and Wii games, the town dump isn't an acre; it's a box inside the post office, stored as a list of items. They already don't have coordinates. --Tepples 05:44, 10 December 2009 (UTC)
- First, a reply to your reply:
- Huffword... somehow I feel slightly embarrassed that you summarized in one word what I spent 100 explaining. :P
- I was more suggesting that as a last-ditch option than real suggestion. However, you say that you want DX Town to "provide a framework on which an RPG can build", so perhaps focusing less on the "communication" aspect in favor of the RPG aspects might help you make your engine more suited for that purpose. It's your call.
- I've only played the Gamecube game, so I'm in the dark when it comes to changes the more recent games made.
- Secondly, some more thoughts: Like you said on the non-talk page, perhaps a bottom-up (or middle-out) approach would be a better way to look at this. We could start by identifying what makes Animal Crossing what it is. For the sake of (my) time, I'll just focus on the "communication" (read: letters) aspect. Basically, communication in Animal Crossing can be divided into 3 types: NPC»Player, Player»NPC, and Player»Player. Each type can be handled differently by the game:
- NPC»Player: Easily the simplest to handle. Like I mentioned earlier, since NPC letters are always based on templates, you could just store the template ID# and the template's needed variables. The only problem is that with such little space NPCs won't be able to quote strings of texts from letters you sent them (NPCs do this in Animal Crossing, right?).
- Player»NPC: Once a letter is written, the NPC reaction could be determined by the presence/absence of certain words (eg "hate" "love" "Thanks" etc.) and a string of text pulled out of it for future quoting by the NPC (thus solving the NPC quoting problem mentioned above). After this is done, the actual text of the letter can be discarded. However, this method does present a few problems; namely, the NPC data should only be changed once the letter has been read. Thus, some sort of queue system would need to be put into place
- Player»Player: This is the tough one, as there is no way you could get away with discarding any text. Thus, since space is the issue here (even with compression), there would need to be a global limit to P2P letters in the system. However, it might annoy players if they aren't able to send letters to other players when by all other accounts they should. Perhaps it might be a good idea to scrap letters in this case and find a different metaphor for P2P communication that imposes the global limit without seeming arbitrary. The first idea that comes to my mind is each player's house having a billboard or something in front of it that could be written on (though I'm sure there are better ideas).
- I haven't put a ton of thought into this, but it's a start.
- --
76.121.83.77 21:50, 11 December 2009 (UTC)
- Your billboard idea is already in all three AC games. It's located in the human ghetto of the GameCube game (B-3) and in front of the town hall in the DS and Wii games. --Tepples 12:55, 7 October 2011 (MST)
Penalty for bad spelling
The "ink" metaphor for storage space loses believability once a bonus for good spelling enters the equation.
What if we rephrase this as a penalty for bad spelling? Specifically, an NPC could read over the shoulder of the player and get angry / spill the ink whenever a word is spelled incorrectly. Are there any existing Animal Crossing NPCs like this? (Sorry, I'm not as familiar with the series as I should be.) What do you think? Eighty5cacao 18:42, 21 December 2011 (MST)
- NPCs do respond more positively when more of the words in a letter are recognized, but that's it. As for snoo-pingas-usual (I see) while the player is typing out a letter, I don't remember that ever happening to me on AC for GameCube, DS, or Wii. If that actually happened in the game, Tom Nook would probably have been the first to do it during the tutorial. --Tepples 19:17, 21 December 2011 (MST)