28/01/2010

Rebuilding the Tile Editor + Tile Engine - Part 2

Welcome back my friends. This is the second part of my huge changes applied to the tile engine.

I'm glad to announce that I was able to modify the TileEngine to be faster and easier to understand, I was finally able to implement ContentLoaders to help me manage the project inside Visual Studio. Now, if I want to load the whole map level (which consists of a .map file, each .layer file + a collision layer + a forelayer + all the used tiles) I can just reference the .map file inside the project and the Load call will take care of everything.

The new content loaders were a bit of a pain to create, however now they work pretty smooth and most of the loading speed is based at build time and not at the load calls inside the game, making it a bit faster to load levels.

Soon I will have to implement a warp feature inside the tile engine, not too difficult actually, to load different maps depending on the position of the player. As of now, I'll have a little fun with the new features I put in the game, seeing if I can get something nice to show up for you guys (few people to be honest..) impatient to see a piece of the game.

Cheers!

27/01/2010

Rebuilding the Tile Editor + Tile Engine - Part 1

Hello my followers..

Today I've entangled myself into a very unpleasant task. I noticed that my TileEngine, taken almost directly from Nick Gravelyn's tutorial, was incomplete and was lacking a few important features I may need in future for the game. Especially the Tile Editor was full of small bugs, references to directories and stuff like that. It was nearly unusable.

That is why I decided to completely rebuild it from zero. The appearance is almost the same (save a pretty nice toolbox at the top) but the underlying classes, file parsing and functions are all improved/modified. I decided to use a completely different set of classes and project/solution because keeping a lot of different projects inside my own Harmonia Warders solution, in Visual Studio, was making it a real mess (and the two versions, PC and Xbox360 were not certainly helping).

I had to re-write from scratch the Layer, CollisionLayer, TileMap leaving only the required functionalities. I took out all the NPC support, collision detection etc etc that is needed in the game itself since it's just an editor.

I also changed the save/load functions from a simple .txt file to an XML file with linked tiles (so I won't have to manually load them into the projects on VS) and a fixed folder structure. I won't use a different structure anyways so I see no real reason to make it more complex than it actually is.

The more interesting add-on I put, which is what mainly led to believe I needed a new TileEditor, is a nice ForeLayer. What is a ForeLayer you may ask? It's a ForeGround TileLayer. It's a normal layer that, in the draw function, will be drawn AFTER the characters, sprites, monsters, npc have been drawn. This way I can simulate a bit of prospective and make the NPC/Character go behind a house, or behind a tree or show clouds (with an alpha channel) or other stuff. It's really nice in my opinion and really needed to make a tiled RPG feel more "lively".

Today I've only managed the code for the Tile Editor, tomorrow (or as soon as I have time) I will modify/implement those functions inside the actual game and, who knows, a somekind of promotional video might pop-up if I can get it done nicely enough.

Thank you for reading, keep tuned for the Part 2 of this update, coming soon!

Cheers!

22/01/2010

A new video..? Not much to show.

Hello my followers...
Today it's been a pretty bad day for development... I've been one whole day trying to figure out a new error (Exception unhandled) in my Content Processor for my Event class... Apparently it just decided to stop working and Visual Studio 2008 went on strike and decided to stop every builder/debugger ever...

After spending a whole day figuring out what the problem was, I found out that my project was building a different source code (which I have yet to understand what it was...) than what it was supposed to and whatever changes I was applying they weren't even read.

What I had to do is to delete the whoe Content project, remove every assembly related to it and restart from scratch (well, I copy+pasted the sources...). This at last made it work... but only after 8 hours of hair-ripping debugging (Which wasn't working).

Sometimes I hate computers, I seriously do.

Anyways, since I haven't posted much in a while and I came back to this only a few days ago, I decided to hand out a new video and a screenshot of what I'm currently working at.

The video shows the Event Editor I use to code the event scripts in my game and the screenshot is an Xbox screenshot of a running event (the one I was changin in the video).

I know it's not much and the graphical assets are all missing (Tell me something I don't know..) but it's still something I go proud of.

Enjoy the screenshot and the videos. To the next update!

Cheers!

Video:


video
Screenshot:

20/01/2010

Events, Xbox360 and a step closer to spaghetti code.

Hello my lovely followers (so few followers actually..)!

Today I have a nice update for everyone. Since I pretty much disappeared for a while, with Christmas holidays, ET and exams at the University I had no real time to work on the project, however today I came back to it with a nice update and new features ready to be used!

1) I was actually able to deploy the game to the Xbox360 through the Trial membership (I love being a MSDNAA student!) and, after having fixed a few graphical glitches due to the change of resolution and some annoying bugs, the game is perfectly working on my small (very small...ugh) TV at 720p. This, to me, is awesome since I honestly never thought I was ever able to see my small game (even if incomplete and pre-alpha version) on my Xbox360, makes me feel really pro and one step closer to a real AAA game.

2) I stopped the development of the Battle Engine since it felt almost complete, I will have to add implementation for skill animations, attack animations, items support + animations, monster AI (scripting... ugh!) and multi-character support, however the backbone of the engine is done and it's very versatile, I will have no real trouble adding those features once I have them planned.

3) I started working on the event engine for scripted events on the TileMap screen and.... it's awesome! I was able to get it ready, loaded and running in less than 4 hours (still have to implement some functions thoguh) and that is a record time for me... Since I've never coded a script engine before and it was my first approach. Now I'm able to write simple and easy to write files with commands and instructions to the NPCs on the map to perform all the various actions/conversations available... To be honest, I really squealed like a fangirl when I saw an NPC coming on the screen, from offscreen, walking happily toward the (X,Y) point of choice after I told him so. I was so happy that everything was working that now I feel a new adrenaline charge to dive in the project once more and try to finish the backbone engine for everything as soon as possible.

Thank you for reading this, my friends.

Cheers!

PS: Next time hopefully I'll post some new screens from the game... maybe.