• Welcome to Final Fantasy Hacktics. Please login or sign up.
July 09, 2020, 01:39:31 am


Please use .png instead of .bmp when uploading unfinished sprites to the forum!

Tethical To-Do List

Started by lirmont, April 27, 2012, 11:15:32 am


April 27, 2012, 11:15:32 am Last Edit: October 20, 2012, 01:39:21 pm by lirmont
To-Do List


  • Title Screen; 100% done.

  • Options Screen; 100% done.

  • Game List Screen; 75% done.

  • Party Formation Screen; 50% done.

  • In-Battle Menu; 10% done.

  • In-Battle Character Action Display; 100% done.


  • Unarmed Attack; 100% done.

  • Attack, With Weapon.

  • Throw Weapon/Throw Item.

  • Skills.

  • Target-Only Skill Effects; 90% done.

  • Self & Target Skill Effects.

  • Status Effects.

Battle Movement

  • Flat Landscape; 100% done.

  • Uneven Landscape Moving Upward.

  • Uneven Landscape Moving Downward.

  • Jumping Gaps.

  • Flat Landscape, Flying.

  • Uneven Landscape Moving Upward, Flying.

  • Uneven Landscape Moving Downward, Flying.

  • Move to Square, Water Splash.

  • Move to Square, Footprints in Sand.


  • FFT Maps; 100% done.

  • Custom Maps; 100% done.

  • Lighting.

  • Snowy Weather; 100% done.

  • Rainy Weather; 100% done.

  • Chimney Smoke Effect; 100% done.

  • Animated Map Texture; prototype code available.

  • Animated Map Component (re: windmill animation); prototype code available.

  • Starting Locations; 100% done.

  • Move-Find Item Locations.

  • Traps.

  • Music; 100% done.


  • Usable Items.

  • Main-Hand.

  • Off-Hand.

  • Armor.

  • Feet.

  • Accessory.

Skill Category-Related

  • Primary.

  • Secondary.

  • Reaction.

  • Support.

  • Movement.

  • Purchased with JP.

  • Learn on Condition.

Artificial Intelligence Related Options

  • Manual; 100% done.

  • Fight for Life.

  • Run Like a Rabbit.

  • Save Fading Life.

Percentage Key:

  • 100%; a complete implementation exists in the main Tethical development branch; this does not mean the feature is 100% complete.

  • 90%; a complete implementation exists in the main Tethical development branch, but some minor functionality is missing.

  • 75%; a mostly complete implementation exists in the main Tethical development branch.

  • 50%; a work-in-progress implementation exists in the main Tethical development branch.

  • 10%; a placeholder implementation exists in the main Tethical development branch.

  • blank; does not exist in the main Tethical development branch yet.

  • prototype code available; proof of concept code exists outside of the main Tethical development branch.

Development Branch Issue List

Tethical main branch: https://github.com/Kivutar/tethical/issues?labels=&milestone=&sort=comments&state=open


Awesome list, love it.

Are we planning on building support for map triggers that can alter the map mid-battle? Things like moving to the tile with the gate lever and pulling it causes the gate to animate open. We'd need some way of incorporating that animation into the 3d map files and then also a way of setting the tile property to run a mini-script.


I doubt tile-specific client event actions or "on-move" client event actions are possible at the moment, but the only thing stopping them from being possible is just the inability to allow a client event script to subscribe to such an engine event. In other words, a small amount of code needs to be added to, A, allow the engine to store a handler method, B, expose that handler method so that it can be assigned to by the client event, and, C, have the engine emit it or perform the method everytime some move action is confirmed. Changing the state of the map is trivial after that, since client event scripts are Python scripts that run with access to the scene the Panda3d engine has created. So, if you set up your map file correctly, you could advance specific parts in about 5 lines of code (including checking that you've actually gotten a part of the map model). In this case, maybe consider them states: one frame for "closed gate, switch up", one set of frames for "opening gate, switch going down", and one frame for "gate opened, switch down".


Panda3d has some event dispatcher stuff we could use - I was actually thinking it could be a good way to handle responding to server codes on the client side.

So, the person creating the map could attach an event listener to the map and listen for various things: onMoveToTile, onMoveFromTile, etc. which would give them information about what character was moving, what tile they moved to/from, etc and have the logic to respond accordingly.

The other option is that on the tile itself would be an option to add a script that gets run when a unit walks onto it, but I don't think that's as flexible - you would only be able to have 1 script that runs and there would have to be additional tile options for each possible action.


Server TO-DO List

Support for multiple games at once 50%
DisconnectPolling (client needs this too, to know it has disconnected from server) 100%
server registration / announcement (some way for players to find servers) 0%

Implement ORM (SQLAlchemy?) 0%

Create server admin interface 5%

Code base needs refactoring 10%

I started working on the server.
This is what I've got so far. I've implemented the disconnect cleanup on the server, and the disconnect polling on the client.
Started refactoring - the server code needed a little better organization.
Added a web based admin interface with cherrypy - so far all it can do is list players and I implemented a method to be able to kick them off the server.
Then I put enough in the client that I could prove the kicking worked (it does.)
Installed mysql. Next I want to get the partial schema installed, and probably get SQLAlchemy going at this point.
Also trying to refactor to the point where it's easier to support multiple games at once. Almost there.
This weekend I'll fork the original project on github so I can have a place to check in my server changes.
(Also a few client changes to keep up with what I've done in the server.)


Let's be together !!