by date
Warscale - Graveyard (w/Screenshot)
Warscale - Graveyard (w/Screenshot)
| Name: | Guimo | |
|---|---|---|
| Date Posted: | Apr 28, 2008 | |
| Rating: | Not Rated | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Guimo |
Blog post
Hi to any person willing to read this blog series!
This week was an interesting week. I was able to finish almost all my tasks for the week really fast. The initial work was finished by wednesday while I thought it was going to take me at least Saturday or Sunday.
So what should you do with your free time? Some people would prefer to move forward and implement new features, but in my case I prefer to fix anything that in my opinion require to be fixed. And that was the hard part. I dont know if you have heard the Murphys Law "If you finish the 90% of your work in 10% of the time, the remaining 10% of work will take the remaining 90% of time"? That was completely true in this case.
The changes planned for this week were:
a. Make the end turn button work
Finished. The player can press the end turn button to finish the turn. The turn will end automatically if player does nothing for 30 seconds. The timer is currently disabled for testing purposes but it works.
b. Fire end of turn events
Finished. When the turn finishes, the battle object fires end of turn events which may lead to more conditions (even the end of the game).
c. Discard excess units
Finished. I decided that 5 units would be appropiate for the game. Any unit in excess of 5 will be sent to the graveyard at the end of turn. The oldest unit in your hand is sent to the graveyard automatically.
d. Graveyard
Finished for now. The graveyard is completely functional. It shows tombstones and caskets and it show the dead units as ghosts. Rolling the mouse over a ghost show the information on the unit info area. You can see the units in any graveyard.
Changes not planned but programmed this week:
Camera movement
Initially I thought that an orbit camera would be the best option for this game, but after using it for a while, it just difficult to focus some places in the map. It wasnt that hard to use either but I feel the standar RTS view is more suitable to this game and the player will have an easier time with a familiar camera than a new style of camera.
However my indie side wanted to provide something new, so this camera has something different. Of course it allows to pan and zoom but the funny part is that it may start in any of the 4 sides of the map depending on the player starting position and will move appropiately. Its a top down view but with a direction.
Anyway, I have left the original orbit camera code so maybe I can enable two camera styles in the future.
Player info bars
The last week I mentioned that the unit information box on the lower left portion of the screen had all the information required to monitor any unit information including the avatar. That made the health and mana icons in the top bars superfluous. Now, superfluous is not always bad, but in this case some screen area could be recovered and I really like simple GUIs. so I decided to remove those icons which resulted in the bars being too small with only three icons left. So I decided to move everything to the top of the screen. The result is a cleaner and more readable interface. I still need icons for hand, army and dead units to replace the lag icon. If anyone would like to contribute you are most welcome.
Chat area
You will notice that a chat area has appeared in the lower portion of the GUI. This was pending for a previous blog and as I had some time I decided to implement it a little. This is a messagevector as usual and will receive any chat message, but will also be used to handle battle events. So, each time a player makes an action, a message will appear showing the action like "Belgar casts Mass Kill" or "AIPlayer summons a Blue Dragon". It is working now but still needs more work for the web based game.
Ghosts in the graveyard
I was originally planing the graveyar to show many tombstones and caskets and crosses, but when I showed it to my wife she said something very interesting... how do you know what is inside each tomb? Of course rolling the mouse over each tomb is not the idea of fun, so I decided that showing a unit as a ghost would be nice.
Now, I have previously posted a resource to make semitransparent units but it worked with TGE 1.4 + TLK. It just didnt work with TGE 1.5. So I tried with setCloaked but the result was not what I was expecting. I knew the engine was able to handle fades because it supported the startFade command. So after hacking the engine a little I managed to get it working. Now I would like to place a couple of horizontal planes with a very slight fog at knee level so it looks creepier. I also want to add a graveyard gate and walls and maybe some zombies moving inside. I think this will be a nice graveyard when finished.
Hide opponent hand
You cannot see the units in your opponent hand. This comes from Magic The Gathering. Makes things more interesting. You still know how many units your opponent has in his hand by looking at his player info on the top.
Screenshot!
This screenshot shows the new location of the player info at the top, the new size of the action buttons at the lower right, the chat/game info area at the bottom and some units in the graveyard with its ghosts and tombstones.

The plan for this week
At last I think all the framework is set. The turn flow works fine. So at last I can do some interesting things like summon! I must confess I was getting completely impatient to reach this point. Summon presents some interesting problems on the AI side and the client side. It requires the AI to try and balance the board power level while keep using the available mana. For this moment I will focus on creature summoning but will try to develop a solution able to handle sorceries. On the client side summon requires to show some commands to guide the player and handle summoning events.
On a rule level, there are three kind of creatures in warscale.
Summoning simple creature should be relatively easy. Summoning a Wolf should remove a unit from your hand, find a suitable position for the unit and place it in board. The process on the client side should request the player to click a unit in his hand and be able to reject if the selected unit cannot be summoned for some reason.
Some creatures are slightly more complex. Imagine a unit called "Alpha Male - Beast - All your wolves get +2 damage while Alpha Male is in play.". This is an example of a creature that comes into play and creates an effect for some specific units in play. This requires no player interaction at all, the player just summons the unit and the unit fire its effects when it comes into play.
The hardest type of unit to summon is when the unit requires some kind of target when it is summoned. In example: "Grim Reaper - When this unit comes into play, kill target unit" or "Boogeyman - When this unit is summoned select three three target units. Selected units get -2 Damage and -2 Armor" or even "JuggerGhoul - When you play JuggerGhoul select any number of creatures in your graveyard. JuggerZombie gets +4 damage and +2 armor for each unit selected this way. The selected units are removed from the game".
This kind of units require the client to make additional selections and the client should validate the targets before sending the request to the server. Now, I dont pretend to solve all the rules right now but at least provide a nice pick mechanism, client action request and cancel button in order to make summoning a spell a ver simple process.
Fortunately, this is exactly the behaviour for other spells so I guess the solution will also work for sorceries and items.
I must add that some of this code is already programmed but requires testing. This was done on my coding frenzy phase.
a. Summon creatures (client)
I want to focus on the creature summoning for the client. I will leave out all the AI part.
Yep, this is all the plan for the week. I think it will be really hard to solve this. On the good side, I guess I will have to create new units and make more complex armies also so expect some more interesting shots next week.
Luck with your projects!
Guimo
This week was an interesting week. I was able to finish almost all my tasks for the week really fast. The initial work was finished by wednesday while I thought it was going to take me at least Saturday or Sunday.
So what should you do with your free time? Some people would prefer to move forward and implement new features, but in my case I prefer to fix anything that in my opinion require to be fixed. And that was the hard part. I dont know if you have heard the Murphys Law "If you finish the 90% of your work in 10% of the time, the remaining 10% of work will take the remaining 90% of time"? That was completely true in this case.
The changes planned for this week were:
a. Make the end turn button work
Finished. The player can press the end turn button to finish the turn. The turn will end automatically if player does nothing for 30 seconds. The timer is currently disabled for testing purposes but it works.
b. Fire end of turn events
Finished. When the turn finishes, the battle object fires end of turn events which may lead to more conditions (even the end of the game).
c. Discard excess units
Finished. I decided that 5 units would be appropiate for the game. Any unit in excess of 5 will be sent to the graveyard at the end of turn. The oldest unit in your hand is sent to the graveyard automatically.
d. Graveyard
Finished for now. The graveyard is completely functional. It shows tombstones and caskets and it show the dead units as ghosts. Rolling the mouse over a ghost show the information on the unit info area. You can see the units in any graveyard.
Changes not planned but programmed this week:
Camera movement
Initially I thought that an orbit camera would be the best option for this game, but after using it for a while, it just difficult to focus some places in the map. It wasnt that hard to use either but I feel the standar RTS view is more suitable to this game and the player will have an easier time with a familiar camera than a new style of camera.
However my indie side wanted to provide something new, so this camera has something different. Of course it allows to pan and zoom but the funny part is that it may start in any of the 4 sides of the map depending on the player starting position and will move appropiately. Its a top down view but with a direction.
Anyway, I have left the original orbit camera code so maybe I can enable two camera styles in the future.
Player info bars
The last week I mentioned that the unit information box on the lower left portion of the screen had all the information required to monitor any unit information including the avatar. That made the health and mana icons in the top bars superfluous. Now, superfluous is not always bad, but in this case some screen area could be recovered and I really like simple GUIs. so I decided to remove those icons which resulted in the bars being too small with only three icons left. So I decided to move everything to the top of the screen. The result is a cleaner and more readable interface. I still need icons for hand, army and dead units to replace the lag icon. If anyone would like to contribute you are most welcome.
Chat area
You will notice that a chat area has appeared in the lower portion of the GUI. This was pending for a previous blog and as I had some time I decided to implement it a little. This is a messagevector as usual and will receive any chat message, but will also be used to handle battle events. So, each time a player makes an action, a message will appear showing the action like "Belgar casts Mass Kill" or "AIPlayer summons a Blue Dragon". It is working now but still needs more work for the web based game.
Ghosts in the graveyard
I was originally planing the graveyar to show many tombstones and caskets and crosses, but when I showed it to my wife she said something very interesting... how do you know what is inside each tomb? Of course rolling the mouse over each tomb is not the idea of fun, so I decided that showing a unit as a ghost would be nice.
Now, I have previously posted a resource to make semitransparent units but it worked with TGE 1.4 + TLK. It just didnt work with TGE 1.5. So I tried with setCloaked but the result was not what I was expecting. I knew the engine was able to handle fades because it supported the startFade command. So after hacking the engine a little I managed to get it working. Now I would like to place a couple of horizontal planes with a very slight fog at knee level so it looks creepier. I also want to add a graveyard gate and walls and maybe some zombies moving inside. I think this will be a nice graveyard when finished.
Hide opponent hand
You cannot see the units in your opponent hand. This comes from Magic The Gathering. Makes things more interesting. You still know how many units your opponent has in his hand by looking at his player info on the top.
Screenshot!
This screenshot shows the new location of the player info at the top, the new size of the action buttons at the lower right, the chat/game info area at the bottom and some units in the graveyard with its ghosts and tombstones.
The plan for this week
At last I think all the framework is set. The turn flow works fine. So at last I can do some interesting things like summon! I must confess I was getting completely impatient to reach this point. Summon presents some interesting problems on the AI side and the client side. It requires the AI to try and balance the board power level while keep using the available mana. For this moment I will focus on creature summoning but will try to develop a solution able to handle sorceries. On the client side summon requires to show some commands to guide the player and handle summoning events.
On a rule level, there are three kind of creatures in warscale.
Summoning simple creature should be relatively easy. Summoning a Wolf should remove a unit from your hand, find a suitable position for the unit and place it in board. The process on the client side should request the player to click a unit in his hand and be able to reject if the selected unit cannot be summoned for some reason.
Some creatures are slightly more complex. Imagine a unit called "Alpha Male - Beast - All your wolves get +2 damage while Alpha Male is in play.". This is an example of a creature that comes into play and creates an effect for some specific units in play. This requires no player interaction at all, the player just summons the unit and the unit fire its effects when it comes into play.
The hardest type of unit to summon is when the unit requires some kind of target when it is summoned. In example: "Grim Reaper - When this unit comes into play, kill target unit" or "Boogeyman - When this unit is summoned select three three target units. Selected units get -2 Damage and -2 Armor" or even "JuggerGhoul - When you play JuggerGhoul select any number of creatures in your graveyard. JuggerZombie gets +4 damage and +2 armor for each unit selected this way. The selected units are removed from the game".
This kind of units require the client to make additional selections and the client should validate the targets before sending the request to the server. Now, I dont pretend to solve all the rules right now but at least provide a nice pick mechanism, client action request and cancel button in order to make summoning a spell a ver simple process.
Fortunately, this is exactly the behaviour for other spells so I guess the solution will also work for sorceries and items.
I must add that some of this code is already programmed but requires testing. This was done on my coding frenzy phase.
a. Summon creatures (client)
I want to focus on the creature summoning for the client. I will leave out all the AI part.
Yep, this is all the plan for the week. I think it will be really hard to solve this. On the good side, I guess I will have to create new units and make more complex armies also so expect some more interesting shots next week.
Luck with your projects!
Guimo
Recent Blog Posts
| List: | 07/12/08 - Warscale - Spiders! (w/screenshots) 07/01/08 - Warscale - Dire units (w/screenshots) 06/24/08 - Warscale - First spell! (w/2 screenshots) 06/18/08 - Warscale - Equipment system (w/screenshot) 06/11/08 - Warscale - New editors 06/03/08 - Warscale Battle End (w/screenshot) 05/28/08 - Warscale Combat (w/screenshots) and call for models 05/20/08 - Warscale movement (w/Screenshots) |
|---|
Submit your own resources!| Novack (Apr 28, 2008 at 01:18 GMT) |
Great work mate.
| Edward (Apr 28, 2008 at 02:03 GMT) |
| Stephan (viKKing) Bondier (Apr 28, 2008 at 22:04 GMT) |
| fireVein (Apr 28, 2008 at 22:24 GMT) |
| Guimo (Apr 28, 2008 at 23:41 GMT) |
Luck!
Guimo
You must be a member and be logged in to either append comments or rate this resource.


Not Rated


