Author Topic: The Lord of the Rings for 83+  (Read 13844 times)

0 Members and 1 Guest are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #90 on: September 03, 2007, 05:07:00 am »
wow niceto see progress again :)smile.gif, I will be sure to try next version! Btw could u post the walking engine source? Maybe i could take a look into it and see if i can optimize something if i manage to understand the code ?
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #91 on: September 03, 2007, 06:21:00 am »
c1-->
CODE
ec1PROGRAM:ZGA
:While 1
:DelVar B
:If not(L3(1 // This detects whether Aragorn's in the party. He's the de facto party leader.
:8->B // Otherwise the sprite for Frodo is used when moving around.
:real(2,0,1,1,12,8,0,12,0,8,1,0,0,0
:real(1,8X-8,8Y-8,1,8,1,A+2(B>0),B+32,1,0,0
:real(1,8X-8,8Y-8,1,8,1,A+2(B>0),B,3,0,1
:If not(N
:prgmXTEMP015 // Runs the random battle check
:If K<106
:DelVar K
:Repeat K≠0
:getKey->K
:End
:real(1,8X,8Y,1,8,1,0,0,0,0,0
:"ZCOL
:real(10,0,8
:If K=24
:Then
:2->A
:X-1->X
:prgmXTEMP008
:If (theta)<0
:X+1->X
:End
:If K=25
:Then
:3->A
:Y-1->Y
:prgmXTEMP008
:If (theta)<0
:Y+1->Y
:End
:If K=26
:Then
:4->A
:X+1->X
:prgmXTEMP008
:If (theta)<0
:X-1->X
:End
:If K=34
:Then
:5->A
:Y+1->Y
:prgmXTEMP008
:If (theta)<0
:Y-1->Y
:End
:real(10,1,8
:If K=45 or K=106 // to give me an escape route from anywhere within the game, i.e. the "quit" function on the menu
:Then
:"ZQUIT
:real(10,0,7
:prgmXTEMP007
:real(10,1,7
:real(10,1,0
:Return
:End
:If K=105
:Then
:"ZMENU
:real(10,0,8
:prgmXTEMP008
:real(10,1,8
:End
:If X>12 or X<1 or Y<1 or Y>8
:Then
:M-(X<1)+(X=13)->M
:X-12(X=13)+12(X<1)->X
:L-(Y<1)+(Y=9)->L
:Y-8(Y=9)+8(Y<1)->Y
:"ZMI // "Zee Map Index"
:real(10,0,8
:prgmXTEMP008
:real(10,1,8
:End
:Endc2
ec2

Whoof. That's my walkabout engine.

I also found an oversight in Frodo's special ability that allowed you to make him put the Ring on turn after turn even though he was already wearing it. That's now been cut off. And, out of sheer boredom, I made Gandalf's special attack flash a bunch of random bits of the arena before it actually hits. Now, on to Pippin.

Offline dinhotheone

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 410
  • Rating: +2/-1
    • View Profile
The Lord of the Rings for 83+
« Reply #92 on: September 03, 2007, 08:36:00 am »
very cool, this game looks like its shaping up to be quite the rpg. good luck with that and your astroscience.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #93 on: September 03, 2007, 04:43:00 pm »
What does A and theta do? Because I can't seems to optimize without removing it
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #94 on: September 03, 2007, 05:27:00 pm »
Theta is the tile number of the square the player tries to move to. If it's anything other than blank, the move is canceled.

A is used to determine which direction of walking sprite to use, because in the tilesheet, they're all right next to each other.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #95 on: September 03, 2007, 05:54:00 pm »
Wouldnt you prefer to check if the tile is blank before moving, so the move isnt done if it is? Altough this may not change a lot in speed it would make optimizing the code much easier because instead of doing stuff like (example) If Z=24:X-1->X:If Z=26:X+1->X you can use boolean logic like this: X-(Z=24)+(Z=26->X
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #96 on: September 03, 2007, 07:23:00 pm »
Hmmm... have to rewrite a lot of code for that...

See, what I tried to do was make it so the move would be made, then any special actions would be triggered (such as the shop):

c1-->
CODE
ec1PROGRAM:ZCOL
:[A](Y+1,X+1->(theta)
:If (theta)=24
:Then
:"ZSTORE
:real(10,0,12
:prgmXTEMP012
:real(10,1,12
:DelVar KDelVar N
:-1->(theta)
:Return
:Endc2
ec2
(just an excerpt)

and then move back. I guess the alternative is to? wait.

Oh my. I know what the problem is. Continuing the code:
c1
-->
CODE
ec1:If (theta)=0 or (theta)=25 or (theta)=26 or ((theta)>31 and (theta)<36) or (theta)=38 or (theta)=39 or (theta)=41 or (theta)=58 or (theta)=60
:Return
:If (theta)=46
:Then
: // didn't write this bit yet
:Return
:End
:-1->(theta)c2
ec2

So I'm running that WHOLE STRING just to make sure the next square isn't a wall. Anything that doesn't make it through this check stores -1 to theta and thus gets blocked... so I guess I'll have to re-code all my sprites. >_< Ouch.

AMENDMENT: I just coded it so sprites 25-35 are all free, changing (theta)=25 through <36 to "((theta)>24 and (theta)<36)", and it's already a bit faster. Amazing how much it helps to actually look for the problem rather than do a rain dance. XDsmiley.gif

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #97 on: September 04, 2007, 02:35:00 am »
I hopee you can fix it, I'm sure speed increase will be signifiant :)smile.gif Personally if only one tile is walk onable I would just make an If of this one and a condition and an else if it doesnt meet the condition to save space
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #98 on: September 04, 2007, 03:50:00 am »
Oh, no, see, that's for all the road tiles/bridges/etc. So we've really got twelve walkable tiles right now.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #99 on: September 04, 2007, 04:02:00 am »
oh ok x.x, i hope it can be made faster anyway, you should use boolean logic tho  
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #100 on: September 04, 2007, 07:31:00 am »
Well, I cleaned up the sprites and it's running a little faster, but I have another couple of ideas that I'll apply later this afternoon.

Also, as I keep saying, help with balancing the character stats against the enemies' and against XP would be great.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #101 on: September 04, 2007, 07:58:00 am »
great to hear :)smile.gif keep it coming!
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Jeremy Avalon

  • Guest
The Lord of the Rings for 83+
« Reply #102 on: September 05, 2007, 04:51:00 pm »
I've decided that having Pippin's special cause the battle order to need recalculation on-the-fly is too heavy a drain on the limited memory I'm playing with, as well as my limited patience, and I'm changing the function of his special. Instead of simply increasing his Agility (which would really serve little useful purpose anyway), "Hide" now hides him and launches a sneak attack a number of turns later (i.e. at least 1 full round, and the gaps will widen overall as his level increases). You can't make him do it before the game decides he will, but it causes a guaranteed *critical* hit. The idea is to make the ability moderately balanced, since his damage and Agility increase at similar paces.
Which reminds me, does anyone think the other specials are too imbalanced right now?
(If you want to test Aragorn, Legolas, and Gimli, open up LFOTR1 and change items 1, 2, and 3 in that list to 1.)

Speaking of critical hits, they are next on my implementation list, as soon as I re-code Pippin.

In other news, I can't really speed up the walking by much more. It's about on par with RL3 right now, so it isn't TOO bad... but MAN I wish these things ran just 1000Khz faster sometimes.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
The Lord of the Rings for 83+
« Reply #103 on: September 05, 2007, 05:27:00 pm »
i understnad how you feel, as long as it run fine on my SE (it did, i was just wondering if it did on the reg 83+) i'm fine with it :)smile.gif
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline Halifax

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1334
  • Rating: +2/-1
    • View Profile
    • TI-Freakware
The Lord of the Rings for 83+
« Reply #104 on: September 06, 2007, 01:53:00 pm »
Wow...I thought this was dead a long time ago. I am so glad it got revived! And yeah I agree with DJ_O that it only has to run fine on an SE if that's all you can do.

*Halifax
There are 10 types of people in this world-- those that can read binary, and those that can't.