February 2nd, 2004
Two Kingdoms is a very ambitious RPG flash game that has recently come to life after more than one year of work and dedication.
The author Cyril Guichard, aka LuxRegina, was also supported by a number of other flash developer that helped him with the game engine,
map editor etc...
The game features rich and various graphics, cool cutscenes and a captivating story.
You can play the it at this address: www.twokingdoms.com


- "Two kingdoms" looks like a very ambitious project.
Can you tell us when did it all started out ?

Two Kingdoms started in August 2002, on Flashkit, after I had read the tutorials from Klas Kroon, Ed Mack and seen a really inspiring engine created by Tonypa. I had been using Flash for quite a while then, for website making, but I suddenly realized that it could do much more.

- Can you describe the most important features of "Two Kingdoms" ?

Well, I wouldn't know where to start, or what to qualify as 'important'. Two Kingdoms is a quite straight-forward "Hack'n'Slash", a mix between the arcade classic 'Gauntlet' and 'Diablo'; you can find everything there you would expect from an RPG: inventory, foes to slash, collectible objects, experience points, quests, and a storyline that unfolds through dialogues and numerous cutscenes.
There is also a really simple "Hi-scores" system, the "Hall of Fame" where players are ranked by experience.

- Is "Two Kingdoms" a commercial project ?

Not at all, it is in fact a kid's dream. For a long time, I've wanted for to realize a video game: my best reward is to have people playing it and having fun with it. It is priceless to be able to spend some time on this kind of project, and then to have an audience involved in it.

Of course, if I was asked to adapt the Two Kingdoms engine for a commercial purpose, I would be glad to do so, but the game itself will remain free to play.

- How many people worked on this project and how much did it take to finish it ?

As any amateur project, it's been a bit chaotic. I started working with Ed Mack ( Flashkit game board moderator ) on the main engine, but his studies required all his time. Then, an FK member, Jeroen, took care of map switching and persistance, before he also got sucked into his studies. For quite a while afterwards, I continued the development alone, learning actionscript as my needs dictated.
I finally got the lead coder of a web company, Inpulsion, interested in the project. He rewrote a big part of the engine, adding what was missing, and throwing all my code in the garbage ! He basically rewrote most of the game in less than a week.

Since I have a full time designer job, Two Kingdoms was mainly developed during my evenings and weekends, with long interruptions in between. So it is difficult to estimate a time scale for the project : I would say between 8 and 12 solid months of development

- Can you tell us a bit about the game story and its characters ?

The game takes place in Sommerland, an imaginary land in the distant past. The Kingdom of Holmgaard, a rich and powerful nation, has been at peace for a long time, after having successfully driven out an initial Orcish invasion. But it seems that now, the old enemy is back, driven by an unknown, cunning force, which invades Holmgaard from the south.
Lothar, a young knight whose father has just been slaughtered by the Orcs, is on his way to Kilkgaard, the Royal fortress, to warn the king and rally its troops.
He doesn't know yet that Orcs won't be his only foes, and that power-mongering traitors are also waiting for the fall of Kilkgaard.

- Most of the game graphix looks like it's mainly made up of bitmaps. What softwares did you use and how did you manage tilesets in flash ?

The graphics were hand-done in Photoshop. Then, they were all imported as Gifs in Flash and set as a unique Movie Clip. The XML map tells Flash which frame of the movie clip to go to when constructing the map

Some of the sprites' positions/movements have been modeled in Poser, then redrawn in Photoshop. It is a technique that I discovered recently, but that I will use more and more for sprite editing, as it allows you to be anatomically correct without spending too much time on preliminary drafts.

The cutscenes' backgrounds have been done in Photoshop, while all characters are pure frame-by-frame Flash animation.

click thumbnails to
enlarge them.















click thumbnails to
enlarge them.

- Can you tell us a bit about your isometric scrolling engine ?

Here are some more details about the engine: it is a really difficult exercise as the engine is quite packed with functions, and is a lot Object oriented, so it is difficult to explain it an "organized" way - However here it is:

class.hero

Holds inventory (that basically holds all stats for the player)
Holds the reaction timer for the player ( it was planned first to adapt the player speed to the terrain )

The movement is handled this way :

AC_Hero.prototype.Movement = function()
{
 if(Key.isDown(Key.UP))
 {
  this.moveLegal( 0,-1,2);//see comment
  this.anim.play();
  this.direction="attackup";
  this.gotoAndStop("UP");
 }
 
 (...)
};
			  

where moveLegal(); checks the state of the next tile :

AC_Hero.prototype.moveLegal = function(x,y,o)
{
 if(this.world.getTileWalk(this.set.x+x,this.set.y+y))//see comment
 {
  this.world.setTileLibre(this.set.x,this.set.y,true);//see comment 
  this.isoPlace(this.set.x+x,this.set.y+y,o);
  this.set.x += x;
  this.set.y += y;
  
  this.world.setTileLibre(this.set.x,this.set.y,false);//see comment
  
  if(o == 2) {this.world.scroll(x,y);} //see comment
 }
};

Where getTileWalk must be to true, then setTilewalk will set the previous tile as walkable ( so that enemies can include it in their pathfinding ) and will set the newly occupied tile as False - then the map will scroll :


TBW.prototype.scroll = function(x,y){
 this.settings.majorx += x;
 this.settings.majory += y;
 
 if(x>0){
  this.screen.tiles._x -= this.settings.twidth*x;
  this.screen.tiles._y -= (this.settings.theight>>1)*x;
 
  this.remCol(this.settings.majorx-1,this.settings.majory);//see comment
  this.addCol(this.settings.majorx+this.settings.vwidth-1,
this.settings.majory);//see comment
 }
 (...)
};

where remCol and addCol (and their counterpart remRow & addRow) will remove the last column (or row) of the opposite direction the player is taking ...


- Did you use any particular "optimization tricks" in the engine ?

The isometric engine has been written by Ed Mack: an open source version exists on his site and is ready to be dowloaded. Basically, it stores all the components in a 30*30 array, then shifts rows and columns to bring the 10*10 area on screen. This allows the engine to work fast, and gives the player the feeling of 'discovering' the map as he walks.

- Did you develop special tools for map editing ?

Well, in fact I'm using a slightly edited version of Klas Kroon's tilemap editor : most of the code was already there, so I didn't have to work a lot to adapt it to the game, and, I wanted to spend most of the time on the game, not on the editor.

Eventually, I'm thinking about publishing a more advanced editor online. It would allow players to publish their own maps and scenarios on the web, in order to have other players play them. I'm not totally sure about the future of this : are players ready to become involved in supporting a Flash game the same way they do with other games ? How can quality map design and gameplay be guarenteed? should Two Kingdoms' graphics be editable too ? There are a lot of questions ...

- How did you manage the level data ? Do you use a server side database ?

Level data is stored in XML files: map geography, exits, enemies locations and stats, objects, etc .
Two Kingdoms uses a database only to store players' profiles (stats, questbook, location and inventory) and savegames (the game allows you to save your progression at specific savepoints).
It was a concern, in the event of heavy traffic, to limit the database interaction as much as possible.

- What about sound fx and music? Did you use sound libraries or did you also produce some of the fx/music ?

I used various libraries for the sounds effects, but I'm aware that the game is still somewhat low on sound fx design. I will correct this for the second book.

The music has been made by an incredibly talented artist: Justin R.Durban (www.edgen.com).
The music wasn't specifically composed for Two Kingdoms, but as soon as I heard it, I knew it captured the mood I was looking for. Justin has recently granted me access to more songs that are excellent and that will be featured in the cutscenes and the second 'book' of Two Kingdoms, around Summer 2004. I think that for an RPG, music is extremely important, as it contributes to creating a climate for the game.

- Which were the games that most influenced "Two Kingdoms" ?

The reference to Warcraft II is quite obvious, Two Kingdom's name might as well be "adventures of a Footman in Azeroth" !
I'm a big fan of the Warcraft series.

Of course, I played a lot of 'Diablo II' and 'Baldur's Gate' as well to get ideas on what was cool about an RPG.
Finally, I play the GameBoy Advance, 'Lord of the Rings: the Two Towers' game extensively and Isurely got a lot of inspiration from that too.

Movies like the LOTR trilogy have also been a great inspiration source for visual elements: I am planning a 'Minas Tirith invasion'-like scene in the second book of Two Kingdoms !

- What were the difficulties (if any) that you had to overcome during the development ?

The lack of a single coder who followed the creation of the entire game was the biggest difficulty. I'm not good enough in AS to find my way alone on the most difficult questions. Actually, a lot of gameplay elements (magic, an advanced fight system, some character-to-tiles interaction ...) are waiting to be developed in the second book of Two Kingdoms -- not even talking about some multi-player elements ;)

Staying focused on the project was also difficult. This year a lot of great quality games/engines have been released in Flash and I was still working on my 'old' project while a lot of exciting things where happening all around me. I think that doing, and finishing, an RPG in Flash makes one become a bit monomaniac !

- Do you have any wishlist for improvements in the next version of Flash ?

For coding, Well, a debugger, I mean, a real one, would be great !
For animation, I wish that Macromedia would find a way to integrate Bones structures ( for now, animating sections of a character is soooo painful ! )
And, of course, more speed, less resource for the player, and maybe, let's dream, some 3D support.

 

back to SpotLight index



Have you played one of the best web games ever ?
Did you create the latest kick-ass flash game and would you like to seen it reviewed in these pages ?
Suggest us some high quality games to feature in our SpotLight!

Game suggestions HERE
| Homepage | News | Games | Articles | Multiplayer Central | Reviews | Spotlight | Forums | Info | Links | Contact us | Advertise | Credits |

| www.smartfoxserver.com | www.gotoandplay.biz | www.openspace-engine.com |

gotoAndPlay() v 3.0.0 -- (c)2003-2008 gotoAndPlay() Team -- P.IVA 03121770048