Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411630 Posts in 69393 Topics- by 58447 Members - Latest Member: sinsofsven

May 12, 2024, 03:29:04 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytestingskill modelling and adaptive A.I. project
Pages: [1] 2
Print
Author Topic: skill modelling and adaptive A.I. project  (Read 4114 times)
coAdjoint_Tom
Level 0
***


View Profile
« on: November 03, 2012, 06:38:52 AM »

Hi guys,

I recently started a post in the dev forum about adaptive Ai, but wanted a place  to update my progress for my actual project.

Background

Basically, I wanted to make tools to help make games that interact with the user without having to resort to RPG-like skillpoint systems. Being a maths grad, I decided to make a continuous skillpoint system where skills are not necessarily independent. This means your skill levels are constantly being updated whilst the game is running based upon your actions.

Using this model I've developed an adaptive AI tool. The AI uses the information it has about your ingame skills to modify it's behaviour.

The project

To demo my tools, I'm making a level of an FPS game in Unity. The concept of the demo is basically to blow up a powerstation, destroying the enemy's base.

The demo will showcase how the characters skills can develop over the demo. The character in the game will automatically adapt and improve based on the the way you're playing the game. For example, if you're sneaking around like a ninja, your skills will reflect this.

It will also show how the AI adapt to your particular skillset. For example, if you're playing like a terminator specializing with a rocket launcher, the AI will change their tactics and position to make the rockets less effective.

Progress so far

To showcase my development process I've got some videos.





This is how the AI system works





Feedback

I'm looking to see what people think, and if anyone would be interested to try it out when it's done. If anyone has any questions or criticisms, I'm open to all comments.
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #1 on: November 03, 2012, 07:59:45 AM »

What I also want to say is that it is of course a matter of preference where you decide to put your energy. So I don't want to discourage you in any way because it is an interesting topic in itself.

But except for fighter-like games (which should be played against a human and not A.I. anyway) I don't see that much need to go into adaptive- depths. In most shooters the A.I. will be dead after a few seconds anyway so learning doesn't make a worthy sense. I would prefer it to have already a fixed skill-set and environment awareness. And now the A.I. needs to exploit all this in a competent way. I prefer this to be the actual challenge.

From what I understand is that you are also talking about A.I. of your own character representing the way you play. My sympathy for this doesn't exceed a moderate degree however. I rather prefer game-designs where the quality of actions you take are 1:1 mapping/reflections of your own skills, if possible. But I may be underestimate your approach because I see good use of it for rpg-like games.

Yes, you should definitely check out the original Far Cry as I think it is still the game with the most impressive open-world A.I.
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
coAdjoint_Tom
Level 0
***


View Profile
« Reply #2 on: November 03, 2012, 08:19:31 AM »

J-snake I appreciate your comments, I'm thick skinned so please don't worry about disheartening me, and your points are well made so it's useful  Smiley

In current games enemies do die within a few seconds, but why does that have to be the case? We've all played games where a bot death means nothing so perhaps we should explore different game formats with fewer enemies but better brains.

I think there's a trend for modern games to play like interactive films, with excellent graphics and animation. They're story driven, but my problem is that the story is not my own. I'd like to play games where I have at least the illusion of choice about the direction my character takes, but I don't want that to mean level up screens and skill selection.

I completely agree about your skills being reflected in the game. However, how does a game calculate how much noise your character makes when he runs or jumps? How steady your hand is with a sniper rifle? How fast you can reload your weapons? In current games I've seen this approached by timed events, but I think it can be done better. Maybe this seems like micromanagement, but I think if you add up these little effects you could create a game where you see your progression towards the character you want to be. I think there needs to be a balance between your abilities and your characters abilities in order to tell a compelling story.

This is just my opinion of course, I'd be interested to know if people would like to see FPS like this for example. 
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #3 on: November 03, 2012, 09:22:36 AM »

I completely agree about your skills being reflected in the game. However, how does a game calculate how much noise your character makes when he runs or jumps? How steady your hand is with a sniper rifle? How fast you can reload your weapons?
Yes, those are the worthy rpg-elements.

It is a very interesting idea to follow changing the game-design motivated by new A.I. - concepts. I have a particular idea in this regard for my metroid-like game in the future I don't mind sharing: It is the concept of chasing. If you know Metroid-Fusion there is an intelligent hunter (sax) searching and chasing you over a long period of time. While the idea is great the game is scripted and doesn't offer any depth. It is safe to say the actual game doesn't exist. So what I want to offer is a completely organic system. It means you never know where and when an encounter can happen (but of course within a control-mechanism which makes the game playable). And then it is up to you to decide when you feel equipped and strong enough to kill it. So potentially if you are very good you can kill it relatively early in the game. The contrary decision is to never face the challenge but to keep hiding during the whole game. I can literally feel what impressive experience this concept will provide when implemented competently.

btw. this design-element is also an example of "1:1 skill-mapping". It is completely up to you when you want to face the fight. If you can get away with less equipment/abilities then your actual play-skills reflect the success. Otherwise a lack of your personal skills can be compensated by added equipment/abilities, but the existence of your player-abilities is not dependent on the way you are playing the game but on the equipment you have found so far. That is a significant difference.
« Last Edit: November 03, 2012, 10:03:59 AM by J-Snake » Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
coAdjoint_Tom
Level 0
***


View Profile
« Reply #4 on: November 03, 2012, 10:13:47 AM »

J snake it's funny because I've been thinking a lot about a hunted/chased game. If I have enough money at some stage in the future I'd like to have a go at something similar to your idea, as I think my systems along with some simple technologies currently available could do a good job of it.

Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #5 on: November 03, 2012, 10:31:15 AM »

That's cool. Keep it up. Beer!
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
coAdjoint_Tom
Level 0
***


View Profile
« Reply #6 on: November 05, 2012, 04:08:03 AM »

Just wrote a little blog post, it's opinionated and will probably anger some, so apologies for that. Feel free to tell me what you think of my other blog entries as well, it's mostly about my project and my opinions on AI

http://coadjoint.wordpress.com/2012/11/05/why-i-dont-care-about-graphics/

Cheers,

Tom
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #7 on: November 05, 2012, 03:53:03 PM »

I see no explicit word about A.I. there.
But this sort of posts quickly come across like you don't know much about games. Yeah, I think all will agree that the main problems with games today is that they look more believable than they actually are. But even when the character's expressions and environments are perfectly rendered and animated, and when they behave in a believable way, as hard as it sounds but this is not what makes a game. Most often those points are not even a necessity in order to make a perfect game. Our anticipation of games has changed so much that most people are not even aware about the initial value of the word "game".

A fundamental part of the philosophy I live is this: A necessity I am missing so much is perfect accuracy and consistent game-mechanics. Perfect game-mechanics ensure the player can grow and perfectly rely on them. Imagine you play a chess-game and your horse accidently jumps 4 instead of 3 cells at times. That is not what you want. I have the same attitude for video games and since they are dynamic they pose a big challenge. For example every fps you play is not perfectly accurate. Whenever you perform the same input in the same but physically shifted location the end result won't be exactly the same. The same goes for naive driving-simulators. It is because a naive use of floating-points is not accurate. So if one wants to deliver perfection in its true sense it is a necessity to understand exactly how the stuff works and find ways to achieve accuracy and the necessary precision at the same time. This why I cannot bring myself to use an engine, even when it is called unity.
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
J-Snake
Level 10
*****


A fool with a tool is still a fool.


View Profile WWW
« Reply #8 on: November 05, 2012, 05:27:40 PM »

edit: I see the link in the link is actually the article about A.I.
I will make sure to check you out from time to time as it is interesting.
When you feel ready head your results over to the the team of ZeroPointSoftware.
They will be interested in it. Here is their youtube-channel:
http://www.youtube.com/user/ZeroPointSoftware
Logged

Independent game developer with an elaborate focus on interesting gameplay, rewarding depth of play and technical quality.<br /><br />Trap Them: http://store.steampowered.com/app/375930
coAdjoint_Tom
Level 0
***


View Profile
« Reply #9 on: November 06, 2012, 12:41:35 AM »

You're probably right that I know very little about games. The last game I bought was HL2 I think, and I bought that when it came out.

This was just an opinion article, I was really just writing what I felt when I watched that video. The point I was really trying to make was that I'm not convinced on the current idea of immersion, and that I don't like the inconsistencies: graphical detail alongside lack of detail is a distraction from what I'm meant to be watching. Minecraft doesn't have this problem and is very believable.

Another example is HL2. Although I got bored playing it this weekend, I like the consistency of the product. It does make you believe in the world.

And thank you for the link to ZeroPointSoftware, I'll make sure I do that.
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
gornova
Level 0
***


View Profile WWW
« Reply #10 on: November 06, 2012, 07:50:40 AM »

This topic is interesting "per se", but first: to make games, you should play games. I mean, you could make games without play no other games, but doing so you are doing a game for yourself, not for other people. Our particular expetations are shaped by played games, for example reading this topic I was thiking about Tes games: Daggerfall, Morrowind, Skyrim. Perfect for this kind of "open world" and "open skill games".
But, after reading your last played game is HL2 .. I mean, what kind of game do you think to create?

all this is IMHO :D
I'm interested in your approach, in particular in skill-web system !
Logged

Blog | Last game Number+
coAdjoint_Tom
Level 0
***


View Profile
« Reply #11 on: November 06, 2012, 08:16:50 AM »

Thanks for the interest.

Gornova, I feel confident that I still know what games are like and what people expect. I know it's not quite the same but I watch playthroughs of all the big releases so I have an idea of what's going on. My problem is that I just find them so bloody boring! If I saw a game drastically different from my experiences from a few years back, I would invest in it. However, if the games industry thinks it's moved on that much from HL2 it's kidding itself.

I do think I have to play more games though. So this morning I bought Bioshock since I'd heard someone talking about how good the Narrative was. I played for 2 hours, I honestly can't remember the last time I was so bored Smiley
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
gornova
Level 0
***


View Profile WWW
« Reply #12 on: November 06, 2012, 09:13:24 AM »

Ok, I got the point :D

Some great indie games out there have good narrative too.

Tip: check Mass Effect 1, Dragon Age: Origins good narrative IMHO
Logged

Blog | Last game Number+
coAdjoint_Tom
Level 0
***


View Profile
« Reply #13 on: November 08, 2012, 10:42:44 AM »

Here's a little video of my melee system as it's stands. It's very early days but it sort of works!

Tell me what you think guys!



Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
TheRick
Level 0
**


View Profile
« Reply #14 on: November 10, 2012, 01:16:37 PM »

This post is filled with negative criticism, beware.  I'm assuming that you're goal with this project is to create middleware and sell/distribute it, possibly creating a game from it as well.

If my assumption is right, your goals for your project seem misaligned.  Correct me if I'm wrong, but it seems that you really want to make your own game rather than middleware.  What you are doing seems very specific, something only a few games would want.  For example, your dynamic AI would apply to very few game types as previous posters have said.  The skill system is also a design that, while it works, isn't something most people need.  It's not genre specific (which is good), but not everyone wants RPG elements in their game, and not everyone who wants those wants and automated system.  If you're developing middleware, widening your audience is ideal.  Take Havok or Scaleform for example:  their application is widespread and could be applied to virtually any 3D game.

Then there is the question of portability.  Is this Unity only?  If so, this drastically reduces your potential consumer base.

In short, if I were looking to implement an automatic skill system, I'd just do it myself because it seems like a feature tailored to my game specifically, plus it's not nearly as hard as implementing something such as Scaleform (at least with the unfair judgement of your project as it currently stands). It looks like you're designing the middleware for your very specific game and not for potential consumers.  I'd say it's much harder to create valuable middleware than a game, though that's definitely my opinion there.

Middleware out of the way, I'm just going to say to be wary progression systems that sway a player based on how they play.  It's a double edged sword: players love progression, and tailored progression is often even better, but if a player wants to be an amazing sniper, but can't stand the process of being terrible with one constantly missing before getting better, then the system has a negative impact on the player.  For example, say I'm a wizard and I mostly used fire spells through half the game, but at this point I want to try using ice spells since I'm bored of burning enemies. Because I'm in late game already, ice spells will be much weaker, forcing me to "grind" it up before it becomes useful, and personally this annoys me greatly.  This system can work very well, but I think that games must be designed around this system entirely for that to happen.

Lastly, be wary of smarter AI.  I feel this can also backfire because I immediately thought "I'm a super awesome guy with a rocket launcher, but now everyone's smart enough to avoid me and spread out so I never get to feel super awesome or take advantage of my specialized talents...".  That said, your dynamic AI is a pretty unique idea, and if applied to the right situation in the right way, it could be great.  This thread already has a very good suggestion for that.
Logged
coAdjoint_Tom
Level 0
***


View Profile
« Reply #15 on: November 10, 2012, 05:05:37 PM »

Hi TheRick, cheers for commenting. Honestly don't worry about the negativity, as I've said I'm very thick skinned and used to criticism :D.

Just to say, I have no intentions of making a game at this point. I have some plans for things but I need to make some money first, and I really don't want to go down the 9-5 route to do that. Making a game seems like a really hard thing to do, and I think a bit of experience will help me in making a better product in say 3-4 years time.

I've chosen to make a demo since I think the best way to show that you've got something good and fun and useful is to give devs something fun to play with.

The model and the AI system is quite specific in that it allows you to create continuous and dependent skill points systems and adaptive AI, but there are no constraints on what skills you want to model and what you want your AI to do either. All parameters to do with the skills you're modelling and the relationships between skills are completely chosen by the dev, so its very general, with no restrictions whatsoever on the application of the model. As I've said, I think my system could allow for character progression without the RPG-style stat obsession, which I think could be appealing in some circumstances.

It's true that a lot of current games may not need these tools, but I think we've got to look forward and think of making new types of games, and I hope that the stuff I'm working on can be part of this process.

It's definitely not just for Unity, the back-end is in C, the front-end in C++, which will configure various instances of the tools in whatever you're working on.

And yes you probably could create your own skillpoints system, but if you want some dependencies between skills (which I think opens up some quite interesting gameplay possibilities) then you have to think about you're going to do that mathematically. I will vouch that it's not that easy and infact I had to use some maths that I only learnt in my last year of my Masters to get behavior that I thought was rewarding (if any maths guys are reading this I've used EPDiff). If you don't want to learn about maths and machine learning, then that's what my tools are for. However, in the same way that a lot of people build their own physics engines people will always do things on their own.

I think all the other points you've made are entirely determined by how good the developers are at doing their jobs. I don't mean to sound rash by saying this but I don't really see that as my problem. My job is really just to make some tools so that they can implement their visions quicker than if they didn't have my tools, and to persuade them that that's the case!

Thanks for saying that the AI has potential, I have had interest for both tools so I'll keep working on it. Keep in touch and let me know what you think of the progress I'll hopefully make.
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
TheRick
Level 0
**


View Profile
« Reply #16 on: November 11, 2012, 01:00:56 PM »

My assumption was incorrect it seems, so disregard some of what I said regarding design.  I agree 100% that it's the customer's problem.  However, at the least you should still have design in your mind for your demo so that you can show off good applications of your systems.  Again, if I want to be awesome with a rocket launcher, I probably want to blow people up by the truckload, and if the AI changes to prevent me from doing that, I would say that's a design flaw and the AI actually is detrimental to the gaming experience.  I'm not saying the AI system is overall bad, it's just your current application  doesn't appear to synchronize well with your systems.

That said, most other concerns of mine were removed based on what you posted.  The main reason I made this incorrect assumption of making a game is that your latter videos show progress of creating the demo with not a ton of information on how it really applies to your system, or how your system makes it work (be it skills or AI).  There's nothing inherently wrong with this, it just threw me off.

I think I made an unfair judgement on the current status of the project (as I said earlier), and that lead me to say that I would do it myself.  Based on what I saw in some of your videos, it seemed to me that the end result didn't seem to reflect a very difficult to construct skill/AI system.  The math behind it may be very difficult, but if a similar end result can be produced without such difficulty, then why go to you for my needs?

To address this I recommend highlighting, above all else, what your system can do that others cannot as a direct result of the difficult programming/math that you've done.  Prove to them with your demo that they cannot achieve the same end result as you unless they have to put in too much effort to do it.  I'm probably just ranting on obvious things now, but at the least it might help reinforce the concept.
Logged
coAdjoint_Tom
Level 0
***


View Profile
« Reply #17 on: November 11, 2012, 02:02:16 PM »

Not ranting at all TheRick, it's very useful feedback. After all, if I'm to sell my tools I've got to pitch it correctly.

The main reason why my vids focus on the demo at the moment is mainly because the front end is very far off being ready! However, as soon as I have all the demo assets ready I'll be plugging in the .dlls to Unity directly without the user friendly API I hope to build.

Take the features you see in the demo with a pinch of salt. It was more of a simple demonstration of how the AI changes given different skillsets, rather than a game feature that I'm set on including. As yet even I haven't played the bloody thing so I'll soon find out if it's no fun! Also, I use the vids to prove that I'm not making everything up, and hopefully that I'm not an absolutely awful coder (I'm by no means good).

I guess the thing that differentiates my model from others is it allows for intricate skill modelling with relationships between skills built in, without any thinking about the maths on the part of the developer. Personally I see this as a bit of a step forward in character development, and could open character customisation possibilities that aren't possible in even the most advanced current systems. E.g. in skyrim, skills change continuously but your 1-handed sword skill could be 100 whilst your two handed sword skill could be 0! My system offers an off-the-shelf solution to this problem, so that devs don't have to think about how to link skills together naturally and systematically (i.e. so that if they choose to change the skill network it's easy to reconfigure their network)

We'll see if devs can see applications for stuff like this Smiley. Thanks for taking the time to comment, I honestly appreciate it. This is why TIGForum is awesome.
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
coAdjoint_Tom
Level 0
***


View Profile
« Reply #18 on: November 15, 2012, 08:05:57 AM »

Hi Guys,

In our demo we'll have a recoil parameter, which will determine the amount of recoil your character has for a particular weapon. As such, we don't want to animate hundreds of times, so here's how I've used Inverse Kinematics to deal with this.

I know it's only slightly on the topic of skill modelling but I'd be interested in feedback regardless. It's a work in progress but I hope the idea is clear.





Cheers TIG
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
coAdjoint_Tom
Level 0
***


View Profile
« Reply #19 on: November 27, 2012, 03:33:14 PM »

Hello anyone who's reading :-D

I've been working really hard on the demo but still have a fair amount of things to do before it's ready. Just thought I'd let you know some more details about the model. It's all up and running and I've been testing it a lot.

Sort of interesting things that the model can do: sometimes a character can spend a long time not making much progress with a skill, and then suddenly they 'get' it and gain a massive boost in skill level.

Also, it seems to predict that little and often is better than large but infrequent chunks of experience. This seems to tally well with the idea that practice makes perfect, although I'll have to do more testing to see if I've got this right. I'm curious, hope you are too!

If you'd like more details just ask :-D
Logged

Working on skill modelling and adaptive AI systems in video games http://www.youtube.com/coAdjointTom

Game Ai blog:

http://coadjoint.wordpress.com/
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic