Archive for the ‘RPG’ Tag

I may just be getting used to this whole OpenGL thing…

I have been playing around with OpenGL ES 1.x for the iPhone, and really having a tough time with it considering I’m used to other ways of getting images to the screen. I started doing some research, and a whole lot of reading, and I think I might have come up with something!

Yep, you’ve guessed it… the basic framework of a tile engine is up and running! Oh sure things are a little different from my XNA tile engine, and I’ll even go as far as saying I’m a little uncomfortable with a few of the things that OpenGL does… but I’m learning. 

One of the major things I’m uneasy about is the world coordinate system used in OpenGL. I am not sure if I’m doing things correctly, but I’ve been used to the (0,0) point to be in the upper left corner of the screen, as you move down your Y value increases… and as you move to the right, the X value increases. OpenGL uses a different quadrant in the coordinate system, where (0,0) is now located in the bottom left corner of the screen, and up increases Y, right increases X. 

No worries though.. the VERY basic framework of my RPG engine has been ported over to ObjC and the iPhone. Step 2 is to expand on that basic framework and get a few key systems up and running (IE: the Tile Engine and other systems)

No more teachers, no more books… until next semester!

Wow, I didn’t expect my first semester back at college to be that difficult! It turns out that every project I was doing was put on hold until I could finish my semester. My next semester schedule isn’t any lighter though, although I have cut my hours down from work as to give myself more time to work on my projects. 

So here is where we stand, The map editor is very close to release 1.0, and 1.0 is a basic update. It will do what you need it to do, but it isn’t “polished” .. more “functional.” While on winter vacation I am working with my friend to push out a release, and once that is done we will start opening up the source and add whatever features we may need.

I’ve found that my goal for this project was ambitious, but in line to what we could accomplish. I wanted this editor to work primarily for XNA projects, but not only RPGs. Any game that used a tile engine could take advantage of this project. But what about other platforms? iPhone development? Well it would just take some tweaking to the exporter and you’d have a fully functional XML file.. could that work with iPhone development? Not sure.. but I think it would be fun to tinker with :)

As always, check out my right bar links, there are a lot of awesome projects (Including EvilNando’s Animation editor) that i’ve been keeping tabs on. Lot of great things goin on in the world of XNA, here’s hoping that I can get a final push out and start my actual project here soon.

RPG Editor: Exporter Settings – First Preview

With the first version of the RPG editor just about ready to be tested, I thought I’d take the opportunity to share some of the things we’d like to implement. So lets take a look at some of the custom XML exporting!

From this first screen shot, you will notice that on the left half of the form is all of the fields that can be changed, while each change will be reflected by the XML Output on the right. Using this data, it will be easier to see how your final XML will look, before you export the XML file. 

You can also see that we’re trying to make any map created with our editor be directly “plug and play” with an XNA project. For example, the XnaContent tag is automatically implemented, and so is the Asset Type= but the user will be able to specify their project namespace as well as the map class name that will be housing the data in-game. Obviously every XNA project needs this information unless you are using a custom importer / processor for your XML data, so you can not opt out of having this information exported.

Attempting to make the XML as flexible as possible, you will notice one feature we’ve already put in. You can specify the “Output Type” of your data to take advantage of the various importing techniques of the XNA Content Pipeline. For example, if you wish to import your “MapDimensions” data as a point, the output XML will look something like:

<MapDimensions>X Y</MapDimensions>

while if you wish to import it as a custom data and write your own Content Reader / Writer for that data, you can and it will export something like:

<MapDimensions>
     <Width>
X</Width>
     <Height>
X</Height>
</MapDimensions>

and naturally, all fields are customizable so if you wish to change “Width” to “MapWidth,” you can.

So, for now… this is a small snippet of what we’re working on. Again, we expect this project to be open source once we get further down the road, so anyone can take what we’ve done and expand on it or use it for their own editors.

I hope this project encourages the creation of some great RPGs, because I love me some RPGs :) See you all soon!

XNA RPG Editor: Soon to be Open Sourced

As stated in a previous post, our goals for this project were simple yet ambitious at the same time. We wanted to create a system that could be useable for not only our immediate needs and the RPGs we wish to create, but also any future needs and the games we have yet to think about, and taking it a step further we wanted this project to be usable for any game creator wishing to create levels for THEIR RPGs. 

Step one for my portion of the project is complete. I’ve been working on the XML Exporter class and the front end to that exporter. The goal for me was to get the XML to export all of the needed information in as customizable fassion as posible.. but at the end of the day when you hit “Export to XML,” you can take that file and plug it into your projects content pipeline and expect it to work. You won’t need to mess around with formatting, adding the asset type, change your TileMap class around because of the XML document… it will truly be a document suited for your needs.

We are really only on step one, building the basic framework and systems for the editor. Hell, the editor itself is nothing more than a blank windows form at this point hah. I have started working on the front end of the Exporter system over the next few days and hope to have something to show off then.

Keep in mind, this project is in its first stages, and has some pretty ambitious goals. Our overall goal for this though, is to ensure that people who use our editor will be able to plug the XML into their project and just “have it work” :) Also when the editor gets into a more complete state, we will open up the repository so everyone can take what they like and add it to their own projects or continue to enhance ours for their own use.

Meir is an official Dream Build Play project

When I started this project, I couldn’t tell you the difference between a float, int, or double. I didn’t know how to program, and had no clue where to even begin on a project as complex as this… but here I am.

Typical combat screen in Meir

Typical combat screen in Meir

Obviously its not a complete game, nor is it as polished as it could be.. but its good enough to prove a point to myself. Good enough for me to say “I set a goal for myself and reached my deadline with a specific quality in mind, and I hit it.” Next step for me is going to be putting together a story, finishing everything I couldn’t get done for the demo, and working towards the Community Games. Until then, enjoy the promotional video we had to put together for the Dream Build Play competition.

For some reason, the video is currently not showing. Direct link is: http://www.youtube.com/watch?v=g8n0fBt2t_8

I would like to give a few thanks.. because there were some people along the way that really pushed my goals forward. Most notably from the shack news community (http://www.shacknews.com/) People such as MitchWalker, RomSteady, and Mittense, DHAvatar, and everyone else on that crazy site.

I would also like to point out that the music for the demo was crafted by Delaric, and it is fine music indeed. Several people have contacted me wishing to help on a possible final version of the game and if you’re interested, all you have to do is shoot me an email. I would like to point out, however, that the final version of the game is a LONG… LONG way off. This i would consider, a very basic demo.. and the final version will be a full fledged RPG. You do the math :) But for now.. one milestone is down.. and thank you EVERYONE who helped along the way.

ShackRPG: Battle System Almost Complete

Battle system didn’t take as long to implement as I had thought, which is great news.. because it means I may just end up getting everything done in time for the Dream Build Play competition!! This battle system is by far one of my most complex systems in the game, for the very reason that makes it fun in the first place. I’ve tweaked it a few times because it was slow and un-interesting, but after playing through a few battles with the new system I think I have things tweaked enough to make battles fun and exciting.

So on to bigger and better things I always say. There are a few systems I’d like to have complete before the Dream Build Play competition, but not 100% necessary, including but not limited to:

Content Readers / Writers: With the current system of XML data, all of the content is being read in via the System.XML namespace. On the PC this doesn’t really give a lot of problems, but on the XBox things are terribly slow when reading new content.

Save System: Right now the game isn’t long enough to support such a system, but its an RPG.. you’ll need to save eventually! I have not even started working on a system to save your progress.

New Assets: While I am just using the assets from the RPG Template right now, I would love to eventually build my own. Not a priority right now, as I’d love to get a tech demo out first.

Cutscene / Scripting system: Cut scenes are possible with the systems I have in place, but I’d love to implement a dynamic scripting system that lets the user really experience the story.

Polish!!: Naturally everything will have to be touched up, working good, bugs squashed, and looking pretty.

So while everything is going along at a fairly quick pace, it is time for me to start putting together something you all can enjoy. I hope to have a few trailers up in the next few weeks and some screenshots of some action, and a demos worth of story hammered out for the Dream Build Play competition.

ShackRPG: Deployed to the Xbox360

With the battle system framework completed, i took the opportunity to deploy ShackRPG to my 360 for testing. The surprise? Things went very well and I didn’t experience any crashes or major bugs!! I’m happy to say that with the exception of a few details, things went pretty flawlessly.

Having said that, there are quite a few things that I messed up with so far during development, that I have to now go back and change.

Window locations: Fixed
I tried to keep everything in enough so the game would render correctly on a TV, but there were a few windows that I forgot to convert to my % system, and they were cropped.

Movement Speed: Fixed
For some reason, movement speed on the computer felt solid but when I deployed the project to the 360, it felt way too quick. Character feels solid all around, and the way I did collision detection and movement feels really solid with the controller, but I just had to turn the movement speed down a tad.

Debug Components: Fixed
There were a few components that were written with the PC in mind, and I had forgotten to change a few things with the 360 development. For example, the FPS display was at Vector2(5,5) which was off screen on the television screen. Also, in order to view active screens in the screen manager, you have to press Ctrl+Alt… obviously there is no Ctrl or Alt keys on the gamepad.

Loading Times: In Progress
The one minor mess up I had was with loading times. Anytime I had to access an XML file i would get between 1 to 5 seconds of loading time lag. This is most notable with loading a new map, but you could also see it when completing a quest. Talking with a friend of mine, he says the XML reader is not as efficient in the lite version of the .NET framework, and I should convert them to the Content Pipeline. Good advice? Sure, not what I wanted to hear however since I am trying to finish things up on the engine side so I can begin story development. This news means I may just end up missing the Dream Build Play deadline unless I can research the necessary fields quickly.

So there you have it, my first Xbox360 deployment was a huge success in my eyes. Some things needed to be tweaked, others changed, but for the most part everything works and works very well. The battle system is about 25% complete, and it is looking very solid and action packed at the moment. We’ll see how it all ends up, but for now its looking like a winner.

ShackRPG: Quest Demonstration

Quest journal functionality

Quest journal functionality

This section was quite fun to write! The quest system is not overly complex, but flexable enough to enable some pretty creative quests to be executed. It is my feeling that alongside the battle system, your quest system is one of the most important aspects of your game. To this end, I’ve enabled several aspects including;

Prerequisites: Items or equipment in your inventory, Monsters slain, Npcs Visited, or previous quests completed that must be obtained before the quest may become active.

Objectives: Could be but are not limited to: Talking to several specific NPCs, killing a specific monster or monsters, or the possesion of an item or amount of gold. (Several of these are demonstrated in the video below)

NPC Dialog: Changes based on the stage of the quest.

Quest Journal: A journal to keep tabs on your active and completed quests, along with a marker indicating if the quest is repeatable.

Rewards: And what quest would be complete without its rewards?

A lot of these aspects are demonstrated in the video below. I think the quest system works for the type of game I am writing, and so far its even passed the “non-gamer” test… sit a non-gamer in front of the workstation and have them run through your “Demo” and see if they understand it / can navigate through the demo.

Well, now its time to finish up some polish, and who knows… I may actually get a demo out in time for the Dream Build Play competition :) Here’s hopeing!

ShackRPG: Game Menus, and Combo Battle System

It has been a while since I’ve posted, and for good reason. I’ve been trying to get the next segments done, but I’ve hit a few snags with a few of my design choices from before. Working through those however, I’ve been able to make a pretty cool little menu system for ShackRPG that keeps your focus on the game world without being too intrusive.

Since the game is being designed with a gamepad in mind, there are only 4 buttons being used to control everything within the game. Press the inventory button and a new screen pops up containing the game menu. Not all of these sub-screens are implemented, and because of this I have not updated the codebank yet, but I will!


Above is the character screen showcasing your equipment as well as character stats.


Modifying your equipment, currently in the ‘Weapon’ slot equipping a new weapon.

When the sub-screen menus are complete I’ll update the code bank. Below is a video of the combo system within the combat, as well as the Game Menus in action!

Keep in mind, all code can be found at code.google.com;

ShackRPG: Updated Tile Engine Part 1

Over the past few days, I’ve been re-working my Tile Engine and Map Editor, and before I post on it I would like to say that it has been quite a bit bigger than I had anticipated. For that reason, this post will be broken up into several posts to show the basic features of the various components of the Tile Engine / Map Editor, but without having one big 30 page post on the whole sha-bang.

So on that note, we’ll start with the Map.cs file. This file will hold all of the map information, which is actually quite a bit of data. Some of the data fields include:

string Name – Map Name
int Height – Map Height
int Width – Map Width
int TileHeight – Height of each tile on map
int TileWidth – Width of each tile on map
string Tileset – Tileset used to draw the map

Point PlayerRespawnTile – Players respawn Location

List Tiles – List of textures used for map tiles
List NPCs – List of all NPCs on the current map
List Items – List of all world-items on current map (IE: Treasures)
List Portals – List of all portals leading to OTHER maps

string MusicCue – Music data to be used on map

int[,] BaseLayer – Base Layer Layout (Things you walk on top of, grass etc)
int[,] FringeLayer – Foreground Layers layout (Things you can walk behind)
int[,] ObjectLayer – Object Layers Layout (pots, barrels, plants, etc)
int[,] CollisionLayer – Collision Layer (Tiles you can not walk on)

This is most of the information needed to make a map work with this tile engine. The next step in getting the Map.cs file in order, was a way to Save, Load, and Initialize a map. Obviously for a complex role playing game, you’ll want to have several maps. Maybe a few towns, dungeons, an overworld map, city at sea, a sky level… The choices are limitless, but for every region you have in your game, you’ll have a map to hold the information. All of these maps will hold the same structure which makes it easy for the game to load and display

I really did not want to write my own content importer / content reader in the XNA engine, so I’ve stuck with the System.XML namespace. Because of this, each map will be stored in its own XML file and fed through the XNA content pipeline, but with the map.xml property set to “Do Not Compile.”

Below is a screenshot of a test map I did while testing the map engine showing off some of the map editor.


Red P = Player Respawn
Blue P = Portal to a different map
I = Item
M = NPC / Monster

The map name is called “Map001″ and you can see the XML file HERE

Not too many problems came up while working with the Map.cs file, more-so when trying to get the editor up and running.. but I’ll save that writeup for another time. Could this map file be smaller? Probably. As it stands now, it is just under 1300 lines of code. There are also several other systems needed to display the map to screen, but for anyone interested in writing their own map engine in XNA, I figured the best place to start was the map itself.

Full project source code can be found HERE
Project homepage can be found HERE

Next time I’ll go more in depth on the Tile Engine, and some of the Map Editor.

Follow

Get every new post delivered to your Inbox.