Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => Topic started by: Insorak on December 08, 2009, 06:20:37 pm

Title: Anti-RPG RPG
Post by: Insorak on December 08, 2009, 06:20:37 pm
Inspired by Illusiat, powered by TI, and running on glucose, I have decided to program a sort of anti-RPG, in which you seek to help your master destroy the world, instead of rescuing it! Hence, it will be called Anti-RPG, due to the role reversal here.

I’ve just started coding this, and hope to finish within a reasonable span of time (three months, give or take a while) barring catastrophic RAM clear, etc. (It happens. I was programming in the shower once, dropped the calculator, and got a RAM clear. That’s NEVER fun.) Like Illusiat, it’s going to be written in pure BASIC, with a little bit of xlib for flavor (i.e. unarchiving). Of course, I’m not completely vapid, uninteresting, and derivative (pardon the math pun), so I don’t intend for this to be an exact clone. Where’s the fun in that?

I’m planning on making four character classes: Defiler (warrior type), Necromancer (mage type), Thief (think speed), and Psion (super mage type, but also super weak physically). Each will come equipped with its own set of skills; advancing to higher levels unlocks more powerful and useful skills (max level is 50). Thus, replay value will be increased somewhat, as hopefully each class will be played sort of differently. (I’d be surprised if you could melee your way through the Psion class, the way I’ve planned it.)

Possible ideas (if not too difficult/bulky to implement): status ailments on both you and monsters, a “pillage” feature for towns where you raid the town, gaining massive amounts of loot but no longer being able to use it (you are evil, after all), an equipment system (gotta use L3 for something), and whatever random delightful ideas you guys suggest.

I don’t believe I’ll be needing any help with this, so bring in the suggestions and I’ll see what I can do! :P

Random note (more for me not to forget than for your informative pleasure): [A] is very important. Do not modify or delete [A]. (It’s the world map. No, not your screen map. The WORLD map.)
Title: Re: Anti-RPG RPG
Post by: Eeems on December 08, 2009, 06:27:02 pm
Wait you program in the shower 0.o
are you only using club for un/archiving? If so I would switch to a different asm lib, like a small RAM based program
sounds cool! Can't wait for some progress/screenshots!
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 08, 2009, 06:29:55 pm
Sounds cool.  Will you use Xcopy for (un)archiving? It's probably better than xlib for that.  It's what Illusiat 13 uses.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 08, 2009, 06:37:59 pm
Uhh... occasionally, when I really want that extra shower time to program, yeah. I was working on a complicated program to calculate exact values of trigonometric expressions (give exact answers, like pi/4 or sqrt2/3, mostly to test my skill, but also for the utility for it. Lots of interesting expressions with strings, and I do believe I learned a bit when I actually finished it). I had hit a particularly difficult impasse when in the shower, put the calc on the towel rack to think (and shampoo), and it fell. Bam – instant RAM clear. (And if anyone knows of a more efficient number to string routine than LinReg(ax+b) Y0:Eqtn>String, please speak up now!)

Ohyeah. I seem to have forgotten about xcopy. Stupid me. I’ll have to look into the syntax for the proper usage for that (read: I want to avoid a RAM clear because of sheer stupidity).

After that program I mentioned above, I’m now addicted to strings. Half of my program’s functionality has to do with strings :P
Title: Re: Anti-RPG RPG
Post by: Eeems on December 08, 2009, 06:45:06 pm
Ah lol
hmmm, that would be bad :p
lol, be warned, they are slower then real variables...especially the longer they get.
Title: Re: Anti-RPG RPG
Post by: agent84 on December 08, 2009, 07:01:09 pm
how do you program in the shower?  o.0
Or do you do wut I do, and put it in a zip-loc bag?  lol
Title: Re: Anti-RPG RPG
Post by: Insorak on December 08, 2009, 07:04:11 pm
There’s no harm in storing monster generation information, the name of the map, and the map itself all in the same string. :P

OMG THAT ZIPLOC BAG IS THE BEST IDEA EVER I CANNOT BELIEVE I HAVE NEVER THOUGHT OF THAT!!! I just try to hold it out of the water beam, and wipe it with the towel if it gets wet, LOL.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 08, 2009, 07:10:04 pm
lol!

As for that string, I'm doing that in a program. :)
Title: Re: Anti-RPG RPG
Post by: agent84 on December 08, 2009, 07:12:59 pm
Dude, that's how i text in the shower :p.

btw: This program seems very interesting, keep it up man!
Title: Re: Anti-RPG RPG
Post by: Eeems on December 08, 2009, 07:29:11 pm
No comment
Title: Re: Anti-RPG RPG
Post by: Geekboy1011 on December 08, 2009, 07:55:02 pm
omg thats .....well oddd ( the shower things)



back on topic  this sounds great i cant wait to see how it turns out XD
Title: Re: Anti-RPG RPG
Post by: simplethinker on December 08, 2009, 08:54:51 pm
I must say, I've always wanted a game where the object is to destroy the world instead of save it!  This sounds promising ;D
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 09, 2009, 02:25:10 am
wow I did code calcs 10 hours a day back in 2002, but not enough to do it in the shower. Water doesn't mix too well with electronic x.x
Title: Re: Anti-RPG RPG
Post by: JoeyBelgier on December 09, 2009, 06:22:04 am
Dude, that's how i text in the shower :p.
Me too Dx, or in bath
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 09, 2009, 04:22:20 pm
Are you planning ASCII graphics like Illusiat 13?

Will you be replicating areas from the Illusiat series at all?

...or is this it's own game that feels like the Illusiat series?
Title: Re: Anti-RPG RPG
Post by: Insorak on December 09, 2009, 05:43:07 pm
I'm thinking I'll have a "Nostalgia" area that makes some references to Illusiat. ("You enter the magic portal. This place looks oddly familiar...") But no, on the whole the game will be its own thing.

Movement will definitely feel like the Illusiat series - you're a pi (instead an omega) moving across an ASCII map. I might make an RPG with graphical tiles someday, but not now. The skills will be completely different from those of Illusiat (no more elemental weaknesses/resists; every class has a set of different skills), and fighting will be changed somewhat with status ailments.

I also decided to add a skill point system. When you use a skill enough, you can upgrade it to a higher level with a number of skill points equal to the skill's current level. You'll get one skill point to upgrade with every other level up. So that's 25 skill points for 7 skills (6 class-unique and the attack skill). So obviously, skill distribution is important. Just so you don't get screwed over by your abysmal choice of skill point use, I'll probably also add a Re-Spec option at the cost of some gold (dependent on your level).
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 09, 2009, 09:23:17 pm
Cool! That sounds really awesome! How long have you been planing this?
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 09, 2009, 10:40:24 pm
I like this idea, keep up the good work :)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 09, 2009, 11:25:03 pm
Thanks DJ. From you that's quite a compliment. :)

Cool! That sounds really awesome! How long have you been planing this?
The ideas have been in my head vaguely for quite a while. I'm now just refining them somewhat and trying to figure out which ones are completely impractical and which ones are salvageable.

Today, I programmed "darkness" for some of the maps. (And programmed some more maps than the nine I had been using to test movement and magic portals, lol.) The game will usually run at a contrast of 23. When a room is "dark", the contrast will be turned up to 35. (The first portion of the game has a dark forest and a dark cave. I'll post the program later, so you can see what I mean.) Of course, xlib is used for this, making it marginally more useful in this game ;)

That also gave me the idea for blindness - a status ailment. While blind, your strength/intelligence could be reduced or something like that, and on the map your contrast would be turned down to 0 until the blindness counter wears off. An interesting idea. Maybe poison as well - reduces your health each turn in battle and each step you walk outside of battle. (I probably got THAT idea from playing too much Pokemon when I was 10.)

Next up: fighting system! Always the buggiest part of whatever I try to make. x.x And then 24 different skills. aargh - that might take a while.

When I finish an appreciable part of the game, I'll post it here (sans fighting, probably) and you guys can take a peek at it.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 10, 2009, 01:41:40 am
Cool, with some screenshots? :D
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 10, 2009, 10:14:27 am
I'm anti-xLib for just using it when other programs are possible.  You can use this to change the contrast: http://www.ticalc.org/archives/files/fileinfo/125/12500.html
I'm not sure how it works; I've never tried it.  Are there any other programs that change the contrast? (Celtic II mabey)

The reason I'm anti-xLib-when-possible is because xLib installs a parser hook.  This parser hook SLOWS DOWN BASIC PROGRAMS.  I think you'd want this game running at full speed, right.  In this case, I'd strongly advise not using xLib.

I really like your ideas and I can't wait for a screenshot.

Edit: Use Codex!  Since you already know how to use it, this could be a breeze.  Codex can change the contrast.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 10, 2009, 05:12:57 pm
true, I only recommend xLIB if you need most functions from it or need the speed from its advanced functions (I don't recommend anything else than Celtic III and xLIB for drawing sprites, it's too slow)
Title: Re: Anti-RPG RPG
Post by: Eeems on December 10, 2009, 05:52:06 pm
Yeah, it's also a drain on your archive...and if you don't use it for anything but one function
also, btw, it doesn't slow down the basic parser that much...it's not really that noticable
Title: Re: Anti-RPG RPG
Post by: Insorak on December 10, 2009, 06:35:01 pm
That's true. Xlib could probably be replaced with codex and xcopy. But then it takes up RAM. It's sort of a trade-off, really... but I think I can spare that 900ish bytes of RAM. I'm not THAT inefficient. :P

So what's the proper syntax for xcopy? (I don't happen to have a copy of I13 on my calc right now, and have no idea where my link cable is. x.x)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 10, 2009, 07:25:38 pm
I don't codex is best for you: It only moves the contrast up and down and you probably want a specific number.  I wonder if there is anything just like xLib's contrast function, but with just that.  (Hint Hint Asmers)

You could leave Codex (If you use it) in archive and put it in XTEMP001 or something whenever the program is run.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 10, 2009, 10:33:38 pm
Yeah, it's also a drain on your archive...and if you don't use it for anything but one function
also, btw, it doesn't slow down the basic parser that much...it's not really that noticable
It is a lot during empty For( loops, though. For(Z,0,1000:End will take about 50% longer with xLIB installed and twice longer with Omnicalc installed.

Also, remember that if you use a big ASM lib that is stored in RAM, you can run out of RAM very fast
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 10, 2009, 10:42:19 pm
Yeah, it's also a drain on your archive...and if you don't use it for anything but one function
also, btw, it doesn't slow down the basic parser that much...it's not really that noticable
It is a lot during empty For( loops, though. For(Z,0,1000:End will take about 50% longer with xLIB installed and twice longer with Omnicalc installed.

Also, remember that if you use a big ASM lib that is stored in RAM, you can run out of RAM very fast

Wait... if you have Omnicalc installed, it will be twice longer? I have Omnicalc installed on my calculator for using the FastApp/small font/fast catalogue (pressing Vars twice), etc. I don't use them on programming, but does it affect the programs to run slower???
Title: Re: Anti-RPG RPG
Post by: Eeems on December 10, 2009, 10:51:15 pm
Yeah it does...I wonder what the speed difference is on Celtic III
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 10, 2009, 10:52:42 pm
When Omnicalc is installed, TI-BASIC runs slower. However, since version 1.2 of Omnicalc, it is only really noticeable with empty for loops. In older versions it was extremly bad. An entire game could run twice slower than normal.

As for xLIB, when installed, it does something similar, like every apps that install hooks, but the speed barely drops. Same for Celtic III.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 10, 2009, 10:57:54 pm
It is a lot during empty For( loops, though. For(Z,0,1000:End will take about 50% longer with xLIB installed and twice longer with Omnicalc installed.

Also, remember that if you use a big ASM lib that is stored in RAM, you can run out of RAM very fast
Jesus Christ! WHAT!? Well, if that's the only thing that runs slower, I can get it to the timing I want with xlib, and everything will be fine (since I won't be removing xlib and having it run much faster).

Codex and xcopy aren't that big. I'm still pondering what to do about this one.

I'm really tired tonight (was practicing for a concert with others for a couple of hours, cramming for tests, taking notes on history now and it's 11pm) so I'll post some updates later. If I find my cable, maybe even programs/screenshots. :D
Title: Re: Anti-RPG RPG
Post by: Eeems on December 10, 2009, 10:58:33 pm
Also a way of getting around the empty loop problem is to use a rand10 statement for a short pause and a randint(1,3,_whatever you need_ for longer pauses it shouldn't slow down as much as loops
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 11, 2009, 06:48:08 am
I'd recommend not using xLib also becaues people will expect amazing graphics with xLib. If you don't have any, they will not like your program. :(
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 11, 2009, 01:40:06 pm
Well, if he decides to use most xLIB functions, even if he doesn't use the graphical stuff, I don't really see why it's such a problem to use it really. It's not how it's made that counts, it's what is made that does. If you only use a few functions (like unarchiving/inverted text color/contrast) I don't recommend it, though, since there are smaller libs out there, but in both cases, what if the person absolutely needs that 800 byte of RAM codex takes? I myself know in Illusiat 13 I had an hard time for a while having enough free RAM when certain programs are running. Had I used xLIB instead of Xcopy, that 184 bytes of additional RAM would have made a huge difference in how easy it would be to code the game. Instead, I had to change code from a 15 KB program to another and it took hours.
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 11, 2009, 01:43:18 pm
Well, I think some people think it is nuisance to install APPS and uninstall them.
If they use some other APPS and need to uninstall them, install Xlib to play game, and uninstall Xlib when done and install what you originally had, it gets annoying, especially you play the game in short periods of time frequently (like during math class/science class). However using asm programs doesn't require installment, just to be in the RAM file to make it work.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 11, 2009, 01:48:59 pm
Yeah true, but even then I don't see how annoying and tedious it can be to do that. If you use Omnicalc for example it just takes 3 seconds to press APPS, xLIB, 1 then 3. Maybe 5 if your APPS menu is filled with stuff. For doing the opposite (installing Omnicalc), all you do is open Omnicalc, then install, it aks you to overwrite hooks, you choose yes then it's done. You exit and it just took about 6 seconds.

You people are just narrow-minded... I'm out of this discussion now.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 11, 2009, 02:57:22 pm
Wow. I really didn't intend to cause such an enormous debate about ASM in RAM or xlib. For me, it's just a matter of convenience and efficiency; if I use xlib, the contrast changing takes at most 7 bytes for real(5,0,39. If I use an ASM program, it might be more than that, depending on the syntax the ASM program takes. Other than that, I see no real benefit either way.

If you guys are so against my using xlib, I'll gladly switch it with a contrast-changing program and xcopy. I'm not that lazy. (Even if I have to redo all my For(X,0,600:End loops ;) ) I think the largest program I'll be using is about 10kb, and my core programs will probably be about 5kb, so I won't mind that ~1kb difference from xcopy and another ASM program.

Calm down please, guys. This isn't an American election. ;) We don't need to attack each other because we're expressing our opinions.

DJ, was that 15kb program you were referring to some code for shopping/inventory management? I remember reading how you said that that code was enormous and took forever to make properly.

--

Okay, after all that, time for some updates on the program. Instead of working on the fighting code, I actually decided to work on the skills menu instead (since I've never done anything like that and I thought it was less likely to be buggy, haha yeah right). So now that's done. And in the process of doing that, I've made up all twenty-four skills as well. I still haven't decided what level each skill should be obtained at. Most of the stunning skills, poison moves, and self-improvement skills as well as some others (e.g. Necromancer's Cripple), can only be used once per fight.

Defiler
Vicious Hit - Has a 50% chance of doing double damage and a 50% chance of bypassing monster defense completely. (Will probably be super overpowered against monsters with super defense but no health. :P)
Wound - Makes the monster bleed for some damage each turn, and reduces defense. After some skill level, the wound is infected and poisoned, so there is significantly more damage per turn as well as strength reduction.
Regenerate - regains some health.
Knockout - stuns the enemy for one or several turns.
Avenger - attacks enemy for some amount of damage based on how much health you lost. Quite situational, but it's also going to be quite powerful.
Berserk - you go berserk. Increases your stats to insane amounts. (once per fight, obviously.)

Necromancer
Corruption - using ordinary melee damage formula, but damage based on intelligence instead of strength. Bonus to damage depending on skill level.
Sleep - stuns the enemy.
Drain Life - relatively weak attack which also steals some health.
Nightmare - can only be used while enemy is asleep. Does massive amount of damage (and wakes him up). But due to the adrenaline coursing through his body, the enemy's strength is increased.
Cripple - reduce strength, defense, and speed
Touch of Decay - a super version of poison, takes away lots of health and stats per turn

Thief
Backstab - sneaky move which does many times normal damage. Once per fight.
Poison Blade - slashes enemy with a poisoned blade. Enemy loses strength and health every turn.
Regenerate - heals.
Disable - kinda like defiler's Knockout.
Ambush - sneaky move that does lots of damage, but less than backstab. But it can be used more than once per fight.
Bloodblade - like Avenger, but the less health your enemy has, the more damage you do.

Psion
Psi Bolt - similar to corruption.
Blindness - reduces enemy's defense and makes him miss some percentage of the time (based on skill level). Lasts the whole fight.
Seal Wounds - heals.
Mind Crush - does some damage and reduces enemy's defense slightly. However, can be re-used.
Accelerate - augments your (dismal, as a Psion) speed greatly.
Mindflay - you suck your enemys' brains/lifeforce/whatever, doing large amounts of damage and healing yourself. (Anyone remember mindflayers from DnD? Anyone?)

I plan for speed to have a significantly greater influence on battles than in Illusiat. Here, you're going to get hit two or three times in a row quite often, and if your speed is high (or you're a thief) you can probably hit two or three times in a row quite often. Your melee attacks have a base accuracy of 95%, modified by your speed vs. the monster's.

Phew, that was a lot. Now to get to actually coding it... *wince* :P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 11, 2009, 03:28:09 pm
I just get kinda irritated when people start bashing games just because they are made in a certain way. This kinda stopped here but now I wonder if it isn't starting again. I hope not, because it can drive people away from programming, especially if they alerady released games. These people are the reason why I got my ticalc.org profile taken down (altough there was another big reason too) and why I no longer post about my projects anywhere else since about 3 years.

Anyway, for the 15 KB program, I am referring to the event programs in Illusiat 13. There are 3 of them, which are 15 KB each, approximately. That is because there are so many events and some conversations between NPCs, but I still tried to keep them in as less sub programs as possible

I like your class idea btw
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 11, 2009, 05:32:20 pm
Sorry, DJ. I didn't mean to be so narrow minded, but I think I was. :(
xLib = good. :) I just don't see the purpose in using it when there are smaller programs (xLib is 16,000+ bytes) out there.  However in low RAM situations I would agree that xLib is better to use.
(ztrumpet is done with this now too)

------

Those are really, really nice classes/skills!
Good luck, and have fun with the coding of it.  Let us know how many " if "s you use. :D
Title: Re: Anti-RPG RPG
Post by: Insorak on December 11, 2009, 06:24:18 pm
I currently have a section of code that's just like End:End:End:End:End.

I think I might actually have to rewrite it. I made a critical flaw in logic (can't re-spec with zero skill points remaining, that was supremely stupid). Aargh.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 11, 2009, 07:40:25 pm
Epiphany!

I managed to make it non-buggy, relatively fast, and awesome, while using only 1/3 the code I used before. (seq( and augment( commands abound, as well as some complicated boolean thingies.) Second time's the charm. :D
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 11, 2009, 07:54:42 pm
Nice! Congratz.
Title: Re: Anti-RPG RPG
Post by: Eeems on December 11, 2009, 08:00:41 pm
Yay! That's awesome!
(try to keep from doubleposting btw)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 11, 2009, 08:18:07 pm
(try to keep from doubleposting btw)
Sorry. I got excited. *blush* TI's default list commands that no ordinary calculator user would ever dare to look at are actually really useful here. This also provides the advantage that anyone looking at the code wouldn't dare press anything remotely close to the clear button - after writing it, even I have no idea what half of it does lol.

Code: [Select]
:Augment(seq(L3(X),X,3,15,2),{-.5,1})>=augment(20seq(L3(X),X,2,14,2)^2,{-L1(5)>=(10L1(6)^2)),1 --> LT2That was the worst of it. I basically tried to minimize the amount that would be executed in the Repeat:getKey loop. I wrote it so that it would generate three temporary lists, T1, T2, and T3, full of 0s and 1s, and in the Repeat:getKey loop, it would look at the inputs and decide if one of the buttons were pressed and the conditions were met. (The code there looks something like Repeat sum(Ans:getKey:Ans={92,93,94,82,83,84,72,45,31} and LT1 and not(LT2) and LT3:End.)

I have a concert tomorrow. I'll call it a day. :)
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 11, 2009, 08:35:23 pm
This is coming along really nice!  All the code/concepts are looking nice and the concept is awesome! :) Keep up the good work!
Title: Re: Anti-RPG RPG
Post by: Eeems on December 11, 2009, 10:10:17 pm
Wow, that's confusing....I don't think I'll ever be able to figure that out on my own....good thing I know what I know about coding or else I'd feel like such a newb right now
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 11, 2009, 11:36:09 pm
wow, that is quite a coding... I usually don't use seq(, since I never found an incident where I would need a list of 1s and 2s.
Good job! I love your classes too! I was thinking of similar thing in TLM
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 12, 2009, 11:03:15 am
Nice! That's a piece of work.  It's great to know commands llike seq and augment; they come in handy quite often.   How is the speed for that section of code? (seq is slow)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 12, 2009, 11:49:29 am
Yeah, seq( is relatively slow but it was the best solution I could find to my problem. The first idea was to do ALL the comparisons inside the Repeat:getKey loop, but that would make the loop itself take about 2 seconds per iteration and take up like 2 or 3 screens of code. (I backed up my files in a group and tried it that way afterwards. MUCH less efficient.)

The entire code to upgrade a skill, then loop back to the beginning and display the upgrade screen again, takes about one and a half seconds. (This is with xlib still, since I haven't found my cable yet.) So on the whole it's not bad. But it took forever to get my logic right. That -.5 you see in the first augment( has to do with the re-spec code and figuring out if you have enough gold to re-spec or not, simply because my brain was already too contorted to think of a better solution.  :o

How is the speed of augment(?
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 12, 2009, 11:59:35 am
There seems to be almost no speed loss due to Augment.  I was able to augment two 400 element lists and it took less than a fraction of a second.

I think binocmpf()or something has some slight speed advantage to seq (and can do the same thing kindof) but i don't know how to use it.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 12, 2009, 12:01:43 pm
Wow, nice. My opinion of TI went up a little. :P

Yeah, I learned about the binomial model in Stats last year and am pretty familiar with the mathematics of binomcdf( and binompdf( - they're probability density functions. But my problem with that was that you couldn't use them to manipulate list elements without a For( loop, and seq( is faster and easier to program than a For( loop, so I used seq( instead.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 12, 2009, 12:52:17 pm
Yeah seq( is very slow, but unfortunately, like Builderboy and despite Galandros trying desesperately to help me and force me to switch, I still could not understand Binomcdf(. In fact, I have troubles understanding Seq( too. In Illusiat 13, I pretty much just copied some code and trial and errored by changing each Seq( parameters and experiment what it does until it does what I want. I still couldn't get it afterward. (I use it for list compression, btw).
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 12, 2009, 01:39:48 pm
You can use binomcdf to make a list of 1s.  However, this dosn't help when you need to manipulate list elements, as Insorak stated above. :)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 12, 2009, 10:44:46 pm
Sorry, guys - no progress today except for laying out inventory screen (items are visible but you can't use any of them yet). I was super busy - had a concert this morning, made about $300, took a friend (and my page turner) to lunch/dinner, and had to do homework. I hate weekends :P

Anyways, the functionality of the binomcdf( command can be improved by the cumSum command. I forget the exact syntax, but I believe it gives a list of {1,2,3,...N}.

DJ, just think of seq( like a For loop - you enter a seq(function,variable,start,end) and it iterates with the variable the exact same way it would with a For loop.
Code: [Select]
:For(X,1,5
:X^2 -> L1(X
:End
:L1
would do the same thing as
Code: [Select]
:seq(X^2,X,1,5
I like seq( since it doesn't actually change the variable. And it's easier to write, and it's probably faster. Also, with seq(, you have your output directly in Ans, whereas with the For( loop you need to either store the elements to some list or use the augment( command.

I'm just not going to try to explain the binomial commands, though. That's a whole semester of Stats right there. :P


E: aargh, right - superscript tags don't work in code boxes. Silly me.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 12, 2009, 11:54:26 pm
Yeah I still have trouble figuring and remembering all the arguments for Seq everytime, especially when I got no for equivalent. Also, in my case, my list of 100 elements contains 2-digits numbers
Title: Re: Anti-RPG RPG
Post by: Galandros on December 14, 2009, 03:40:14 am
Yeah I still have trouble figuring and remembering all the arguments for Seq everytime, especially when I got no for equivalent. Also, in my case, my list of 100 elements contains 2-digits numbers
I forget many times the second argument and skip it. Or put without wanting the last optional argument for increase.

seq( must be the most used command with many arguments...
Title: Re: Anti-RPG RPG
Post by: Insorak on December 14, 2009, 02:38:47 pm
Yeah, seq( is fun. :D

Quote
I forget many times the second argument and skip it. Or put without wanting the last optional argument for increase.
Whoops! Much headdesking happened there? :-X

Unfortunately, I found a problem - a very major problem - that does not require the use of the seq( command.

While writing my movement engine, I somehow neglected to check for wall collisions. Basically, if a wall collision occurred, you would just get your x and y coordinates moved backwards and nothing else would happen. This would not be a problem, except when I implemented my code to call a fight, to take damage from poison, etc. you would still get poison damage and your blindness counter would still tick if you tried walking into a wall as well as regular movement. There's also the chance that you can get a fight after opening your menu.

Obviously, this sucks. I need to re-do my entire movement system, and being extremely busy right now (teachers like giving stuff before break x.x) it's probably going to take me a few days.

On the bright side, I drew out all the equipment (56 in total) and finished the inventory screen. It also uses some fancy list manipulations to prevent lots of If statements (I believe the code is H+sum(Ans{100,1000,99999,0,0,0,99999-->H. Basically Ans is a list containing which item you used, and the list it's multiplied by is the amount each item heals). :)

More to come later! After I get this mountain of homework out of the way, that is.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 14, 2009, 02:50:30 pm
ouch this sucks, I hope you can get some free time during Christmas break to code. Glad this is still progressing, though.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 14, 2009, 03:49:57 pm
I forget many times the second argument and skip it.
I don't know how many times I've done that. Too many!

Nice progress! Again I'm happy that you can program with such great lines of code.  I'm glad I can understand it, though.  Code like that both reduces the size of your code and makes it faster.  Great job!

As for the movement engine, I'm currently on the third or fourth version for Elmgon. :) Just keep recoding it and eventuallt it will work.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 14, 2009, 05:27:02 pm
Lists are fun. They’re like arrays, but better. :P

I swear, I became a better programmer overnight. I don’t even know how I thought of it – I had a brain flash or something like that! :D

Well, I managed to rewrite almost my entire movement engine without leaving anything out. (It wasn’t as tricky as I thought it would be.) The problem is, even though the program is smaller than the old one (730-odd bytes as opposed to 760-odd bytes), it runs at about 2/3 the speed and is almost painfully slow. It’s really frustrating, and I’m pretty sure it’s as optimized as it can be.

That’s also the problem with not using xlib. If I use xlib, I can get away with lots of If L6(1:real(5,0,2 statements. But without xlib, I need to use If L6(1:Then:2:Asm(prgmZ:End. Obviously, that consumes a lot more memory and is significantly slower. I’ve realized that it’s not just about those 200-odd bytes of RAM anymore – xlib affects the speed of your entire program considerably. The problem is made worse when this code occurs three times in your movement engine’s main loop.

But maybe without xlib it will run marginally faster since xlib slows down the whole OS. *looks up hexcode for contrast change on TI-BD and goes to test*

Tomorrow, I’ll stealborrow my friend’s link cable and see if I can get xcopy for a test run.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 14, 2009, 05:46:18 pm
Xcopy's syntax:
PrgmA to Xtemp001
1->X:"A":Asm(prgmXCOPY
Deleete prgmXcopy001
1->X:Asm(prgmXCOPY
It's pretty simple.

Please Note: You said it was slower, but due to the nature of the basic parser, If:Then:line(s):End is faster than If:line by quite a bit (2x faster I think).  But you make a good point. If you think it's better to use xLib then go for it!  There are pros and cons both ways.

Do you want us to look at the engine? If you post it here, I'm pretty sure there is speed to be found.
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 14, 2009, 05:47:31 pm
Code like that both reduces the size of your code and makes it faster.  Great job!

My favorite type of change :) Usually you are trading speed for size of visa-versa.

To bad it runs slower :( Do you know what it is that is slowing down the loop?  Maybe I could help, people say I'm good at making things fast, perhaps i could give a few suggestions :D
Title: Re: Anti-RPG RPG
Post by: Insorak on December 14, 2009, 06:19:37 pm
@ztrumpet: Not according to TI-BD, it isn’t: http://tibasicdev.wikidot.com/timings#toc3

The If:X structure is only considerably (20-fold) slower if one uses a For( loop, of which there are none in my movement engine. Otherwise, the speed is comparable (and even slightly faster).

And aahhh... xcopy uses the X variable. This could be slightly problematic, as my movement is stored (temporarily) in the variables X and Y before these variables are copied to L4(8 ) and L4(9). (Justification for this is the enormous toll saved on memory – X and Y take up one byte each, while L4(n) takes up an enormous five bytes. The default list variables take up TWO bytes each, which is extremely irritating.)

Does xcopy have deletion capabilities for the programs as well, or will I have to use another ASM library, since I don’t think I can manage otherwise? This is quite the interesting collection of ASM code I’m assembling (pun completely intended) ;)

I just tried it without xlib, and it didn't seem to run any faster. When I counted pixels there was a tiny difference, but not really enough to matter.

I would love some help with this devilish piece of code, builderboy :) I'll post it tomorrow (when I hijack my friend's link cable) but I'll just give some background information now (he brings his laptop to school and we only have lunch to do this, so I won't have time to type it out then):
Thanks for all the help and support so far, guys - I'm going to take a break (and do my homework) tonight! See you all tomorrow at noon :)

E - wait, do you guys just want the code or the actual files themselves to see how fast it runs? Code would be harder to do (my friend doesn't have a program editor on his computer).
Title: Re: Anti-RPG RPG
Post by: Eeems on December 14, 2009, 06:29:56 pm
Both could be done, just use sourcecoder 2 on cemetech.net
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 14, 2009, 06:40:04 pm
  • All the checks for stuff in L6 are completely necessary. (They're your status ailments.)

Its assumptions like that that leave room for optimization ;) Although I'd have to look at it to be sure.  Often times you can check whether or not you need to check, if you get my meaning.  It may be slower when you need to actually do the checking, but if you don't need to do the checking often, it will be much faster.  (I do have to see if this can be applied though)

Hope to see the code soon though!
Title: Re: Anti-RPG RPG
Post by: Insorak on December 14, 2009, 07:16:58 pm
I need to do that particular check every turn, actually - the counter ticks down once per turn :P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 14, 2009, 08:29:13 pm
Never use Y variable. Some TI-OS glitches causes it to be reset to 0 from time to time. You'll run into problems later.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 14, 2009, 10:01:07 pm
Never use Y variable. Some TI-OS glitches causes it to be reset to 0 from time to time. You'll run into problems later.
I am pretty sure these only deal with some draw-type commands and the graph screen.

@ztrumpet: Not according to TI-BD, it isn’t: http://tibasicdev.wikidot.com/timings#toc3
Ah, yes that would be correct when you have an empty If 1: statement.  However if you have If 1:"Blahblahblah (or mabey If A*SD*(2=H):"Hi I don't remember which is longer to matter; line of If or the next) as an example it would take the basic parser longer than an If:Then.  I'm not sure how it works exactly, but longer ifs are slower.  I wish I could explane it better. (I feel like that didn't make much sense :P)

Like I said, Without a program in a string it will detete the program. Like 1->X:Asm(prgmXCOPY

I can't wait to see your code. :)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 11:29:30 am
Lunch was extraordinarily hectic, so I will be posting code after school. I'm on one of my school's pathetic Macs right now (which, incidentally, doesn't have TI-Connect - imagine that!) so I can't transfer code right now. (I suppose I could just type it out, but I have better things to do with my time. :P)

Quote
Never use Y variable. Some TI-OS glitches causes it to be reset to 0 from time to time. You'll run into problems later.
I think ztrumpet is right - the Y variable automagically gets set to zero whenever you display the graph screen. However, I don't display the graph screen while I'm moving except if I go into the menu (during which I temporarily save the value of Y somewhere else). I've already run into problems with that in which I moved up a screen whenever I exited the menu. It was fixt rather fast.

ztrumpet, it made sense. I need to test that. If it's true (and not that I'm doubting you, but I like to test these things. There should be documentation for that somewhere, or else I can't read), then it would be an interesting speed-for-memory tradeoff (and a good excuse not to use xlib).

Okay, thanks for xcopy syntax. :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 01:50:36 pm
Lunch was extraordinarily hectic
A food fight occured? O.o

But yeah the Y glitch is something many people ran into before and they would wonder why their game would not work. Finally when they would post the code I would discover they used Y and that it was always reset to 0. I guess this might just be something to do with Graph screen indeed, though
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 15, 2009, 01:54:48 pm
I wonder why Y change and X doesn't???
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 02:00:56 pm
Yeah that always confused me. I mean, X is used by graph screen too afterward >.>
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 02:10:21 pm
Because the TI-BASIC parser is idiotic.

Okay, I've attached the files. Theta-G is the main file for the movement engine, and theta_G.txt is the source code for that file.

Thanks a bunch, guys! Appreciate it! :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 02:44:46 pm
Cool, I'll check out when I get some time
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 15, 2009, 04:27:56 pm
What do we run first?  All the programs give silly little errors, except for thetaMO.  I really like how it looks, though.

Here's the code for those like Eeems that can't open zips. (Ipod)
Code: [Select]
:While 1
:¦ "θM"+sub("0123456789",{L4}(1),1
:¦ real(10,0,0
:¦ {L4}(2→X
:¦ prgmXTEMP000
:¦ real(10,1,0
:¦ Output(1,1,Str1
:¦ Output({L4}(9),{L4}(8),"π
:¦ {L4}(9→Y:{L4}(8→X
:¦ Repeat X=17 or Y=9 or not(XY
:¦ ¦ {0 //This is unnessecary, as a Repeat loop is a post-test loop.
:¦ ¦ Repeat sum(Ans //change this to sum(Ans={24,25,26,34,21,15
:¦ ¦ ¦ getKey // add →θ
:¦ ¦ ¦ Ans={24,25,26,34,21,15 //get rid of this
:¦ ¦ End
:¦ ¦ sum(Ans{24,25,26,34,21,15→θ //Get rid of this
:¦ ¦ If θ=15
:¦ ¦ prgmTM
:¦ ¦ If θ=21
:¦ ¦ Then
:¦ ¦ ¦ "θM
:¦ ¦ ¦ real(10,0,0
:¦ ¦ ¦ prgmXTEMP000
:¦ ¦ ¦ real(10,1,0
:¦ ¦ ¦ If 2={L4}(4
:¦ ¦ ¦ real(5,0,35
:¦ ¦ ¦ If {L6}(1
:¦ ¦ ¦ real(5,0,2
:¦ ¦ ¦ Output(1,1,Str1
:¦ ¦ End
:¦ ¦ Y→T
:¦ ¦ X→U
:¦ ¦ Y+(θ=34)-(θ=25→Y
:¦ ¦ X+(θ=26)-(θ=24→X
:¦ ¦ If X≠17 and Y≠9 and XY //You could move this to the begining of the loop (before the getKey to save speed)
:¦ ¦ Then
:¦ ¦ ¦ sub(Str1,16(Y-1)+X,1
:¦ ¦ ¦ If Ans=" " or Ans="/" or Ans="-" or Ans="=" or Ans="ñ
:¦ ¦ ¦ Then
:¦ ¦ ¦ ¦ If Ans="ñ
:¦ ¦ ¦ ¦ Then
:¦ ¦ ¦ ¦ ¦ "θM"+sub("0123456789",{L4}(1),1)+"A
:¦ ¦ ¦ ¦ ¦ real(10,0,0
:¦ ¦ ¦ ¦ ¦ prgmXTEMP000
:¦ ¦ ¦ ¦ ¦ real(10,1,0
:¦ ¦ ¦ ¦ ¦ If {L6}(1
:¦ ¦ ¦ ¦ ¦ real(5,0,2
:¦ ¦ ¦ ¦ End
:¦ ¦ ¦ ¦ Output(T,U,sub(Str1,16(T-1)+U,1
:¦ ¦ ¦ ¦ DelVar TDelVar UOutput(Y,X,"π
:¦ ¦ ¦ ¦ If 1={L6}(1
:¦ ¦ ¦ ¦ Then
:¦ ¦ ¦ ¦ ¦ 0→{L6}(1
:¦ ¦ ¦ ¦ ¦ real(5,0,23+12(2={L4}(4
:¦ ¦ ¦ ¦ End
:¦ ¦ ¦ ¦ If {L6}(1
:¦ ¦ ¦ ¦ {L6}(1)-1→{L6}(1
:¦ ¦ ¦ ¦ If {L6}(2
:¦ ¦ ¦ ¦ Then
:¦ ¦ ¦ ¦ ¦ int(.95H)+(H=0→H
:¦ ¦ ¦ ¦ ¦ {L6}(2)-1→{L6}(2
:¦ ¦ ¦ ¦ End
:¦ ¦ ¦ ¦ If {L6}(3
:¦ ¦ ¦ ¦ {L6}(3)-1→{L6}(3
:¦ ¦ ¦ ¦ If 1=randInt({-}9+6{L6}(3),1
:¦ ¦ ¦ ¦ prgmθF
:¦ ¦ ¦ ¦ Else
:¦ ¦ ¦ ¦ T→Y
:¦ ¦ ¦ ¦ U→X
:¦ ¦ ¦ ¦ Output(Y,X,"π
:¦ ¦ ¦ End
:¦ ¦ ¦ X→{L4}(8 //These two lines are a big time hog.
:¦ ¦ ¦ Y→{L4}(9 //Is it possible to move these outside of the loop?
:¦ ¦ End
:¦ End
:¦ ClrHome
:¦ (Y=9)-(Y=0)+{L4}(7→{L4}(7
:¦ (X=17)-(X=0)+{L4}(6→{L4}(6
:¦ [A]({L4}(7),{L4}(6→{L4}(2
:¦ If not(X:16→X
:¦ If not(Y:8→Y
:¦ If X=17:1→X
:¦ If Y=9:1→Y
:¦ X→{L4}(8:Y→{L4}(9
:End
Title: Re: Anti-RPG RPG
Post by: Eeems on December 15, 2009, 06:03:50 pm
looks good!
I actually was able to get on the comp right now, but thanks for thinking about me Ztrumpet!
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 06:30:07 pm
(Using a Blackberry right now - just finished a piano lesson and not really home yet.)

All the programs except thetaMO and thetatheta will give you errors without xlib :P You're supposed to run thetaG first. It worked fine when I tested it on my calc.

Theta_theta needs a special string in the Ans variable. It's basically for "scrolling" text display.

Ztrumpet, all your suggestions look good, except I can't quite wrap my head around how to relocate that conditional. Care to explain that one?

I'll try and think of a way to store X and Y to L4. Maybe I can get away with not doing that until I open a menu or start a fight.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 15, 2009, 07:20:27 pm
Okay, lets say you have this:

:Repeat X=17 and Y=9 and not(XY
:Stuff 1
:getKey->K
:Stuff 2
:If X=/17 and Y=/9 and XY
:Then
:Stuff 3
:End
:End

You are running thru that conditional twice.  What if you did:

:0->K
:Repeat X=17 and Y=9 and not(XY
:If K
:Then
:Stuff 3
:End
:Stuff 1
:getKey->K
:Stuff 2
:End

I think that explained it well enough. :)

As for running everything else, it appears L4 needs to be there.  I don't know what to put in L4, so I can't patch it.  Can you upload a typical L4?
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 08:05:32 pm
That made sense. I'll see what I can do about that.

And you've got to be kidding me. I swear I uploaded a L4...

Use {1,1,0,1,4,1,4,5,5} for L4. In case I didn't upload L6 either, L6 should be {0,0,0}. If you want to test out blindness, you can play with L6(1) a bit.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 15, 2009, 08:43:00 pm
Oops, yeah you did.
I forget to send files other than programs. :P
However, it seems that prgmTM is missing when I press Graph and prgm_theta_M when I press 2nd...

Edit: It looks really, really nice!  I like the maps so far.  I like the "portal", but if you go thru it again, it says the same thing.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 10:02:31 pm
I decided not to include those here. Those are for teacher mode and the menu, which I didn't include, since those don't need to be optimized and I want to surprise you guys.

So any suggestions other than what's been suggested above? How is it so far (sans fighting, menu, and everything :P)?
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 15, 2009, 10:09:03 pm
Awesome! I think you may be fighting too much.  For example, Illusiat 13 only has figts every randInt(10,50 moves.  It seems you have a battle every 5 to 15 moves. It just seems like I kept seeing "Fight".

I have an offtopic question: How does Sourcecoder work with special characters like '@' or '#'?  I have been using Graphlink to print programs and I'm getting tired of those special symbols showing up as a duplicat of the previous character. :)
Title: Re: Anti-RPG RPG
Post by: Eeems on December 15, 2009, 10:49:34 pm
I'm pretty sure it handles them almost perfectly!
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 10:50:22 pm
I programmed my battles to be 1/11. On second thought, given the size I plan the game to be, that's a little enormous. I think 1/20 or 1/30 is good enough. A counter is actually a good idea; I just roll randints, until they equal zero, so it's possible to get two or three fights in a row if you're unlucky. (Then again, a counter would be a little slower.)

And waitasec about the if statements. I sort of had it before, but it's escaping me now. How exactly am I running through the conditional twice? And in my movement engine, the conditionals and getKey are not in the same loop. Sorry if I'm seeming slow; bit of a long day today. (It's almost break though. Yes!)

Sorry - I'm not familiar with sourcecoder.

Quote
Edit: It looks really, really nice!  I like the maps so far.  I like the "portal", but if you go thru it again, it says the same thing.
Thanks. :) The portal says that every time you go through it so forgetful/casual players don't think their calc glitched or something and send me nasty emails. I just want to ensure everyone knows that that zone is SUPPOSED to be dark.
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 15, 2009, 11:02:47 pm
Nice job so far!
And about the contrast, may be you should check the versions of calculator and contrast it accordingly.
A value that might be really dark might be pretty light depending on different calculator. I believe the difference lies in OS version or something
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 11:03:47 pm
ok tried it, it looks nice so far. I would probably decrease the battle rate, though, or have it so there can't be any battle before the 10th step . A counter would be a better idea both for this reason and the fact it would run much faster (randomization is slow, so much that people use these commands as replacement to For(Z,0,50:End loops)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 15, 2009, 11:06:52 pm
10-4 about battle rate. :)

I realize that problem. Unfortunately, contrast doesn't change based on version; it changes based on battery strength and how old your calculator is. So unfortunately, there's nothing I can do about that. Some ASM genius might be able to write a powerful battery checker, but you can't really have a (concise) check for how old the calc is. :(
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 11:10:22 pm
Really? This is strange, on my TI-83 Plus from 2001 and my 83+ Silver Edition from 2002 (both manufactured in 2001), regardless of my battery power, contrast will always remain the same. The calc will just instantly turn off if it really lacks battery power. Same on my TI-Nspire. I remember on the TI-80, 81, 82 and 85 contrast depended on battery life, though. I don't remember for the TI-83 and 86, though.

Suggestion: Have the gamer select a default contrast value when game starts, which is stored in a list, and have the game contrast changes based on that value (making sure it never exceeds the minimum and max possible contrast value, though, to prevent Blue Screen Of Death). This is what Reuben Quest series did
Title: Re: Anti-RPG RPG
Post by: jsj795 on December 15, 2009, 11:11:30 pm
oh... I always thought it was the OS version... Well, I guess I was definitely wrong  :-X
And I agree with DJ about the battle system.

Love the portal tho^^

Edit: by reading DJ's post, i don't know which is right about contrast, insorak or DJ
gotta check on TI-BD I guess, if they have anything written about it
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 15, 2009, 11:14:16 pm
Maybe it depends of when the calc was manufactured? It might be one of these hardware changes
Title: Re: Anti-RPG RPG
Post by: Insorak on December 16, 2009, 04:01:24 pm
I'm not sure. I know that my friend got his calc about two years after I got mine (about three years old), and his contrast is waaay darker than mine. But that's a good idea, DJ. Another day, another 18 bytes of memory. :P

Oh, and speaking of contrast, I found an 26-byte ASM program that can change contrast.

Code: [Select]
:AsmPrgmEFD74AEFEF4A324784C6D8D310C9
Maybe I can get away with this and xcopy. :D
Title: Re: Anti-RPG RPG
Post by: Galandros on December 16, 2009, 04:14:53 pm
I saw in the calcs around the class and the lcd's contrast changes in some calculators. Like mine is 1 year older than my friends and some have 1 year younger. My is somewhat darker, other medium and the latest very light.
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 16, 2009, 04:46:42 pm
Nice program! Way to go!  You know that if you AsmComp( it it will get smaller, but you may have already done that.

:Repeat X=17 and Y=9 and not(XY
:Stuff 1
:getKey->K
:Stuff 2
:If X=/17 and Y=/9 and XY
:Then
:Stuff 3
:End
:End

You have the off-the-map ( X=17 and Y=9 and not(XY ) conditional twice.  It's long enough that you save speed to rearrange it to what I showed earlier. :)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 16, 2009, 07:01:57 pm
The reason I have that double conditional is that sometimes modifying X or Y will make one of those conditions false, but it doesn't know how to exit the loop and will still try to execute the code to output the appropriate string character. This is obviously not a good idea, as it will give you an error if you try to do something like sub(Str1,16(Y-1)+X,1 if the length of Str1 (ie. the map) is 128, Y is 9, and X is some non-zero number like it should be.

I could get around this by using a 10x18 map instead of a 8x16 one (to check for border collision), but this increases the memory used per map by 56 bytes. This is enormous when spread over several hundred maps, and I would have to reduce the total number of maps in the game by about 2/5.

In your example, stuff3 is executed first, while stuff2 and stuff1 are executed after. But here, stuff1 has to be executed first (it changes your x and y position), or else stuff3 won't work properly.

Maybe I'm missing something major here... if so, feel free to explain. I'm tired.

I'll see what I can do about this problem.

Oh, and the 26 bytes is after AsmComp. Before, it was 40. :)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 18, 2009, 10:35:55 pm
Okay, going to keep it short today. I'm completely exhausted and didn't do much coding.

I'm in the process of writing my entire movement engine. The framework for my fighting engine is finished (I completed debugging it today); skills, damage formulas, and speed calculations will come later. (I was sacrilegious and used labels, but only because it would have been really bulky otherwise. Trust me - I made sure there are no memory leaks anywhere I used labels.)

SO TIRED. 4 tests in the two days before break.

Happy holidays, guys. :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 19, 2009, 02:08:55 am
Using labels is not that bad if they are used properly. In most case it's good to eliminate them when you figure out how to, though, especially if your program become very large, since it can take longer to load. Glad to see you still work on this, but focus on tests, though, good luck and I hope you are around during holidays :P
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 19, 2009, 08:46:30 am
Alright! That sounds good.  I'm fine with using labels as long as they are used properly, and without memory leaks.  Sounds like you did that.  Cool! What does the battle/fighting engine look like?
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 20, 2009, 12:08:18 pm
Nice!  Or you could bother Iambiam until he makes you an xcopy and contrast welded together program :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 20, 2009, 12:14:47 pm
There's a small contrast program you could use too by MIchael Vincent. It's included in his BASIC Tools pack and is called ZCon. It's under 100 bytes.
Title: Re: Anti-RPG RPG
Post by: Insorak on December 22, 2009, 02:14:55 pm
Still no progress yet. Sorry, guys - break is in two days!!

The AsmComp( hexcode I posted earlier is only 26 bytes. I'm probably going to use that.
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 22, 2009, 07:07:31 pm
I am glad school finished on the 22th max over here x.x
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 22, 2009, 07:49:28 pm
I am glad school finished on the 22th max over here x.x
Me too.
Good luck with school.  When do you have to start back? (For me it's Jan 4.)
Title: Re: Anti-RPG RPG
Post by: Eeems on December 22, 2009, 08:03:24 pm
(DJ is no longer in school :P)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 22, 2009, 10:20:56 pm
(I meant Insorak :P)
:)
Title: Re: Anti-RPG RPG
Post by: Eeems on December 22, 2009, 10:23:20 pm
(ah ok :P)
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 22, 2009, 10:56:20 pm
No Progress! :O

:'(

(jk :P do you have finals before break?)
Title: Re: Anti-RPG RPG
Post by: Insorak on December 22, 2009, 11:24:56 pm
Sorry! :( I've tried programming during physics, but he gives so many in-class problems that it's impossible. Trig is mostly non-calculator now - we're learning (very easy) formulas. And I have nearly no time at home. I had THREE concerts last week. Glad that's done with. *faints*

I have finals after break. Most of them are going to be ridiculously easy (I have 99s in 3 classes right now, and like 95-97 in a couple of others) but I'm going to need to actually study for History.

My break starts the 24th, goes to the 4th. Only 11 days. My school is cruel. :(

(DJ, you lucky. :P)
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 22, 2009, 11:46:21 pm
I was kidding anyway :P I know how hard it can be to find time to program :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 23, 2009, 02:38:13 am
(yeah I graduated in 2003. Darn... I have been here for so friggin long alerady. 9 years into calc stuff next June alerady, until maybe last year I did not even realise I joined Tifreak8x, Fryedsoft and Patrick Davidson in the group of exceptions of the TI community who stayed for close to or more than 10 years. Plus darn, I was still only 14 back then too o.o)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 23, 2009, 08:32:57 am
Wow, Insorak.  You're school is CRUEL!

DJ: Do you count time in the community or time programming?  If it's just time in the communtiy, how long have you been programming?
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 23, 2009, 02:42:47 pm
Time programming for calculators. I started coding them on July 4th 2001, started browsing TI websites in October 2001 and joined a TI forum for the first time in September 2003 (MaxCoderz)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 23, 2009, 04:04:47 pm
That's cool DJ.  Is that when Illusiat started? July 4, 2001?
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 24, 2009, 01:01:12 am
Nah it started around August, when I discovered Getkey. Until september it had text battles and lot of errors, though, which all got fixed later and this is when Illusiat started
Title: Re: Anti-RPG RPG
Post by: Insorak on December 24, 2009, 11:20:26 am
Quote
when I discovered Getkey
HAHA! I remember discovering getKey :P
Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 24, 2009, 01:15:06 pm
I discovered getKey when I discovered For loops, which was before I learned Repeat and While loops.  I really need to post a couple of my early programs with getkey (From Febuary this year) just so people can laugh at them. :P

getKey = *I can now make games*
Title: Re: Anti-RPG RPG
Post by: Builderboy on December 24, 2009, 01:22:32 pm
I had originaly discovered getKey but didn't know how to use it for the longest time XD so i had to restrict myself to making math programs and screensavers ;D GetKey was the only command that i ever had to look up the use for, and after that i got Catalog helper, so all my needs were filled :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 24, 2009, 03:22:44 pm
When I first saw getkey I ddi not get what it did really, but then I read in the TI manual it could be used in video games (yes, TI did suggest GAMES in their TI-83+ manual, quite ironic when we see what the TI-Nspire can(not) do) I tried to mess around and started Illusiat right afterward

I also remember having CtlgHelp on my 83+SE it was very useful for me to learn some commands. TOo bad it messed up with the Français app, though :(
Title: Re: Anti-RPG RPG
Post by: Galandros on December 29, 2009, 03:00:48 pm
Quote
when I discovered Getkey
HAHA! I remember discovering getKey :P
Me too. I saw it on calculator but made errors with its usage. Saw on manual but it had no example of usage and by trial and error I couldn't see anything working (it only returned 0). If I knew the Repeat Ans:getkey->K:End...

But once I discovered with online tutorials it was like: now I can make things move around. :P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 29, 2009, 03:16:16 pm
Well what really sparked my interests in calc game programming and gave me hopes about it is this:
(http://omnimaga.org/images/screenshots/tigames.gif)
/me hopes to see more Anti-RPG updates

Title: Re: Anti-RPG RPG
Post by: ztrumpet on December 29, 2009, 07:37:24 pm
Wow, that's pretty cool.  I wish TI was still that way...

* ZTrumpet hopes to see more Anti-RPG updates
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on December 30, 2009, 12:29:34 am
Me too, they used to support games for calcs. They actually still link to some calc sites, but there is less emphasis on that stuff now. And now the Nspire can barely do anything without hacking it...
Title: Re: Anti-RPG RPG
Post by: Galandros on December 30, 2009, 03:41:43 am
Me too, they used to support games for calcs. They actually still link to some calc sites, but there is less emphasis on that stuff now. And now the Nspire can barely do anything without hacking it...
I even found some games hosted by TI. Not sure about the authors.
I downloaded them but never tried to see its quality. xD

The image has the getkey loop but unoptimized. :P If I had one of those old manuals when I was learning...
Title: Re: Anti-RPG RPG
Post by: Insorak on January 01, 2010, 12:31:12 am
Hey guys,

I haven't programmed all break... buried under a mountain of schoolwork and applying for a science program. Those essays suck.

Happy new year and new decade, everyone. :)
Title: Re: Anti-RPG RPG
Post by: jsj795 on January 01, 2010, 12:36:56 am
essays do suck... as of right now, I just finished my last essay for the college (comes out that I had to write about 15 various lengths of essays for various colleges)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on January 01, 2010, 12:37:18 am
Happy new year! And good luck with your essays!
Title: Re: Anti-RPG RPG
Post by: ztrumpet on January 01, 2010, 11:44:38 am
Happy New Year! Good Luck with your essays!!
Title: Re: Anti-RPG RPG
Post by: ztrumpet on January 20, 2010, 04:33:23 pm
*BUMP*

How's this going?  I'm looking foreward to it, and realized there wasn't anything posted on it in a while.  Have you made much progress?
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on January 20, 2010, 11:16:31 pm
I hope he was not sent even more essays x.x

or worse, ditched calcs x.x (that happens randomly with new people...)
Title: Re: Anti-RPG RPG
Post by: Insorak on June 24, 2010, 06:09:50 pm
Boo!

*dusts off self* bet you guys don't even remember me anymore. Whew, that was a crazy six months.

Long story short, a bunch of insane crap happened to me, my calculator memory got wiped several times over, and I won a national biology award. Oh, and I managed to procure a nice TI89, a Nspire, and a Nspire-CAS. Unfortunately, there remains essentially nothing of Anti-RPG anywhere except in my brain. :(

I, however, will probably be lurking around... might get to reworking this guy from scratch over the summer, might not. I still haven't taken my finals yet, which kind of blows. It's all sorta up in the air.

Still, good to be back. :)
Title: Re: Anti-RPG RPG
Post by: calcdude84se on June 24, 2010, 06:12:23 pm
No, don't kill it! :P Too bad your memory got wiped. Nice to see you around. (Though I never knew you in the first place, not registering until after your absence)
Title: Re: Anti-RPG RPG
Post by: {AP} on June 24, 2010, 06:15:01 pm
Woah... completely forgot about this project. o.o
I'd like to see it done though. If you don't, I might just take your idea, twist it a bit, and use it myself. =P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on June 24, 2010, 06:17:37 pm
Hey nice to see you around again! I was worried you kinda lost interest in calc stuff. I think Ztrumpet was a lot worried too from what he said back when you left.

I'm sorry to hear about the data loss. Those always sucks and can discourage someone. I still hope you code again for calcs, though (and backup often more), even if for the 89 or Nspire (altough to be honest, the 89 scene seems to be dying so the audience for a 89 project may be rather small now). There is also a new programming language that got quite popular for the 83+ called Axe Parser, which has some syntax similar to TI-BASIC but as fast as ASM, if you are interested in this one.

Anyway I hope you stay around for a while :)
Title: Re: Anti-RPG RPG
Post by: Insorak on June 25, 2010, 02:58:23 pm
Thanks for the welcome backs guys :)

Sometime after my finals, I'll take a look at Axe and play around with it a bit. Then, I'll crack my knuckles and get coding on Anti-RPG. Work to do! :)
Title: Re: Anti-RPG RPG
Post by: Quigibo on June 25, 2010, 03:46:47 pm
Hey, welcome back! :)

I like your avatar by the way.  I actually made one in Axe a few days ago while we're on the subject. Link (http://ourl.ca/4129/97657)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on June 25, 2010, 03:58:12 pm
Welcome back!  I'm really glad to see you again.  Have fun with exams! ;D
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on June 25, 2010, 05:57:30 pm
Also good luck if you planned to catch up on old posts since your last visit because there was quite a bit of activity while you were gone (it's probably slowing down, now, though, because of Summer trips and vacations). :P

When are you finishing school, btw? Do you have Summer classes?

Regardless, I hope you don't give up on Anti-RPG :)
Title: Re: Anti-RPG RPG
Post by: ztrumpet on June 25, 2010, 07:28:55 pm
When are you finishing school, btw?
He said exams are in a week. :)
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on June 25, 2010, 07:53:10 pm
yeah but I know there are finals at various times of the year. If he has finals in a week (and this late) it doesn't necessarly means he finished school afterward.
Title: Re: Anti-RPG RPG
Post by: Insorak on June 26, 2010, 01:00:45 pm
The Mandelbrot set is pretty. I've obsessed myself with the Collatz conjecture, though. :P

I have finals late because I missed the regular round due to aforementioned national biology competition. No school afterwards! Hurrah!

I was just reading through this topic, and I think I'll keep my ideas for my classes. I also happened upon this...

Code: [Select]
:Augment(seq(L3(X),X,3,15,2),{-.5,1})>=augment(20seq(L3(X),X,2,14,2)^2,{-L1(5)>=(10L1(6)^2)),1 --> LT2
I'll figure out what that does eventually. I can't believe I wrote it. :P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on June 26, 2010, 01:08:01 pm
Aaaah ok, nice to see you doN't have school past those finals at least :P

Also lol, I don't really get that code ;D when BASIC code gets so complex I am lost.  x.x Sometimes it's the best thing to do if it saves space and speed, though.
Title: Re: Anti-RPG RPG
Post by: Insorak on June 26, 2010, 05:48:40 pm
Hey, DJ, if you don't get it I doubt that any random source diver cheater person will either :P

Let's see. Main screen (1:New 2:Load 3:Exit) prettifying done (lightning on the sides lighting fires, with some not-too-obtrusive screen flashing). Also gave myself a refresher on the expr( and sub( commands; scrolling text display worked out in a ~120 byte subprogram. New game creation finished up to class selection. Loading and saving subprograms created, along with relatively foolproof-ish cheat detection.

edit1: Next big thing to work on is a new and improved movement engine. I did have problems with the previous one; going to try and optimize the next one more. Smaller things to work on are going crazy with seq( and augment( commands working on the skill improvement and item menus.
edit2: Thief class renamed to Nightblade. >:)

We must agree that this is much more interesting than studying for finals. :P
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on June 26, 2010, 11:35:33 pm
Well, keep in mind that I am not necessarly good at such complex BASIC code. I may be good at designing games, but most BASIC tricks I learned were in 2001-03, back when you were treated as a god as soon as you knew to not close quotes and parhentesises and people had an heart attack when you knew you could use Text(-1 to display large fonts on graph screen. I have trouble understanding cryptic codes too, especially with complex formulas. Someone like Weregoose, Builderboy and maybe Ztrumpet would probably understand much easier than me. The later often said he could find a lot of optimizations in Illusiat 13.

Good luck on development and make sure to backup often now :P

Are you planning to post screenshots?
Title: Re: Anti-RPG RPG
Post by: ztrumpet on July 01, 2010, 09:05:24 am
Good luck on development and make sure to backup often now :P

Are you planning to post screenshots?
My thoughts exactly. ;D

How are/were exams? :D

Code: [Select]
:Augment(seq(L3(X),X,3,15,2),{-.5,1})>=augment(20seq(L3(X),X,2,14,2)^2,{-L1(5)>=(10L1(6)^2)),1 --> LT2
I'll figure out what that does eventually. I can't believe I wrote it. :P
lol :P
It worked. :D
Title: Re: Anti-RPG RPG
Post by: Deep Toaster on November 16, 2010, 08:29:14 pm
*bump* So, how's this going? Just noticed this topic, and it looks nice :)
Title: Re: Anti-RPG RPG
Post by: squidgetx on November 16, 2010, 08:32:23 pm
Last time he logged in was in June x.x
Title: Re: Anti-RPG RPG
Post by: DJ Omnimaga on November 16, 2010, 10:59:51 pm
Yeah, he returned from a long absence, but his return was short-lived... :(
Title: Re: Anti-RPG RPG
Post by: ztrumpet on November 17, 2010, 05:24:20 pm
Insorak...
Where art thou?