I guess I can take care of translating the game to French. I kinda want to sneak peek into that beast's source code too I stopped calc programming though, so I won't help with that.
» Forum
> Your Projects
Yeah! French is probably the first translation I'd like to include. Translating may be a chore. Right now there are 3 text source files: ti82 version, ti8x version, and common text. Getting the text into the game may be tedius due to the need to center some texts within existing graphics, but I might have that covered. And I should probably throw together a README file sooner or later.
Here's one usability question:
So currently, when you create a new game, you get to select a 5-letter nickname for that save file. The nickname can be almost anything you want. But in TI-OS, those files will actually be named RW2Gx (with x being an integer) in order to make these files easy for the game to locate. Would having two separate names like this be a major annoyance, or is it not a big deal?
Other Progress:
- Added a "cinematics-only" map for cutscenes and special dialogs
- Created/wrote opening dialog
- Oceanside quests programmed: 4 of 6 (the boss is #6)
In Progress:
- Code cleanup
- Boss attack patterns
Here's one usability question:
So currently, when you create a new game, you get to select a 5-letter nickname for that save file. The nickname can be almost anything you want. But in TI-OS, those files will actually be named RW2Gx (with x being an integer) in order to make these files easy for the game to locate. Would having two separate names like this be a major annoyance, or is it not a big deal?
Other Progress:
- Added a "cinematics-only" map for cutscenes and special dialogs
- Created/wrote opening dialog
- Oceanside quests programmed: 4 of 6 (the boss is #6)
In Progress:
- Code cleanup
- Boss attack patterns
Quote:
Would having two separate names like this be a major annoyance, or is it not a big deal?
I could see the confusion if you wanted to delete one of the save files but weren't sure which was which. Perhaps the menu where you select a save file could list the TI-OS name of the save in parentheses or something?
Keep up the great work! And I think English and French translations make a lot of sense.
KermMartian wrote:
Perhaps the menu where you select a save file could list the TI-OS name of the save in parentheses or something?
This seems like a good solution.
Alternatively just list the slot number corresponding to the x in RW2Gx
Okay, there is some space in the screen where I can probably fit that string in. In later builds, it might also display the file name when you save the game from the battlefield. Right now, it only asks you: "Save to file?" So maybe it could become: "Save to file: RW2Gx.8xv."
The text translation should be pretty straight-forward for basic strings. For character dialogs, I've been tokenizing commonly-used words like "oceanside" to get the game to use less memory. Anyone helping translate text8x.asm or text.asm can probably just ignore that system.
This weekend I'll mostly focus on the boss area, and freeing up more room in flash page 1. Non playable characters are now able to loan out items, and then collect them back. I'll need to add a captive dialog feature to some of these conversations and prevent the player from leaving without an item or setting an important story-tracker flag.
Recent:
- Flash Page 1 partially cleaned up
- README.txt (English version) finished
In Progress:
- Captive dialogs
- Code cleanup
- Boss attack patterns
- Oceanside quest #5 of 6 (in progress)
- Oceanside quest #6 of 6 (in progress)
- Move more code off page 1
- (Optional) Wrap text at runtime instead of "compile" time
The text translation should be pretty straight-forward for basic strings. For character dialogs, I've been tokenizing commonly-used words like "oceanside" to get the game to use less memory. Anyone helping translate text8x.asm or text.asm can probably just ignore that system.
This weekend I'll mostly focus on the boss area, and freeing up more room in flash page 1. Non playable characters are now able to loan out items, and then collect them back. I'll need to add a captive dialog feature to some of these conversations and prevent the player from leaving without an item or setting an important story-tracker flag.
Recent:
- Flash Page 1 partially cleaned up
- README.txt (English version) finished
In Progress:
- Captive dialogs
- Code cleanup
- Boss attack patterns
- Oceanside quest #5 of 6 (in progress)
- Oceanside quest #6 of 6 (in progress)
- Move more code off page 1
- (Optional) Wrap text at runtime instead of "compile" time
So...much...code!
Most of the named characters in the game will have a 16x16 avatar in order to help the player keep track of their names. Because their names aren't provided with the avatar, I'm rewriting some dialogs to make sure each character is properly introduced.
Anyway, I'm really hoping to have the Oceanside boss attack patterns done this week. This is the first boss in the game with a pre-set attack pattern.
Recent:
- Dialog code improved
- Oceanside quest #5 is complete
- Dialogs can now activate quick-travel
In Progress this week:
- Oceanside boss attack patterns
- Code cleanup
- Spell-checking
- (Optional) Wrap text at runtime instead of "compile" time
Most of the named characters in the game will have a 16x16 avatar in order to help the player keep track of their names. Because their names aren't provided with the avatar, I'm rewriting some dialogs to make sure each character is properly introduced.
Anyway, I'm really hoping to have the Oceanside boss attack patterns done this week. This is the first boss in the game with a pre-set attack pattern.
Recent:
- Dialog code improved
- Oceanside quest #5 is complete
- Dialogs can now activate quick-travel
In Progress this week:
- Oceanside boss attack patterns
- Code cleanup
- Spell-checking
- (Optional) Wrap text at runtime instead of "compile" time
Wow, great news! It's Spring Festival here in China so i might have some time to look through the code, did you get the GitHub stuff sorted out?
Just the readme so far. I'll probably add the text.asm later after I make more progress on the code cleanup; unless anyone wants to start translating right away. Once I release the open beta, I'll post the source repository and probably some dev notes.
All the new character dialogs are written in plaintext. The older stuff uses a basic dictionary compression scheme where common words and the names of items are substituted with 16-bit characters. Line breaks also had to be entered manually; and unfortunately, I never automated either of those processes. After I do some more code cleanup, I'll probably put together a utility to automate this for myself and any translators.
Interestingly, I thought doing a Chinese/Hanzi translation would also be a cool project after I get the open beta released. I don't know terribly much about Chinese character encoding, but apparently there is at least 1 TI calc game using simplified han--unless I was hallucinating.
In Progress this week:
- Oceanside boss attack patterns
- More code cleanup
- Spell-checking
- (Optional) Wrap text at runtime
All the new character dialogs are written in plaintext. The older stuff uses a basic dictionary compression scheme where common words and the names of items are substituted with 16-bit characters. Line breaks also had to be entered manually; and unfortunately, I never automated either of those processes. After I do some more code cleanup, I'll probably put together a utility to automate this for myself and any translators.
Interestingly, I thought doing a Chinese/Hanzi translation would also be a cool project after I get the open beta released. I don't know terribly much about Chinese character encoding, but apparently there is at least 1 TI calc game using simplified han--unless I was hallucinating.
In Progress this week:
- Oceanside boss attack patterns
- More code cleanup
- Spell-checking
- (Optional) Wrap text at runtime
Keep up the excellent work, Dianzi tian (I keep wondering if it's valid and appreciated to abbreviate that to Dianzi; would you prefer the full username?). I'm idly curious if you're using Git or Mercurial for this; because my GitHub is public and my personal Mercurial repo is private, I tend to track all my personal calculator-related projects with hg and use git for projects that I want to be public, but a smarter thing to do would be to pick the version control software that I prefer for each project. I'm impressed that you took the time to do all that manual encoding of line breaks and simple compression, and if you would like some computer programmers to help you build an automated tool for those, I'm sure a polite request to Cemetech's computer-programming members would be well-received.
Yeeesss! Either username is cool. Yep, any help automating the text encoding will be a definite plus. Right now I'm using a public github repository for the readme file and issue tracking; with Github's GUI for Windows. I wouldn't mind hosted the working versions on Mercurial or a private Github (Github is $7/month for a private repository, which isn't unreasonable).
You don't still use that Python spriting tool I made for the Sonic project do you?
As far as the text compression scheme goes, to what extent have you analyzed the relevant probability distribution, or have a corpus available for analysis?
As far as the text compression scheme goes, to what extent have you analyzed the relevant probability distribution, or have a corpus available for analysis?
Dianzi tian wrote:
I wouldn't mind hosted the working versions on Mercurial or a private Github (Github is $7/month for a private repository, which isn't unreasonable).
Have you looked at Bitbucket? They offer unlimited private repos for free.
This account is no longer active for the time being.
http://i.stack.imgur.com/TdrW7.gif
http://i.stack.imgur.com/TdrW7.gif
Github is far more popular than Bitbucket, though.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.
Dianzi tian wrote:
Interestingly, I thought doing a Chinese/Hanzi translation would also be a cool project after I get the open beta released. I don't know terribly much about Chinese character encoding, but apparently there is at least 1 TI calc game using simplified han--unless I was hallucinating.
Recently (ie within the past year or two) there were several 89 games (ports of games on old phones and stuff) written by a Chinese programmer. The 89 screen is a bit better suited for Chinese characters, but we could probably work something out for the z80 calcs, for example this set of fonts: http://www.china-e.com.cn/en/fonts/Bitmap.htm (some supposedly as small as 12x12). There was also a GB project to display Chinese characters (http://www.mqp.com/fun/gb_chi.htm), unfortunately there was no source code released for the version with Chinese (simplified/traditional) support, but i believe the fonts are available (you may need to use archive.org to get to them, though). I also just came across this discussion at Stack Exchange:
http://chinese.stackexchange.com/questions/16669/lowest-pixel-resolution-needed-to-support-chinese
16x16 would be ideal (that's what most GBA/NDS games use), but we could probably get by with 12x12. When the text is finished, i could help translate it into Chinese (i've got a few Chinese friends who could help out as well). If you wanted any help with other small stuff in the engine (eg. text wrapping) i could do that, as well. Text wrapping is convenient, but space-wise it doesn't really save anything, since you're basically replacing the line break with a space. But my text engines generally have text wrapping since i hate writing computer programs, i prefer just to use asm
EDIT: Btw, that 8x8 font is surprisingly readable. As for translations, i could help out with Chinese and Spanish
elfprince13 wrote:
You don't still use that Python spriting tool I made for the Sonic project do you?
As far as the text compression scheme goes, to what extent have you analyzed the relevant probability distribution, or have a corpus available for analysis?
As far as the text compression scheme goes, to what extent have you analyzed the relevant probability distribution, or have a corpus available for analysis?
D'oh! I'll need to look in my backup disks and recover the Sonic folders. I haven't looked into the statistics yet. I'll probably post the full text later this weekend, but here's an excerpt below. Breifly I started looking at Markov chains compression. I would guess this might be especially handy for English texts since we use a relatively small chunk of the full TI-8x character space.
Code:
; DIALOG 27
dia_dr_hiri_intro:
.db HIRI
.db "You were attacked by",0
.db "battle bots today?",0,dEND,d2ND
.db HIRI
.db "I thought that",0
.db "technology was",0
.db "outlawed!",0,dEND,d2ND
.db HIRI
.db "Curious",$EE,shELLIPSIS,dEND,d2ND
.db HIRI
.db "Could you capture one?",0,dEND,d2ND
.db EDGAR
.db "Uh",$EE,shELLIPSIS,"Well",$EE,shELLIPSIS,0,dEND,d2ND
.db HIRI
.db dITEM_DROP,30 ; <-- Borrowed Zapper is dropped for the player
.db dITEM_DROP,23 ; <-- Battery is dropped for the player
.db "Great! Stun one with",0
.db "this ZAPPER. And bring",0
.db "it here.",0,dEND,d2ND
.db HIRI
.db dSTORY_TRACK,0,(1<<TalkedToHIRI) ; <-- Signal the game that you met HIRI
.db "I must see for myself!",0,dEND
Some side notes: Right now, this system is very heavy on end-of-line characters, which I might try to fix during this code cleanup. But basically, it's mostly plaintext, with occasional escape characters to trigger special events. Also, I think my use of the escape character for the elipsis might be obsolete due to recent code changes. This could be another code cleanup item.
To limit overhead, imagined using a PC-based utility to rank the most-frequent words in the entire game. The output would be 1 dictionary source file containing only highly-ranked words (maybe the top 256), plus 1 compressed file which would use an escape character and an index to reference a word from the dictionary.
Also, I did try out the current graphics compression algorithm on the text. This had negative compression for most text strings. I'll upload the full dialogs source file later this weekend, since the Oceanside story seems to be pretty much done.
Quote:
Recently (ie within the past year or two) there were several 89 games (ports of games on old phones and stuff) written by a Chinese programmer. The 89 screen is a bit better suited for Chinese characters, but we could probably work something out for the z80 calcs, for example this set of fonts: http://www.china-e.com.cn/en/fonts/Bitmap.htm (some supposedly as small as 12x12). There was also a GB project to display Chinese characters (http://www.mqp.com/fun/gb_chi.htm), unfortunately there was no source code released for the version with Chinese (simplified/traditional) support, but i believe the fonts are available (you may need to use archive.org to get to them, though). I also just came across this discussion at Stack Exchange:
http://chinese.stackexchange.com/questions/16669/lowest-pixel-resolution-needed-to-support-chinese
16x16 would be ideal (that's what most GBA/NDS games use), but we could probably get by with 12x12. When the text is finished, i could help translate it into Chinese (i've got a few Chinese friends who could help out as well). If you wanted any help with other small stuff in the engine (eg. text wrapping) i could do that, as well. Text wrapping is convenient, but space-wise it doesn't really save anything, since you're basically replacing the line break with a space. But my text engines generally have text wrapping since i hate writing computer programs, i prefer just to use asm Razz
http://chinese.stackexchange.com/questions/16669/lowest-pixel-resolution-needed-to-support-chinese
16x16 would be ideal (that's what most GBA/NDS games use), but we could probably get by with 12x12. When the text is finished, i could help translate it into Chinese (i've got a few Chinese friends who could help out as well). If you wanted any help with other small stuff in the engine (eg. text wrapping) i could do that, as well. Text wrapping is convenient, but space-wise it doesn't really save anything, since you're basically replacing the line break with a space. But my text engines generally have text wrapping since i hate writing computer programs, i prefer just to use asm Razz
Yessss! It was Zhen Zeng's Magic Land for TI-68K(神州) that I was thinking of. For simplified Han, I think the 8x8 to 12x12 range looks reasonable. The character dialogs might require some creative re-writing to avoid characters with a very large number of strokes. 12x12 or 16x16 larger would be a must for Kanji or traditional Han. Right now, the text buffer is a 96x19 pixel area. This can be extended a few more pixels if needed.
In progress:
- [Next] Boss HP meter
- Boss balancing (attack rate / armor)
- Adding text source to repository
- Code cleanup
- Spell-checking
- (Optional) Wrap text at runtime
Featured items: Meta-Armor and Battery
Here's a somewhat recent, and very practical item: the META ARMOR! As you are probably aware, any enemy that you touch will not only inflict damage; but also cause massive knockback that will slam you into walls and other solid objects. That's where meta armor comes in! Just don this always-handy item, and it will bare the brunt of the damage. It will also protect your other items from damage!
The armor is made of a liquid meta-material that requires you also carry a battery for constant power. To see how much health your meta-armor has left, just look at its life bar in the item menu.
- [Next] Boss HP meter
- Boss balancing (attack rate / armor)
- Code cleanup
- Spell-checking
- (Optional) Wrap text at runtime
Here's a somewhat recent, and very practical item: the META ARMOR! As you are probably aware, any enemy that you touch will not only inflict damage; but also cause massive knockback that will slam you into walls and other solid objects. That's where meta armor comes in! Just don this always-handy item, and it will bare the brunt of the damage. It will also protect your other items from damage!
The armor is made of a liquid meta-material that requires you also carry a battery for constant power. To see how much health your meta-armor has left, just look at its life bar in the item menu.
- [Next] Boss HP meter
- Boss balancing (attack rate / armor)
- Code cleanup
- Spell-checking
- (Optional) Wrap text at runtime
This really looks amazing, Dianzi! It's great looking back through this thread and seeing the gradual progress over the last year and a half
Quote:
This really looks amazing, Dianzi! It's great looking back through this thread and seeing the gradual progress over the last year and a half Smile
Yep! It's really been a huge art/code project. I'm really looking forward to getting back into the post-Oceanside chapters, which are already mapped and hopefully won't take quite so long to code.
More Proximity-Triggered Events
This week I'll be placing a few more proximity-triggered events (which will of course be invisible in the released game). The upcoming events are mostly there to provide hints and restrict progress to certain areas until other objectives are met. In the screenshot, the second event not only displays text, but also cuts off access to the Oceanside boss until you've advanced the plot further.
I've posted the draft README file on https://github.com/RobotwarTI/robotwar2-doc/blob/master/ROBOTWAR2.TXT . The text.asm and text8x.asm files will be online soon--probably tomorrow.
Recent:
- Oceanside boss: COMPLETED!
- Boss HP meter added
- Improved cinematic effects
- Some improvements to code commenting
In Progress this week:
- Conditional object/event placement
- On-calc testing
Oh wow, this just keeps getting better and better! Any idea when a playable version might become available? I'm still really impressed with the amount of code that went into this; great work.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
» Go to Registration page
» Go to Registration page
Page 6 of 8
» All times are UTC - 5 Hours
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
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
Advertisement