Showing posts with label quasi. Show all posts
Showing posts with label quasi. Show all posts

Sunday, January 16, 2011

A Look at QRT

After threatening several times, I'm finally going to sit down and blog more about my QRT project.

So what is QRT? In short, QRT stands for "Quasi RPG Toolkit" and is a project I've been working at off-and-on for the past couple of years (already? gee...) which will (hopefully) eventually become an integrated set of tools for creating RPGs in the style of what one might have seen on the SNES, back in the day, like Final Fantasy VI, for example.

This makes it similar in its goals to the RPG Maker series of editors, for those who are familiar with them. So why, one might ask, make my own version of RPG Maker? Other than simply "because I feel like it", basically, I have several ideas for improvements over the RPG Maker series that I think would be, well, improvements, especially in the areas of flexibility and customization. I think it's also a good programming and design exercise.

The QRT project also serves as a sort of updated version of my FR project. Not only is QRT much, much, much better designed, it's also much more flexible and, more important, reusable which my much older and inferior FR code-base would not have been.

Without going into too many details, let's do a brief overview of what I've done so far and what I'll be working on in the near future. (Note that the graphics in the screen shots were downloaded for use with RPG Maker 2000 from various RPG Maker fan sites and are serving, for the moment, simply as placeholders. The plan is to eventually replace these with original graphics.)Above is the main editor window. I had a map editor for FR, but it was *only* for map editing. The QRT editor will be an integrated editor for maps, scripting and the like - as one would expect from any sort of modern development toolset.

One of the ways that I am making QRT more flexible that the RPG Maker counterpart is including a tileset layout editor to allow users to create custom tileset layouts, unlike RPG Makers' pre-defined layout (to the best of my knowledge). It is also possible to use a different layout for each map in a project, if desired. One of the things that I am currently working on is improving the "auto-tiling" feature (used to automatically draw terrain feature like deserts, swamps, rivers or whatnot) to allow the use of animated tiles in all auto-tiling groups. (RPG Maker 2000 only allows animated tiles in auto-tile groups for its special water/shore groups - I don't like the rectilinear shorelines that it limits you to.)

Another customization feature is the inclusion of custom created fonts. Fonts can be created from scratch or can be based on any installed Windows font (though the import function still needs some work).

Scripting in QRT is initially going to be via a point-and-click script interface (as I feel this is easier for novices to pick up), but I plan to eventually include an actually scripting language as well (probably Python, but we'll see when I get to that). Another feature that I'm planning for scripting is a scripting API which I'm calling "Quartic" - QUAsi Rpg Tools Interface Component. The plan is to allow users to develop scripting plug-ins for custom functionality.

Above shows a (very simple) text box showing the font display and colouring at work. This is the (humble) beginnings of the in-game UI. My plans for the UI is to make it highly customizable, including a UI layout editor as part of the QRT editor. I hope to make it fairly easy to create custom game UI (which will help give each QRT game a unique look and feel). While custom UI can be make in RPG Maker, it's very inconvenient, not to mention tedious.

So far, QRT is coming along slowly, but, I suppose, somewhat steadily. As far as important functionality goes, it's roughly equivalent to where I had FR all those years ago but, as mentioned, much better designed and ultimately more flexible, powerful and reusable. At the moment, my focus is on revisiting some of my existing features and improving and/or simplifying them before continuing on with the scripting and UI systems.

I may eventually post more as I continue to progress on the project.

Freak Out
-TFitC

Monday, November 29, 2010

Centennial Something or Other

It appears that this is my 100th post. Considering that I've had this blog for almost two and a half years already, that tells you something about my posting frequency.

Anyway, I'm going to celebrate my 100th post by doing a follow-up to my previous post in the form of a video. Behold! (Or don't, eyes may bleed, I can't be held responsible.)



Hmmm. The default video frame selected by YouTube says it all, I think, and is quite amusingly appropriate.

This is actually why it took me so bloody long to get around to making that post about my FR porting experiment. I had originally wanted to do a narrated video describing things, but never found the time or motivation. Instead, I decided to slap something together, call it a day and inflict it upon my readership, such as it is.

The only thing I'll note is that most of the music in the video (which was added through the magic of video editing) was composed by my brother with one small piece by myself. In order, they are:

Victory Fanfare
Here's the Boss
Walking Around in a Fog
Canackian Theme
New Folk Song
Dungeon 2
Merv's Theme
The Reel of the Drunken Sailor
New Folk Song (again)
Elvis Theme
Merv's Theme (again)
Flute Song (I composed this for a music theory class)
Appliance Theme
Dungeon 1
The Reel of the Drunk Sailor (again)
Substation Theme

Freak Out,
-TFitC

Tuesday, November 16, 2010

Blog to the FUTURE

With this post we're going BACK IN TIME to late summer 2009 when, on a whim, I decided to port my unfinished game project (from back in highschool) from ancient C/DOS to a more modern Windows-based C#/XNA app. I'd been meaning to blog about the results for some time, but just never got around to it.

Welcome to The Final Reality

The project was (still is, I suppose) meant to be a parody of the Final Fantasy series in particular and of RPGs in general. The graphics were all created by me (and, I admit, they're not particularly fantastic) though were sometimes based on other things. However, I'm not going to talk much about the game itself or its storied history. Rather, I'm going to talk about how much my coding sucked back in highschool and some about the porting process. Though I will include lots of screenshots. Yay!
A googly-eyed alien, though he doesn't seem the friendly sort.

Porting from C to C# wasn't too hard, over all. I had to make some changes to from the DOS-based "I get the whole machine to myself so I don't have to play nice" approach to the multi-tasking based Windows approach, but that went fairly smoothly. I was able to poach some code from my QRT project to handle rendering, so that was fairly easy as well. The first main challenge I came across was that I had the wrong version of the code.

It'll make you glow. Blue magic does silly stuff like that. And yes, the menu is supposed to be aged dot-matrix printer paper.

Somehow, I seem to have lost the most recent version of the code which was missing some things like object animations (which I put back in) and some menu and inventory stuff (which I did not). This caused a problem because the data files were for the most recent version of the code (I still have a working version of the most recent executable...)

Somebody seems to have left their tie hanging on the wall of this cave.

This caused a problem because, in the main program file, there is what is called a "magic number" hard coded telling the game the position in the data file where it should start loading from when the game first starts and, because the version of the code I had was out of date, this number was wrong, thus resulting in reading essentially random junk from the data file.

The Tower of Harmony: what's with all the musical instruments laying around?

Fortunately, once I'd diagnosed the problem, I had enough of my old notes from highschoool sitting around (I am something of a pack rat) that I was able to deduced what the correct magic number was supposed to be. But this is a somewhat extreme example of one of the things that was horrible about my coding back then: way too many things hard coded. I've gotten much, much better about this over the years.

The clinic in the Elf Town. The names of the Elves in the clinic were taken from Tolkien's elvish languages and all mean things like "sickly" and so forth.

Other problems with my code were, perhaps, less severe but still annoying. My style was poor, formatting was bad, comments were lack luster or missing altogether, things were not nearly as organized as they should have been. Again, I've improved greatly in these areas over the years. I think switching to object-oriented languages like C++ and C# have helped tremendously and, these days, I put a lot more effort into structuring and organizing my code well.

In the music club The Wailing Cat. For some reason, the idea of cats being famous musicians amuses me.

As mentioned, some restructuring of code needed to be done in moving from a DOS to Windows based environments, but I was able to borrow some of my code from my QRT project so that made the switch fairly easy. However, since in C#, everything has to be in a class (unlike C/C++ which can have free floating functions), some extra restructuring was needed. I had originally thought of actually reorganizing everything so that it was actually well coded, but quickly decided this wasn't worth the effort. Essentially, each code file became its own class with all public members for easy access. (Don't worry if you don't understand the programmer-speak, the main thing is I took the easy way out since I wasn't going to do anything with the code beyond a simple port.)
The Dwarvish Pizzaria. In FR, dwarves are master chefs. Note the menu says "FR Combo" and the tray (lower right) reads "Quasi". I put several tidbits like that into the graphics.

Back when I was creating all the graphics, data files and whatnot, I had several independent tools for creating various resources - a graphics editor, map editor, item and dialog editor (which I think were just programs with the data hard coded that then wrote data files) - which I then assembled via a semi-automatic resource compiler (I still had to input several things manually). It was all rather archaic. This is one area where the QRT project is definately going to improve upon by having a whole integrated IDE and overall much more data driven approach which will make creating RPGs much easier (not to mention everything will be much more reusable).

Spelunking in an ancient mine.

One other thing that did give me a bit of a problem when porting was with text and dialog. Back in the DOS days (and even up until more recently), text was commonly just 8-bit ASCII by default. In C#, everything is unicode by default. This caused a bit of a problem because I was using certain ASCII codes to represent special symbols (item icons, for example) which didn't always translate as expected in unicode. So I had to put special checks in for some symbols, but I don't think I caught them all because the port occasionally crashes when opening certain treasure chests. Oops.
The graphics for house interiors were based on the house I lived in at the time. That's the clock I made in shop class.

That's really all I have to say about my little porting project and the crappiness of my coding back in highschool. As I've said, I've improved a lot since then (lots of additional experience under my belt) and my QRT project, as a result, will be much better designed and will be much more flexible and will be capable of a lot more overall.

A multi-layered tech dungeon. I liked multi-layered maps. Note the Star Trek styled replicator thing.

Hopefully I haven't bored anyone who's bothered to read this too much (I hope the pictures helped!), I've blathered on so long basically as an excuse to use as many screen shots as possible. I've mentioned QRT a few times and I'm still planning on blogging specifically about that project, eventually, whenever I get around to it. Until then, I'll just leave you with a few more screen shots.
In town, even pedestrians have to obey stop signs. Anachronism? What's that?

In the tech dungeon it's Quasi Cola! One of those little tidbits. Not sure why since I don't actually like cola that much.

A hallway in The Wailing Cat. The picture on the left is supposed to be me. The other picture says "Quasi".

Again in The Wailing Cat. For some reason, I seem to have made a point of including bathrooms in the game.

Freak Out,
-TFitC

(I should probably say something about images being copyright by me, yada yada, wheretofore and hereunto.)

Wednesday, October 13, 2010

In The Works

Over a year ago, in my comic-based post (which I really should do again some time), I mentioned my QRT project and implied that I would write more about it in the "near" future. Well, it's been a while and the post has not yet appeared. And before anyone gets their hopes up, this isn't that post either.

However, I have been making progress on the project and recently got to the point where I can now script talking to NPCs - sort of. I haven't implemented the conversation system that I plan to do eventually, so for now it's really just displaying simple text boxes but hey, it's something! This also means that QRT can almost do everything that FR could back in highschool, and is much better implemented and far more flexible to boot. So, yay!

I shall no doubt talk more about this "soon" (possibly more than anyone really wants to hear about) and hopefully "soon" will actually mean soon, this time, and not a year or more.

Freak Out,
-TFitC

Monday, August 2, 2010

Marking Sucks

So, after not having posted in a while, I return to complain about being a TA! Excitement! Well, there are a few other details, but first with the complaining!

For the course that I'm TAing this term, the people in charge decided that each TA would mark an entire assignment, by themselves. Thus I have found myself, over this long weekend, spending a lot of time marking assignments which really sucks. As I've no doubt mentioned before, marking is generally boring and this assignment has been really painful to mark. First, the course material is not in my area of interest (thus I don't particularly care for it much) and second, most of the questions are actually hard to mark because they're the sort of thing where one has to try and follow the student's train of thought which is not always easy, especially since I do try to figure out what the students are trying to do and give part-marks rather than just put in a big X when something's wrong.

On the plus side, since I only mark one assignment it means I haven't had to do TA work for most of the term (besides the midterm), but I honestly think this is too much for one person to do in any reasonable amount of time and I think I'd prefer having the pain spread out a bit. Having each TA do half the marking for two assignments would, I think, be a better arrangement.

In less complainy news, I discovered a new recipe last night! Its from the (now much abused) cook book that I've had for ages and is a recipe for hamburger-vegetable soup. It turned out quite tastey and is definitely going on my will-make-again list.

I also managed to sneak in a little bit of work on the QRT project this weekend despite the marking (and some FASS work today), which I really must write about in more detail sometime, and not just because I said I would about a year ago and never did.

Well, that's all for the present.

Freak Out,
-TFitC

Friday, September 4, 2009

And Now For Something A Bit Different...

Yay, it's experiment time! Click for the full-sized version. Oh, and my apologies in advance for making everyone read my hand writing.
Probably should have taken some extra time to ink it. Well, I'll keep that in mind if I do this again.

Wednesday, February 11, 2009

Project Preview

Back during my month off between work and school I started a new programming project. (Yes, another one - for me the trick isn't starting projects, it's finishing them.) This project I have dubbed the "Quasi RPG Tools" (QRT) and it is intended to be similar to RPG Maker 2000, at least in its goals, though it will likely vary in a number of key points on its implementation.

I haven't spent a lot of time on it since starting back at school, though I'm still plugging away at it from time to time. Now that FASS is over and I've more or less settled into my school routine, I'll probably start spending a bit more time on it.

The project itself will use 2D tile-based graphics (as with RPG Maker). I decided to go this route as it makes it a bit easier to deal with the graphics, both programming wise and for me to create them (or borrow them from elsewhere until I've had a chance to create some) and lets me focus more on the design tools. I think I would eventually like to do a 3D version, but if I design things well, much of the back end stuff like creating character classes, items, scripting and so on should be more-or-less reusable with other graphics engines in the future.

So far, I've been working on the tile set editing features which is almost finished. As is typical of me, I decided to make things more difficult for myself by allowing tile sets to have a flexible layout rather than a fixed layout like RPG Maker. While I think that this added flexibility will be a good thing in the long run, it does complicate the UI design an implementation somewhat. It will also make use of the tools more complicated, which is one thing I'd like to avoid, so I'll also include a simplified fixed tileset layout to allow for ease of use with the flexible layouts offered as an advanced feature.

While the project as a whole is still a long way from being complete, what I've got so far is, I think, more advanced than the map editor I created for my FR project back in highschool.

Freak Out,
-TFitC