Projects > Tethical

Control Panel Development Discussion

(1/14) > >>

As some of you may know, Tethical is already at a playable stage in development. That is, you can log into a Tethical server process, create or join a game, and be assigned a party of characters at random. You can then move your party members and attack other party members via a menu system. The game informs you whether you've won (all the other player's characters are at zero HP remaining) or you've lost (all your party members are at zero HP remaining). This is a tactical RPG's basic form, and this is what Tethical is right now.

As a reminder, Tethical aims to clone what FFT did before it. As such, the infrastructure for rules that govern gameplay is being developed. However, there are too many rules to incorporate into the next iteration of Tethical. That is to say, the format is written in a manner that is easily confusing considering it relies heavily on indices (which are numbers as opposed to human-readable information like "STR" or "SPD"). Furthermore, we have to consider that this will be a platform for further game development (rather than engine development), meaning that there should be a serious focus on a person's ability to add, remove, and change the information that Tethical uses to run.

I propose we start working on a Tethical control panel application. You may or may not be familiar with my other project related to Tethical's development, but I submit that to you as evidence of my effort and desire to accomplish such a thing. What I need from everyone are ideas for the design of such a program's interface while work on the game continues. From here on, I'll just refer to Tethical as "the game".

In my opinion, this should be the only program you need to edit the game. Yet, you are tasked with providing ideas to make editing the game manageable for the average person. It will need to encompass a variety of game mechanics, like character statistics and classes, along with network-related settings, like what port the server process might run on, and user management, like the player logins, their characters, and statistics related to gameplay. I expect this design process to take at least several months after which point implementing the features of the program will begin. Though, it is very likely that I will begin on an early prototype before then for my own personal development use.

So, what form should your ideas take? I would greatly appreciate it if you would download and use Glade (for Windows users, the zip file you want is here: click to download; download, unzip, navigate to "bin", and finally run "glade-3.exe"). Glade is an interface designer. It not only allows you to make an interface quickly on your own, but it allows me to use what you've done in the actual program, so long as you provide the XML of your finished design. With that in mind, please do not upload such files until much later. I would prefer you take a screenshot and upload that until the designs become more complicated. Credit for significant contributions will be given within the program, and credit for feedback and quality assurance will be given as well.

Thanks for supporting Tethical with your time.



* Install MySQL (this is a database server):
* Windows: go to downloads.
* Linux: get it from your operating system's package utility, or go to downloads.
* Install MySQL Workbench (this is a database planning tool).
* Windows: go to downloads.
* Linux: get it from your operating system's package utility, or go to downloads.
* Install Tethical: go to downloads.
* Install the control panel application (embedded Mono runtime packages):

* Windows: download.
* Linux: download.
* Source: download.
* Open tethical.mwb (a database planning file): download.
* Run "Database" -> "Forward Engineer":
* Check "DROP Objects Before Each CREATE Object".
* Check "Generate DROP SCHEMA"
* Check "Generate INSERT Statements for Tables"
* Anytime after the first time doing this process, check "Do Not Create Users. Only Create Privileges"
* Click "Next".
* Check "Export MySQL Table Objects"
* Check "Export MySQL Routine Objects"
* Check "Export User Objects"
* Click "Next".
* Click "Next" again.
* You will be prompted to enter in connection information created during your MySQL installation.
* Click "Next" to load the database.
* Close MySQL Workbench (unless you intend on making changes and forward engineering again).
* Edit the configuration files for the control panel application:
* base-locations.xml: Change the data to point to where you installed Tethical.
* connections.xml: Change the data to connect to the MySQL database server you installed.
* Finally, run the control panel and wait for it to flip "Select Game" from disabled to enabled; you can now use the control panel to make changes (though, the actual Tethical game will only respond to the changes you make add/deleting/changing maps for now).

Features by Program Category


* Multi-game support.
* Visual support for graphical elements outside of games (where applicable).

Art Directives

* Ability to provide art direction in a textual and visual form (per game).
* Ability to add an example image; name them as follows: example.png.
* Ability to export all of the directives into a combined .PDF file; example: art-directives.pdf.

Game Mechanics

* Ability to include many different types of game mechanics: permanent statistics, exhaustible statistics, raw statistics, programming-supplied values, class-specific programming-supplied values, temporary penalties, temporary bonuses, permanent penalties, permanent bonuses, class-specific, and scalar values.
* Ability to assign formulas to game mechanics.
* Ability to evaluate those formulas with arbitrary data (for testing).

Race & Gender

* Ability to make a virtually unlimited amount of races (ex: humans, animals, monsters, etc).
* Ability to make as many genders as necessary.
* Ability to assign raw statistics specifically to race and gender combinations.
* Ability to assign equipment slots specifically to race and gender combinations.
* Ability to assign name pools specifically to race and gender combinations.


* Ability to make a virtually unlimited amount of classes (jobs).

Targeting & Selection

* Ability to make a virtually unlimited amount of area functions.
* Ability to make a virtually unlimited amount of target functions.


* Ability to make a virtually unlimited amount of item categories.
* Ability to make a virtually unlimited amount of items.


* Ability to view a list of available music (per game).
* Ability to add/remove music.
* Ability to add/remove music tags (unlimited amount).
* Ability to view a list of available bitmap fonts (per game).
* Ability to view arbitrary text in the font of your choice (roughly as it would appear in-game).


* Ability to view a list of available maps (per game).
* Ability to update many features related to map customization.

Pickle Girl Fanboy:
Glade is downloaded.

Glade is a very great tool for building cross platform GUI. I used it for many projects with success. You can find tutorial here .

We can also think to build this GUI using web technologies like Django. Because all the data is server side.

However, GTK3 can now be served in a webpage :
so glade might be the right tool to use.

If they make the internet any more awesome, I don't know how I'll cope. GIMP in a browser window was awesome.

I've started my own test app in Mono's C# binding with GTK# (so it's still cross-operating system at this point) to start writing out the numerous MySQL queries for later when I'll probably port it to Python + GTK (because, from what I've read, Python handles GTK more how I'd want to do it anyway). Some of the things I have working so far are loading database connections (as in, you will be able to target any Tethical database available to you), available games to view/edit (per database connection + user privileges), displaying game mechanics of the loaded game, displaying the mechanic functions (the "arguments", if you've read my earlier descriptions) with the composite formula string in normal notation (it's still stored in RPN).

With the exception of data tables, please don't consider any of this design valid. I'd much prefer something that's universally agreed upon to be useful (rather than what's easiest/normal for me to produce):


Game Mechanics:

Game Mechanic Function Arguments:

Game Mechanic Function Arguments (in-line edit):

If the data you're seeing confuses you or you want to learn more, the discussion of all that stuff is available to be seen in the "Bars" thread, where we all discussed what it would take to get the CT feature up and running.

Oh that's great :mrgreen:
The new binding name for pyGTK is pyGI.

You can find all the doc here and a good tutorial here

For people runing linux, I recommand Monodevelop it handles C# and Python.


[0] Message Index

[#] Next page

Go to full version