Website update.
teambatfox.altervista.org/Kosei Online Update!:
Story Overview:
Short version:
Kosei 1 is a visual novel about the life of a boy born as Sinjin Minna, nicknamed "Inaki" after a tragic encounter with an insane man that ended with him getting multiple personalities, becoming a Kosei no Tsukaite ("Personality Wielder"), and his dad killed. His multiple personalities also grant him strange abilities that wouldn't be possible otherwise, due to his "Thaumaturgic Surge", an energy present in every living being, increasing by a very large amount. Initially, he has a tough time controlling his personalities, even after obtaining glasses that restrain them. They could come out at will, or even take over his own body. By the end of the game, Inaki has more control over them and gets used to them, only having trouble controlling his CRAZY personality, who is very unpredictable and likes to murder. Mass murder. Luckily, his CRAZY personality is rather reserved, so it doesn't come out unless Inaki becomes very stressed. In order to get it back in, he has to defeat it in battle. The game also introduces Naomi, a strange girl who plays an important part in getting Inaki to realize his potential. She is a Gijinkasareta Kurosu-Ningen (Cross-Human), basically a hybrid between an animal and a human. She is a cat one, but there other types of hybrids as well. They can transform into the animal of their specified type, but they can still talk normally while doing so.
In Kosei 2, Inaki fights demons with his newly obtained special powers ("Personalities") which help him kill the previously immortal beings.
An agent from the "Academy" (Basically a secret police force training facility), Futatsuko, finds him and informally "recruits" him to help her track down and kill these demons.
Kosei Online is after Kosei 2, the aftermath after Inaki
(Kosei 2 SPOILER). The demons are in shambles and what they do will progress with the game and the players.
Writeup:
TP - (Thaumaturgic Surge [Points])
Character Types:
Ningen (Human) - Balanced, Various Transformation choices, such as Power Up.
Kosei no Tsukaite (Personality Wielder) - High HP, Multiple Transformations, Multiple Personalities (Active Personality depends on current Transformation, and Awakened Form has all Personalities active), High Transformation Cooldown (Even Higher for Awakened form), Low Elemental Resistance, Low Luck.
Akumasonzaisha (Demonic Entity) - Faster, High STR, Bloodlust (Works as in Kosei 2), Weaker during the daytime (Less HP, SP, and TP Regeneration).
Gijinkasareta Kurosu-Ningen (Cross-Human) - Fastest, Animal Form, Weak at Close Combat
2 Control Schemes:
(Keyboard Only) Modern Style Skill Commands- Instant Gratification!:
Press hotkeys you set in order to use skills!
Classic Style Skill Commands - For Glory!:
Use a combination of movement input and buttons (Y being the main use skill button) that you set in order to use skills!
Personality System:
Different Personalities boost respective stats as well as give bonus training points to skills that utilize that personality. All skills have at least one personality type attached to them.
Hotheaded - STR boost, most combat skills.
Bookworm - INT boost, most fighting magic skills.
Strong-Willed - WILL boost, most combo skills.
Energetic - DEX boost, most ranged skills.
Snobby - LUCK boost, most merchant skills
Kind-Hearted - HP boost, most healer magic skills.
Calm-Minded, TP boost, most misc. magic skills
Hard-Working - SP boost, most life skills.
Child System -
A playable child can be made in one of four ways:
Traditional method to your race - Available under certain circumstances, age 18+
Genetic Fusion - Available to two of any race and sex, age 18+ - Child gets traits and aesthetic features of two individuals
Genetic Creation - Available to one of any race and sex, age 18+ - Child gets traits and aesthetic features of one individual
Formation - Available to one of any race and sex, age 18+ - Uses Classic Character Creation
The one who initiated the request will be the one playing the child. You can choose how much you want the genetics to be on the either partner's side. This effects the child's skills' ranks and even the skills themselves.
Except for Formation, children will be randomly generated based on your settings. Except for Formation, you cannot change the child's race or features, only gamble for a new look and race. Including Formation, you also gamble for skills as well if using Speed Aging, otherwise, it is generated by parenting and training.
A child can be raised in one of two ways:
Traditional: 10 week process (realtime). Raise the child's stats through a variety of training methods (including good parenting). The child will gain more AP, stats, or even skills based on what you trained it and by aging.
Speed Aging: Instantaneous. The child has predetermined stats and becomes immediately playable, starting at age 10 or higher.
A child becomes playable, the adult becoming unplayable, when the child reaches age 10.
AP System -
AP is gained by aging and leveling up. The amount of AP earned per age and level depends on your current age.
Age - AP Gained Per Level - AP Gained on Next Age Up
10 - 10 - 5
11 - 9 - 5
12 - 8 - 4
13 - 7 - 4
14 - 6 - 3
15 - 5 - 3
16 - 4 - 2
17 - 3 - 2
18 - 2 - 2
19 - 1 - 2
20 - 1 - 2
21 - 1 - 1
22 - 1 - 1
23 - 1 - 1
24 - 1 - 1
25+ - 1 - 0
The child system replaces a rebirth-like system. Because of this, at young ages, more than one AP is gained through leveling up.
New Stats:
JMP - How high you can jump
SPD - Base Movement Speed
CSPD - Charge Speed for certain skills
DEF - How much you can block until your guard breaks
ARM - Damage Negation
New Character Type:
Intellectual Holo-Unit (Name Pending) - Fastest Growth in Machinery-based skills, High JMP, High ARM, High DEF, Low DEX, Low LUCK, Low Elemental Resistance, Less TP Regeneration.
New Personality Types:
Speedy - SPD boost, most SPD-based skills
Jumpy - JMP boost, most JMP-based skills
Quick Learner - CSPD boost, most long-charging skills
Sturdy - DEF boost, most DEF-giving skills
Tough - ARM boost, most ARM-giving skills.
Stat System -
All levels are hidden and only give AP.
Stats can be added through equipping better equipment. Stats added this way cannot be brought into PvP. More powerful equipment cannot be traded and are rewarded through completing certain missions or drops. This simulates "leveling up" (à la Monster Hunter 3).
You can train a stat through ranking up skills, however, there are penalties to other stats for doing so.
OBSOLETE: Stats use a "stat point" system, any cap on a stat will be imposed not throughout one but throughout all stats. For example, if the cap was 5000 stat points, you would not have 5000 in each stat but rather 5000 in total. //HP, SP, and TP may count as 1/10 of a stat their total. 100 HP would be 10 stat points.
Ex (Capped at 3000):
STR - 500 (500)
INT - 10 (510)
WILL - 500 (1010)
DEX - 100 (1110)
LUCK - 90 (1200)
HP - 1000 (2200)
TP - 10 (2210)
SP - 100 (2310)
JMP - 20 (2330)
SPD - 20 (2350)
CSPD - 50 (2400)
DEF - 350 (2750)
ARM - 250 (3000)
REPLACED WITH: Every player starts with the same amount of stats. Stats will always be balanced, a player will always have the same amount of stats total. They are changed through skills, which heighten some stats, but lower others equally.
Character Creation -
Eventually, you will be able to morph your character's looks (à la The Sims 4) from 3 sets, Age 10-12, Age 14-16, Age 17+.
You can also choose from preset morphs as well.
Character Create has:
Identification (Your name in General Chat.)
First Name (Players can have multiple characters with the same first name.)
Last Name (Players can have multiple characters with the same last name.)
Personality (or Personalities for )
Sex
Hair
Eyes
Face
Mouth
Body (Beware, eating food can change your body shape.)
Seperate appearance options for each personality of a Tsukaite
Equips -
All equips can be worn in Style, Combat, or Both.
Equips worn in Style show on your character.
Equips worn in Combat give stats to your character.
Equips selected to wear in Both give stats and show on your character, unequipping any equips worn in that slot (Style or Combat).
Character Customization -
In addition to the customization of character creation, like Shinobi Way, which was a spirtual prototype of this game in its systems, there are many customization options available after creating your character. Some of these include:
Equips (Top, Bottom, Robe, Shoes, Head, Left Weapon/Shield, Right Weapon/Shield, 2 Accessories. Equips can usually be dyed any color as well.)
Combos (Equip a weapon and customize combos for that weapon type. Base damage is based on the attack, not the weapon. Stats (including those from weapons and other equips) increase this damage, the stat used depends on the weapon. An attack may have more than one weapon that it can be used with.
Combos are used by pressing an attack button (primary or secondary) and a movement direction (including neutral).
The amount of combos you are allowed to do is based on your Combo Mastery skill, starting at 3 inputs for combos and going up to 17
(One for each rank. Was 10 in Shinobi Way, but the way that this piece is coded is a bit different, which means we can put gain one for each rank (15 ranks: Novice, F, D, C, B, A, 9 through 1)!)!
Combos are based on primary or secondary, primary usually being punches for fighters and kicks usually being secondary. The only difference is that they are on different buttons.
Any attack can be done in any order and can be strung together in many ways, as long as the number of presses of the attack button match the slot number, meaning that with 17 combo slots for each attack button, the possibilities are endless!
And for newbies and casual players, there will be combos presets available for each rank for each weapon type, so they can quickly create go into battle without a sweat!
Combos and presets can also be learned through various methods, such as quests and scrolls. Try to collect them all!)
Animation Styles (Customize animations for standing, combat stance, walking, running, jumping, and more.)
Body and Face/Mouth/Eyes (Through food and exercise.)
Hair (Through barber shops)
Sex (Through the Academy... Science! Method is like Genetic Creation, only locking into the opposite sex and not messing with skills.)
Life Skills -
Don't like fighting? Don't worry! There's more to do than just combat. Try your hand at farming, weaving, refining, fishing, and more!
Life skills can be useful for gaining stats for the battlefield as well!
Stat Calculation:
First, all stats lost from a skill are calculated through multiplication.
Then, the a percent of the difference gained is added onto all of stats to be gained, adding up to 100% of the difference.
For example, if STR is at 100 and you get 0.99 multiplied onto the stat and INT is at 100 and is to be gained, STR will be at 99 while INT will be at 101.
However, if STR is at 99 and you get 0.99 multiplied onto the stat and INT is at 101 and is to be gained, STR will be at 98.01 and INT will be at 101.99.
This way, you gain as much as you lose, and character builds will be balanced.
Alignment:
Your alignment is based on a number of factors such as:
Your choices in the story.
The type of mobs you fight.
Your parent(s) alignment.
And more.
Alignment may change how your character reacts to things, what type of enemies spawn, and your role in the story.
Network Code -
For the fastest possible experience, the game is implementing a GGPO-type system, where the client (both clients in the case of PvP) will rollback if the event queue does not match the server's.
Important combat packets will be sent in the form of:
Character 1 ID, X, Y, Z, State, Animation, Frame, Character 2 ID, X, Y, Z, State, Animation, Frame
Every so often, the server will check if the event queue matches the client's event queue (Checking by STATE only, everything else is for reverting), if not, it will back up to the point where they are different, and the server's queue will take priority.
Example:
Server Queue:
1, 24, 15, 1, Attacking, Punch1, 4, 2, 33, 15, 1, Blocking, Block1, 1
Client 1 Queue:
1, 24, 15, 1, Attacking, Punch1, 4, 2, 33, 15, 1, Hit, Hit1, 1
Client 2 Queue:
1, 24, 15, 1, Attacking, Punch1, 3, 2, 33, 15, 1, Blocking, Block1, 1
Server reverts itself and sets clients to:
1, 24, 15, 1, Attacking, Punch1, 4, 2, 33, 15, 1, Blocking, Block1, 1
A player may also optionally choose to enforce an input delay for themselves. In this case, the action is sent to the server, and is not executed on the client until delay and not executed on the server until delay minus time to send to server.
Client-side prediction test complete!
Server reconciliation test complete!
Prototype entity interlopation complete!
Input queue test complete!
Input reduction test complete!
Input Vector2 test complete!
Input Jumping test complete!
Input Elevation test complete!
Input Falling complete!
Initial transfer to implementation complete!
TODO: (// <- Marks obsolete network code, only there for future reference) (++ <- Marks completed code, but is still in the list for reference.)
++Figure out how jumping will work.
//When keydown movement input is sent from client, start the move on the server as well.
//When keyup input or keydown input from anything affecting movement is sent from the client, send elapsed time since keydown in message.
//As an alternative to the two above, GameStates message will be sent any time the client updates, much like the combat packets above. These will be universal input packets.
++As an alternative to the three above, the client will send a queue (if it is not empty) every 0.2 seconds (200 ms) with an input and time since last sent (which is 0.2 unless the client fails to send in time or the person does a fast-paced action, which will make the time shorter).
//Use the elapsed time on the server to calculate position from keydown to keyup (using the server's positions) and snap them there (taking collisions into account.)
++Fix jumping from the switch to implementation.
REDO
{
++Make the movement relative instead of absolute.
++Make speed == MoveSpeed.
++Update the rotation of the character.
++Use entity interpolation to smooth out any rough updating on the client side.
}
//Make the client's send frequency less. (DEBATING)
++Set the client's max hold time back to normal.
++Filter out GameStates so that each client only gets a GameState with things visible to them.
++Non-hold inputs will work as they work in the original tests.
++Reimplement visibility.
Lag compensation may be used for fast-paced PvP and/or PvE.
++Send over the SPD stat so that animation speed can be calculated.
++Reimplement Character Selection.
++Reimplement Character Creation.
++Reimplement Character Deletion.
++Implement Zone and Player Validation.
++Reimplement transition to Game.
++Reimplement proper entity interpolation.
++Make client only able to jump if server says it can.
//May scrap GGPO and input delay in favor of lag compensation.
++Move updating over to Update background thread.
++Let Physics use Unity Engine, same project, with a variable to tell whether it is a client or Room.
++Move over things on TODO list from simulation to Kosei Online (Unity and Server Physics) implementation.