나는 고전적인 2D RPG (파이널 판타지와 비슷한 맥락에서)를 개발 중이며 누군가 수식 / 리소스 / 예제 링크를 손상시키는 방법에 대한 조언이 있는지 궁금합니다. 현재 설정을 설명하겠습니다. 잘만되면 나는이 질문으로 그것을 과장하지 않고 내 질문이 너무 크거나 광범위하다면 사과드립니다.
내 캐릭터 통계는 다음과 같이 구성됩니다.
enum Stat
{
HP = 0,
MP = 1,
SP = 2,
Strength = 3,
Vitality = 4,
Magic = 5,
Spirit = 6,
Skill = 7,
Speed = 8, //Speed/Agility are the same thing
Agility = 8,
Evasion = 9,
MgEvasion = 10,
Accuracy = 11,
Luck = 12,
};
활력은 기본적으로 물리적 공격에 대한 방어이며 정신은 마법 공격에 대한 방어입니다.
모든 능력치에는 최대치가 고정되어 있습니다 (HP는 9999, MP / SP는 999, 나머지는 255). 능력을 사용하면 능력 + 장비 + 등의 전 / 후 + (100 레벨)에서 일반적인 값을 사용하여 최대 값을 높일 수 있습니다 (HP의 경우 99999, HP / SP의 경우 9999, 나머지는 999) .HP의 경우 8000 / 20,000, 800 / SP / MP의 경우 2000, 다른 통계의 경우 180/350
늦게 게임 적 HP는 일반적으로 더 낮은 수백만에 달합니다 (슈퍼 보스는 최대 ~ 1,200 만).
사람들이 실제로 올바르게 확장되는 적절한 손상 공식을 어떻게 개발하는지 궁금합니다. 예를 들어,이 데이터를 바탕으로 Final Fantasy X의 데미지 공식을 기본으로 사용하는 것은 매우 유망한 것으로 보였습니다. 전체 참조는 http://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381 이지만 빠른 예입니다. Str = 127, 'Attack'명령 사용, 적 Def = 34.
1. Physical Damage Calculation:
Step 1 ------------------------------------- [{(Stat^3 ÷ 32) + 32} x DmCon ÷16]
Step 2 ---------------------------------------- [{(127^3 ÷ 32) + 32} x 16 ÷ 16]
Step 3 -------------------------------------- [{(2048383 ÷ 32) + 32} x 16 ÷ 16]
Step 4 --------------------------------------------------- [{(64011) + 32} x 1]
Step 5 -------------------------------------------------------- [{(64043 x 1)}]
Step 6 ---------------------------------------------------- Base Damage = 64043
Step 7 ----------------------------------------- [{(Def - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------ [{(34 - 280.4)^2} ÷ 110] + 16
Step 9 ------------------------------------------------- [(-246)^2) ÷ 110] + 16
Step 10 ---------------------------------------------------- [60516 ÷ 110] + 16
Step 11 ------------------------------------------------------------ [550] + 16
Step 12 ---------------------------------------------------------- DefNum = 566
Step 13 ---------------------------------------------- [BaseDmg * DefNum ÷ 730]
Step 14 --------------------------------------------------- [64043 * 566 ÷ 730]
Step 15 ------------------------------------------------------ [36248338 ÷ 730]
Step 16 ------------------------------------------------- Base Damage 2 = 49655
Step 17 ------------ Base Damage 2 * {730 - (Def * 51 - Def^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ---------------------- 49655 * {730 - (34 * 51 - 34^2 ÷ 11) ÷ 10} ÷ 730
Step 19 ------------------------- 49655 * {730 - (1734 - 1156 ÷ 11) ÷ 10} ÷ 730
Step 20 ------------------------------- 49655 * {730 - (1734 - 105) ÷ 10} ÷ 730
Step 21 ------------------------------------- 49655 * {730 - (1629) ÷ 10} ÷ 730
Step 22 --------------------------------------------- 49655 * {730 - 162} ÷ 730
Step 23 ----------------------------------------------------- 49655 * 568 ÷ 730
Step 24 -------------------------------------------------- Final Damage = 38635
무기의 공격 등급과 갑옷의 갑옷 등급을 포함하도록 디바이더를 수정했습니다.
마법 데미지는 다음과 같이 계산됩니다 : Mag = 255, Ultima 사용, 적 MDef = 1
Step 1 ----------------------------------- [DmCon * ([Stat^2 ÷ 6] + DmCon) ÷ 4]
Step 2 ------------------------------------------ [70 * ([255^2 ÷ 6] + 70) ÷ 4]
Step 3 ------------------------------------------ [70 * ([65025 ÷ 6] + 70) ÷ 4]
Step 4 ------------------------------------------------ [70 * (10837 + 70) ÷ 4]
Step 5 ----------------------------------------------------- [70 * (10907) ÷ 4]
Step 6 ------------------------------------ Base Damage = 190872 [cut to 99999]
Step 7 ---------------------------------------- [{(MDef - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------- [{(1 - 280.4)^2} ÷ 110] + 16
Step 9 ---------------------------------------------- [{(-279.4)^2} ÷ 110] + 16
Step 10 -------------------------------------------------- [(78064) ÷ 110] + 16
Step 11 ------------------------------------------------------------ [709] + 16
Step 12 --------------------------------------------------------- MDefNum = 725
Step 13 --------------------------------------------- [BaseDmg * MDefNum ÷ 730]
Step 14 --------------------------------------------------- [99999 * 725 ÷ 730]
Step 15 ------------------------------------------------- Base Damage 2 = 99314
Step 16 ---------- Base Damage 2 * {730 - (MDef * 51 - MDef^2 ÷ 11) ÷ 10} ÷ 730
Step 17 ------------------------ 99314 * {730 - (1 * 51 - 1^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ------------------------------ 99314 * {730 - (51 - 1 ÷ 11) ÷ 10} ÷ 730
Step 19 --------------------------------------- 99314 * {730 - (49) ÷ 10} ÷ 730
Step 20 ----------------------------------------------------- 99314 * 725 ÷ 730
Step 21 -------------------------------------------------- Final Damage = 98633
문제는 통계가 255 이상으로 올라 가기 시작하면 공식이 완전히 분리된다는 것입니다. 특히 300 이상의 방어 값은 실제로 이상한 행동을 일으키기 시작합니다. 예를 들어 고강도 + 방어 통계는 막대한 음수 값으로 이어집니다. 사용 사례에서 올바르게 작동하도록 수식을 수정할 수는 있지만 완전히 새로운 수식을 사용하는 것이 더 쉬울 것입니다. 사람들은 실제로 피해 공식을 어떻게 개발합니까? 나는 엑셀을 열고 그 방법으로 수식을 작성하려고 시도했지만 (예를 들어 공격 통계 대 방어 통계 매핑) 더 쉬운 방법이 있는지 궁금합니다. 여기에 내 게임의 전체 게임 메커니즘을 전달할 수 없지만 누군가 손해 공식을 만들기위한 좋은 출발점을 제안 할 수 있습니까?
감사