Thursday, November 29, 2007

Design story - Dak craft a big chest

Dak wants to use his new skills he learned earlier. He will craft a big chest.

He open his skills window and right click on the "Craft big chest" skill and select "Use" from the context menu (he could also double click!).

The crafting window then opens. On the left, his inventory is shown and on the right, empty slots showing him the needed items to craft a big chest.

He sees that to craft a big chest, he needs 1 small chest, 3 units of wood and 1 unit of iron. "A small chest?" he asked shocked. Yep, a small chest is needed to craft a big chest and here's why.

As characters gets new skills, previous skills become less important if not useless. What's the point of buying a small chest if you can get a big chest for just a little bit more money. New players might feel the first skills they're learning are quite useless since they won't be able to compete with others. Here comes the grind...

By creating the need of lesser items to craft better ones, we then assure that even new players are able to participate in the economy. New players can be recruited by veterans to craft for them the items needed for their own crafting.

While this might not be realistic, I feel this is a good way to make sure no skills just become part of some boring grind and that even new players can feel useful.

So Dak check the items needed to first craft a small chest. Two units of wood and one unit of iron are needed. He could go cut some wood himself and mine some iron but it would then take him too much time and he really wants his chest now (and he's really lazy). So he find a merchant and buy the items needed.

Again, he opens the crafting window and put the corresponding items
in the empty slots. He make sure he has enough time points to craft the chest (crafting requires X amount of time points) and press the "Craft" button.

The used items are removed from his inventory and a small chest is added. Dak will then be ready to craft his big chest!

edit: On second thought, instead of using a small chest to craft a big one, maybe a notion of generic wood (iron, ...) modules could be introduced. Those would just be items only used to craft other items.

That way, new players could still play an active role in a more realistic model. Those generic modules would just items like any others. Anyway, at that point it's easy to change this.

Read More......

Reiner's tilesets do include top-view

Well, seems like I talked too fast the first time. The bitmaps do include top-view... You can find them here:

Read More......

Tuesday, November 27, 2007

Design story - Dak learn new skills

Dak got some free time and decides to learn how to craft a small chest.

He finds the carpenter and ask him to teach him how to craft a small chest. The carpenter tells him that 24 hours of teaching are required before Dak is able to craft it himself.

Dak don't want to spend all of his day learning this new skill today so he spends 6 hours for now, leaving him with 18 more hours needed before he's able to craft a small chest.

The day after, Dak got a little more time so he meet again with the carpenter and spend 18 hours to complete his skill. Dak is now able to craft small chests.

A week after, Dak enjoy so much crafting small chests that he wants to take it to the next level. He wants to learn how to craft big chests!!!

Once again, he meets with the carpenter and ask him to teach him. The carpenter tells him that fortunately he already knows how to craft small chests, which is a prerequisite to craft big chests.

Learning this new skill requires more time though. It will take 48 hours to learn it. Once Dak has spent 48 hours, he'll be able to start his carreer of crafting big chests!

(this time I wrote the story before actually coding it, so now I have some work!)

Read More......

Monday, November 26, 2007

Design story - Dak is buying a house

Dak has enough money to buy a small house. It won't be impressive but it will be a place he can call home.

He meet Bob (NPC) that is offering him a small Type 1 house's blueprint for 10 credits. Dak can't believe how cheap this house is so he decides to also buy a small chest he'll use to store things in his house. Dak pays Bob and receive in his inventory both the blueprint and the small chest.

He opens his inventory and right click on the blueprint to select the "use" option. A grid appears as well as 2 buttons, "Accept" and "Abort". He then choose where he'll put his house by clicking on the desired location on the grid. A temporary picture of the house appears on the grid. Dak is satisfied with the location and click "Accept". If the selected spot is legal (no other building, NPC, PC or prop there), the house is created and a key is put in Dak's inventory. This key is linking Dak to his house as the owner and will later allow him to set access rights to his house.

Since it's getting cold outside, Dak gets inside his house. It's true that his house is quite small (it has only 1 room) but it's his.

It's now time to find a nice place for that small chest he bought earlier. He opens his inventory and right click on the chest and select "Drop" from the context menu. The same interface used to place his house then appears with some new options: "Front" and "Back" to bring the chest forward or backward on the screen and 4 arrows that allows him to slightly move the chest around (1 pixel at a time). Dak clicks on the grid to chose where he wants his chest to appear. The chest appears and Dak click on "Accept". The chest is now available in his house.

In his inventory, Dak noticed there was a sword. "I don't need no sword here" he tells himself, "And it's getting heavy to carry". Dak right click on his chest and select "Open". A screen appears showing both Dak's inventory (containing a sword and a key) and the content of the chest (currently empty). He right click on the sword and select "Put". The sword is switched from Dak's inventory to the chest. If Dak wanted to take back the sword, he could right click on it and select the "Take" option.

Dak close the small chest and feels he accomplished a lot today.

Read More......

Thursday, November 22, 2007

Type 1 house

Here's the first type of house

A nice small house that will probably be available early in the game to players.

It sure doesn't look as great as the one found on Lost Garden but the tilesets I've found (see previous post) will allow me to create different kind of building with different colors and features without needing to rely on an artist.

This project is getting more and more exciting as I work on the interface. So far I've coded the inventory, trading, merchant and blueprint use interface. Just those makes the game in its current state somehow playable.

More to come later!

Read More......

Saturday, November 17, 2007

Goldmine for tilesets

I knew something like this had to exist!

Once again, I was doing various Google search trying to find some free graphics to use and I found this: They have a bunch of tilesets free to use as long as you include the copyright text and link to their website.

Read More......

Saturday, November 10, 2007

Out drag and drop, In context menu

Removing any possibility of drag and drop is a big hit for my project. Drag and drop is such a natural way to interact with an interface that it was clear in my mind that pretty much everything would be handle this way. Unfortunately, javascript,s drag and drop use way too much CPU and freeze everything else...

I tried different ways of integrating drag and drop without much success. The drag just takes too much resources and freeze every other loops required to animate characters and NPCs.

One way to deal with it could be to completely hide the "world zone" while dealing with interfaces such as inventory and to resynchronize everything when the inventory is closed. I'm still not sure if I really want this since it will give a very bad feeling of extreme lag.

The way I'm handling all this for now is with context menu. So in the inventory, each item have a menu appearing on right click with options such as "Equip", "Drop", "Unequip", ... It's less intuitive but doesn't look that bad either.

Note that I'm using Prototype and and that the performance problems I experienced with drag and drop aren't related to those libraries. It's just too expensive to constantly check for mouse movement and refresh the position of an object.

I knew that working with Javascript would bring some issues but so far I'm mostly amazed at what I've been able to do with it. Now I can't wait to test this on the Internet. I'll probably looking for a VPS in december (or maybe wait after the holidays) to test the Alpha version.

Read More......

Sunday, November 4, 2007

Demo 4 - A first look at the real interface

It took a lot of work to come up with this first version of the real interface. I had to deal with a lot of performance issues and javascript voodoo magic. Yep, the more I'm working on this, the more I realize how powerful javascript is and how you really have to be careful how you put everything together. It doesn't take much to get something sluggish.

First, some warning about the video. I'm still trying to come up with optimum settings for Wink and I'm not very successful. The speed at which the characters are moving in the video is actually faster than it really is.

However, the "lag" you see when the screen load (NPCs suddenly changing places) is somehow normal. I added a check on characters positions when a zone load. The reason is that between the time the zone loads and the first events received by the server, some events are missed by the client so the characters are not shown where they should really be. With this check, I make sure the characters are all at the right position.

In the prototype, avatar animations were done using animated gif. Of course, it was only temporarily. Now, avatar animations uses sprites. You can see how it's done here:

Here's a sample sheet

This sheet only includes the walking animation. The actual final sheet will include more stuff for things as melee and range attack.

All avatars are created using Charas Project (zoomed at 225%).

There's actually no new functions in this demo. It's only showing the code of the real interface in action. It also reveals the dimension I will use for the game, grids of 20x10 with cells of 48x48 pixels.

So here it is: demo 4

Read More......