|
Your continuous donations keep RPGWatch running!
RPGWatch Forums » Games » Indie RPG » Lucky Day's Wizard War! for Android development thread

Default Lucky Day's The Wizard's Grave for Android development thread

September 18th, 2012, 23:29
In my downtime rather than play Civ 4 all day (or mow my law) I've taken up something more constructive: building an RPG App for Android. For now I call it

Wizard War!

edit 11/26/2013: the new name of the game is The Wizard's Grave, later in this thread I discuss the need for a name change due to the name already being taken.

here is a screenshot

WizardWar Screenshot.png

Right now its Top-Down design - its not OO yet - because after 6 months of going through the tutorials I decided to strike out on my own for the first time. I really need to get it into OO design before it becomes too bloated.

I have almost finished the FP "3D" view. The images are prerendered rather than OpenGL. I have been stuck on this because I added another layer of visual depth so I have to sort through the appropriate images to choose the correct ones. Perspective can be a real pain and it makes me wish I did it mathematically with OpenGL now.

You can move around great in it and I reluctantly added strafing to it in order to test the visuals.

As soon as this is done I will move onto the combat. I've got the beginnings of a unique system I will hash out with you in the next post.

The plan is to make a simple dungeon crawler then use this to move onto Wizard War! 2. Its an incremental approach.

WizardWar Screenshot 2.png

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Last edited by Lucky Day; November 27th, 2013 at 04:54.
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#1

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 19th, 2012, 22:02
One of the key issues with Android is there are so many screen resolutions.

http://developer.android.com/guide/p…s_support.html

http://en.wikipedia.org/wiki/Compari…ndroid_devices

http://stackoverflow.com/questions/6…android-phones

This is where I could use your help. If you have a device with an unusual screensize I can try and make it compatible.

The emulator often doesn't match what the device actually displays. For example, the screenshots above show some jagged lines - which there are none on the actual device.

I have the ASUS TF101 tablet - its 1280x800 and 10.1". I also have the HTC Inspire phone - its 480x800.

The latter seems to be a pretty popular screen size. The former is what I am first developing it for.

In return for your help I am also willing to take your advice on input in the game.

I should also mention I'm developing this for Android 2.3.3 because this is what the tutorials I was working on were written in. I understand about 90% of devices are compatible with 2.1. If this is a problem let me know.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#2

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 19th, 2012, 22:23
Levelling System

As mentioned above here is the system I plan to incorporate. I haven't seen this done before so its fairly unique.

All player stats start at 1

Strength 1
Toughness 1
Intelligence 1
Luck 1

As the player levels up they can put a single point into an attribute of their choice

Strength affects damage in combat, and maybe carry capacity
Toughness affects hit points and checks. I am thinking 10 hit points per point.
Intelligence affects magic ability and number of spells that can be cast
Luck is a modifier for the skills above and and certain events. Each point representing a 10% increase maybe.

Killing a creature gives you their level in experience points. 10 first level kobolds will get you to level 2. Your level acts like a modifier for this. When you reach level two you not only need 20 kills, but first level kills act for half value. So you can either kill 20 second level orcs or 40 first level kobolds, etc.

Combat

Armor is designed to absorb damage. In addition weapons and armor have hit points themselves. Any damage over and above the modifier is taken on the player's base hit points.

For example, Tim the wizard is first level and has 10 hit points but wears 100 hit point steel armor that absorbs 10 hit points per strike. A goblin rushes him with a 100 hit point steel sword and does 6 points damage. Since Tim is not in defensive mode (and does not have the parrying skill) the goblin scores an automatic hit.

The goblins luck scores him a critical - double damage! Tim's armor takes 10 points damage and Tim's base hit points is down to 8.

Tim casts "kill annoying goblin", his lone spell, which consumes the goblin from the inside out and leaves it a bloody mess. Tim picks up the sword, which is good, because that was his only spell for the time being.

If Tim can get his armor to a forge he can repair it. The sword, which also took 10 points damage, can also be repaired.

This system would be tedious to play manually but its something which machines can calculate fast and furiously. I got the idea from simple physics and wrote some routines two years ago.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#3

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 19th, 2012, 23:10
Nice idea even though I'm not big on dungeon crawlers anymore.

Can you explain the combat mechanics again and maybe in a different way ? I didn't get it.

Also, good luck.
Pladio is offline

Pladio

Pladio's Avatar
Guardian of Nonsense
RPGWatch Donor

#4

Join Date: Nov 2006
Location: London, uk
Posts: 2,912
Send a message via MSN to Pladio

Default 

September 19th, 2012, 23:42
Physics

Originally Posted by Isaac Newton
For every action there is an opposite, and equal reaction.
The basis is that every solid material is given a certain amount of hit points based on the material. Flesh and bone might have, say, 10 hit points. So in my system, armor, instead of having the navy type "armor class" that Dave Arneson borrowed for D&D, It basically adds hit points to the player. Each armor type can absorb a certain amount of damage before you get past its resistance.

This is what they are good for then: extra hit points and damage resistance.

First round: attack. (both players hit automatically; no "to hits")

Goblin has one strength which modifies his 5 damage sword to 6. Goblin rolls its Luck and succeeds. Goblin will do 2x6=12 damage.

Tim has 10 hit points and is wearing steel armor (but not a shield). This is his first line of defense. Armor has 100 hit points has 10 points of damage resistance.

Therefore, the armor takes the first 10 points of the Goblin's sword damage and the next 2 points of damage are past Tim's only of defense. Tim is now down to 10-2=8 base hit points.

The armor now has 100-10=90 hit points from the damage it took. The sword also had 100 hit points. Tim's flesh has no damage resistance to steel so, all things being equal (see Newton above), the sword is also now at 100-10=90 hit points.

Now if Tim did have a shield there is a 50% chance the shield would have taken the first 10 points of damage and the armor the next 2.

Simultaneously, Tim cast "Kill Annoying Goblin". The Goblin fails his Luck and explodes in a bloody mess and Tim now has the option to take the Goblin's sword and whatever other treasure fell out of its stomach.

is that clearer?

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#5

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 20th, 2012, 00:15
Yup

That makes sense now

Thanks.
Pladio is offline

Pladio

Pladio's Avatar
Guardian of Nonsense
RPGWatch Donor

#6

Join Date: Nov 2006
Location: London, uk
Posts: 2,912
Send a message via MSN to Pladio

Default 

September 21st, 2012, 20:49
Originally Posted by Pladio View Post
Nice idea even though I'm not big on dungeon crawlers anymore.
It occured to me a while back that the touch screen would be really good for this kind of game play. I could picture a guy at a bus stop pulling out his phone and running around the maze with just his thumb.



Update on graphics. I had thought of leaving the graphics as is and then making the game. I was thinking of redoing it as part of sequel and just move on but then I thought twice about it. Now its almost done. Having a cleaer idea of what I'm doing helped a lot.

The number of images has doubled but they are far easier to organize now. I'm not trying to cram double the depth into one set of images.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#7

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 21st, 2012, 21:00
That's not a bad idea… About the smart phones I mean.
Pladio is offline

Pladio

Pladio's Avatar
Guardian of Nonsense
RPGWatch Donor

#8

Join Date: Nov 2006
Location: London, uk
Posts: 2,912
Send a message via MSN to Pladio

Default 

September 23rd, 2012, 23:25
well I figured out how to get the screen to span the width of the device regardless of resolution!



these are from the emulator - different versions of the same image. the top two are in 10.1" 1280x800 (10:6 aspect ratio) and the bottom two are from 480x800 in portrait and landscape respectively.

the tricks are to place the pictures as a background so they scale then put it into a linear layout and give it weight. I made the ImageViews Buttons instead but I am not sure it did anything except cause a problem (the different objects seem to inherit a lot from the layouts they are in it turns out - at the time I thought the features were inherit in the object itself) - I forgot to change the ImageViews to Buttons in the program itself. In my mind that should have caused a "not found" error and not allow the program to compile , but it did not. Regardless, its figured out.

I played around with the direction images and got them where I want them. Text arrows are out! Now you can move around with one thumb great in portrait. Before you had to break it practically to strafe right (and yeah I added strafing even though I hate it).

I even have some sound effects added and managed to turn off the built in ones.

I am currently working on doors which should I finish in a day or too.

Spoiler


After this I plan to tackle the Z plane and go up and down levels. For this I will add ladders and possibly pits.

I am thinking about layering more images on top of the screen - this would keep me from having to create upteen more images (rather than 3) but doing this I see problems in how how to do this and still maintain the illusion of depth as walls come over them. I think I would have to erase those layered images as the walls are put in place.

Layered images could also work for things like statues and fountains or even monster images and not just elevators. My concern is that seeing the monster would require the monster to chase you and I would have to add some rudimentary pathfinding AI to do it properly.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Last edited by Lucky Day; September 23rd, 2012 at 23:43.
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#9

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 25th, 2012, 03:17
Doors are done to my liking



while testing it I noticed with the small screen it was sometimes hard to tell why I bumped into walls so I put directions on the ouch! as you see above.



wide angle doors



inside of a door



I was playing around with some free textures and came up with this.



It needs some cleanup but I'll probably implement this tomorrow.

I really need to get this into OO. Its already becoming bloated and I'm relying on global variables .



BTW - I'm impressed with this one site that does a lot of free textures. If I don't hand draw them I'll be looking around the web for other assets that are available for commercial use.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#10

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 25th, 2012, 09:31
"Global variables are like the flu. It's nice to be off work for a day or two, but if it gets out of hand you could get pneumonia and end up in the hospital"

That looks quite good actually. I thought you were leaving the colours as black and red before
Pladio is offline

Pladio

Pladio's Avatar
Guardian of Nonsense
RPGWatch Donor

#11

Join Date: Nov 2006
Location: London, uk
Posts: 2,912
Send a message via MSN to Pladio

Default 

September 25th, 2012, 17:52
Originally Posted by Pladio View Post
"Global variables are like the flu. It's nice to be off work for a day or two, but if it gets out of hand you could get pneumonia and end up in the hospital"
lol - who first said that?

That looks quite good actually. I thought you were leaving the colours as black and red before
Thanks. There's a lot of great resources out there. Thanks free license resources on the internets! I just keep getting an itch to do tinker - I wonder if I will ever move on to the actual combat stats. This also gives me some hope I don't have to hand draw it and spend hours cleaning up my illustrations and giving them color.

I don't know if it should be single character or I should dive right into a party when it gets that far.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#12

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 28th, 2012, 21:18
okay, finally finished brick walls and realistic doors



this amount of detail moved the program up from around 50k to 3.5mb.

I actually had to redo it two or three times. this kind of detail is not forgiving visually so it has to be done right or all the details make it look off compared to simple solid color walls.

Additionally, I originally had artificial gaps between the walls which were required with the untextured walls but were a real problem with the brick ones. I realized if I had them bleed to the edge they naturally create an artificial gap between each other.

As you can see I also added a floor. I simply but an image in the background of everything else and it was one of the reasons the gaps were a problem: they blead right into the wall background which made the look like half of them were part of the floor.

The last step is to add door creaking sounds then I will have up and down ladders before I finally move off the map. By using a similar system to the floor I think I can create layered "sprites" to mark the ladders and possibly doing interesting things like pits and fountains.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#13

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 29th, 2012, 01:04
What 3D engine are you using, or is it your own?
sherwinz28 is offline

sherwinz28

Watchdog

#14

Join Date: Jul 2007
Posts: 172

Default 

September 29th, 2012, 02:41
they're pre-rendered 2d images. OpenGL is available for Android and there's even an Android module for the free version of Unity, but I don't have $400 for it.

If I make a sequel I might do OpenGL and maybe even smooth scrolling. My buddy does a lot of 3d so I'm hoping I can convince him to partner up with me.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#15

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

September 29th, 2012, 03:44
Originally Posted by Lucky Day View Post
okay, finally finished brick walls and realistic door
That was an important jump in production values.
As far as Im concerned, now Im intrigued. Keep it up.

What you think about most, is what you become.
DeepO is offline

DeepO

DeepO's Avatar
deep outside

#16

Join Date: Apr 2008
Location: Prague
Posts: 2,279

Default 

October 1st, 2012, 08:58
thanks for the kind words

the way I was trying to do them, ladders were proving more difficult than I originally thought. I guess I will just make them like a standard tile and see what happens.

I was showing what I had around to friends (and even my ultrasound tech) and the first thing they did was press the side buttons and then ask "what do I do?" One of my colleagues even did it too and she's a Comp Sci professor. Her excuse was she doesn't play games like this. AFAIK - there are no games that have this kind of interactivity yet.

So now I have a big giant



which disappears the first time you press it.

The other thing that shocked me was some of them were trying advanced touch screen features - that is, one person was trying to swipe it to turn and another was trying to zoom in and out with two fingers. I won't do the zooming feature but swiping makes sense. However, a simple way to do this is not built into android so I will likely have to use someone else code and adapt it.

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#17

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

October 3rd, 2012, 00:43
ladders are proving to be a pain.

there are three ways I could do this, two of them I've tried/trying.

the first way is to create a whole new set of imageviews(layout) to overlay over the twelve existing ones. This is the first way I've tried it and it was a mixed bag. It requires the walls that be in front of them to hide them. Keeping this straight proved to be a nightmare so I scrapped it.

I then thought, why not just create a new set of images with ladders in front of the walls. I went to bed then woke up and realized in the morning that it was a real stupid idea. I'd need ladders for every combination of blanks, walls, and doors imaginable. Doors themselves were hard enough.

I've since discovered LayerDrawables but this has not been easy. Basically these are arrays of images that overlap each other. The first problem I had was creating too complex an array. It partly worked for my first test but kept crashing when I approached the ladder from the West and South for some reason. When I made them separate variables of smaller arrays I found success. yay!

But I have new problem: they won't overlay multiple ladders in a row. I've discovered that I'm only drawing one thing or the other. what I need to do is combine the images somehow and what that could mean is changing everything to a layerdrawable and post it to the layout once.

if I could get the drawing from the layout itself, add to it, then set the layout again this wouldn't be such a problem but it doesn't look to be possible without forcing some sort of tag on it,

oy vay!

Developer of The Wizard's Grave Android game. Discussion Thread:
http://www.rpgwatch.com/forums/showthread.php?t=22520
Lucky Day is offline

Lucky Day

Lucky Day's Avatar
Daywatch

#18

Join Date: Oct 2006
Location: The Uncanny Valley
Posts: 3,122

Default 

October 3rd, 2012, 12:04
I think you should use another texture for the floor, it'll greatly improve visual experience and reduce headache.
GothicGothicness is offline

GothicGothicness

GothicGothicness's Avatar
SasqWatch

#19

Join Date: Oct 2006
Posts: 4,025

Default 

October 3rd, 2012, 12:23
I agree with GG. Having the walls and floors look the same makes it fade in together.

GG, how's your game going along ? No updates on your sub-forum anymore …
Pladio is offline

Pladio

Pladio's Avatar
Guardian of Nonsense
RPGWatch Donor

#20

Join Date: Nov 2006
Location: London, uk
Posts: 2,912
Send a message via MSN to Pladio
RPGWatch Forums » Games » Indie RPG » Lucky Day's Wizard War! for Android development thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 07:35.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Copyright by RPGWatch