I want to get the boss attack system finished. It is the same as the zombies but with more flair. I want the fights to be fun exciting and as different as possible. This means Rot Gut will hear you in another room. Let out a bostful comment and slide through a door into your room. I want him to then cast a ranged attack or two to debuff you if it hits. Then Boast again and charge you. Then while in close he may boats and hit you with a big attack. Or just slice and dice you. This all works with a switch based action system. When updated he will start in the sleep mode. Then when you get close enough or trigger something. He will wake up and start in your direction just like the other monsters. Then his mode is switched to CHASE. During chase it checks to see if you both are sharing a room if so then he may move to RANGED_ATTACK_READY mode where he charges up a skill to be used. Then moves to RANGED ATTACK mode that does the firing. The old charge effect is killed and the projectile generated. The last step is he is moved back to CHASE mode then pursues you again. Every now and then going into a TAUNT mode to poke a little fun at you. Off to work!
Only a few hours here before a soccer game. I am going to finish up the boss functionality hopefully so Rot Gut and his friends will be able to hack and slash to their hearts content. He looks really good in game I will try to get a video of a bunch of him in action this weekend. Off to work. Thought I would toss this tip in. A long time ago I wanted to add smoothing to my skeletal animations. So I took all of 20 minutes to add it with a spring system… so simple no idea why I waited so long. Simply (position bone wants) = (Position Currently) * 0.1f + ((position boneneeds to be next frame) * (time ratio to next frame) + (position bone was last frame) * (inverse time ratio to next frame)) ) 0.9f. Done it will always smooth over.. now it is not a sin wave but it is working great for now and does not add to many operations.
If you have more then one suggestion for boss names please enter it in a comment!. I have started out with some names I have picked out. These are named bad guys that have done evil things in the story arc and will be required to be dealt with by the quest manager. Their loot will be better then average also. Basically these zombies are constructed from entire bodies or pieces of people that have been dragged into the depths or dug up from underground to get their bodies as a resource for the Necromancer Below. Thanks! Just post in a comment below additional suggestions! You should not have to register to comment.
1st Tier Names:
Remnants of Sean Meyer
The Meat Merchant
Rot Gut 3 HOURS CONCEPT TO IN GAME… I am a bit proud of that.. surely not done but that is a fast content pipeline!
Not that it means anything in the game industry =P…. hehe.. Today hopefully I get to stay at work on this project and my other projects do not get wonky-jawed. I want to get back to that named creature today. Get one done and fill in the rest. I find the best way to develop a game is to get a small segment of it complete. Then test the LIVING CRAP out of it not only for systems stresses, failures, and bugs but of course to be sure it is fun. That is the current goal. Get tier one done!. That includes 0-5 level creatures, 3 Named creatures, quest generation systems, AI, collision, level generation, game play mechanics, and many other items done. This way before I replicate, increase, and improve upon tier 1 for the next 5 tiers I will have a solid foundation to build on. Now back to work finishing the combat piece I was working on and over to the named npc so I can get to the final piece for tier 1 (the quest generator that ties into the story arc system). Hope everyone has a great Friday! I will try to post a shot before I head out for the day. Hopefully of a named npc in game.
Update: NUMBERS ON HEADS!! .. lol so important.. its in finally.. Lots of life jumped in the way today but I still got a lot done. Now time for a beer. (Then back to work =) )
If anyone has a flux capacitor I could use it. This time thing is getting old ;). I plan on tightening up the combat some more now that all systems are talking together now. That should not take that long as it is just number tweaks. I need to go back an correct a deviation from my design doc. I created a bunch of skins for just about the same bad zombie model. I need to create at least one zombie for level 1 – 5. These zombies all share parts. Thus I make 5 hands or whatever for the 16 slots and 5 * 5 * 5 …. LOTS of combinations. I have 3 different models created with 2 different skins for each model so 6 very different looking characters then all of them are color shifted a little bit. Today I want to create the first named creature. I plan on making a good number of these. They are total one offs. The downside is it takes a lot of time the good side is the freedoms are huge. They can be really boastful and fun characters to take on. Good stuff. So off to work more updates later. I will try to create a screen a day as I work. Some days are all code however and pictures of code just aren’t all that pretty =).
Low Level Damnation Machine about to rework my gut.
OWACH.. getting head smacked by the zombie so my screen gets tossed to the side.
Update: The new skills are in and you can see them surrounding the screen as always no art is final.
Typed on my iphone please excuse typos. Thanks iPhoneLife for the notice. I feel the more people the more input. Today I hope to finalize tier ones skills and combat. I have a huge head start as it stands now and I just need to get it finished. Combat works by the aiunits. You are also an aiunit but are ignored in several places as your faction decides what damages you. So when any unit chooses to attack they send a pointer to themselves over to the aicombataction function. It looks at the skill and does any npc specific effects. Then to the main combat fubction that performs the actions for player and AI. For example, a holy bolt being fired from an AI unit will first trigger a shooting effect then create a projectile in the scene. The projectile points to the attacker and on hit processes it’s skill hit effect on nearby bad guys. Damage is calculated and handed out. It is all pretty simple at the high level. I will add more later and a new screen but for now to work I go. Please tell your friends about this project the more the merrier.
Update: OK leveling is now in I have decided on the equations for now. The hitpoints and energy systems work. AI will not use energy currently just a firing rate of its skills. That may change as we go , however with 20 zombies and bots possibly attacking you at once I really want everything as light as possible to not effect frame rate. Now to the tier 1 skills that is level 1 – 10. There are 6 skills per tree per tier. With two slots open for skills you picked up as drops or bought at bazaar. So that means 12 base skills non swappable and 2 skills dropped. I will work on the dropped skills last. Currently, as far as skills for the first tier the faith tree I have schedules with: ( Straight cut and paste from the design doc.)
VERY PRELIMINARY please comment if you have any ideas. These are going to be play tested soon and I am sure changed.
1) Fast Swipe : A broad arcing shot that can effect up to 3 characters withing 1 meter in front of you. +3 damage. Cooldown -1% per point, 6 energy + 3 energy per point
2) Stab: A straight shot effecting one target in front of you. +2 Damage per point and 3 energy + 1 per point
3) Block: Use your shield to increase your armor by 25% while up and a 5% chance per point block all damage. 10 Energy.
4) Strong Swipe:A broad arcing shot that can effect up to 3 characters withing 3 meter in front of you. +1 Damage. Cooldown -1% per point, 6 energy + 3 energy per point
5) Slice: Requires 5 points in Stab. A slicing shot effecting one target in front of you. +1 Damage per point and 3 energy + 1 per point. A 2% chance to cause bleed per point.
6) Stun: Requires 5 points in Block. Temporarly stun the target with a blow to the head. 0.5 Seconds per point, 8 energy + 4 per point. Holy Shock: Requires 5 points in minor heal or spark. Short Stun spell that has a 10% chance per point to stun the target for 0.25 seconds per point.
1) Holy Spark: Flashes the local area with your energy doing 2 damage + 2 per point to all targets in 1 meter, 8 energy + 4 per point
2) Holy Dart: Sends a bolt of holy energy towards your target. On impact its damage radius is 0.25 meters. 4 damage +2 damage per point. 4 energy + 2 energy per point.
3) Minor Heal: Heals you for up to 10 points of health +10 per point, 20 energy + 10 energy per point.
4) Holy Shock: Requires 5 points in minor heal or spark. Short Stun spell that has a 10% chance per point to stun the target for 0.25 seconds per point.
5) Holy Bolt: Requires 5 points in minor heal or spark. Sends a bolt of holy energy towards your target the impact radius is 0.25 meters per point. 2 damage +1 damage per point. 8 energy + 2 energy per point.
6) Lesser Heal: Requires 5 points in minor heal . Heals you for up to 30 points of health plus 12 per point, 25 energy + 15 energy per point
Back to work.. 😉 I want to have all these operational today.
(Same video just keeping it at the top)
(Character screen with 16 individual slots LOTS OF TEMPORARY ART HERE 😉 )
The bots went in amazingly well yesterday. They use the same pathing system as all the AI Units and are just another AI unit with a different model that does not skeletally update. They are fun to run from as they spray the room with magical bolts of death and whisper sweet nothings at you ;). Today I need to change the bolts to calculate their facing rotation instead of being fed it (due to inaccuracy for speed trade offs ). Then I need to make the zombies generate their flesh from the flesh palettes. After that is finished I am moving to the game play mechanics. I will describe that system when I get there.
Since I have not gone into detail on the pathing system I will describe here. The system works by creating a set of 3d triangles that have no T intersections. This means no edge may have a vertex from another triangle on it. Then each triangle will store which edge to leave from to get to any triangle in the mesh. This is in a small bit shifting system that is VERY low in memory foot print. To generate these paths I leave at each edge and keep going out but not allowing to back track until I hit a dead end or I achieve the target triangle. I do this from each edge and choose the shortest path. Store it and go. At load time this is very quick to do I could generate and store it but with all the changes I am doing and speed of development I just did not want to invest the time. After each triangle knows how to get to all the other triangles in this very light mesh I find the triangle closest to each possible door. I store that. So now the AI knows how to get me if I am in the room by what triangle I am on and they also know which triangle to achieve to exit into a room in my direction. Good stuff!
P.S. Any suggestions or comments are welcome! =) AND PLEASE excuse any poor grammar/typing/thoughts I am interested in speed not typographical accuracy on this blog 😉
Well that went a LOT faster then I thought it would so GREAT. IT is time to finish the game play mechanics. Here is the plan. Each character has a character sheet structure. That contains the skill they currently have as passive or active on them along with their base stats, modified stats, and current stats. The base stats are your base level stats and passive skills / items. Everyone is the same as far as level stats. You build your character through skills chosen or picked up along with all the equipment you have. Currently I have 14 slots on each character. All slots can be different IE each hand has a specific glove (right left) and that goes for the arms and legs to. So each hand, lower arm, upper arm, etc have their own slot right and left. Each item is constructed from its name. IE the Saintly Shining Iron Sword of Destruction has a saintly hilt, a shining mid hilt, and a Iron Blade. The Destruction tag should be a special effect if frame rate allows nearing the end of production. Each piece of armor has the same. The first two tags might be spikes or jewels in the armor. But they are visible. This allows for absolutely countless combinations of armor sets and abilities. So using the items the bonuses are added up at load or when an item is changed and stored in the base stats. These are the maximum you can currently get with passive skills and items. The modified skills are created from the base stats. When an active or temporary skill or “buff” hits you it will alter the modified stats and when it is removed it will use the base stats to return you if need be. It all depends on the effect. The modified are the maximum that stat can be. The current stats are the current level of your stats. If you get hit your current HP is reduced. If you get healed you can build to a max of modified HP. If you get a STR drain it effects current STR and you can heal to a top STR of modified STR. Each time an effect is applied I have to look at all the current effects in the link list and add up the stats again with the base stat to create the modified stat (the base stats save time so I do not have to process 16 different pieces of armor for each buff). A link list will be used and a max of 4 ACTIVE self buffs and 4 ACTIVE debufs will limit the time it takes to calculate this. This is also too keep screen clutter to a minimum buffs and debufs will be shown at the top of the screen. 4 left and 4 right. If a high rank buff or debuff hits you the lowest rank debuff or buff is removed. If I had more horsepower and screen space then this little device has this would not be an issue. So it is time to roll the sleeves up again and get at it.
The best part about these machines is they do not skeletally animated. They are magically floating turrets basically. They are the constructs that create the zombies and keep them under control. The basic ones are just scouts and controllers. Later they get pretty nasty. They will be whispering things like join us. Obey. fun little things while they emit death from their glowing parts. They will fit nicely into the AI structs. They will face and float to the player on the same AIMap polygon map. Just no skeletal animation which is good I am maxing that out with the zombies and NPCs.
Update :They are in and look great. I am finalizing their
Magic casting combat with death spitting from their glowing parts. However, holiday time calls and so does fried chicken yuuumy! Of course the Gym will be calling tomorrow but for now stomach has the phone off the hook.
Back to work.
Weeeee…. ok I have an hour so I need to get the 3 zombies into the game I finished yesterday. the 3 zombies are in 14 pieces each so each piece can be used to create more zombies. The whole story is they are pieced together by damnation machines created by the necromancer SO … it fits! =).. 3 different heads etc = 4782969 different combinations.. o and 3 different textures also that also is placed together at play time so even more really but who cares about numbers it looks good and I like it! =).. back to work. I will have these in before we hit the lake on the most crowded day of the year minus the 4th… so wish me luck! =)
Update: Done.. maybe a little damnation machine work… then the lake.. =)
(Same video just keeping it at the top)
Yes even Saturdays are not safe. This being a HUGE undertaking for one person I have to put all available time towards it. This is not unlike when I worked in the standard game industry. At one unmentioned company It was 12- 16 hours a day 5 days a week then all day Saturday and Sunday. Now not ALL jobs are like this but every one has crunch time. A nasty little period in the end that tests your will to stay in the industry. Great fun making games but very family unfriendly. That is why I choose the path that I have. However, I need to make this work better then it is so my hope is falling on this upcoming title. This guy has a fully funcitonal kick !@# engine and all the right parts. Anyway we can put the violin away now and get back to work. Today I want to finish or get a long way on the enemy zombie variations and maybe a couple of the damnation machines. More coffee first!
Note: Please tell anyone you think might be interested in this blog. I would like to have the most input possible as the game approaches completion.
I lowered the res of the baddies to 512 which is still really good on this device with 380×420 of total res. I now am gong to finsh the bad guy an good guy builder currently I want to change the layout to better fit the quad tree pvrtc structure. Since copying data and not processing a new on on the fly means you with get a 4×4 bad block for each border I want it to be perfect. I would love to be able to reincore but last time I reaseaech it there was just no good information ok the encoding process and since I time pressed I do not have time to reverse engineer it. So i jusy copy 128×128 to new a enemy texture. Today I will finish that and then the quest system and story arc. Good stuff.
VERY EARLY PRESS HQ IN THE BOTTOM RIGHT FOR BEST QUALITY
If you have friends that might be interested in this blog please spread the word. I would really love the input.
Today Thursday I am creating the loot system. I am not going to use a table system but generate the drops at time of the bot generation. The memory footprint is minor so no problem. And the complexity of having half looted corpses will be much easier then having a loot table look up then if the player does not have inventory space I have to hold on to that bot and the loot items left in a temporary.. blah blah.. you get the rest.. After that I am going to implement the differentiations in the zombies. I also want to lower the res of their textures. There should be no noticeable difference.. Right now they are an oversized 1024×2. I want to take them down to 512×2. The problem is I have to rework the texture copying system that creates the zombies in the beginning. I want to have 3 different zombie models per level generated from parts I have created (already implemented) and 3 textures per different model type with pallete variations on top. All variations will have meaning as far as resistances and attacks. Special quest zombies will have their own pallette shift and bigger then average size. Back to work =)
Update: Video incoming.. waiting on youtube.. when they have it finished I will post it here. Just a debug video showing where the game is at this point…
Today the plan is to create the quest system I have designed. What will happen is after the Artificial Intelligence is added I will go back through and pick a certain number to convert into traps, chests, or hovering turrents. This way they are in the update loop, can be looted, are in the render loop, and have a good placement already done with all the A.I. systems. They basically are AI units as they need everything and do everything AI do. So that is the plan for the day I will try to get a shot in today of a spell or attack in another room. Getting really close to getting back to creating zombies and finishing the player items. After that whallah tier one is complete and time for play testing with my friends while I move on to the other tiers and fill out the depths of the necromancers lair.
Update: Valor Tree Love.. Valor Warriors will have flashy effects too just like the Faith Tree… here is a charge for a tier 1 stab…
(BROKEN RECORD HERE.. these are all VERY early shots.. temporary art code systems etc… =) )
Today the items of interest are adding a charge time and effect to spells. (already done as it fit nicely into the effect system). I need to add sounds to the charge, cast, and impact of skills. I need to finsih the Quest system design doc. This is the randomly generated quest system. The plan is to have NPCS dole out the quests and have it piece into the story arc. At each 5 levels there is a main branch story arc and the quests evolve from there to the next 5 levels down. The quests will include killing named npcs, Rescuing npcs, Collecting items off dead zombies, finding chests, and any other suggestions I can get. I also need to get the loot system in. My plan is to have a button that pops up when there is a lootable object in front of you. then you press it and it goes to the inventory to loot. Back to work!.. Mor shots soon I hope maybe the Holy shock spell.
Would love some comments grips complaints or suggestions mainly =).
HIGHER LEVEL BIGGER IMPACT
PROGRESSED FROM LOW LEVEL
Update: Just took a shot while I was debugging the effects system created in 20 minutes =).. This is a holy bolt first level. They will scale with the number of points you put into holy bolt it is hitting a zombie in the distance. Hand is animating a cast animation. The hand and sword are placeholders. And LOTS of temporary art in this shot.. but woohoo swinging and casting now with zombies eating my brains what could be more fun?
Today I need to place in my simple effects system. I am keeping everything high and tight. As fast and small a footprint as possible. The loss is in complexity and a bit less up front systems time at a loss in the end for the artist… which is also me so no loss.. So a win win in my book.. The effects will be simple a very fast pooled link list of effect structs. They will contain the texture/intensity/type/position/rotation/life. A effect updater will update the link list and kill off dead effects and update according to type (a large switch). This can be very self contained and portable to my other apps. Flow will be (already operational) player or bot sends command combatAction ( attacker, skill) it will spawn a Projectile that ties back to the attacker and skill. Then when it hits an enemy or a wall (using the airmaps) it will process a combatActionProjectile and the skill will decide what happens. Holy boly for example will collect AI close to the bolt within one meter and damage then according to distance. I have it in but do not like the graphic. It needs to be a bolt not a ball of energy so I am fixing that today too =).. I will try to get a screen off at the end of the day. UFC FREE FIGHT TONIGHT! Jardine VS Rampage.. should be a good fight they are both insane =). Back to work!
P.S. I really would love suggestions, questions, and comments from visitors so I can structure this beyond just a dev diary and help others out there informing them of my follies so they can avoid them =).
Watching it again for the 10000 time while working some today. Right now I am moving the player over to be an AIUnit so he will be in the link lists for the room. That way the combat system is totally faction based and generic. IE I can have charm and a much more smooth combat system. Needed to do it just waited until now. Also added the block skill to tier one valor so you can use the shield. Added a zombie attack animation and sounds this morning. The basic tier one nasties take a swipe at you. Tier one is level 1 – 10 and is called the Caverns of death..Cut and paste from the design doc for a description of 1-10. “The wretched horde are the rejects. The failed experiments of the foul and horrid necromancer that dwells beneath and has caused all this pain and death. Simple for any regular to destroy. New recruits might find themselves as a snack item on the menu. Hold no mercy for them as they will not for you.” . Anyway back to work.. =).. I need to get the combat system complete .. that means finish the AI using the same skill system. Then implement airmaps and spells. (projectiles and effects).
That was quick =).. I toss the attackers character sheet and the skill he used into the combat function and boom it does the rest. For example the stab skill. Go into the inventory then open the skills tab. Drag that skill to you attack bar (10 attacks available at a time and 2 belt items potions bombs etc) Get back to the game. Then just press that attack. It then sends your sheet and the skill you used to the combat system. The skill is the same as an item so it can handle anything really. The system then sees it is the stab skill so it asks the room manager for all AI in the area since you are the player character sheet. It returns the AI in your room and adjoining rooms that are in the sphere you sent. Since it is a stab sort for closest. Look at character sheets of target AND player and calculate damage and added effects added to the target. You maybe get some in return due to the attack. Check for 0 hp since hp changed.. and done. Above you see the skills screen on the left only the first row is done. On the left top swipe, stab, stun (will be changed to shield block). On the right the main and yes cluttered screen (sadly screens are SMALL on these puppies). The skills have been placed into the attack bars and now can be used in game. The inventory is full of basic materials used to create items and the blue item is a schematic. ALL items / skills take one press to get a full description and story on the left. BACK TO WORK!
P.S. As usual all art is temporary and unfinished. PLEASE GIMME SOME COMMENTS! =)
I never wrote about my decision I made long ago about Objective C. Well since you can write in either Objective C or vanilla C.. I am all about C now.. ;).. C++ was nice and I do miss it.. but the speed increase with dropping Objective C is simple something I cannot ignore. Now I still do use it here and there. For example, I still use their string functionality due to time restrictions on my side. As time permits I will hopefully shave all but system stubs out. That way portability is no problem also. (Sadly lots of mobile device out there made the DUMB decision to depend on Java for their platform developement… AND NO IT IS NOT TOTALLY 100% PORTABLE to differente devices!.. ok I feel better. 😉 ..) Looking at timings available on the web you can see why I choose this a long time ago. I did some timings myself and in some areas the differences were not to bad but the majority of areas I cares about were abysmal. I need speed and more speed as I am pushing the system to its absolute edge of performance. So Objective C gets the boot. See example below yes 8x speed increase in simple iterations… that is quite enough for me.
Here is one example.
(all in ms)
numberOfItems /NSArray loop /NSArray PS /C /Ratio
100 / 0.11 / 0.26 / 0.019 / 5.79
166 / 0.24 / 0.29 / 0.030 / 8.00
396 / 0.65 / 0.61 / 0.07 / 8.71
574 / 0.92 / 0.58 / 0.092 / 6.30
4,789 / 8.9 / 4.4 / 0.73 / 6.03
8,237 / 14 / 8.9 / 1.25 / 7.12
20,881 / 36 / 23.3 / 3.3 / 7.06
48,467 / 83 / 51 / 8.2 / 6.22
100,000 / 180 / 104 / 16 / 6.50
My plan is on each ability tying also into the item system. Thus the type of skill has its own switch in the combat fucntion. Then each skill can do whatever is asked. I just need to section off all the repititous code to other functions so the code can be high and tight. IE create a local search to collect all entities in a sphere. Then from that have another function that sorts closes to farthest. Another that takes the closest in that sphere to a point. Items like that. Today als0 I want to create what I call the air map. This is just like the collisionpolies I have now that are all 2d. I am trying to keep all cost to a bare minimum as this is a MOBILE DEVICE I am creating this on. Pretty amazing how tech is moving. So there will be an air map where if you throw something as long as it stays above the floor and inside a poly AND does not hit an ai sphere then wham keep going.. Otherwise boom … and the item type will have its own combat switch .. whaaaalah… Off to work now. I hope to get another screen up soo I want to show off the small bridge room. Prety soon I will be fisished with the first tier. Then it is off to testing and making sure it is the best it can possibly be. After that I will move on to the rest of the 5 tiers planned. Each with new items and stuff. =)
It is finally here… time to create the gameplay!.. Here is how I have planned it out. There will be two skill trees one is Valor and one is Faith. You are not locked down to EITHER tree. I HATE HATE HATE that in games like WOW.. where to experience something different you have to level up a character through the same damn content over and over… Also you really are limited in your customization to one perfect character for your role. YUCK.. So what I plan on doing here. Is yes a valor (read Connan type) can use the casting side of the Faith tree. The only problem will be in the items and armor they use. Light armor promotes the faith and heavy the valor. But a warrior will still be able to customize up and be more of a battle mage. My goal is when you are in the end game you could be a holy warrior and be very good at EVERYTHING.. a REAL bad-ass! NOT just another brick in the wall… that is a little shiner then the other bricks.. =).. So rules are you get points per level. You can boost specific talents in the tree each tier takes at least 5 points in the level below it to proceed. (ALL THIS IS VERY MUCH IN DEV SO IT ALL MAY CHANGE AFTER TESTING.) At each level you also get a choice. You can take 2 points to spend in your tree and go back to 0 XP of that LEVEL .. or take 1 point and level up to the next level. I think this will help those having a hard time and also allow for real bad-asses to be created. Each tier does have a level cap. And only points gained at that tier can be spent in that tier although you can alwats spend them on lesser tiers.. The skills themself are all like the other games out there.. chance on hit / bonus to stats / etc…The attacks are also in this tree ie the first tier is swipe / stab / stun for valor and Holy spark / Holy bolt / Minor heal for Faith. There is a Special tree however. It is green it allows for picked up or bought special abilites to be placed in it. Each tier you unlock opens up 1 new special slot. Fun stuff so you really could find some goodies out there.. Drops will be schematics , materials , moeny , weapons , armor , quests , Special abilities, potions, etc. Ok enough random typing back to work =)