Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: ACagliano on July 24, 2010, 11:47:58 am

Title: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on July 24, 2010, 11:47:58 am
The game is currently undergoing design. I have had no issues with commands, save one, thus far. As of right now, the program successfully checks for its appvar, and if not present, allows you to create a ship. You can choose between 3 different types of ships, one with higher weapon power but weaker shields and slow repair, a second with weaker weapons, but higher shields and slow repair, and another with very strong shields and quick repair. Currently working on assigning all systems a position in the ship (aka: front, back, top, bottom). Also working on a points system. You earn points for defeating opponents, which can be used to upgrade the ship, purchase more weapons, or even to attain the Romulan torpedo from the 2009 movie (deals 40-60 dmg to shields, or if shields are down deals 20-50 dmg to all systems in the area hit). It will be very expensive, though.

I need some advise on a shield defense system, though. What would you think is better:

1. Standard: Shields, while active, always take 100% of the damage.

2. Complex: this is how it works

   once the ship is hit, the Z value is set to 1. Every time the program loops, the Z value goes up one, until it hits 4. If your ship is hit while Z=1, the ship takes 75% of the damage, shields are affected normally. If Z=2, ship takes 50%, and if Z=3, ship takes 25%. Once Z=4, shields defend completely. The idea behind this is that once shields are hit, they become strained and unstable. Thus another attack hitting within quick succession would penetrate to some degree.

Let me know which is preferred.

Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Hot_Dog on July 24, 2010, 12:01:06 pm
I vote the first method.  Whatever the case, I like how you're doing it in Axe.  Thanks for resuming the project!
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Builderboy on July 24, 2010, 02:53:09 pm
I actually like the second method better ;D Seems like it would be more strategic, and give less power to those with the shields, although you might have to fun some play tests so find out.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: TC01 on July 24, 2010, 04:21:11 pm
Since in Star Trek (Voyager being the worst offender, it seems...) the shields are always failing after about two hits, I like the second method better, since as Builderboy says it gives less power to the shields.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: TIfanx1999 on July 25, 2010, 07:03:16 am
I definitely like the second method better. It seems much more balanced/realistic.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: meishe91 on July 25, 2010, 08:09:32 am
I vote the second method more too. I actually have another idea for the shields, though not sure how easy it would be to do. But basically instead of basically losing all power after one hit that it instead like slowly goes down and if it hits 1 it stays there for a few seconds then starts to slowly recharge. I think the idea sounds better in my head so I can retype later what I mean if you want.
But glad to hear this progressing :)
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on July 25, 2010, 10:14:14 am
I see what your saying, and what you are saying is actually how it happens. Shields start at full power, then take hit after hit. With each hit, shield power decreases, until they fail at 0%. In the movies, it seems that, with the exception of the Romulan torpedo from the 2009 movie (which somehow damages the ship even with shields up) the shields absorb all damage as long as they are active. However, once shields fail, they do not recharge. Unless, of course, the ship's crew activates repair on the shields. This program will have repair functions. Also, there will be a key combo hidden in the program (that I will not release-try to find it yourself) that automatically forces your opponent to lower shields (they may raise them again as soon as they notice them down).
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Hot_Dog on July 25, 2010, 11:44:10 am
In some movies, such as Star Trek VI: The Undiscovered Country, the shields absorb MOST of the damage, but the ship still recieves damage occuring from shake-ups and occasional weapon energy that the shields didn't catch.  Of course, when shields dropped entirely, the ship recieved full damage.

However, most games require shields to be fully down before damage is recieved.  I will admit that this doesn't apply to a lot of Star Trek games, which use the above method.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: meishe91 on July 25, 2010, 03:27:34 pm
Ah ok, to me it just sounded like that after one hit shields went from 4 to 1 and then would try to raise back up.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on July 25, 2010, 04:16:20 pm
No. The best example is in undiscovered country. While shields were raised, the Enterprise was protected from most of the physical damage. All that the ship felt was just being rocked by the impact. As the shields continued taking hits, they weakened. Now a hit would be mostly deflected, but the immediate area of the strike zone on the ship would be damaged. Then, the shields collapsed. The next torpedo, instead of rebounding off the shields, punched an exploding hole through the ship's hull and flew out the other side.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on July 25, 2010, 09:28:58 pm
Sorry for the double post, but this is a progress thread, and this is a progress report:

Second Progress Report

    Ship Selection Complete, now that I was able to plug in the appropriate ketKey values. Just adding some extra variables for some extra features I am adding. Then need to locate and fix an Err: Duplicate. Then, it's on to the sprites and main battle loop. Wish me luck and minimal crashes.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on July 29, 2010, 02:34:58 am
I like the idea so far, as for shield, I would go with first option and maybe have the shield regenerate itself slowly over time, kinda like Starcraft units. It's up to you, though.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 01, 2010, 11:50:13 am
Ok. This will be my Axe Parser contest entry. As linking is relatively new, I will not chance it for the contest and will enter a single player version in the contest.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Hot_Dog on August 01, 2010, 12:04:48 pm
Ok. This will be my Axe Parser contest entry. As linking is relatively new, I will not chance it for the contest and will enter a single player version in the contest.

Cool!  Can't wait for screenies!  This will be such a great game!
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on August 01, 2010, 12:53:49 pm
I can't wait as well. Good luck on this entry!
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: meishe91 on August 01, 2010, 05:44:11 pm
Good luck on this. Sounds cool :)
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 02, 2010, 09:12:16 pm
Third Progress Report

I'm having a problem I cannot identify. The program is set to display ship options, then wait until you press a key using the following code:

Code: [Select]
0->G
While G=0
getKey->G
End

For some unknown reason, this is looping infinately. No matter what key I press. It shouldn't. Currently trying to resolve.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: guy6020665 on August 02, 2010, 09:20:54 pm
Third Progress Report

I'm having a problem I cannot identify. The program is set to display ship options, then wait until you press a key using the following code:

Code: [Select]
0->G
While G=0
getKey->G
End

For some unknown reason, this is looping infinately. No matter what key I press. It shouldn't. Currently trying to resolve.

Try replacing it with

Code: [Select]
Repeat getkey
End
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Quigibo on August 02, 2010, 09:21:01 pm
Interrupts are probably disabled or you have a custom interrupt.  You cannot use the OS's getkey routine unless the OS's interrupt is on.  It's because the key detection has to run in the background.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 02, 2010, 09:23:44 pm
Quigbo, I did do "FnOn" and forgot to use "LnReg", but I crashed several times since. Plus, a simple GETKEY program that checks for the number of the key pressed and throws it onto the screen works. It only seems to reloop inside MY GAME, just to slow me down (lol).

Edit: Just reset interrupts. Problem persists. I'll try the "Repeat" route tomorrow and post back.

Edit 2: Problem is still there with repeat. So I simply removed the faulty section (program will work fine without it) and resumed coding. I'll see if I can fix it once everything else is done.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on August 04, 2010, 06:48:36 pm
Mhmm I hope you can figure out a solution. Good luck!
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 04, 2010, 06:54:18 pm
Currently working on coding in position update for the ship and the enemy ship, as well as the warp and impulse drive speeds.

Question 3: Does Axe Parser use order of operations yet?
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on August 04, 2010, 07:02:18 pm
Mhmm for question 1 and 2 I think it may be best to check the Axe sub-forum for existing topics so you can maybe find what you need, as otherwise, it may be too much help for the contest, rules-wise. For question 3, it should be fine, though, since you aren't asking direct code-help. From what I remember, it goes from first operation to last, still, though, like if you have 1+2*3+5, it will do 3*3+5, 9+5 then finally 14. It can be a bit weird at first but I somehow got used to it quite easily. It may depend of people though.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 11, 2010, 06:14:34 pm
Progress Report

Making progress rapidly. I now have the phaser and photon firing systems mostly functional, as well as position update for both your and enemy ship. Also got the #CreateSaveFile and #OpenSaveFile routines working.

Now, on to the systems to calculate battle damage...

Question: If you are using a 2-byte number, lets say you have 50000 and you add 50000 to it. Does the value reach 2^16, and then cycle back to 0 or does the program crash? Similarly, what happens if a 2-byte variable equals 5 and I subtract 1000 from it? Does it loop up to (2^16)-995 or does it crash?
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: calcdude84se on August 11, 2010, 06:49:02 pm
It cycles back through 0, giving a result of 50000+50000-2^16.
As for the second one, yes, it's 2^16-995
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Hot_Dog on August 11, 2010, 06:58:30 pm
Awesome!  Can you post any screenshots?
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 11, 2010, 07:58:58 pm
Not yet. One of my computers is out of usable memory, the other simply isn't working. I will once I have access to a computer that can do screen-capture and has TI-Connect.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 12, 2010, 08:38:33 pm
Progress Report

Enemy damage system complete. Now on to the rest of your ship.

2 questions.

1. Let's say I have this, for instance:

Code: [Select]
1->A
If A
"HELLO"->Str1A
Text(23,20,Str1A)
Else
"GOODBYE"->Str1B
Text(23,20,Str1B)
End

Would Str1A and Str1B become available for use anywhere in the program, or do I need to redefine it outside the conditional?

2. I noticed a strange phenomenon:

Code: [Select]
"vStTkSav"->Str1
GetCalc(Str1)->P

that was version 0.3.3

when I upgraded to 0.4.3, then opened the source again, it read

Code: [Select]
"appvStTkSav"->Str1
GetCalc(Str1)->P

I didn't change the 'v' to an 'appv'. It did it by itself. Is it supposed to?
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: calcdude84se on August 12, 2010, 09:58:53 pm
yes, the 'v' for appvars has been changed to 'appv'
As for Str1A and Str1B, variables/pointers are unscoped, so you can use them everywhere else in the program.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Quigibo on August 12, 2010, 10:08:09 pm
Also, another change since 0.3.3 is that if you don't need the pointer for the rest of the program you can define the variable at the same time as using it without needing a static pointer.  For instance, your example could be:

Code: [Select]
1->A
If A
Text(23,20,"HELLO")
Else
Text(23,20,"GOODBYE")
End

You can do this anywhere in the code with any data type, even sprites:

Code: [Select]
Pt-On(8,10,[004299E7E7FFA542])
But since you aren't giving the data a name, that means you can't use it anywhere else in the code unless you create a duplicate or something like that.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: Hot_Dog on August 13, 2010, 11:01:15 am
Not yet. One of my computers is out of usable memory, the other simply isn't working. I will once I have access to a computer that can do screen-capture and has TI-Connect.

I'd be willing to post screenshots for you, that is if you're able to put a program up online.  That may be the problem, and I'm probably just not getting the point 8)
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on August 16, 2010, 08:12:18 pm
If it's for a contest entry, you would have to ask either me, Builderboy or Quigibo for making a screenshot, since it is against the rules to distribute contest entries programs or entire source code. However, I cannot guarantee a screenshot from me would come out very fast, as I am slower on requests and checking topics lately.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: ACagliano on August 17, 2010, 07:30:51 am
Does Axe Version 0.4.3 support sending a 2-byte number with the Send( ccommand? If so, how do you specify it is such? Would it be, for instance, Send({L1+8}^r,1000)

^r means superscript r.
Title: Re: Star Trek 2 Player (Axe Edition) Progress Reports
Post by: DJ Omnimaga on August 17, 2010, 07:42:47 am
That might be best asking the question in the Axe sub-forum, since it might get missed here.