Inactive Miniion

overdhose

Active Member
Contributor
Design
World
GUI
Well optimizing ain't my strongest skill, I remember writing a game of life (in Delphi which i had never touched) for a friend of mine, and while it worked and had more bells and whistles then he ever imagined possible, it was soooo slow. I saw how another mutual friend made my code run at incredible speeds I didn't imagine possible. Felt real bad that day and my confidence took quite a hit... It was only after the guy told me that while he excelled at optimizing what I made, his problem was coming up with the initial design I had come up with so easily, that i started to cope with it. Somehow ending up here, I have been thinking about that period a lot lately, and thinking some things don't change all that much ^^
 

eleazzaar

Member
Contributor
Art
Some ideas for the near/medium term basic core behaviors for minions.

Obviously pathfinding is the core ability, which will be needed for everything else. But beyond that:

* Avoidance: Ability to avoid walking off dangerously high ledges, and avoid walking into damaging blocks (fire, cactus, etc)

* Ability to attack or flee from enemy mobs

* Ability to wander around when hungry to find food (might overlap the previous item)

* Ability to follow a player around and collect loose blocks -- and give them to the player when requested.
 

overdhose

Active Member
Contributor
Design
World
GUI
Ability to follow a player around and collect loose blocks -- and give them to the player when requested.
that one already exists, though only if you switched to minion mode.Which made sense for now to keep both modes separate.
Avoidance needs collision detection, and that's something I still need to figure out, a simple look at the code gives me no clue about how to figure that one out atm. Attack and flee is linked the previous 2, so yeah still a long way to go to complete basic abilities.

And it depends what your most urgent goal is, so the ones I was looking at atm are actually : selecting large block areas and reacting to events when clicking a flag / block, because those are easier to me to actually program then for example collision detection.
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
I could see a layered approach to the AI with:

* At the low level - movement, obstacle avoidance, combat reactions, core behavior like that
* Above that, strategic behavior - I'm mining, so goto X, mine, goto Y, deposit
* And above that an overseer or director level that coordinates multiple AI - X go mine, Y go get lumber, because as a whole we're making a house. The player would probably interact at this level primarily.
 

overdhose

Active Member
Contributor
Design
World
GUI
actually while having some inspiration yesterday, I remembered my need to interact with the player (give feedback) so for the moment I am working on a message queue system similar to other strategy etc games where you have icons piling up in a bar and clicking on them opens a message. Could be useful to send some debug feedback to the player (for example : no path found, to inform the player the minion didn't start moving, at least better then wondering why it didn't seem to react to a command)

I created a basic structure, with 4 colors, 3 for message importance :
  1. red urgent
  2. white normal
  3. blue low importance info
  4. yellow debug messages, more intended as debug feedback / testing, could be system messages later
The idea is to create a priority queue where red messages pile on top followed by white and blue /yellow ones. Clicking an icon would open the message, a dialog box with close and delete buttons. Again meant as an example, eventual final approach can be decided by vote / debate once the infrastructure is up to speed. I added this to the hud Display Container and had the hud listen to events, so individual minions can send messages to the queue with an event, still need to finish the gui part to actually read the message added that way. Feedback if this a viable way of doing things (from a technical point of view) would be welcome.

about the AI, low level :
  • obstacle avoidance : what defines an obstacle exactly? Any suggestions / existing ideas about this?
  • combat reactions : like a gelcube avoiding a player's attack? Basic attack animation like small jump forward?
strategic behavior :
  • was planning to use waypoint blocks + patrolling to handle this. A waypoint component for blocks to implement, and a waypointsystem to manage them
That dev wiki sounds like a better plan with every line in this post hehe I'll stop here atm
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Sounds great! How would you trigger the queued messages if you're just running around with the cursor locked in movement mode? More hot keys - like the function keys? Sounds like it could be a key component of how to interact with creatures.

On avoidance - be it natural dangers (lava) or hostiles (creatures), I suspect we'll need to have some sort of AI overlay on the world with positive/negative values for good and bad things. Flashback to Intro to AI class for sure. Assign badness to lava, and goodness to goals. Plain terrain obstacles would just be elevation, I think?

Animations - yeah, possibly a forward/backward jump could work, until we get an actual animation framework ready
 

overdhose

Active Member
Contributor
Design
World
GUI
I started a couple wiki pages as i saw fit, let me know what you think about the layout etc, and if it's more or less what you expect. Simply described the minion bar a bit, not sure at this point how the whole design wiki is supposed to work, doesn't seem like people can add comments / posts to the pages at this point, but it gives a couple of pages and text to work with :p
 

overdhose

Active Member
Contributor
Design
World
GUI
uch actually I forgot the fact I don't have a mouse cursor available by default *slaps himself with a big trout*
But yeah yeah hotkeys that's exactly what I intended to use *cough*, I was just uch, right, waiting to check what keys you would prefer to use, could maybe assign 4 of them, one for each color and add arrows to the gui to scroll through them (or mouse scroll)
 

overdhose

Active Member
Contributor
Design
World
GUI
About the good / bad areas, could assign different movement costs to blocks to represent this (which you probably knew) so give lava blocks a movement value of over 50 (currently 5 x basic movement cost of 10 generates a closed node in path finding) would take care of that and a value of 1 for way points to represent good. I never had AI classes 101 so yeah maybe time we stop cluttering this thread and give that wiki some thought... not that I wanna stress you Cerv :rolleyes:
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Free AI class over here, I was part of the 165k or so sign-ups and it was neat to know it was provided by Stanford :D

https://www.ai-class.com/

Yes, wiki needs more work. I was familiar with Foswiki, thus why that was picked on the old site, don't know the capabilities of this new one, might be minor since it is just an addon. Initial line-up of topic pages looks fine for a start, go forth and add more stuff as you see fit - fixing up access further will get sorted out soon :)
 

overdhose

Active Member
Contributor
Design
World
GUI
I checked this :http://xenforo.com/community/threads/8wayrun-com-xencarta-lite-wiki.7589/

it seems like it was installed but talks about templates to set up pages, I guess I don't have access to those atm?

I did have a look at the free AI class you mention (it was mentioned somewhere before) but couldn't find a clear "course" to follow, but will check it again, might have missed things.

Ach and towards woods people, feel free to dig in that initial wiki I started and optimize / organize as you see fit if you feel like doing so, what I provide is possible pages to work from. I'm off to play petanque & drink pastis in a bit and will be gone a while :D
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
We discussed this a bit more on IRC and I've now tried to tack all available wiki permissions to the "Design Team" group, of which both overdhose and woodspeople are members of, so play in the wiki all you like - the template functionality has been exposed :)

(There's more work to do on groups, so that isn't the final setup or anything yet)

The AI Class ran in fall last year complete with grades, homework, etc. I'm not sure they'll run it again, but all the videos are there, complete with multiple-choice questions, explanations, etc, might be worthy to check out some of the topics
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps

woodspeople

Member
Contributor
Design
We have just tried the minion-ness for the first time, and we love it!!! We have a few questions before we start trying to do a let's play about it.

1. We actually tried this last week, but we kept pressing X and nothing (apparently) happened. We are now thinking minion mode MAY have been working, only we didn't know it. Some kind of indication of minion-mode (MM) would be very useful. Maybe the minion-mode menu (MMM) could light up or something? And then NOT light up when MM is off?

2. We made a whole bunch of minions (of course) and asked them all to follow us. They did! But they all bunched up so much they looked like one minion. If you gave them a bit of randomness in their movements they would not do that but would look like a proper crowd :)

3. You can't tell them apart, and we understand names and things might be a ways off, but it might be a quick fix for now to give them different colors, which are the same in menu and minion. Then you could remember what the orange and green minions are doing.

4. The mouse wheel selection is probably great for people who have mouse wheels... we have a trackpad on the laptop. 1-9 is used up on the hotbar, BUT in MM what is selected on the hotbar is meaningless (right) since the tools don't do anything, so maybe what shows you MM is active is 1-9 selects a minion, not a tool?

5. We thought "invent" meant they would build things. (Correction: Only the mom thought this.) If "inventory" is too long, how about "store" or "storage" or "keep"?

6. Do they get tired of gathering things? They seemed to stop after a while, but it was not always the same. Or maybe asking them to break a block out of their reach breaks something?

7. In general THIS IS VERY EXCITING because TS finally has some interesting gameplay!!! We will be exploring it more in the days to come.
 

overdhose

Active Member
Contributor
Design
World
GUI
I am unfortunatly well aware of all the issues listed :D

It's mainly why I opted to start working on the messaging system, so I could actually send some info towards the player and inform him. Concerning your individual questions
1 I guess that answers my question in the wiki
2 I am awaiting a grand idea to make them look like a crowd indeed
3 Bi0hax was gonna help with that, but I guess I could do it myself
4 thanks I never play this on my EEE as it has no power, will keep this on my increasing TODO list
5 I agreee invent n short and confusing, but I have an excuse now : read the wiki :p I uch should work the component out a bit better to make it truly dynamic, then again flags/bindings are planned in my head to replace that whole menu driven thing so it easily gets flagged as lost effort
6 They have no pathfinding, and in certain situations they might get "stuck", that's what the "clear" command is for unfortunatly
7 Glad it amused you... maybe I should focus on refining the current system after all.
 

overdhose

Active Member
Contributor
Design
World
GUI
thanks Immortius, always happy to see your input. I really have to start a roadmap for myself and start organizing things etc, not to loose track. For now as it requires some research from my side, this one will be labeled : near future.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
For "invent" I'd just change it to "inv" - short, simple, and pretty universally understood :)
 

overdhose

Active Member
Contributor
Design
World
GUI
that's also an option
 

overdhose

Active Member
Contributor
Design
World
GUI
actually found an amusing bug now... minions get stuck behind leaves... well not a real bug as leaves should become traversable no? besides that the current pathfinding works quite well, and locking the component while calculating the path actually does the trick performance wise, even on my system, well I usually only have 1 minion with me. I was also wondering if for the patrol routes I should make a combined path through all the waypoints so it can keep looping while using the pathfinding. I have no real idea what the impact on memory usage would be given enough minions wandering around, but one loop could easily be some 1000+ float based vectors to loop through.
 
Top