I have been a fan of this project for quite sometime ( 2 years to be exact ). Scott Overman is a talented programmer working on this wonderful engine called “Tethical”. Now he begins a new chapter on bringing this great open source engine to life. If you love Final Fantasy Tactics and any other Startegy RPG’s you will want to check out what Scott has to say about this project. I was very lucky to sit down and ask him some questions about Tethical and what his thoughts are about developing for Linux gamers.
Ultimoore:
Well Scott, for those who don’t know you, who are you and what do you do?
Scott:
I’m Scott, and I’m the one who’s worked on the tools related to the Tethical sRPG engine for two years now. If you see a sprite animation in-game, I wrote the stuff behind that. If you see a colorful font, I wrote the stuff that probably organized and colored that font. If you see a complicated-looking formula, it was probably me who helped make that happen. Beyond that, I’m also the one who reorganized Tethical to be state-based, enabling anyone to make their own game with it. You may have seen me around the internet in games or forums as “lirmont”.
Ultimoore:
When did you get started with playing games (and what was the first game that you remember)?
Scott:
I’m told I beat the original Mario on NES at a ripe age of 3 years old (we have pictures of the ending rolling with me standing in front of it as a child). In my teenage years, I totally fell in love with a game released in the states with the erroneous title “Final Fantasy III” (Final Fantasy 6). The final boss left such an impression on me. It’s that kind of thing that made me begin to recognize how powerful well-designed games can be. Later, of course, I played Final Fantasy Tactics, and it solidified the idea that proper and meaningful storytelling can occur in games.
Ultimoore:
How did you get started with developing the Tethical engine?
Scott:
You know, I got lucky. I happened to come across Jean-André’s project on the internet. A Final Fantasy Tactics clone you could play online with other people? And he was asking for help? Are you kidding!? Sign me up! In fact, I had the unique opportunity of being able to make it so that he could get maps out of Final Fantasy Tactics (through a program that was already written), making them playable in-game once you describe them for the server. That was also my first brush with the Python programming language.
Ultimoore:
I remember seeing that software, alot of custom maps were made. On how many games have you worked on so far?
Scott:
The reference implementation game for the engine is the very first. One of the wonderful things about the approach is that I have great source material to compare what I’m doing against. There is also a small but dedicated community that keeps my poorer choices in check. In short, there are a lot of things I don’t have any talent for and haven’t practiced, but programming I’ve been doing for a very long time. I’m also great at pattern-finding, which helps the whole process of abstracting out the complicated systems a game uses.
Ultimoore:
Which game development tools are you using?
Scott:
The engine that the Tethical engine runs on is known as http://www.panda3d.org/ for C++ and Python. It’s the thing that makes so much of this project possible. Tackling any game is a difficult endeavor, but what Panda3d does is provides a OS-independent environment in which to make your game. One of the library features that Panda3d offers is a really robust set of animation functions. It’s that kind of forward thinking that has let me work on getting things like complicated sprite animations to show up properly first, then allowing me to seamlessly transition over to animating that already animated resource. It’s that powerful! And, there’s a whole engine full of this stuff!
On the other hand, the primary tool for editing games in this engine is written in the now-renamed MonoDevelop IDE. That gave me the in I needed to write software targeting Linux, using the mono runtime and a wrapper for GTK+ 2.x to exist natively in Linux. However, the other tools are written to target the Windows forms, and I use Visual Studio for those endeavors. They typically have complicated interfaces and use multiple OpenGL contexts, and it’s been easier for me to play to my strengths and just develop them in Visual Studio. However, I’ve made sure to keep Linux in mind. I target the dot-NET 2.0 framework, and I consciously make sure to avoid things that Wine doesn’t implement. These other tools aren’t required to edit your games, though. They’re for standalone content generation. You could make a game in this engine without them.
Ultimoore:
Any other recommendations for software? (project management etc.)
Scott:
I use a tool put out by Oracle known as MySQL Workbench to deal with the database the games in this engine use. One of the things about a long development time (more than 2 years at this point) is that you have to make sure you document things. Otherwise, amazing ideas may just raise eyebrows 6 months later. MySQL Workbench, like MySQL itself, lets you do that, adding in the ability to create and document diagrams as well. It’s invaluable; it keeps everything organized for when I need to make additions or adjustments to the database schema specifically (or even the default data).
Ultimoore:
What were your inspirations when it came to developing Tethical?
Scott:
I mean, the primary inspiration is certainly Jean-André’s vision of a Final Fantasy Tactics clone. So many features that could have been part of that game, its remake, or other new games in the same genre simply just don’t make it to the final release, and that concerns me. In other words, the games that we do get probably spend a majority of their time covering their bases instead of innovating. That’s really become my primary inspiration, being able to let you innovate instead of forcing you to play catch-up to make one of these games. Imagine for a moment that all the systems were in place to make a game like this, and you could just focus on customizing them (which doesn’t even take programming code at this point). What would you make? I bet it would be closer to whatever ideal you have for this genere already in your mind, and I want to make sure that’s at least the opportunity you’re given.
Scott was even nice enough to send a few pictures of his latest work. I really like the one on the right with TUX.
Ultimoore:
Great screenshots Scott. How many folks were involved in the making of your engine?
Scott:
Jean-André Santoni (kivutar) is the only one responsible for the first iteration of Tethical. There are a lot of smoke and mirrors that aspire to become real aspects of the game in that version, but it definitely covers the basics, including online play. Unfortunately, these types of games just require so much data. You could certainly hard-code all of it or part of it, and that’s a definite decision that I’m sure a lot of game developers who have made games in this genre face on many design levels. The goal of the reorganized and rewritten version of Tethical I’ve worked on is different. It’s goal is still to give you the option of querying the server for information, but now the server queries the database. In that way, persistence is implemented. Your stuff is saved in real-time, and, due in large part to the pace of the game, we can limit cheating online by allowing the server to cover calculations and offer choices. We can also provide an offline experience that provides a more normal “cheat if you want” approach, considering all of it runs on your computer (like a normal game).
Then there’s me! I’ve been one of the only ones working on the project. Jean-André went on hiatus around the time the issue of persistence of data arose. I’ve been tackling that issue one database table and one feature at a time ever since. We’re up to 58 legitimate database tables right now! Look forward to being able to tag items, make classes, control targeting functions, store formulas, and manage it all in an enterprise-application approach!
Ultimoore:
How do you see the state of Linux gaming today?
Scott:
I think it’s nearly impossible to talk about Linux gaming without talking about what Android’s done for it. However, while it’s fun to play somewhat stripped down games (due to screen sizes rather than performance) on Android devices, I think we still have a great opportunity to bring quality games to the unfettered versions of OpenGL clients (Android’s are embedded systems). I think it’s also important to point out that digital distributors like Steam have recognized the demographic’s importance, and the situation with well-performing Linux graphics drivers has improved from several years ago. Unfortunately, developers still have to face even getting their product out there, and there are deceptively enticing options (consoles come to mind) that may steal good games away from demonstrably better platforms.
Ultimoore:
I am quite happy that developers like you’re self have taken notice. As a follow up, where do you think Linux gaming is headed?
Scott:
I think Steam will probably be one of the biggest players in continuing to bring up the concept of, “And what about Linux?” In combination with the market for Android games, we can only hope that reality results in a more skilled workforce, one able to adapt to develop and take better advantage of Linux’s unique advantages over other platforms. One of those advantages is not so attached to software as it is to hardware. Linux is typically the first to keep up with all the exciting new hardware consoles produce. That’s a difficult thing to jump into, but that’s a pretty untapped advantage if you can pull off doing the same things some new console hardware innovation can… with the same exact hardware. I hope we’ll see more games in the future making use of that, and using it better than professionally developed games can even use it.
Ultimoore:
How do you feel about the changes in Windows 8, and do you think this will drive more people to Linux for gaming and day-to-day use?
Scott:
Unfortunately, Windows has trained its users to sit and wait. I think it’s more likely to drive them back to Windows 7 until an infamous “service pack” is released, fixing many things that shouldn’t have been broken from the start. Compared to that, I think it’s more likely that the prevalence of Linux in non-PC devices will make people want to switch. Unfortunately, there’s a nasty approach to driving traffic to a certain platform by having platform-specific games. It’s effective. It also doesn’t fit with Linux. If Linux were a person, Linux would consistently be the bigger person in that respect.
Ultimoore:
Which Linux distribution do you prefer to develop with when it came to Tethical?
Scott:
I prefer Ubuntu, but my experience with Linux professionally is focused more on its server capabilities than its desktop flavors. For Tethical, I can guarantee that I will never choose to run a database application on any Windows-based operating system. They’ve improved over the years, but their server operating systems just fall short in a lot of important and choice-related places. One of those is security-versus-cost and another is speed-versus-cost. As for choice-related shortcomings, the innate power of scripting in Linux is very difficult to beat from a developer’s standpoint.
Ultimoore:
Very true. So does linux support require much effort from a developer?
Scott:
To do it natively, yes, it can. For me, I had to learn to deal with the GTK+ library through GTK# (a C# wrapper for GTK+). There are much different design paradigms between GTK+ and Windows forms. GTK+, most notably, is focused on usability. In other words, it encourages you not to just put things wherever you feel; widgets need to be a certain and set amount apart from each other. While writing the drag-and-drop formula editor (a native Linux tool), that really challenged me. How do I write something functional that may wind up being visually huge? But, GTK+ is not weak. There were things I needed to do, and it had the appropriate paths to make those happen. Thinking in that paradigm is a step I have to remind myself of when I switch to working on the source code of tools that use GTK+.
Ultimoore:
Why did you decide to make Tethical available to Linux platforms?
Scott:
In many ways, this was Jean-André’s decision. He had the great foresight to use a wonderful engine like Panda3d that covers distribution and game playback, if you will. Want to play the game on a Linux platform? No problem, the Panda3d run-time covers that. Want to play your game in a browser? No problem, the Panda3d browser add-on covers that. How great is that? And, I recognized that, after my first content-related tool which is a Windows-native tool, I needed to make sure that the main application for editing games would at least run natively on Linux. Unfortunately, there isn’t an easy one-size fits all approach in my workflow, and I may allocate funding (if I get it) later to fix that as tools mature.
Ultimoore:
What platform do you use for distribution, if any? and why?
Scott:
Panda3d wraps everything up in an installer, and it has a custom single-file package you can get the game in (which runs on the run-time). How about that! It’s that easy thanks to the great work that has gone into that engine.
Ultimoore:
Yes, Panda3d is great. How do you support the engine after release?
Scott:
Unfortunately, the real issue is, “How do you support the engine before release?” The kickstarter is latest approach. I know Jean-André and myself have put a lot of work into an engine that is ultimately free. I’m in a little bit of a different position than he is, since I’ve chosen to try to leverage the tools I’ve written to support the engine. When it finally reaches a stable release, I hope to provide a marketplace to buy professional add-in states that you can use to add really specific features to your game. For instance, a lot of professionally developed games include mini-games. Such an add-in might provide a new battle mode where, instead of damage, units you hit hemorrhage crystals, which you can collect by walking over them; the player or team which reaches the crystal quota first wins. It could be an exciting way award non-story items that might feel out of place in the context of your storyline (but would be right at home in mini-games).
Ultimoore:
That sounds great! It sounds like some amazing features that you will add. How will you get game developers interested in the engine?
Scott:
Well, hopefully the customization keeps them coming back. Where software companies like Nippon-Ichi heavily reuse more than half of their engines for console games, this actually encourages you to customize the states you’re using. Every engine-level game state is as atomic as I can get it. Need to show an image, play music, and show a list of options? There’s a state for that. Need to play a video? There’s a state for that. Need to run a battle? There’s a state for that. However, you’re not limited to engine-level game states. Write your own if you need them! And, furthermore, you’re not limited to the default customization. States are called with configuration files, and they can lead into each other. It’s something I’m pretty proud of, since it opens the possibility of so many things. You could even release just a mini-game, if you wanted, by using the right configuration to point to your mini-game state. It’s that kind of thing!
Ultimoore:
What games did you enjoy playing in 2013?
Scott:
The Witcher 2 comes to mind. I’ve also played Warframe, because ninjas in space! Sega released a PC port of Jet Set Radio (formerly a Dreamcast game) which I beat the story mode of, as well. I bought Civilization V when it went on sale, and I got Dungeon Defenders in one of the humble bundles (Nightmare difficulty is a trip).
Ultimoore:
Do you have a favorite developer from the games industry?
Scott:
I don’t mean to sound like a downer, but I’ve probably lost faith in a lot of companies that I would have considered for this question over this year alone. I was looking forward to Megaman Legends 3, and Capcom cancelled that. Square-Enix is in a similar position. Did you see that phone game they released with all their character assets… all at once? Who let that get out the door? There was the ridiculous, hugely public denials from Electronic Arts over Mass Effect 3; there was Origin. Honestly, I think I’ll just stick to liking games. Liking the bigger companies is setting yourself up for disappointment.
Ultimoore:
What is your favorite game at the moment and what makes it special?
Scott:
I don’t know that I have a favorite game. I think I’m in a place in my life where I’m starting to consider the kind of natures involved in the content we consume (not limited to games). I really look forward to good storytelling. I think we have relatively few good platforms specifically for that. We have great platforms for atmosphere! Storytelling, I don’t know, because that’s a feature you have to take as a whole. If it fails to deliver in the last 15 minutes, the whole thing has failed. If there’s lots of content before that failure, it all suffers. In that sense, I guess I like much older console games, like Chrono Trigger and Megaman X. Or, games for games’ sake. The Misadventures of Tron Bonne comes to mind.
Ultimoore:
Anything else you would like to tell everyone?
Scott:
I would. One of the efforts I’ve put into this project is the support for quickly creating multi-language fonts. I desperately want to see sub-genres of this type of game unique to the people making them. Give me a French sRPG, an Indian sRPG, a Brazilian sRPG, a Chinese sRPG, an Egyptian sRPG, a Russian sRPG, an Irish sRPG, a Persian sRPG! If Unicode covers your language, we’ve got you covered! Put simply, we need you — we need your unique life experience and perspective! If this project’s kickstarter is successful, please make something amazing when it releases in a year!
Additionally, I want to thank everyone who has watched this project develop for that past two years. Thank you for staying interested! Just a little more now~
This project is well worth the Linux gaming markets time. We at Rootgamer.com will be throwing down some money for this worthy project. I want my own character for the engine. well guys check them out and GAME ON!
You can check out the Campaigne at
TETHICAL KICKSTARTER
or go to the Final Fantasy Hacktics forums and check out the community at
Tethical Forums on FFHactics
Sources:
Tethical Kickstarter page: http://www.kickstarter.com/projects/100316459/tethical-an-srpg-engine
FFHacktics forums: http://ffhacktics.com/smf/index.php?board=57.0