It’s time to say a few words about the Epic Game Studio, arguably our most complex project (and, unfortunately, the most neglected – not by choice, but by necessity).
Epic Game Studio is a one-of-a-kind Universal Compiler which uses a common “base language” to transpose pseudo-code into actual code. It accomplishes this by using a Program Definition Database to outline the lexical structure of the Programming Language it will need to output code in; and a Game Database for storing “Epic” data (story, game design elements, etc.). It then translates all this into a very friendly UI, which people without coding skills can use (although a syntactical parser is planned as well).
What’s the purpose of this? Quite simple: to create a tool which ensures complete separation between Game Design and Game Engine. This is possible because you can store absolutely all Game Design Data into an Epic Game Studio Project which you build. When you build it, Epic Game Studio generates code in your format of choice (XML, C++, AS3, SQL, C#, whatever!) which you can then rebuild / import / recompile using your coding IDE. Epic Game Studio can be used by ANY (complex enough) game.
The project is a .Net 4.0 C# Windows.Forms application, with a SQL Compact back-end and extensively uses LINQ. The User Interface is enhanced by employing DevExpress controls and the IconShock icon library (both having been purchased by me during 2009). Epic Game Studio is fully internationalizable, using my C# I18N-by-XML framework.
Epic Game Studio Instruction Editor (CLICK for FULL SIZE Image - New Window)
Epic Game Studio was started in August 2009, but it barely reached version 0.1 before I had to focus on Thunderbirdz’ release and on the G3 UI Library. But, come 2010, I finally had time to shift the project from Visual Studio 2008 to Visual Studio 2010, which was actually a mandatory move, as Visual Studio 2008′s Entity Framework had no “insert” support for the SQL Compact Database I was using. Visual Studio 2010 added the required support so I was able to finally make changes to the SQL Compact Database rather than just have read-only access to it.
In August, almost a year after commencing the project (although less than 150 hours of work in it), I finally, I managed to reach a solid milestone with Epic Game Studio: data can be saved back into the database. That, made it possible for the Instruction Editor above to work. And, for the first time, the Build Workflow is able to compile the programs into target code!
A must-have of the 0.2 milestone was to give Epic Game Studio the ability to actually compile data from its two databases (the Language database and the Game database) into meaningful program code, as defined by the Language Database. This is achieved by using the Program Editor which can be seen below.
The Program Editor is that “user friendly” way of crafting code which I mentioned earlier. Granted, what “user friendly” means to a Microsoft Word user is a programmer’s hell. And since most game designers have programming background, that could be a problem. It’s something I intend to address by implementing a lexical interpreter.
Epic Game Studio Program Editor (CLICK for FULL SIZE Image - New Window)
Below, you can see the Build panel. This is where the Magyqck happens! Each Instruction Folder or Instruction Group in your Program can be output into its own separate Folder or File.
The custom Workflow button (visible but not functional) is used to add additional External Tools to your Compilation Process. This makes Epic Game Studio able to work with a countless number of external programs, sending parameters to them and accepting parameters back from them.
For example, Epic Game Studio could be used to generate a SQL script, after which it would call a little program you wrote which takes that SQL script, can do additional modifications to it and run it against the correct database. Or it can generate some files and then call a program of yours to upload them to an FTP. The list can go on. And on. And on.
Epic Game Studio Build & Workflow (CLICK for FULL SIZE Image - New Window)
Here is a little sneak peek at how Epic Game Studio works on the inside. This is a Language Database. Here, the Instructions and Data Types known by the Language are stored. Epic Game Studio is able to work with Numeric and Text data types, but can also understand any combination of such types, through the use of Advanced Data Types, visible in one of the tables below.
The diagram is not complete because this is, after all, a commercial product. However, if things go well with Gamaddiction in the following years, it may see a Community Edition as well. I have a great respect for the indie developers community. Because I came from there.
Epic Game Studio Language Database
This other diagram shows a portion of the Game Database. This is where your Game Design data goes. The data can be organized in Folders, Groups and Procedures. Here, you may define Variables and use them in Instructions. The Value Entries table is used to store the values of Variables, as well as instant-declaration values.
Epic Game Studio Game Database
Well, I think this is a healthy preview for Epic Game Studio so, for now, I’ll leave you with a sexy screenshot of the program’s Main Menu. And, if you noticed that in the Title Bar it says “Epic Game Studio 0.3″ (as opposed to the 0.2 in the title of this entry), that’s because it’s the version which is in work right now.
If you have any questions regarding this project, feel free to Contact Us.
More news, as we produce them ::- ).
Epic Game Studio Menu (CLICK for FULL SIZE Image - New Window)