Thursday, April 30, 2009

Appologies

I have been very busy today helping my roommate build her new computer, only had a few minutes here and there to myself so not much got done today. I will try and get back to things tomorrow.

Cheers!

-----------------------------
Proud member of Dream.In.Code

The end of another month...

Welcome back!

Well, it is the last day in April and I think with the start of a new month I'm going to change things a little. I don't have infinite time and have to divide my attention between many things (my dogs have to eat, go for their walks and I have other things that must be done in a day.) but I'm not going to forget about you, I still want to show you how to create an RPG. 

I have about 4 hours in a day that I can devote to the project. Writing the code takes a while and so does writing the tutorials about the code. One tutorial can take any where from 6 to 8 hours but I'm trying to find a way to speed things up. One option is to use PDFs instead of HTML which I can do easily. You should be able to save the PDFs from your browser, at least I know you can in IE and Fire Fox.

-----------------------------
Proud member of Dream.In.Code

Wednesday, April 29, 2009

Was thinking about the project organization

I have a few good ideas. I'm thinking of making game libraries. One for GUI controls, one for the tile enginge, one for the audio engine and other parts of the game so they can be added to other projects. That is just my thoughts.

-----------------------------
Proud member of Dream.In.Code

Have to leave...

Welcome back!

Well, I have to leave shortly but I just wanted to say thank you to those of you who are following this blog. I won't be back until 6:00pm EST but I will try and make another post this evening, maybe by 10:00pm EST.

-----------------------------
Proud member of Dream.In.Code

Tuesday, April 28, 2009

Project organization...

Welcome back!

I'm trying to decide how I'm going to organize the project to help make it easy to change and make the best use of object-oriented programming. When I'm happy with my solution I will make a post about it.

I just wanted to say that if you have an idea that you would like me to try and incorperate in the game leave a comment or send me an email.

-----------------------------
Proud member of Dream.In.Code

Monday, April 27, 2009

Button tutorial ready

Welcome back!

It is ready! I've just uploaded the tutorial to my website. You can find it here:

Button Tutorial

-----------------------------
Proud member of Dream.In.Code

Creating a button control...

Welcome back!

Well, I'm working on a tutorial about creating a button control in XNA. I'm trying to make the button fairly dynamic. Again, I apologize about the graphics, I'm not very good at graphics but I try.

I'm also working at organization of the project. What goes where, etc. I hope to have that finished soon too.

Just a side note, I'm currently redesigning my website. I'm going to divide it into three sections, one for the RPG, one for my business and one for my C# tutorials. Right now I'm working on CSS files. So far I like what I've come up with.

-----------------------------
Proud member of Dream.In.Code

Sunday, April 26, 2009

Expect the unexpected...

Welcome back!

I've got unexpected company so I don't think I will be able to make a post today.

-----------------------------
Proud member of Dream.In.Code

Saturday, April 25, 2009

Screen Manager tutorial...

Welcome back!

Well, I've just uploaded the latest code tutorial to my website. It is a screen manager that can be used to create screens. This sample is a little simple but don't underestimate it's potential. You can think of the screens as different scenes in your game, perhaps I should have called it a scene manager. Anyway, it demonstrates how to use game components.

This is the tutorial: Screen Manager Tutorial

This is the images and source code: Screen Manager Files
-----------------------------
Proud member of Dream.In.Code

About the Asteroid clone tutorials...

This is a third tutorial in the Asteroids Clone series on Dream In Code. I think there will be just two more. The next one will make it a functional game and the last one will just add the UFO feature.

You can find the third tutorial as this link: Asteroids Clone Part 3

-----------------------------
Proud member of Dream.In.Code

Friday, April 24, 2009

The menu system...

Welcome back!

So, I'm still working on writing the tutorial for the menu system. It is taking a little longer than I thought it would and I do have other projects on the go. I will try and have it open very soon. Until then, I'm going to talk a little more about the layout of the project.

One thing that I want to do is make some simple GUI controls. To do this I'm going to make some images. A couple for each control. To use some of them the mouse will have to be enabled. This is a rather easy task. You just have to set the IsMouseVisible property to true. Using the mouse is also simple. Just like the keyboard and XBOX controller there is a class for the mouse.

Well, look back tomorrow and I will have try and have a link to the tutorial on my site.

-----------------------------
Proud member of Dream.In.Code

For later on today...

I have the program done for the next code tutorial. I should have the tutorial posted, hopefully by 9:00pm(EST). Now, it is time for me to go to bed.

-----------------------------
Proud member of Dream.In.Code

Thursday, April 23, 2009

So, what's next?

Well, I'm working on a tutorial about how you could implement a menu system using XNA. It is a little complex because I will be using Game Components. Game Components are very powerful. Using Game Components you can create them so that all of their update logic and rendering are done inside of the component keeping your main game class cleaner.

Hopefully I will have the tutorial up tonight 23/04/2009, or worse case tomorrow afternoon.

-----------------------------
Proud member of Dream.In.Code

The asteroids project...

Well, my second tutorial on creating a Asteroids Clone in XNA 3.0 is up on Dream.In.Code. This is the link: Asteroids Clone Part 2

-----------------------------
Proud member of Dream.In.Code

Wednesday, April 22, 2009

A list of features I'm planning on using

Here is a list of the features that I'm going to try and implement in the game:

  • Animations for cut scenes (I'm not very good at this but I'm going to try.)
  • Game Menus
  • Audio Engine
  • Character Generator
  • View Character Screen
  • Inventory System
  • Tile Engine (of course;))
  • Turn Based Combat System
  • Towns, Wilderness and Dungeons
  • Shops, Inns and other buildings
  • Single Character
  • Equipment
  • Simple GUI components - like buttons and textboxes
  • Different Difficulty levels
  • Quest System

-----------------------------
Proud member of Dream.In.Code

Tuesday, April 21, 2009

First coding tutorial...

Welcome.

I've finished the first coding tutorial and have uploaded it to my website. I'm thinking instead of making the tutorials in HTML format that I might make PDFs that can be downloaded to your computer instead of having to be online.

Anyway here's the links to the tutorial and the project:



-----------------------------
Proud member of Dream.In.Code

Monday, April 20, 2009

As a side note...

I'm working on tutorials for Dream In Code in XNA to make a clone of asteroids. I will post links to the tutorials as they are added for those who might not know a lot about XNA.

This is the first tutorial: Asteroids Clone Part 1

-----------------------------
Proud member of Dream.In.Code

Tomorrow's post...

Hi again. I've got my new system up and running so I'm hoping tomorrow to post some an actual code tutorial. I won't be posting the code tutorials on the blog, I will be posting a link to them on my website. This is because the columns of the blog are small and it is hard to write code in them. I found that out when I started my blog on programming C#. It just does not work very well.

To start with I think I will be demonstrating how tiling works. I don't have any very nice textures for the tiles and I will never proclaim to be a graphics artist so forgive me if they are not the most pleasing visually. I won't be doing anything in isometric or hexagonal tiles, just basic tiling.

In the project I'm going to be using Game Componets for a lot of things so I think the next coding tutorial will be about Game Components.

So look back tomorrow and I will try and have the tutorial written and a link to it on my website. Again forgive me if the tutorials are not the most pleasing visually, I have not done a lot of web design, but I'm trying. I'm trying to make a nice CSS for the tutorials.

-----------------------------
Proud member of Dream.In.Code

Saturday, April 18, 2009

I will only be able to make short posts for the next few days. I'm in the process of upgrading my computer from a PIII-667MHz to a P4-1.8GHz and don't have the time that I thought I would. But come back and I will try and get things up and running pretty soon.

-----------------------------
Proud member of Dream.In.Code

Friday, April 17, 2009

Intro to tiling

Hi again.

Today I'm going to talk about the basics of tiling. Tiling is using small images to make a larger image. Just take a look at the Zelda games. The map is made up of tiles, it is not just one very large image. Many platform games use tiles too. You use tiles to make up the different blocks.

So, how does tiling work? In a nutshell, you define a map, usually using a 2D array of integers that represent each tile. Then you iterate through this array and draw the tiles at the appropriate position on the screen. For this example I'm assuming all of the tiles will fit on the screen. I will get into scrolling the map at a later date.

Here is a small map:

1 1 1 1 4 1 1 1
1 1 1 1 4 1 1 1
1 1 1 1 4 4 4 4
1 1 1 1 4 1 1 1
1 1 1 1 4 1 1 1

Now, think of the 1s as a grass tile and 4s are a road tile. To iterate through the array you would use nested for loops.

for (int x = 0; x < tileMapWidth; x++)
    for (int y = 0; y < tileMapHeight; y++)
        DrawTile

But where do you draw the tile? Well, you would draw the tile at (x * tileWidth, y * tileHeight). If you just used (x, y) you would only be moving over one pixel at a time. By multiply x by the width of the tile and y by the height of the tile you would go to the right coordinate of the screen. I will try and post a sample project soon.

-----------------------------
Proud member of Dream.In.Code


Wednesday, April 15, 2009

Character specifications

This blog is about an open source RPG for XNA 3.0 that I am creating. This is the first in a series of documents detailing the design specifications for the RPG.

Design Document for RPG in XNA - Part 1

CHARACTER SPECIFICATIONS:

All characters (PCs, NPCs and monsters) use the same attributes and skills. The game is going to use a skill based system so the player will have more control on how their character will develop. For this implementation there will be no races. The player will have the choice of either a male or female character, possibly a pet.

Each character will have six attributes. They are Strength, Stamina, Agility, Speed, Intellect and Luck.

Here is a description of the attributes:
  • Strength measures a character's ability to inflict damage on an opponent and how much weight a character can carry. If a character is carrying too much their Agility and Speed will be effected.
  • Stamina determines how much damage can take and how resistant they are to poisons and magic.
  • Agility is how nimble a character is. It helps in striking and evading.
  • Speed is how fast a character is. In combat a character with high speed will strike faster in combat.
  • Intellect measures a character's ability to learn and retain information.
  • Luck helps in landing critical hits (that inflict 1.5x damage) on an opponent

There are also a number of skills that a character can learn. This the first draft:
  • Sword Skill – this measures how good a character is with all types of swords
  • Axe Skill – this measures how good a character is with axes
  • Club Skill – this measures how good a character is with clubs and maces
  • Spear Skill – this measures a character's ability with spears
  • Pole Arm Skill – this measures a character's proficiency with with pole arms
  • Bow Skill – this measures a character's ability to use bows and crossbows
  • Fire Magic Skill – measures a character's skill with Fire Magic
  • Earth Magic Skill – measures a character's skill with Earth Magic
  • Water Magic Skill – measures a character's ability to use Water Magic
  • Air Magic Skill – this measures how good a character is with Air Magic
  • Base Attack Skill – this is a special skill that characters that do not use weapons have for attacking opponents

----------------------------------
Proud member of Dream.In.Code

Tuesday, April 14, 2009

Format for posting...

I will try to post quick notes about what I'm working on for the Role-Playing Game every day and tutorials on my website every couple days.

Today I'm going over the Design Document and trying to figure out the different characters I'm going to create.

There are two concepts that I want to incorperate into the game. That is the idea of scenes and actors. The game will be made up of scenes, like menus, inventory screens, character genearation, combat, tile man, etc.

These scenes will be made up of actors. An actor is an active part of a scene. Things like menu items, buttons, sprites, etc. are all actors.

I will go more into this later.

I think the first coding tutorial will be about the basics of tiling.

Monday, April 13, 2009

Welcome to my blog on creating a RPG in XNA 3.0

Greetings!

This blog is going to be about the open source RPG I am writing in XNA 3.0. In my next post I will write about what I want to incorperate into the game. A basic run down is this:

I'm writing a skill based character system where the player chooses how their character develops.

It will be a top down 2D game using a tiling system.

There will be a quest system.

The game will be made in such a way that it is easy to change the story line.

The NPCs and monsters will be completely customizable.

Basically you will be able to skin the game.

So, look back soon for the Design Document about the game.