Warscale 39 - The perfect view
by Guimo · 04/29/2009 (5:43 am) · 4 comments
Hi to all!
Thank you for all your comments last week. When I started this blogs my idea was to describe just the development process but then I have noticed the change that the development makes on you so I started writing on that. I must say you and your comments have saved me lots of $$$ in therapy :)
The last week I set different small targets to finish and I think I have managed to get them all working but one in particular made me suffer a lot.
Every computer game is a simulation. In fact you can write a game without any graphical interface but we are using a 3D engine and that gives us a lot of posibilities and maybe the most important thing to consider in a 3D game is the camera.
Im not a FPS guy. I have made a couple of frags in my time and I really love the FEAR series, but its not my favorite game type. For me, games should look less like real life simulations and more like a board game. So, thats why I favour RTS, RPG, strategy, and basically any game where you view the scene from an advantage point.
For Warscale I wanted to allow the player to freely move the camera but at the same time keep the mouse free to interact with all the units, pick them, issue commands and cancel actions. Mouse usability is necesary and shouldnt be focused into moving the camera.
So, how to keep your mouse free? FPS just have it easy because the player never interacts with a specific object. You jusr run over them or stand in front of them and press a key. RPG usually focus in a currently focused player and will keep with it at all times. RTS games manage that level of control by allowing the player to scroll the map by placing the cursor in the border of the screen but usually wont allow for FOV changes (and maybe limited viewing angle changes) because if you do so, you get more information than the player.
Now, its no secret I want Warscale to look like Warcraft3 so the god view mode is a no brainer and the scroll using the borders is an easy way to provide camera movement without compromising the mouse so I added invisible bitmap objects with enabled onMouseEnter/onMouseLeave functions to allow me to control the movement. Zooming was also easy as I allowed the mouse wheel to zoom but I still left the + and - keys as an alternative for those who dont have a scroll wheel.
Rotating was another problem. Of course I added a couple of keys to change the azimuth and declination of the camera but the movement was jerky so I decided to use the left shift. While the key is pressed, moving the mouse will rotate the map around the view point. Combine that rotation with a free window border scrolling (that is, scroll forward/back/left/right relative to the camera direction) and you get a free movement with minimal mouse usage. It feels fine and allow you to set the angle you prefer.
Of course, I added a key to zoom by reducing the FOV for those times you want to see your fireball burning away a score of pesky goblins.
What was planned
Buttons for the equipment editor
I created some buttons for the equipment editor. Not as flashy as I wanted to but they serve their purpose. I may even release with these unless somebody would like to help a little.

Fixes in the game room
Fixed an offset in the game room. This was caused due to an addition to the WSObjectView which allows me to add a transform to the object. This was done so I was able to show objects in the equipment editor and create a rotate animation.
End game gold
The rule for gold is: You win, you get 50 gold + 1/5hp damage to any avatar. Caps to 150. If you lose you get 5 gold + 1/10hp damage to a player. Its working fine now. I expect this to be the final reward system.
Backgrounds
Originally I wanted something like the Warcraft 3D backgrounds but even when I think the WSObjectView can handle the task, It may look neater but right now is a waste of resources. So I decided to go for bitmaps for now.
I prepared the backgrounds images so it is ready for other Idea I had in mind originally. The game should allow for new images as rewards like for winning some tournaments. You unlock new backgrounds which you can use to configure any background in the game (Login screen, server selection, etc). That way the user gets a unique experience.
Fix the lights
I increased the ambient lights and the sun color. That way I get more color in the units. Now I need stronger colors in the map in order to avoid everything to look washed out.
Fix the camera
I have already described the good part. The problem i that I found the AdvancedCamera resource to be somewhat buggy and it looks like it wont transmit the camera setting from client to server for scoping and such tasks. I had to do a couple of hacks in order to do what I wanted. ow I understand why GG never included this camera into the engine. Useful but needs work to make it work fine.
What was unplanned
Other than hacking the camera, basically everything fell into place.
More shots!
Here are a couple of shots showing the incremented light and the camera positioning.


The plan for this week
Fix the AI!
I dont know where it broke, but right now the monsters just stay there completely dumb. I need to fix that and add some more tricks.
Add reset view button (Daniels suggestion)
I need a button to reset the view after it has been altered by the user.
Fix a fix
There is a bug which appears when the units run... they don start running nicely, instead it looks like a jump. This may be caused by a 'fix' I wrote in the beginning as I had some troubles with the movement. I need to find a nice way to solve this.
Add more equipment
So kiling a monster is all about equipment. I plan to add at least 2 equipment each day. Just simple objects to slowly test the game capabilities. I will add weapons and armor only. I guess this will bring a lot of bugs in the equipment editor and in the game to keep me busy. I would like to finish this week with at least 7 weapons and 7 armors. Nothing magical, just normal ones.
I dont know if I mentioned I created a list of objects which will be part of the first release. For a nice base I should have at least 50 weapons, 50 armors and 50 jewelry items. It looks like a lot but with less than that the game will look poor. So expect me to keep adding equipment at a rate of 4 each day, 28/week. I should be finished in 1 month, then I will continue with creatures and spells (40 creatures, 40 artifacts, 40 sorceries).
Lots of work ahead.
Some reading
This is an excelent article on perspectives. Worth reading.
http://www.significant-bits.com/a-laymans-guide-to-projection-in-videogames
Luck!
Guimo
Thank you for all your comments last week. When I started this blogs my idea was to describe just the development process but then I have noticed the change that the development makes on you so I started writing on that. I must say you and your comments have saved me lots of $$$ in therapy :)
The last week I set different small targets to finish and I think I have managed to get them all working but one in particular made me suffer a lot.
Every computer game is a simulation. In fact you can write a game without any graphical interface but we are using a 3D engine and that gives us a lot of posibilities and maybe the most important thing to consider in a 3D game is the camera.
Im not a FPS guy. I have made a couple of frags in my time and I really love the FEAR series, but its not my favorite game type. For me, games should look less like real life simulations and more like a board game. So, thats why I favour RTS, RPG, strategy, and basically any game where you view the scene from an advantage point.
For Warscale I wanted to allow the player to freely move the camera but at the same time keep the mouse free to interact with all the units, pick them, issue commands and cancel actions. Mouse usability is necesary and shouldnt be focused into moving the camera.
So, how to keep your mouse free? FPS just have it easy because the player never interacts with a specific object. You jusr run over them or stand in front of them and press a key. RPG usually focus in a currently focused player and will keep with it at all times. RTS games manage that level of control by allowing the player to scroll the map by placing the cursor in the border of the screen but usually wont allow for FOV changes (and maybe limited viewing angle changes) because if you do so, you get more information than the player.
Now, its no secret I want Warscale to look like Warcraft3 so the god view mode is a no brainer and the scroll using the borders is an easy way to provide camera movement without compromising the mouse so I added invisible bitmap objects with enabled onMouseEnter/onMouseLeave functions to allow me to control the movement. Zooming was also easy as I allowed the mouse wheel to zoom but I still left the + and - keys as an alternative for those who dont have a scroll wheel.
Rotating was another problem. Of course I added a couple of keys to change the azimuth and declination of the camera but the movement was jerky so I decided to use the left shift. While the key is pressed, moving the mouse will rotate the map around the view point. Combine that rotation with a free window border scrolling (that is, scroll forward/back/left/right relative to the camera direction) and you get a free movement with minimal mouse usage. It feels fine and allow you to set the angle you prefer.
Of course, I added a key to zoom by reducing the FOV for those times you want to see your fireball burning away a score of pesky goblins.
What was planned
Buttons for the equipment editor
I created some buttons for the equipment editor. Not as flashy as I wanted to but they serve their purpose. I may even release with these unless somebody would like to help a little.
Fixes in the game room
Fixed an offset in the game room. This was caused due to an addition to the WSObjectView which allows me to add a transform to the object. This was done so I was able to show objects in the equipment editor and create a rotate animation.
End game gold
The rule for gold is: You win, you get 50 gold + 1/5hp damage to any avatar. Caps to 150. If you lose you get 5 gold + 1/10hp damage to a player. Its working fine now. I expect this to be the final reward system.
Backgrounds
Originally I wanted something like the Warcraft 3D backgrounds but even when I think the WSObjectView can handle the task, It may look neater but right now is a waste of resources. So I decided to go for bitmaps for now.
I prepared the backgrounds images so it is ready for other Idea I had in mind originally. The game should allow for new images as rewards like for winning some tournaments. You unlock new backgrounds which you can use to configure any background in the game (Login screen, server selection, etc). That way the user gets a unique experience.
Fix the lights
I increased the ambient lights and the sun color. That way I get more color in the units. Now I need stronger colors in the map in order to avoid everything to look washed out.
Fix the camera
I have already described the good part. The problem i that I found the AdvancedCamera resource to be somewhat buggy and it looks like it wont transmit the camera setting from client to server for scoping and such tasks. I had to do a couple of hacks in order to do what I wanted. ow I understand why GG never included this camera into the engine. Useful but needs work to make it work fine.
What was unplanned
Other than hacking the camera, basically everything fell into place.
More shots!
Here are a couple of shots showing the incremented light and the camera positioning.
The plan for this week
Fix the AI!
I dont know where it broke, but right now the monsters just stay there completely dumb. I need to fix that and add some more tricks.
Add reset view button (Daniels suggestion)
I need a button to reset the view after it has been altered by the user.
Fix a fix
There is a bug which appears when the units run... they don start running nicely, instead it looks like a jump. This may be caused by a 'fix' I wrote in the beginning as I had some troubles with the movement. I need to find a nice way to solve this.
Add more equipment
So kiling a monster is all about equipment. I plan to add at least 2 equipment each day. Just simple objects to slowly test the game capabilities. I will add weapons and armor only. I guess this will bring a lot of bugs in the equipment editor and in the game to keep me busy. I would like to finish this week with at least 7 weapons and 7 armors. Nothing magical, just normal ones.
I dont know if I mentioned I created a list of objects which will be part of the first release. For a nice base I should have at least 50 weapons, 50 armors and 50 jewelry items. It looks like a lot but with less than that the game will look poor. So expect me to keep adding equipment at a rate of 4 each day, 28/week. I should be finished in 1 month, then I will continue with creatures and spells (40 creatures, 40 artifacts, 40 sorceries).
Lots of work ahead.
Some reading
This is an excelent article on perspectives. Worth reading.
http://www.significant-bits.com/a-laymans-guide-to-projection-in-videogames
Luck!
Guimo
#2
04/29/2009 (12:45 pm)
Great work, great work... therapy??? money?? in some days I will send you an invoice :)
#3
04/29/2009 (1:07 pm)
As I was reading the start of your blog, I kept thinking Dawn of War's camera system should fit your requirements nicely. Then you went on to describe what you implemented, which was basically it ;P. I'd say the most important thing to remember is a button to return the camera to the default viewpoint after it's been all misaligned.
#4
Thats a great idea... never thought about that. I will add that button inmediatly.
04/29/2009 (1:37 pm)
@DanielThats a great idea... never thought about that. I will add that button inmediatly.

Associate Tom Eastman (Eastbeast314)