• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

Client-Side Test Suite Development Discussion

Started by lirmont, August 18, 2012, 01:04:22 am

lirmont

August 18, 2012, 01:04:22 am Last Edit: September 21, 2012, 10:28:13 am by lirmont
Currently, I'm working on two rather invovled test environments to help support game development using Tethical's engine.

"Resource Actions (Test)"

The first test area lets you see all the characters (Tethical Format, XML format, or 3D Format) and effects (XML Format) you have available to your game, and it will let you cycle through and view actions. This is not a replacement for my Sprite Animator program (or 3D modeling programs), but it will alleviate the need to be on a specific OS or have specific software installed in order to, say, find the named animation you want to use during an event.








"Player Formulas (Test)"

The second test area will allow you to cycle through all registered player accounts, pick actors and targets from amongst their teams, and then run your formulas against them on a simulated battlefield in order to find out what the results would be. This is meant to be an alternative and closer to reality approach than Tethical's control panel application provides you with for formula evaluation. Whereas the control panel allows you to input any numbers and get a quick result, this will allow you to test many different situations both quickly and visually (when it's finished).






--

These two tests have come at the expense of significant rewrites and re-organization to the existing code-base, and there is still more to do. In the meantime, if you have an idea for a type of test you want to see (or ideas for enhancements), please use this thread to post them. As always, thanks for your continued interest in this endeavor.


--

Implemented Tests:


  • Default Scene Test - 90% done.

  • Map Event Test - 100% done; requires rewrite later to use system-level functions vs hard-coding.

  • Silent Map Event Test - Same as above; what the operatic demo event used; getting removed in favor of just letting the event silence music in a map event test.

  • Player Formula Test - 50% done; underlying menuing needs a little more functionality; requires creating server calls that aren't written yet and responding to a lot of different cases with regards to whether the server is even on, whether the database server is on, etc.

  • Sprite Actions Test - 80% done; needs some rewriting to use system-level functions.



Proposed Tests:


  • Status Effect Test - test applying status effects to a character; inflicted animation -> load event -> optional mock battle phases; submitted by Choto.

  • Map Weather Test - call the map's weather event (if it has one); query event for available weather -> generate list -> load event as a sub-process, keeping menu available; submitted by Choto.

  • Map Time of Day Test - call the map's time of day event (if it has one); query event for times of day -> generate list -> load event as a sub-process, keeping menu available; submitted by Choto.

  • Abilities Test -> for when abilities have game-oriented metadata attached to them (things like requiring a target point or points; weapon attachment; etc); submitted by Choto.

  • In-Place Effects Test/Backgrounds/GUI -> for testing important graphical pieces inside the context they exist in (i.e. job change, level-up, etc); submitted by Choto.


Lijj

This is awesome. It offers a lot of visual control. I like the named sprites haha.
Is that font from FFT?
  • Modding version: PSX

lirmont

August 18, 2012, 07:34:42 pm #2 Last Edit: September 15, 2012, 09:31:45 pm by lirmont
Yeah, the font is the one Kivutar and I put together here: http://ffhacktics.com/smf/index.php?topic=7849.20

A lot of the letters are copied, but the punctuation (and some letters) were made up in the style of FFT on the way to completing the font. The only thing the font doesn't have is accent marks/special characters (i.e. unicode stuff for other languages).

--


Choto

perhaps the ability to apply a status effect on a character and see how it appears visually would be of use down the road? That's really all I can think of. This may be covered in another part of your programs, but loading a map with weather/timeofday/etc?

lirmont

Status effects haven't made their way in yet, and I don't know specifically how I'll do it yet. I feel like the graphics probably need to be handled by events. For instance, if you were to catch someone on fire, setting them red would not suffice, whereas having an event add some flames to the inflicted character and catch grass on fire if they walk into specific types of tiles would be interesting.

Weather and time of day is only available as hard-coding/map design at the moment, but it's something else that could take advantage of events (and probably should). They can probably wind up on their own lines of the map description files (re: weather-event ..., time-of-day-event ...) so that they can be called specifically (and tested).

I'll update the first post with a list of current and planned tests.

Choto

An ability-effects test would be useful to see how the effect looks in-game against the environment. It would also be helpful to make sure the nodes you set function correctly... although maybe whatever program is used to set the nodes would have this functionality? For example if you had something like the mortar effect I made... you could move the sprites around the map and see if the effect follows the sprite... or if it has any issues with hitting obstacles, etc.

nodes: locations on the sprite that the effect is anchored too.... like weapons being anchored to the sprites hand in weapon strikes.

Also, if it's meant to encompass events too, you could have it call a specific event to test it.

Also, testing different backgrounds or screens. For example, if I could load the formation screen and test the job-change particle effects, or the different menu/stat display graphics.

Not sure if these would be covered somewhere else, but I figured I'd throw them out there.

lirmont

For abilities, that's kind of encompassed by the Player Formulas Test, because you'll be able to potentially quick-select an ability to pick its formulas and see it on-screen. But, it's true that it's going to get more complicated when specific nodes are important, and maybe something more effect-focused will be necessary.

As for GUI-related things, it can't easily be done at the moment, but maybe a little later. If you read the other recent thread about reorganization, I'm going through the client code and changing this stuff up. To go a level of detail deeper than that post, I'm adding a state manager so games can pick their first state (say, a start screen or an intro video rather than the login screen) and the state manager will let your states ultimately make a game. States will provide me with a way to write the save feature, but it's not something I've done before. They will also provide a way to do things like split-screens and fading from one state to another (rather than just fading to black). States will ultimately let you write very targeted code, so you know where it is and what it does (provided you name things properly).

What's pushing that process back is that I also feel like I need to reorganize the client application to be like the server application. Right now, the main file of the client is 1.1k lines of code that does mostly graphics stuff. Compare that to the server which is 463 lines of code (including all the comments I added) and deals mostly with calculations and sending information to the client. So, ideally the client needs to be 1:1 with the server here, and so it's kind of a long process to make that happen, given some of the requirements.