Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411518 Posts in 69380 Topics- by 58436 Members - Latest Member: GlitchyPSI

May 01, 2024, 01:28:52 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTinyKeep - AI Focused Dungeon Crawler (FUNDED!)
Pages: [1] 2
Print
Author Topic: TinyKeep - AI Focused Dungeon Crawler (FUNDED!)  (Read 6658 times)
phi6
Level 2
**



View Profile WWW
« on: June 19, 2012, 03:47:30 PM »

Hi everyone, I have a Kickstarter project I would like to announce.


A few days ago I launched a new project called TinyKeep, which is a 3D Multiplayer Dungeon Crawler game with big focus on intelligent monster AI. The game was quickly featured on Kickstarter's Staff Picks, but I'm still looking to boost my funding pledges.


http://www.kickstarter.com/projects/phidinh/tinykeep












I have also posted a somewhat technical article regarding procedural dungeon generation for the community:
Procedural Dungeon Generation Algorithm Explained


Hope you guys enjoy the concept - and are able to help spread the word!
« Last Edit: September 23, 2013, 08:34:22 AM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
CDLegasse
Level 3
***


View Profile
« Reply #1 on: June 19, 2012, 04:09:05 PM »

Gotta love the good old rltiles Tongue looks pretty cool. Actually rltiles is what inspired my game miniFlake Tongue
Logged
phi6
Level 2
**



View Profile WWW
« Reply #2 on: June 19, 2012, 10:56:14 PM »

Thanks Smiley
I'm definitely going to try and finish the core gameplay before doing anything fancy with the graphics. In the past I've always spent too long perfecting pixels I never get anything else done!
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #3 on: April 24, 2013, 07:57:39 AM »

It's been almost a year since I last looked at this project!

New house, new job, new life - and I've learned a lot of different skills. So I decided to reboot the project in 3D! The principles and philosophy of the game is still the same, but I've taken the plunge and gone for realtime, 3d, skeletal animation, the works...

The only thing concerning me - have I just made the project overly complex and expensive now Smiley

All 3d models and textures are from Matthias Andre (BitGem) over at 3DOcean:
http://3docean.net/user/BITGEM/portfolio
« Last Edit: June 10, 2013, 03:41:45 AM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
Quarry
Level 10
*****


View Profile
« Reply #4 on: April 24, 2013, 09:44:20 AM »

WOOAAAAHHH... Looks amazing :D

Is Matthias working with you or did you just get the assets
Logged
phi6
Level 2
**



View Profile WWW
« Reply #5 on: April 25, 2013, 12:21:56 AM »

Thanks!

Those assets pictured are from BitGem, but I am in contact with Matthias and he is interested in working with me.

Interestingly our agreement is that any assets he will create for TinyKeep will be non-exclusive, so they will be available royalty free to the wider community Smiley
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #6 on: April 30, 2013, 11:11:14 PM »

So I decided to bite the bullet and commit myself to this project properly, and spent the last week preparing a Kickstarter! And it has been approved!

It's been over a year since I started this project, but in the past 2 months I've made so much progress on the 3D front. Hopefully this will boost it even further!
« Last Edit: April 30, 2013, 11:16:20 PM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #7 on: May 01, 2013, 08:16:50 PM »

Wow - as of yesterday afternoon Kickstarter put my project into Staff Picks!!!!!!!!!!

Slowly getting there!

http://www.kickstarter.com/discover/categories/video%20games?ref=sidebar
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #8 on: May 02, 2013, 11:29:01 PM »

Hey guys,

So today I'm going to be a little different and talk about one technical aspect of the game, that is random procedural dungeon generation. It's pretty over-engineered, but hopefully will give anyone interested some ideas on generating dungeon layouts for their own games.

The interactive demo can be found here:


Here's how I do it, step by step:

1. First I set the number of cells I want to generate, say 150. This is an arbitrary amount really, but the higher the number the larger the dungeon and in general more complexity.

2. For each "cell" I spawn a Rectangle of random width and length within some radius. Again the radius doesn't matter too much, but it should probably be proportionate to the number of cells.

Instead of using uniformly distributed random numbers (the default Math.random generator in most languages), I'm using Park-Miller Normal Distribution. This skews the size of the cells so that they are more likely to be of a small size (more smaller cells, less larger cells). The reason for this will be explained later!

In addition to this I ensure that the ratio between the width and length of each cell is not too large, we don't want perfectly square rooms but neither do we want really skinny ones, but somewhere in between.

3. At this point we have 150 random cells in a small area, most are overlapping. Next we use simple separation steering behaviour to separate out all of the rectangles so that none are overlapping. This technique ensures that the cells are not overlapping, yet in general remain as tightly packed together as possible.

4. We fill in any gaps with 1x1 sized cells. The result is that we end up with a square grid of differently sized cells, all perfectly packed together.

5. Here is where the fun begins. We determine which of the cells in the grid are rooms - any cell with a width and height above a certain threshold is made into a room. Because of the Park-Miller Normal Distribution described earlier, there will only be a small amount of rooms in comparison to the number of cells, with lots of space between. The remaining cells are still useful however... read on.

6. For the next stage we want to link each room together. To begin we construct a graph of all of the rooms' center points using Delaunay Triangulation. So now all rooms are connected to each other without intersecting lines.

7. Because we don't want every single room to be linked to every other with a corridor (that would make for a very confusing layout), we then construct a Minimal Spanning Tree using the previous graph. This creates a graph that guarantees all rooms are connected (and therefore reachable in the game).

8. The minimal spanning tree looks nice, but again is a boring dungeon layout because it contains no loops, it is the other extreme to the Delaunay Triangulation. So now we re-incorporate a small number of edges from the triangulated graph (say 15% of the remaining edges after the minimal spanning tree has been created). The final layout will therefore be a graph of all rooms, each guaranteed to be reachable and containing some loops for variety.

9. To convert the graph to corridors, for each edge we construct a series of straight lines (or L shapes) going from each room of the graph to its neighbour. This is where the cells we have not yet used (those cells in the grid which are not rooms) become useful. Any cells which intersect with the L shapes become corridor tiles. Because of the variety in cell sizes, the walls of the corridors will be twisty and uneven, perfect for a dungeon.

That's it!
« Last Edit: June 10, 2013, 04:04:43 AM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
Jad
Level 8
***


Bomb Boy


View Profile WWW
« Reply #9 on: May 03, 2013, 01:34:05 AM »

I don't know if it is because no one else got the ball rolling but this looks fantastically cozy and I'm really interested in playing this. The amount of comments in this thread is kind of surprising (the lack of, that is)

One piece of feedback, graphically - the additive blending (or what looks like it) on the torches looks a little too laser-y burning for my tastes - the garish red-to-yellow with full saturation colors that emerge from this kind of blending mode is everywhere in games right now (that is to say, the last 12 years) and it really doesn't resemble fire in real life. If you ever feel like you wanna do some super intricate polish and fight the good fight against over-used-but-never-questioned particle FX, feel free <3
Logged
C.D Buckmaster
Level 7
**


Death via video games


View Profile
« Reply #10 on: May 03, 2013, 05:29:27 AM »

Those characters look adorable, I am definitely interested in seeing how this develops.
Logged
phi6
Level 2
**



View Profile WWW
« Reply #11 on: May 04, 2013, 04:11:56 AM »

One piece of feedback, graphically - the additive blending (or what looks like it) on the torches looks a little too laser-y burning for my tastes - the garish red-to-yellow with full saturation colors that emerge from this kind of blending mode is everywhere in games right now (that is to say, the last 12 years) and it really doesn't resemble fire in real life. If you ever feel like you wanna do some super intricate polish and fight the good fight against over-used-but-never-questioned particle FX, feel free <3

Hey Jad, yeah I agree that it doesn't look realistic as fire should be. I'll definitely give it another go later on, but I have a feeling that this style of fire would suit the more playful graphics we already have in the game Smiley
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #12 on: May 08, 2013, 11:31:14 AM »

I've reached £4000 on the Kickstarter! It's quite surprising how many people end up backing your project... crazy indeed.
Logged


TinyKeep is now on Steam!
@phi6
Quarry
Level 10
*****


View Profile
« Reply #13 on: May 08, 2013, 01:01:14 PM »

22 days for 18k is totally doable, good luck!
Logged
phi6
Level 2
**



View Profile WWW
« Reply #14 on: May 08, 2013, 09:35:24 PM »

Thanks, I hope so!

I want to talk about the Pet/Companion system that I have planned for TinyKeep. On rare occasions you will encounter various captured beasts and animals, usually guarded by a band of hungry Orcs. If you manage to free them before they end up as breakfast, they will be eternally grateful and will become your trusted companion.

Pets will faithfully follow their master throughout the dungeon instance, and each will have their own unique abilities to help you in the thick of battle. Dragons have the power to fly above the smaller monsters, avoiding attacks while raining tiny fireballs from above. Wolves, on the other hand have great ground attacking power, and their sense of smell allows them to warn you of incoming fiends.

Once you have obtained a pet, it will remain permanently attached to your persistent character profile. However, you will only be able to take one pet with you when you start a new dungeon instance. Some pets will be better than others against certain monster types...

As usual, this can only be made possible with Matthias Andre's beautiful art and animation.






Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #15 on: May 14, 2013, 02:59:47 AM »

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



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!
Logged


TinyKeep is now on Steam!
@phi6
Konidias
Level 4
****


View Profile WWW
« Reply #16 on: May 14, 2013, 09:38:43 AM »

Looks awesome. I watched the procedural dungeon generation a lot... very entertaining just watching it piece the dungeon together. Smiley

Backed!

Good luck with the kickstarter!
Logged

phi6
Level 2
**



View Profile WWW
« Reply #17 on: May 14, 2013, 12:17:17 PM »

Thank you Konidias - very much appreciated!
Getting some good feedback off the gamedev guys for the procedural generation and AI as well - hopefully that will bring in more backers for me Smiley

Will post the next update soon Smiley
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #18 on: May 15, 2013, 11:22:39 PM »

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.

The Pocket Inventory System

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.

Activating Slots

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.

Passive Effects

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.

Bonus Effects and Further Customization

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.
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #19 on: May 19, 2013, 06:51:30 AM »



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:




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:




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!
« Last Edit: May 19, 2013, 07:17:17 AM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic