farfi55 / cookedup Goto Github PK
View Code? Open in Web Editor NEWUnity Game inspired by Overcooked and PlateUp! with Bots AI using ASP
License: MIT License
Unity Game inspired by Overcooked and PlateUp! with Bots AI using ASP
License: MIT License
Example:
we create a target(TargetID)
predicate, expecting only one value inside it, and using it like:
a_PickUp(0, TargetID) :- target(TargetID).
in the case where there are multiple values inside target
then multiple actions will be created.
So we need to make sure every predicate passed to a action contains only a single value.
One (dumb and simple) way to do this is:
target_single(TargetID) :- TargetID = #max{ TargetID1 : target(TargetID1) }, target(_).
a_PickUp(0, TargetID) :- target_single(TargetID).
Here we are taking the target with the max ID, which doesn't do anything smart, it just ensures there's only one value inside target_single
, note the target(_)
inside target_single
rule body, that ensures that we have at least one target to chose from, as taking the #max or #min of nothing gives either positive or negative infinity, not really what we are looking for most of the time.
A possible solution is to add a new state to remove burning ingredients from stoveCounter, which should have a higher priority compared to the other states.
This would also means creating a priority system for player states.
A possible solution is to create a function inside ThinkEngineTrigger.cs
Strategic AI assigns recipes to bots based on the estimated time it takes to complete the recipe, which is calculated using the 'best' plate owned by the bot (if it has any).
But the bot currently has no way to change its 'current' plate to the best one.
We could create a new state (or extend an existing one) to pick up a better owned plate if he has any.
Bots somethimes go to the same PlatesCounter and when no plates are ready to be taken they wait there untill a new plate spawns
Solution 1:
Allow multiple Bots to work on a single recipe request.
When a new recipe request pops up, move one bot to the new one.
Solution 2:
Allow multiple Bots to work on a single recipe request but with different responsabilities.
Example Alice and Bob (both bots) work on a Mega burger
Solution 3:
Implement a temporary Recipe request or complete recipe to make the bot work towards something maybe useful later.
This usually happens when the bot is not moving, so when waiting for a new recipe or for something to cook.
maybe if bots movement was physics based they would have a easier time pushing others away.
It's also worth investigating in navmesh's obstacles or similar functionalities.
create a_SetPlate(ActionIndex, PlateID)
where this action will apply on the current player, setting his current plate to PlateID or null if PlateID == 0
It's impossible to pause as there's no script to handle 'Player.Pause' input action
Suggested fix:
move player unrelated input handling to its own game object and handler script alongside it.
It would be nice to have multiple kitchen environments.
So it doesn't feel as crowded when there are more players, and to see how the Bots behavior differs when playing in different environments
Calculations for the minutes remaining are wrong in the display
Right now, when a Bot Player Fails a delivery it puts the plate away, but when a new recipe is assigned, if any of the Bot's plates are valid for the new recipe, then the bot should use that one, preferably the one with the most ingredients added to it and still valid, or another metric.
The availability of an ingredient should take in consideration the player asking for it, this way we can differentiate ingredients owned by another player or the one asking for it.
And make sure no Bot steals other player's ingredients.
When starting a new game for the first time, after selecting the player configuration and staring the game, the players spawned do not match the configuration, but the one serialized before.
After that, it works as expected.
Unknown cause.
Closing and reopening the Game does not fix the issue
More frequent Request for more players
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.