Welcome, Guest

Search for this quote"Well, they can't keep these episodes serious for too long"

Tenshi Animétion Forums // Software Development // Unmei Densetsu::DevLog
Go to: Page 1
Unmei Densetsu::DevLog (News thread for coding Unmei Densetsu)
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002

Back to Top
Unmei Densetsu::DevLog
posted // Tuesday, January 10, 2006 4:33 am
There's been a long break since the last update on Unmei Densetsu, and even when I was working on it I was not really relaying information in any form sans screenshots that were posted in the #Pixelation chatroom I frequent. In preparation for a dedicated, revamped Unmei Densetsu page, I am beginning this Dev-Log to keep potential viewers updated on this game.

- Today I returned to coding Unmei Densetsu after a couple months' break spent on schoolwork and various other things. As with my site I've begun to use a checklist method to map out how to proceed on game construction and how to focus my time and efforts. First on my list of things to do was to alter the resolution of the game from 640x480 to 800x600. I feel that this change will allow me to display not only more images on screen, but also to use higher resolution images for faces in menus and larger icons. Not to mention that some monitors now can't even properly do 640x480. :)

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #1 of 7
Back to Top
Establishing the Battlefield
posted // Monday, January 16, 2006 5:51 am
The last couple of days have been spent establishing the Battlefield. Along with increasing the size of the battlefield from 20x15 to 40x35 support to scroll the field had to be properly established. Along with that came the necessity for tile highlighting , cursor display, and the battle menu to also display at the proper locations. As far as centering the screen on the active player (or enemy) when it's their turn I am still experiencing a couple of bugs with that, but I don't imagine it should be that difficult of a fix (just a specific center function, instead of a generic one, should solve this problem). In any event, the engine does scroll now, and properly displays overtop of the map engine, which means that battles should seamlessly occur upon the maps that the player is exploring... including weather, any LOS breaks, etc.

Another change was altering Setara/Rei's starting level from 1 to 7... because "every hero starts at level 7" granted in some games this is untrue, I'm trying to follow up on a joke here. Along with that was the implementation of the "Level up" code that I'd forgotten to port from the old QB code... including determining the amount of exp for next level, and releasing locks on skills that players gain at a particular level.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #2 of 7
Back to Top
Making use of OpenGLUT
posted // Friday, January 27, 2006 7:42 pm
In the past week time has been spent removing the Windows-API specific windows initialization for the OpenGL window that Unmei Densetsu runs on. At first attempts were made to use GLUT, but it turns out that GLUT is very old, and for my purposes did not have a way of cleaning up my Objects if a user closed the window in any other method other than hitting "escape" or something lame to that effect. Therefore, a switch was made to OpenGLUT which does have an implementation of a WindowClosing routine and therefore garbage clean-up does occur when the game exits.

Any references to windows.h have also been removed, not even sure why those were in my code, I don't think I was actually using anything from them. Steps are being taken to compile Corona into Unmei Densetsu, so that other formats than 32bpp PNG files can be used.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #3 of 7
Back to Top
System Changes (like that\'s new?)
posted // Friday, March 31, 2006 3:15 am
While a lot of time has been spent trying to get the character redesigns for those characters who will be making an appearance (either playable or not) in Unmei Densetsu a lot of paper time has been spent in coming up with the next steps to take in completing this LONG term project.

As a personal experiment for what I hope will be a future gaming trend, at least in what it is I do, I am removing levels from the game. This game has already been structured to be stat based anyway, including the generation of enemies (levels were only used as a multiplier / balancing factor, but I have figured out how to build an equivalent factor -- or at least I will do so soon).
- Unmei Densetsu already had a character customization section whereby "bonus points" could be used to bolster character stats. I will be removing BP from the game as well. Experience will be kept in a particular character's pool and can be distributed to the character in a similar fashion as before, except that this can be done at any time you can access the menu.
- A difference here, however, to promote character uniqueness (if all characters could level each stat the same, what's the point) is that each character has 3 stat proficiencies, 3 deficiencies, and 4 normal stats, meaning that while the game coaxes you in the direction of how to level a particular character, it is possible to make characters who are not necessarily proficient in a particular skill relatively strong in it (every character still has the same stat max, though, it's just that it will take longer to achieve the same results for particular stats on each character). The exchange of experience for stat points will increase at a non-linear rate as the stat increases.

"Enemy Skills" and "Assimilation" are being removed from the game. That is a remnant of the FF8 fan era, not to mention I need to remove 'redundant' features from the game which would require excess animation time (the primary reason for removal, kay thanks). The system in which these skills could also be used to bolster elemental defenses or attach elemental effects / status effects to particular weapons is also going to be removed in favor of using the exp-skill point system... further reducing redundancy while still allowing for customization to occur. Ability points will remain in the game, because if I were to switch EVERYTHING over to use the same point pool, I would have to give out excessively large numbers of points which means that a player could max a particular aspect too early on in the game, critically affecting the balance of the game (while I understand powergaming , I do it, too, I don't want too much of it to happen too early on).

Each player's skillset is going to be reevaluated and the current system is going to be rewritten into a more list-like state, instead of 16 "fixed" skills. While characters will keep a lot of their current skills, I am probably going to remove a lot of the redundancy (primarily for animation purposes) of particular skills in favor of allowing players to customize these skills themselves. For example, "Fire," "Flare," "Inferno," "Phoenix Firestorm." That's essentially Fire, Fire2, Fire3, Fire4. Instead what I plan on doing is allowing the player to customize particular aspects of one consolidated technique. When in combat, the player will be able to use particular strength levels of that technique. What I am thinking of doing is allowing the attack radius to be variable (controlled by the player) and the radius of the technique determines its power, which, through player 'leveling' can be increased such that damage/tile is increased.

This means the reorganization of a few things, including the skillsets and ability slots as well as removal of a few things, but ultimately while this is a bit more coding to do, it's a lot less graphical work to do, which, for me, is actually several times more time-consuming. Steps like this hopefully also remove the carbon-copy nature of Unmei Densetsu and set the stage for the types of games I wish to produce.

- Incidentally, the sex of one of the characters has changed. A previous character, Meyuki, the twin sister of Miyoki has been changed to be a twin brother of Miyoki. This change is in light of the fact that the game's cast [as well as the universe cast in general] is too predominantly female. To try to bring about a bit more of a balance I am making this change. The character's background wasn't complete yet anyway, and the change also sets him apart from her inspiration.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #4 of 7
Back to Top
Re: Unmei Densetsu::DevLog
posted // Wednesday, November 29, 2006 11:35 am
The following are a number of recent changes made to Unmei Densetsu reflecting an attempt to simplify the game, unify the coding approach, and move forward to present a playable demo in the somewhat near future.

The old Status System has been removed in favor of a unified, one-size-fits-all "Buff" system. One of the first changes I made when I returned to coding Unmei Densetsu was to take a page from MMORPG systems (or at least, how I perceive that they are implemented) and make a Buff class. I then wrapped all status effects and DOTs as well as HOTs and other states into it. In doing so I have not only simplified the code... but I've also created a system that allows for a drastic increase in game depth without actually having to code anything additional. Each character (player / enemy are both derived from Character) has a buff list of essentially infinite size (though there are limitations on each buff, and maximums that one can apply to any particular stat in order to prevent unbalancing the system). With this I have also removed a number of individual status effects. Things such as HASTE and SLOW have been replaced with a single Buff flag "Stat Enhancement" with the strength and beneficiary status being determined before the buff/debuff is applied. The stat "Dexterity" is also set. Buffs also increase stats absolutely or relatively, depending on how the buff is created by the calling Script command. So a "Haste" spell could double dexterity, while another could simply add +5 to Dex. Another thing is that Buffs stack (within limits). Therefore it's possible to have +255 to Dex, but then also have x4 to Dex on top of that. Due to a system of diminishing returns (to be discussed later), though Buff maxing is possible, it will not unbalance the game. This system drastically increases Technique complexity and has also opened the door to ...
[Buff implementation code:: 100% complete]

Weapon Buffs. Weapon remodeling is being removed in favor of Item Synthesis (next paragraph). However, individual weapons will now use the aforementioned Buff system. Certain weapons will generate non-dispellable Buff(s) on the character when they enter combat. For example, "Spirit of Rei," which was described before as "randomly reviving a fallen ally" will cast a "Spirit of Rei" buff when combat begins, which, when triggered, will randomly revive a player within Rei's threat radius.

Item Synthesis will be modified in the game. Currently Unmei Densetsu uses a "Weapon Remodeling" system reminscent of Final Fantasy 8. In straying from the old Final Fantasy influences I have decided to remove Weapon Remodeling from the game in favor of a generic Item synthesis. One of the Items that can be synthesized is "Weapon upgrade components" which will allow the player to modify their weapon. There will be different degrees of components, and the Weapon Table will likely remain, but it will be modified to accomodate the buff changes as well as some other core modifications to the game. In any case, this simple system will flag an item as a "recipe" which can be used to create other items. Most of these synthesized items will not be available in shops. Some will also be considered contraband that some shops won't buy.

Core stat / resist changes have been made to Unmei Densetsu. When levels were decidedly removed from the game, that still left a number of stats and elemental resistances that would have to be pandered to individually. One of the primary goals of this recent sweep of the game code has been simplification and consolidation. In doing so I have created a small list of stats and resists. These are then used to generate the other stats that the game needs. Some of these stats are relatively fixed (like "Threat Radius"), but those are more weapon-based than anything.
Some of these were influenced by the implementation of the Buff system.
  • Constitution - Determines Health Points
  • Stamina - Determines Health and Action Regen per tick
  • Fortitude - Determines Defense (Base Soak and Damage Reduction)
  • Dexterity - Determines Combat Speed (ATB gauge) and Evasion and Move Distance
  • Proficiency - Determines Percentage of Max Weapon Damage used and Hit Accuracy. A high weapon proficiency adds a bonus to inflicted damage.
  • Force Power - Determines Technique Attack Power and KP
  • Willpower - Determines Technique Defense Power and KP
  • Awareness - Influences Attacks of Opportunity, Evasion, Technique Evasion, and Counter Attacks taken
  • Luck - Influences Critical hits and breaks on damage
  • Focus - Determines Technique Execution Time
  • Discipline - Determines KP regeneration per tick and also increases efficiency with KP up to 10%, and also helps to reduce Technique Execution Time slightly

- Derived stats are:
  • Attacks of Opportunity - Determines whether or not a character seizes the opportunity to strike an enemy character moving through their threat radius
  • Threat Radius - Determined primarily by weapon, this determines the radius of influence a character has to attack characters moving by them, and also prevents non-covered characters from fleeing the battlefield.
  • Move Distance - Determines the number of spaces a character may elect to move per turn. A character who elects to move shorter than their move distance will be able to perform another action sooner than one who moves the maximum distance they can per turn.

- Initial runs with the formulas I derived using these stats allow HP for the Player to exceed 9999 and KP to exceed 999. I figured "Why not." :)

I also have consolidated Elementals into categories for resistances. While elements for offense will still be more numerous, the player does not have to concern themself with putting a large number of points into individual resists which I have deemed redundant. The number of Elements has also been reduced.
  • Temperature - Includes "Heat" and "Cold" elements.
  • Electricity - Electricity Damage is an isolated element type
  • Chemical - Corrosive effects from Acids and Bases differ from poisons. Originally this was named "Acid" but the mention of "Base" could be used, so this category is named generic. Since "poisons" wouldn't work on a machine, it makes sense to separate this into its own category
  • Environmental - Environmental damage includes Nature Damage which includes "Poison", "Water", and Environmental effects like "Wind" and "Earth."
  • Divine - An inexplicable Light/Life-type element.
  • Abyssal - An inexplicable Darkness-Absence-of-Life-type Element
  • Spiritual - Etheral / Life force type element. Generally used for healing.

- Status effect resists are also combined:
  • Mental - Includes mind effects like "Trance" (Sleep | Charm), "Berserk" , "Confusion", and "Fear"
  • Affliction - Includes Damage over Time effects like "Poisoned", "Burn", "Chill", "Shock", and other element-based DOTs.
  • Abberation - Stat or resist reducing statuses like "Slow", "Blindness", or "Weakness


Some battle changes have been made as well. Switching to the buff system as well as adding improvements to the Battle Engine for multiple buffs proc'ing (whatever that means) at the same time. They will be displayed after a delay instead of simultaneously in an illegible manner. The Line of Sight code has been improved to include line tracing to determine if line of sight at a particular tile is possible. Also, the tile highlight code to determine / display a legal tile to perform an action on has been streamlined to work a lot better, and use fewer instructions per cycle. It also uses LOS code, and uses Distance code. With this change to a literal Distance formula, I have decided that characters will be able to move on the diagonal (though only 4 directions of animation will be used) because characters can move on the diagonal in the map code, and the new Distance code for determining Radius of attack for techniques uses diagonals. This means a lot of techniques will work in 8 directions now (instead of 4).

Significant Menu changes have (or are in the process of) being made. The menu system will deviate from its FF influence as completely as possible. These changes are currently pending.

The sex of the last character has been changed. This brings the male / female ratio from the latest 3 - 6 (up from 2 - 7) to 4 / 5. So yes, "Nina" is male now.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #5 of 7
Back to Top
Significant Map Strides
posted // Monday, July 9, 2007 12:49 pm
Much of this weekend was spent implementing a series of changes and updates to an outlook on the game as well as spending a lot of time, much time, working on the core of the Map Engine. Up till now this has really been something I've been dreading, because the Map Engine is the bones of all navigation throughout the game. The Script Engine, while the core of the game, wasn't nearly as difficult as this. On with the updates, however.

Game Change
As usual, something changed about the outlook of Unmei Densetsu... but I think I've settled on something that shouldn't change now. It's been headed in this direction the entire time, but this time I just went ahead and removed the cap that I placed on combat (the ATB gauge, which prevents a player or enemy from making an action until their gauge is full). What does that do? Effectively makes it real-time. More like Secret of Mana or Legend of Mana... Unmei Densetsu is retaining practically everything it's built on, but now will behave using real-time constraints, which makes the game even easier to code.
How does it make it easier?
Simple, because for one, I can think of everything in terms of absolute seconds now, instead of having to work with relativity of "turns" or "ticks" through the ATB. It makes scaling the game much simpler.

Map Coding
This past week has been a major effort on the part of coding the map engine, which, due to the change mentioned above, is now more integral than before, because combat can occur at any time, and is integrated into the map engine (though transparently, and will still be handled by the Battle Engine, it is just simply that the battle engine no longer has its own display, it is merely the mechanics of combat, but all of the background tasks will be executed by Map).

Image [http://tanime.net/software/legends/screenshots/dev07082007_tn.jpg]


Pixel x pixel
Transparently all action occurs at the pixel level. Though the game is still tile based and all map collisions (with map graphics) are tile-based, movement and combat occurs at the pixel level. This change simplified the navigational process by allowing me to refer to everything in terms of absolute pixel coordinates, which was something I should have done originally, but when I migrated my code from QuickBasic to here, I didn't take advantage of the 32-bit native integers I had access to, and was still thinking of position in terms of 2 16-bit integers, tile location and pixel offset. That said, simple bounding-box collisions for all sprites on the map (NPCs, Enemies, Characters) all work properly.
Movement across the map is based upon the character's Dexterity stat, which still determines Move Speed (however in terms of absolute pixels now, instead of "Max number of tiles per turn" as before). This means that different characters will indeed move faster than others, and slower characters WILL fall behind when traveling. A majority of techniques can be used outside of combat (which is merely the case of being threatened), which means pre-emptive strikes can occur at any time by the enemy or by the player(s), so if a character is too slow, it is likely the player will want to place Move Speed buffs on them so they can keep up (either that, or spend the Bonus Points to up their Dexterity stat to match that of the fastest character).

Active Character
Because the system is now real-time, at any one time the player will control one of the three party members. The other two will behave according to the behaviors set for them when not controlled. This behavior can be changed at any time, such as "Support," "Beserk," "Defensive," "Survival," and "Nuke." This means if a character is identified as "Support," when not under control of the player they will always try to use their support capabilities to help other members of the team first and foremost, and then if no support can be granted, they will provide support fire for the most wounded member of the team. To force them to do something else, the player switches to them and performs the actions theirself. These sorts of behaviors are already partially implemented and were intended as the 'AI' for enemies and NPC characters, so obviously this is no stretch nor anything really new. The only difference is that I have to adjust for actions being taken in real-time, and not every turn, such that parameters for particular actions are not updated too quickly and scripts become confused.

Switching the active character will play into the menu system, which will now only work for the current active character. Switching is merely a process of Switching the active character, and is thusly transparent.

Minimap
I've actually taken the time to fully implement the minimap, and that is currently working. The currently active character shows up as a blinking dot on the map, and all other characters (enemies, players, NPCs) show up as other colored dots on the map. This will be updated with prettier looking representations, most likely, but for now this will do.

Party Display
The new party display shows the HP, KP, and Action points of each member of the party in a simplified form. HP is in Red, KP in blue, Action in green (or whatever color I decide to change that to, probably yellor or something). Below that will be a list of all of the character's current buffs / debuffs, along with the remaining time on each (unless the buff is permanent, as is the case for some buffs) shown as a very simple, small gauge (the boxes there are merely place-holders). This will be implemented tonight. The HP/KP/Act gauges shrink and grow based on whether or not the stats they are based on are buffed or debuffed (this is really just a remake of the old ATB class).

Other Changes
New font
Well, not "new font" per say, but a new system. It's still Arial, but now text can be drawn at any arbitrary size, and not a fixed set. I used larger source images this time, and also placed a slight outline around each to help the text show up better against backgrounds.

Removed Features
Well, not necessarily removed, just "not to be implemented". Attacks of Opportunity, Cover (for Flee) and Flee are gone, since these occur in real-time now. The only way to flee is to move beyond a creature's desired chase range, which for some monsters will be impossible, and could lead you to tangles with more mobs than you'll want to handle at any one time. All of this occurs in real-time now, and barring any necessary caps I may need to place on the map engine, all creatures will be monitored and updated at all times. If you wound a creature but retreat beyond its range, it will heal up gradually, just as you do.

Universal Attack Specifications
I am currently in the process of constructing a universal attack descriptor. This is something I was working on before I made the real-time change, and actually only helps in this regard. I have laid out the script commands that will describe all aspects of each and every possible type of attack, technique, or item that can be done in the game, which will simplify processing. The object is not yet constructed, but I don't expect that to take long.

Elemental Resists
For simplification purposes, absorption of attacks beyond 100% resist will not occur. A character's % resist is their ability to reduce the damage of an attack of that particular element by that amount. 50% Fire resist means that an attack dealing 500 fire damage will resist 250 of the 500 damage.

Hit Table
I am in the process of developing a Hit Table which will help determine actions and reactions of characters vs. characters. This Hit table will be adjustable based on various buffs and debuffs to specific aspects of a character's avoidance. For example, using Setara's Deflect ability will significantly raise his chance to deflect an incoming attack while the buff is active, that will alter the hit table such that Deflection spans most of his hit table and there will be a greater chance an attack will be deflected (based on Defense of course).

Weapon Simplifications
There are also some changes being made to simplify the Weapon system even more but also advance it at the same time. Each character will have one weapon throughout the game, but different options can be applied to the weapon, such as Improved Capacities for Damage, and the ability to deal a specific type of damage, determined by 4 types of weapon damage: Kinetic (Piercing), Kinetic (Impact), Energy (Focused), Energy (Burst). For example, Setara's Lightblade is 100% Energy (Focused) damage, whereas Nova's weapon is Kinetic (Impact) ~80% + Energy (Burst) ~20%, and Sakura's NoDachi is Kinetic (Piercing) 75% + Kinetic (Impact) 25%. Stuff like that. It will be possible to adjust these by adding slots to weapons like "Improved Impact" which will raise Impact damage by X amount, and so on.

Skill Upgrades
Skills will be upgradable, and thusly will reduce the number of skills in the game by consolidating them into a smaller set of upgradable ones. For example, instead of Sakura having skills like Fire, and Flare, that will be one ability, Pyrokinesis, which can have upgrades made to Range, AoE, Damage, and Reductions in Cast time. Other skills will be able to increase the duration of buffs / debuffs, and so on.

Menu changes
In light of this new system, I have decided that Item use and Skill use can only occur as typified on the map screen. There will not be an FF-style system of using items or skills within the menu system. Also, Party Formation will no longer be available at the Menu. To do so you will need to purchase or use Party Beacons, placing them on the map, and interacting with them, to change your party. Party Beacons will not be usable everywhere, and you can't use one when Threatened (in combat).

'Hanging Spells'
Characters will still have to charge skills before using them, much like they did prior to this change. However, instead of executing Immediately (unless that option is set), a character can hold onto that charged technique, move around, and then use execute it upon command. These are, for now, referred to as 'Hanging spells,' because it will remain in memory for a time, but damage to the character, as well as time, will cause that skill to lose its time in memory or to be lost completely. The Focus stat affects how long a spell will hang, and more complex spells will not hang for as long. A character with a hanging spell cannot move at 100% move speed, either. But this allows a character to fall back, charge a spell, and then execute it from a different location. Support Characters will often have Hanging spells ready, such as Heals or Buffs. Each character may only have one "Hanging Spell" at any time.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #6 of 7
Back to Top
Unmei Densetsu::DevLog 6/16/2008
posted // Monday, June 16, 2008 5:00 pm
And so a year later almost (wow, how time flies when you're playing too much World of Warcraft!) we bring you an update to the DevLog. This time the news is pretty exciting, as I have gone to my professor and should be able to use Unmei Densetsu in a graduate Thesis exploration of Artificial Intelligence. As the AI aspect of Unmei Densetsu hasn't yet been developed (it does kind of rely on there being data present to work off of) all of this other data entry is starting to reach a stage of critical importance.

Recent Developments

Abilities
Coming up with the various attributes and descripters that determine an ability has been trying but I believe that I have come up with definitions for every aspect of an ability that will determine how much it can be customized. There're various costs associated with using any ability (even attacking uses draws from the Action Pool, and characters with 0 action cannot auto-attack -- but this pool regenerates very quickly , as long as their Stamina isn't 0 (due to debuffs) ).

Additionally, each character will be able to equip a number of abilities to their "hotbar." These are the default abilities a player will have at their disposal at any point in time. At this time, characters will have access to all of their abilities through an extended interface, however, but scrolling through them will cost time, and it's likely the target(s) would move or die in that time.

Offense / Defense "slots"
Another change has been to modify the additional bonuses provided to a character and eparate them into Offensive and Defensive categories. It is similar to the old Slot system, but upgradable. For example, Flurry will increase attack speed by 25% for 5|10|15 seconds after dealing a critical hit. What this means is there're 3 ranks of Flurry, and the duration of the Flurry buff will increase Rank*5 seconds. Another option is Parry: Chance to parry an attack, increasing speed till next swing by 50%. This is a basic ability that only characters with a melee weapon will have. It adds to the Defense Table of a character in that though a character may receive buffs that increase ... say ... Parry chance... if they do not have the basic ability "Parry", then even if they have a 100% Parry chance due to buffs, they will have 0 effective parry. In short this makes the combat engine work easier and allows for pre-requisite checks. For example, a Ranged character will not have Parry, so they will not be able to pick up "Improved Parry", which increases their chance to Parry by an additional 1|2|3|4|5%. Another thing to note is that these bonuses are relatively small. Every character has their own avoidance table, and this allows for enemies and players to have even more finely customized stats.

Resists
Resists are being worked into a Force-only category. This will work to reduce damage done by Force-related abilities -- and to amplify the damage done by these schools as well. These are Pyrokinesis, Aquakinesis, Aerokinesis, Biokinesis, Terrakinesis, and Photokinesis. Generic Resists for "Mental (state of mind, stuns)", "Afflictions (DoTs)", and "Abberations (stat debuffs)" still remain the same.

Weapons & Armor
Additionally work has been spent trying to come up with some good numbers for weapons and how to meter their damage as well as adding a fine concept of armor. For player characters armor does not play a very significant role other than being the "realization" of where certain items can be equipped, like Personal Shield Generators (reduces Focused (energy) damage by X and Burst (energy) damage by Y). Since most of the players don't wear much in terms of armor the damage reduction offered by them will be trivial. That isn't to say some NPCs won't have significant damage reduction due to armor. Most of the time, however, Damage Reduction will be a static amount.

Durability will also play a big role here. Weapons and Armor will lose their effectiveness over time. The durability rating on each Weapon and Armor determines the number of successful "hits" they will deliver / block before their effectiveness is reduced 1%. For example, if a weapon has a durability of 2, after 2 hits it will only deal 99% damage, then 98%... and so on, till 1% (weapons/armor never completely break). The exception to this is that Impact damage weapons will never lose their durability. This is meant to imply that if you have a pole, it will always hurt as a blunt force weapon, regardless of how many times you hit with it. However, no weapon is completely impact based, so ... say Sakura's Naginata, which deals 50% of its total damage as Piercing (kinetic) and 50% as Impact (kinetic) ... that means that if her weapon deals 800 damage, it will always deal at least 400 points of damage as a blunt weapon, even if the weapon has been dulled due to use. Weapons and Armor will be easily reparable, as this is not meant to be a time sink, merely an additional level of immersion into the game. It also provides advantages to different characters over longer situations. Nova , for example, has a very durable weapon because his weapon is primarily Impact. However, Setara's Lightblades deal completely Focused damage and very high amounts of it and when the weapon degrades, the loss of DPS will be noticeable until repaired.

Other strides include the removal of statically increasing the damage range of each weapon using points acquired from combat to using "Weapon Attachments" and "Armor attachments" to increase resistances and provide additional bonuses to the weapon, which extends the Item and Synthesis systems further by increasing their importance. For example, synthesizing an Advanced Power Core , which will have a static yield of say... 800 - 1000, and equipping that in place of a Basic Power Core with a static yield of say ... 500 - 700, means that effectively the weapon's damage went from 500 - 700 to 800 - 1000. This way stuff can be swapped out, upgraded and downgraded as desired. Right now these're no specifics on each category of attachment, just that some increase base weapon damage, while others increase aspects... such as increasing the burst damage component of a weapon by 5% or 100 or something like that.

XML
A recent and significant stride has been to download TinyXML, which is a small footprint C++ XML reader/writer. This allows me to stop having to write a bunch of different formats for data converters and now I can express data in a more human-readable format that can be read into different editors -- like the Java ones I'm using. This data can then easily be compiled on different platforms without having to investigate too much into making sure all of my data is saved in big Endian or little Endian formats.

One change has been to change the Sprite format from something like
ToggleCode
32 x 64
32 x 64
map_rei.png @ 0 4

That was a very small, simple format which defined the texture data for a Map sprite for Rei. Each of these was stored in its own little file, imported into the converter, and output its own little binary file stored in the sprites directory. Obviously it is just size information and source file(s) specification. So what I'm doing now is storing these files in an XML format, building a library, and all of the sprites are being read from a single file. The XML reader reads in the Sprite database... creates the sprite table, and then outputs a single sprite table file that houses all of the sprites for UD. There's an index table stored in the file as well that points out where each sprite is so that the entire database does not have to be read on load-up or stored in memory, either.

However it is now easier to load sprites into ... say ... the Java Map editor using the Raw Text version of the Sprite Library now... for example
ToggleCode

<?xml version="1.0"?>
<spritelib>
<sprite name="Rei's Map Sprite">
<source width="32" height="64" />
<display width="32" height="64" />
<frameset>
<frames src="map_rei.png" start="0" count="4" />
</frameset>
</sprite>
...
</spritelib>


So much nicer. It's also helped the connundrum of how to store enemy data as well.

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
Tenshi
Tenshi's avatar.
Seraphic Radiance
Site Administrator
Posts: 1250 ( 1294558 )
Joined: 5.29.2002


Reply #7 of 7
Back to Top
Re: Unmei Densetsu::DevLog
posted // Wednesday, December 17, 2008 12:58 am
Tonight brings yet another installment of the DevLog. I will be somewhat concise with this.

Recently I began shifting away from the tile-based turn-based system I was using to a more fluid version of the system that was not bound by turns or by tiles; currently Unmei Densetsu uses a Pixel-based positioning system for all of its objects (a player, a tree, whatever is considered non-tile-based art that the player will be able to weave in and around). Each of these objects has a footprint, and also a height. This allows for flying objects to be portrayed better and also makes collision detection work a little better and provides a pseudo-3D environment (a fly can fly over a player if the fly is high enough off of the ground, and likewise a player can run underneath or jump over objects of certain height).

The jump still needs to be polished. For instance I shall more than likely make it so the player cannot control the direction of their character after a jump is initiated. Right now it's probably a boo-boo in my calculations. . . so we'll see.

So on to what I did today.

I ripped out some code from the dead Battle Engine. Because everything occurs on the map now, looking at combat as a separate entity from normal map conduct no longer works. It can, but for one the battle engine assumed a separate coordinate system, and once a lot of that code was moved over to the actual map engine and I began to work with all objects as an extension of a Map object the Battle System's positioning and objects no longer worked. Instead of bothering to convert it I'm just copying and converting what I can use and removing the rest.

For example, the Map Cursor was ripped from the Battle class and made into a stand-alone object that now wraps an instance of the MapInterface, which is the manager of all map based objects. This works out nicely because it then can be drawn properly on the map despite the fact that the map camera can be hundreds of pixels away from 0 (pretty much all drawing has to take the camera into account to work well on a scrolling map, unless it is supposed to be drawn over the map in a "2d" sense).

This took some time and I had to kill some other Battle engine code ... but oh well, it needs to be ripped out anyway.

Also, I am now working on incorporating highlighting of the space for an attack back in, now through the map system. Before highlighting was based on a grid because it was tilebased. Now an AoE is literally the pixel size... though I might get a little kinky and make AoEs be listed in meters just for giggles (in fact I like that idea). Done.

The other significant accomplishment was with actually getting some circle-drawing and circle-filling code actually put in place I can now put shadows beneath characters and objects (again using the MapInterface). It's actually an ellipse drawing routine. Now of course I need to go back and remove the shadows from Rei's sprite there, but that's OKay.

Here's the "fruit" of today's labor. It also shows a placeholder for skill selection. This will need more work.

Image [http://tanime.net/software/legends/screenshots/dev12172008.png]

.wonk uoy naht noitceffa erom deen I
View Tenshi's profile
7 replies since topic was posted on Tuesday, Jan 10 2006 at 3:33AM.
Go to: Page 1

Tenshi Animétion Forums Community // Software Development // Return to Top
Username Password Stay Logged In