• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

phi6

Members
  • Content count

    21
  • Joined

  • Last visited

Community Reputation

267 Neutral

About phi6

  • Rank
    Member
  1. So on Friday 31 May 5:44am UTC the TinyKeep Kickstarter funding amount closed off at a handsome £25,675, plus £142 in PayPal donations to give a [b]grand total of £25,817![/b] This means we have exceeded our target by £3655! Thank you so much guys, the last few hours were extremely tense but ultimately ensured that we reached the funding amount we wanted and more :)     Thanks to everyone, we've managed to successfully fund 3 stretch goals! And just for fun - we decided to throw in the 4th stretch goal as well :)    Alas, the Kickstarter funding period has ended, but we can still accept PayPal donations. To do so simply click on the "Donate now with PayPal" button on the Kickstarter home page. All money pledged this way will go towards fulfilment of the [b]online co-operative multiplayer[/b] stretch goal which clearly everyone is very excited about!    As promised, here is the last AI video:   [video]http://www.youtube.com/watch?v=P-8Ec1RAkFg[/video]   This will be my last post for the time being - while the team sorts out their personal and financial affairs. We'll be back!
  2. YouTube video demonstration for Part 4: [video]http://www.youtube.com/watch?v=EingB4OUHpI[/video] Part 4 Interactive demo can be found at: http://tinykeep.com/ai/4 Interactive demos for previous parts are at the usual place: http://tinykeep.com/ai Part 4: Group Behaviours and Ranged Attacks In Part 2 (Retreating) we briefly touched on how Fire Imps in each other's line of sight were connected as a group, and that they would share alert levels. Today, I'm going to explain a little bit more about how this group movement actually works - and also introduce a new monster to the pack: The Skeleton Archer, with its Ranged Attacks. Combine Archers and Skeletons together and you have quite a challenging group of foes to deal with. Group Chasing Behaviours in Detail Let's break this group chasing behaviour down: 1. Detection Phase. For each frame (more specifically each iteration of the Behaviour Tree), the monster maintains 2 lists: threats (you), and friendlies (other skeletons) - based on line of sight. Entities that cannot be seen are not included in this list. The lists are cleared at the beginning of each iteration. In addition to these, breadcrumbs dropped by both threats and friendlies are also recorded. In future versions, things like visible furniture, entrances and exit doors, walls etc... will also be added. By this point, the monster now has a reasonable view of the world on this exact frame, and we use this information to help the AI determine what to do next. 2. Intention Phase. This is where the Behaviour Tree comes in handy - to aid in the decision making process. We'll not cover the specifics of the Behaviour Tree implementation here - the details are too numerous and will best fit in a future post. For an overview of Behaviour Trees, AIGameDev covers this particularly well: http://aigamedev.com/open/article/bt-overview/ So, conceptually speaking, our tree models a list of ordered priorities: A. Deal with threats, B. Follow alerted friendlies, C. Patrol. The first one we've already covered in Part 1: monsters chase after players in their line of sight, then breadcrumbs (smell trail), then to the target's last recorded location. If these actions fail - the next branch (priority) of the tree is parsed and the monster has a look at what the friendlies are up to. If his friends are alerted, this state is passed on and the monster becomes alerted also. He then proceeds to follow the alerted friend in the same way as in priority A (again line of sight, breadcrumbs, and last recorded location). If this fails also (there are no alerted friends visible), then we fall back to patrol (with best guess). Priority B is particularly important - it allows the monsters to follow each other in a chain/queue-like fashion. As long as the leader of the pack is alerted and can see the enemy, this state and behaviour is propagated to other mobs down in the chain. There's some bugs and caveats to this method, one of them is that it's easy for the monsters to chase each other in a loop (or pairs), so there's some failsafe hackery code to stop this from happening. This is WIP, we plan on cleaning up this behaviour during production. 3 . Movement Phase. Simply apply the intentions above to actual movement (modify velocities, update positions, repel from walls, separate from nearby entities etc..) Skeleton Archers and Ranged Attacks in Detail This is where the Behaviour Trees really shine. Because we've already defined a lot of the basic maneuvers described in Part 1, 2 & 3 as behaviour nodes we can now mix and match them to create new behaviours in our tree. A good example, is the Skeleton Archer. In our tree, there is a conditional node that switches between Chasing Behaviours (from Part 1) and Retreating Behaviours (Part 2). The condition is a whether the distance from the monster to the player is above or below 2 thresholds. To illustrate, we might have an Archer chase the player if it is 100 units away, but flee from the player if it is less than 50. The gap between the 50 and 100 threshold is to ensure we don't rubber band between the two states too quickly, so if the distance is 75 units, we remain in the current state. So the resulting behaviour is that the Archer maintains a nice position away from you: never to engage in melee combat but always close enough to use his bow and arrow. Conclusion Apart from the new Archer behaviours, there's no special code to formulate groups here. It just so happens that a combination of melee type Skeletons (who are extremely aggressive and will chase you down as much as possible) and ranged Archers (who are cautious and will try to maintain a certain distance from you) results in quite effective emergent behaviour - it almost looks like they are working together. More Ideas for Group AI The above shows very basic, fundamental rules for group interaction. It's a work in progress - but we plan on bringing more complex manoeuvres in regards to group tactics. Depending on the monster type, critters will be able to do the following: - Monsters won't attack if they are alone, and will flee instead. Some intelligent ones will flee towards a known group of other monsters. This results in luring, pulling the character towards a more dangerous area and then attacking again. - Wounded skeletons prefer to escape while their friends are locked in battle - to go and find corpses, heal, and return to the fray later. - Leaders - if a Skeleton King is in the area, his minions will tend to follow and do what he does. - Flanking - if the player is currently engaged in battle, other monsters will attempt to flank you from either side or behind. A plea for help for the next two days As some of you may already know - my game TinyKeep is on Kickstarter and there are currently only 2 days left of funding to go! If you enjoy reading these kinds of technical articles, please consider pledging so I can continue active development of the game. Currently I have accrued over half the amount I need (~70%), but as Kickstarter is all or nothing I need to make the full £22k or I lose all my pledges so far. If I get funded, I plan to keep on releasing articles on all aspects of the game's development, including AI but also game mechanics, procedural generation, multiplayer networking, 3D graphics & animation, performance optimization, workflow, physics, collision detection - and everything in between! I don't claim to be an expert on all of these subejcts - this is just my journey in the world of game development, but I hope beginners out there will find inspiration from this. So please help if you can!
  3. We're getting there on Kickstarter! But not quite fast enough! It's going to be a close call :) But in the meantime, welcome to Part 4 of our AI series of updates:     In Part 2 (Retreating) we briefly touched on how Fire Imps in each other's line of sight were connected as a group, and they would share alert levels. Today, I'm going to explain a little bit more about how group movement works - and also introduce a new monster to the pack: The Skeleton Archer, with its Ranged Attacks! Combine Archers and Skeletons together and you have quite a challenging group of foes to deal with.   [video]http://www.youtube.com/watch?v=EingB4OUHpI[/video]   Try the interactive demo:   http://tinykeep.com/ai/4   Or take a look at our previous demos at the usual place:   http://tinykeep.com/ai   Apart from the new Archer behaviours, there's no special code to formulate groups here. It just so happens that a combination of melee type Skeletons (who are extremely aggressive and will chase you down as much as possible) and ranged Archers (who are cautious and will try to maintain a certain distance from you) results in quite effective emergent behaviour - it almost looks like they are working together.   [b]More Ideas for Group AI[/b]   The above shows very basic, fundamental rules for group interaction. It's a work in progress - but we plan on bringing you more complex manoeuvres in regards to group tactics. Depending on the monster type, critters will be able to do the following:   - Monsters won't attack if they are alone, and will flee instead. Some intelligent ones will flee towards a known group of other monsters. This results in luring, pulling the character towards a more dangerous area and then attacking again. - Wounded skeletons prefer to escape while their friends are locked in battle - to go and find corpses, heal, and return to the fray later. - Leaders - if a Skeleton King is in the area, his minions will tend to follow and do what he does. - Flanking - if the player is currently engaged in battle, other monsters will attempt to flank you from either side or behind.   There are more ambitious plans for bosses/leaders and how their monsters interact with them - but we can't give too much away, part of the fun is discovering them for yourself!
  4. That sounds like a really good idea, thanks!
  5. Interactive demos for all parts are at the usual place:   http://tinykeep.com/ai     Part 3: Hungry Skeletons   YouTube Video:   [video]http://www.youtube.com/watch?feature=player_embedded&v=cwRo_kM19Ek[/video]   Today I'm going to talk about some behaviours that are specific to the Skeleton monster. The idea is that while Skeletons are not chasing or pursuing the player, they are always hungry and will seek out corpses to consume. Eating helps the Skeleton regain lost health, and also if left long enough, consumed corpses turn into more undead Skeletons! We build upon all of the behaviours discussed in the previous articles to do this.   The procedure is as follows:   1. The Skeleton is in non-alert mode (character is not in line of sight, and there are no detected breadcrumbs) and so it proceeds to patrolling the waypoints using simple A* pathfinding as before. If while in patrol mode the Skeleton detects a corpse it will set the corpse as its destination and proceed to run directly to it using the Seek Steering Behaviour.   2. If a player is detected, the Skeleton will switch out of this mode and chase the player instead in full alert mode. Skeletons ALWAYS prioritise the player over eating corpses.   3. When the Skeleton reaches the corpse, it will begin eating it. The eaten variable for this corpse increments every frame. While eating, the Skeleton's field of view is reduced to 45 degrees instead of 90, this is to give the impression that the Skeletons are busy eating to notice much else. Also, it is still in non-alert mode and will not smell any breadcrumbs. This opens up gameplay opportunities such as sneaking around a group of Skeletons who are busy munching!   4. When the eaten variable exceeds a certain amount (ie. 200) the corpse is completely consumed. At this point some corpses (such as Orc corpses) turn into more Skeletons! This has the effect of a large cluster of corpses quickly propagating into multiple Skeletons, so the player has to make sure this doesn't happen!   5. At that's it, nice and simple behaviour made possible by combining and tweaking the previous behaviours in a certain way. This is the beauty of behaviour trees, it is quick and easy to create new meta-behaviours by combining the building blocks of the previous ones.   Read more about the benefits of Behaviour Trees at AiGameDev:   http://aigamedev.com/open/article/bt-overview/     The Next Few Days   As some of you may already know - my game TinyKeep is on Kickstarter and there are currently only 7 days left of funding to go! If you enjoy reading these kinds of technical articles, please consider pledging so I can continue active development of the game. Currently I have accrued almost half the amount I need, but as Kickstarter is all or nothing I need to make the full £22k or I lose all my pledges so far. If I get funded, I plan to keep on releasing articles on all aspects of the game's development, including AI but also game mechanics, procedural generation, multiplayer networking, 3D graphics & animation, performance optimization, workflow - and everything in between! So please help if you can!   Have a look at our project for more information:   TinyKeep - A 3D Multiplayer Dungeon Crawler for Windows/Mac http://www.kickstarter.com/projects/phidinh/tinykeep
  6. Hey guys and welcome to the 3rd update about TinyKeep's AI. Today's video and interactive demo showcases a couple of new features. [video]http://youtu.be/cwRo_kM19Ek[/video] - Click to attack! This is by no means a complete combat system, instead it's here to allow you to create some nice corpses for testing today's new behaviour. - Orcs! Like Skeletons, these monsters are Aggressive and will chase and seek you out. Similar to the Fire Imps, they employ a group system that notifies each other of threats once a single Orc can spot you in his line of sight. Attack Orcs with your sword enough times and he will die, leaving a movable corpse in his place. - If a Skeleton comes across a corpse while not alert (not currently chasing a character) it will attempt to eat it. Skeletons regain health while eating, and if you let it eat for long enough the corpse will turn into another undead Skeleton! While eating, the Skeleton has a reduced field of view which allows the player to sneak up on it more. As always, interactive demos of all of the AI updates so far can be found here: http://tinykeep.com/ai Further ideas for eating AI There's a lot we can do with this concept to bring some really interesting gameplay opportunities. Skeletons crowd around corpses with reduced FOV so it might be beneficial for the player to kill an Orc, drag it to a room and wait for a group of Skeletons to get distracted. Perhaps corpses naturally turn into Skeletons if they are left too long. How about other hungry monsters? We've mentioned in an earlier update about "flytrap-like" plants that hug the corridors of the dungeon, waiting for their next meal to walk past. Maybe we could have a hungry glutton pet that routinely eats up corpses you leave behind to prevent the Skeletons from getting there first. There are a lot of possibilities to explore! The Next Few Days As some of you may already know - my game TinyKeep is on Kickstarter and there are currently only 7 days left of funding to go! If you have enjoyed the updates on TinyKeep so far, please consider pledging so I can continue active development of the game. Currently I have accrued almost half the amount I need, but as Kickstarter is all or nothing I need to make the full £22k or I lose all my pledges so far. Thanks very much! http://www.kickstarter.com/projects/phidinh/tinykeep
  7. Yesterday we reached our first £10k of pledges! Here's a quick video from me to say thanks. I especially want to thank the community here at GameDev, several of our backers came from my threads here.   [url]http://www.youtube.com/watch?v=XJjUPByEdZg[/url]     8 days to go to make the full amount!
  8. Just a quick update from me today whilst I sort out Part #3 of the AI! Indie blogger [url=http://www.youtube.com/user/angelikmayhem]AngelikMayhem[/url] has recently posted about TinyKeep's Kickstarter campaign on his YouTube channel. In his video, he talks about seeds and how he is looking forward to this feature in our game.   So what are seeds exactly? As our response, I thought I'd best get Ben to explain, and also talk about how they affect the level's difficulty.   [video]http://youtu.be/gjZ6EsY0Vvc[/video]   We are pretty excited about using seeds - we think it will open up the game to the community and allow you guys to discuss and share the game's secrets.   AngelikMayhem is currently running his blog [url=http://xboxminecraftseed.blogspot.co.uk/]XBOX Minecraft Seeds[/url], where he regularly shares reviews and videos of seeded Minecraft worlds. He has kindly offered to do the same for TinyKeep when it is released, so we look forward to the many interesting dungeons he will discover!
  9. Before I crack on to Part 2 (Retreat and defense) I would like to quickly cover the minor improvements we made since Part 1 of this AI series. Thanks to community feedback we've added a few more features, removed others and hopefully will have created more realistic behaviour. Part 1.1 AI (Improvements) - YouTube Demo: http://www.youtube.com/watch?v=YttkpNdS5bY In short, the changes are: 1. If the Skeleton loses sight (raycasting towards hero) and smell (raycasting towards dropped breadcrumbs), he will still continue to head towards the location where the hero was last detected and investigate further. 2. If the Skeleton still cannot find the hero, it will make a best guess where it thinks he has gone and will set a patrol route to the nearest waypoint. Given these changes, we've removed the alert level as we've found this feature has become redundant and offers no extra intelligence. The "smell trails" have been reduced to balance the extra added behaviour - this also seems to help limit cheating in the AI. Ok, let's bring on the fun stuff! AI Explained - Part 2 of 5: Retreating and Defense, featuring TinyKeep's Fire Imp Monster! Fire Imps (and other monsters marked with the "Shy" personality flag) will run away from the player if he gets too close. Put him in this level of distress for too long, and he'll breathe fire on you. Part 2 AI - YouTube Demo: http://www.youtube.com/watch?v=dIBuIELYd4c The interactive demo is here on the TinyKeep website along with all of the previous demos: As with all of these AI behaviours, what you see on the video and demo are the default settings for each of the personality flags (Aggressive, Cautious, Shy, Lumbering etc...). However we've designed our AI editor to be a lot more flexible than that - so our game designer Ben can choose from a multitude of variables to customize his monsters: Enable/disable line of sight (blind monsters) Smell/sound sensitivity (monsters with amazing sense of smell) Roaming speed, chasing speed, fleeing speed Enable/disable wall avoidance (in case some monsters can walk through walls!) Distance threshold before alerted Require line of sight before alerted ...and many more! We know that this will give us the ability to create really unique and varied monsters, and part of the fun of the game is figuring out the behaviours of each one. Hope you enjoyed the post, and let us know if you have any questions about the AI!   By the way - thanks for those who recommend I post on the articles section of GameDev, will be doing this as soon as I can. Cheers
  10.   Before I crack on to Part 2 (Retreat and defense) I would like to quickly cover the minor improvements we made since Part 1 of this AI series. Thanks to community feedback we've added a few more features, removed others and hopefully will have created more realistic behaviour.   [video=youtube;YttkpNdS5bY]http://www.youtube.com/watch?v=YttkpNdS5bY[/video]   In short, the changes are:    1. If the Skeleton loses sight (raycasting towards hero) and smell (raycasting towards dropped breadcrumbs), he will still continue to head towards the location where the hero was last detected and investigate further.   2. If the Skeleton still cannot find the hero, it will make a best guess where it thinks he has gone and will set a patrol route to the nearest waypoint. Given these changes, we've removed the alert level as we've found this feature has become redundant and offers no extra intelligence. The "smell trails" have been reduced to balance the extra added behaviour - this also seems to help limit cheating in the AI.   Ok, let's bring on the fun stuff!   AI Explained - Part 2 of 5: Retreating and Defense, featuring TinyKeep's Fire Imp Monster!   Fire Imps (and other monsters marked with the "Shy" personality flag) will run away from the player if he gets too close. Put him in this level of distress for too long, and he'll breathe fire on you.   [video=youtube;dIBuIELYd4c]http://www.youtube.com/watch?v=dIBuIELYd4c[/video]   The interactive demo is here on the TinyKeep website along with all of the previous demos: As with all of these AI behaviours, what you see on the video and demo are the default settings for each of the personality flags (Aggressive, Cautious, Shy, Lumbering etc...). However we've designed our AI editor to be a lot more flexible than that - so our game designer Ben can choose from a multitude of variables to customize his monsters: Enable/disable line of sight (blind monsters) Smell/sound sensitivity (monsters with amazing sense of smell) Roaming speed, chasing speed, fleeing speed Enable/disable wall avoidance (in case some monsters can walk through walls!) Distance threshold before alerted Require line of sight before alerted ...and many more! We know that this will give us the ability to create really unique and varied monsters, and part of the fun of the game is figuring out the behaviours of each one.   Hope you enjoyed the post, and let us know if you have any questions about the AI!
  11. Hi again everyone! Hope I'm not bugging you guys too much with these regular updates  Today I thought I'd take a respite from all the AI business and talk about something that's been requested a lot by our current and potential backers.   There are 3 distinct features which characterise many hardcore RPG games. These are stats (in the form of attributes, experience and levelling), inventory management, and a wide range of active and passive skills. Many players love the number crunching aspects, and the sheer amount of depth of customization that these types of games offer. Others love the opportunities for loot - powerful weapons and the interesting game mechanics that come with them. Mastering these games requires not only hard work as you progress to more and more difficult levels, but also learning how to efficiently customize your stats so that you are able to create the kind of heroes you love to play.   [b]The Pocket Inventory System[/b]   For TinyKeep, our goal is to condense all of these features into one tidy package. We want the game to be as accessible as possible for players new to the genre, but also retain the level of depth and customization that RPG gamers love. We've spent a lot of time designing a system that hopefully will do just that! TinyKeep combines player stats & customization, inventory & equipment and skills into a single game mechanic. We call this, The Pocket Inventory.     At its simplest, the Pocket Inventory is a 3x3 grid representing the layout of the keyboard's numpad. Slots 4 and 6 will be left and right handed items (such as sword and shield), and slots 2, 5 & 8 are for other equipment. The remaining 4 corners contain unequipped items - this is your storage/bag space. So in total, you can only carry 9 items around with you at one time - yes, that's right, so choose your items wisely!   When you start a new dungeon instance, you are given the option to take and equip some of your items from The Stash. This Stash is a persistent area that contains of all your items retrieved from previous games. You could fill up the entire grid with equipment if you wanted to, but it might be a good idea to leave a couple free for items you might find in the dungeon to take home with you.   [b]Activating Slots[/b]   The Pocket Inventory will remain on the corner of your screen at all times, as a visual reminder for what you are currently carrying. Hitting the numkeys on your keyboard, or clicking the left/right mouse buttons (representing left and right hand items) will activate their respective items in their slots. Activating a storage slot (the 4 corners) equips the item, moving it to one of the other non-storage slots. So for the example above, hitting 4 (or clicking the left mouse button) will cause your player to attack with his sword, and hitting 6 (or clicking the right mouse button) will block an attack. Hitting the 8, 5 and 2 keys will respectively activate the rune, spell book and fireball. In the storage slots are a magic staff and short sword, which may be equipped at any time replacing one of the other items.   [b]Passive Effects[/b]   We've done away with character stats and attributes completely, all customization of your hero will take place in the Pocket Inventory. Each item you equip may have a corresponding attribute or passive effect. For example, the rune may inbue the user with incredible strength and thus enable powerful melee attacks, the spell book granting intelligence to increase the effectiveness of your spell casting.   [b]Bonus Effects and Further Customization[/b]   In addition to activating skills and equipping passive effects, the combination of items that you equip in the Pocket Inventory will also affect the player. Having all slots equipped with flaming items for example will give you elemental fire resistance and damage, but with the caveat that you also become extremely vulnerable to water attacks. Or perhaps carrying a complete set of certain named items, for example equipping all of Maca's (a randomly generated name) weapons and equipment could grant you Assassin status, an increased stealth effect.   In conclusion, we hope that the Pocket Inventory will offer the level of customization and depth that you guys crave, while keeping the game accessible and intuitive to play.
  12. Hey everyone! I decided that I will post more game development articles and videos in the future to inspire the community and also hopefully promote my game TinyKeep (http://tinykeep.com) as well! This is the first of the multi-part series of updates about TinyKeep's AI, over the next few days I will be posting a series of videos about the monster intelligence system that I've developed for the game. Today I'm going to talk about simple roaming and chasing behaviours for a single monster. For the later parts, I'll progress to more sophisticated concepts such as Group Tactics and Rivalry. I've posted a detailed YouTube video of the Roaming and Chasing behaviour http://www.youtube.com/watch?v=tAxfnFRB1Dg In a nutshell, here's how it works: 1 . A connected waypoint graph is calculated for a new procedurally generated dungeon. Generally we will have one waypoint per room (though some larger rooms may contain 2 or 3), and a few waypoints along long corridors. 2 . By default a monster will be in non-alert (roam/patrol) mode, as it's not chasing anything. So, it will use A* (shortest path) pathfinding to travel to randomly selected waypoints in the dungeon. 3 . The monster has a FOV of 90 degrees, and can only detect another entity if it is in within its FOV and direct line of sight (we use raycasting to determine if a nearby enemy is in its direct line of sight). 4 . Once an enemy is detected, it's alert level is increased to 200 and it begins chase. We use the Seek Steering Behaviour on the monster to follow its target. 5 . If the enemy escapes line of sight, the monster is still able to follow it even though it can't see it. It does this by targeting "smell trails" or "breadcrumbs" that the enemy has left behind. Again the monster uses Seek to follow the trail. Most recent trails are detected via line of sight (raycasting) and are tracked first. Trails are not detected if the monster is not in alert mode. This is the most important part of the AI, as it allows the monster to follow an enemy all around the dungeon even though it can't see its quarry - so if an enemy hides behind a corner the monster can still find him. The best thing about this elegant solution is that it does not need to use any expensive or complicated pathfinding, planning AI or anything like that. Neither does the monster need to have any internal representation of the dungeon layout. The player has done the hard work for the AI, by leaving behind the trail to follow. 6 . Trails decay over time (smells disappear), so eventually the monster will stop following if it hasn't seen the enemy for a while. At this point, the monster's alert level runs down. The monster is confused, looks around for a bit, decides that he has lost the enemy and goes back to the patrol routine. 7 . All the while - a handful of rays are cast (about 6) around the monster to detect nearby walls. If it exceeds a certain distance the monster is repelled from the wall using the Separate Steering Behaviour. This pretty much guarantees that monsters won't get stuck on walls, corners and other awkward features of the dungeon. That's pretty much it! You can have a play yourself on the interactive demo shown on the video: If you like what you see, stay tuned for parts 2-5 where I'll be discussing more complex aspects of the AI: Part 2: Retreating and Defense Part 3: Foraging Part 4: Group Tactics and Luring Part 5: Monster Rivarly! Thanks for reading!
  13. This is the first of the multi-part series of updates about TinyKeep's AI! Over the next few days I will be posting a series of videos about the monster intelligence system that we've developed for the game. Today I'm going to talk about simple roaming and chasing behaviours for a single monster. For the later parts, I'll progress to more sophisticated concepts such as Group Tactics and Rivalry. I've already written at length about the plans we have for the AI on our main Kickstarter page, so I won't bore you anymore here. Instead, I feel that the AI is best explained visually and interactively so here's a playable AI demo for Part 1: Note that I'm not using the 3D graphics you've seen on the video and screenshots. For testing and debugging purposes it is often best to use simple 2D graphics so I can easily annotate and visualize what is going on. Here's the accompanying video explaining the major aspects of roaming and chasing! http://youtu.be/tAxfnFRB1Dg For the next update I'll talk about Retreating and Defense. Unlike the Skeleton shown here some monsters are less aggressive and will flee at the sight of you. Stay tuned...
  14. Just a quick update, we've done quite well on the initial few days of our Kickstarter so far, and have just gone over a quarter of the funding goal. Still we are a long way away from achieving the total so if you like to see the game developed please support us! Anyway, here's a Dungeon Generation Demo application to show a little bit of how the procedural stuff works. An example generated dungeon: