Jump to content

Quick questions regarding viability of a Project


Livor

Recommended Posts

Hi there,

 

in the next few months I will be working on my master thesis wherein I will try to compare the performance of different techniques for decision making. Namely these will be Decision Trees (for convenience reasons might be changed to behaviour Trees) and Goal oriented Action Planning (short GOAP).

 

I was doing a little research already trying to find a scenario suitable for this task and think that Don't Starve might be the best I have found so far. So now the question is at hand if I am going to make use of the modability of Don't Starve, or rather recreate the scenario in my own prototype application so I am in full control of what I can do. Of course I would really like to use Don't Starve with reduced content for this as the visuals alone would make my work a little bit more pleasant...

 

I have done a little research already regarding the modability of Don't Starve and so far I think it is actually possible to do what I want. But just to be sure I don't get stuck half way through the project I would like to double check if my research/assumptions so far are correct. For this I would really appreciate it if someone with a little experience would just take a quick look and tell me if he/she thinks what I need is possible. Simple answers like yes/no/maybe/I'm scared would already help me. (the latter might be less helpfull tough)

 

The Questions would be:

1. Is it even possible to create a Don't Starve bot?

My assumption: yes.

I have already found the mod "ActionQueue" wich makes the character do several actions one after another, so I assume I could make the Character do whatever I want via script. I might also want to take a look at willow who sets stuff on fire all on her own.

 

2. Can I apply a time lapse in order to get faster results?

My assumption: Not likely

A little example to explain what I mean: for my bachelor thesis I worked on Crowd Simulation, in order to get quick test results I fixed the frametime to 40 milliseconds the application run at full speed so I would get my test results as quick as my CPU could run through the simulations (I got about 10.000 test simulations in half an hour, that was quite convenient...). Obviously that would just be a nice to have for me, altough an extremely convenient nice to have. Considering that a feature like that would not have any practical purpose when it comes to actual gaming I am pretty sure this is simply not possible...

 

3. Can I bind C/C++ Code in Don't Starve?

My assumption: no clue

At this point I want to point out, that I am completely new to lua itself, altough I have experience in other languages. I was told that lua itself can bind compiled C/C++ code for execution, but I wouldn't be surprised if the game wouldn't allow that. If it acually is possible to do this it would most likely safe me some trouble I would most likely have while learning all the lua I need...

 

I thought I would have a few more questions, but I think if someone could give these a quick thought it should suffice for my final decision

 

Thanks in advance!

Link to comment
Share on other sites

 

2. Can I apply a time lapse in order to get faster results?

 

I don't think you could get away with this without reworking large portions of code.

 

 

 

3. Can I bind C/C++ Code in Don't Starve?

 

Yes, Lua is surprisingly versitile.

 

ex:

imported_function = package.loadlib("somedll.dll", "somefunction")imported_function()
Link to comment
Share on other sites

1. Is it even possible to create a Don't Starve bot?

Yep, pretty sure this is possible. Everything an entity does happens with Actions, you would just need to send a series of actions on the player entity.

See EntityScript:PushBufferedAction (and other functions) in "...\scripts\entityscript.lua"

Link to comment
Share on other sites

simplex, this may be your kind of stuff. :razz:

 

Also, a DS playing programm sounds a bit heavy :razz: only for individual things such as auto-kiting and self-cooking I guess?

 

Yes that would be a bit extreme, but I'm not talking about a program actually playing DS but rather my own "game" that resembles just what I need in a minimum visuals prototype fashion (red circles running around eating green circles, that kind of stuff... ;) )

 

Thanks guys, your answers are pretty much what I expected.

Sounds like I am actually going to do this! Now all I need is the time to start... :)

Link to comment
Share on other sites

I worked with Cheat Engine already, but didn't realise it has a general purpose Speedhack. In fact I am really surprised something like that is even possible.

 

I tried it now, the speed increase is a bit limited, but a day is over in just a minute or so, so it will definitely come in handy once I start my tests.

 

So... thanks for the hint! :)

Link to comment
Share on other sites

I worked with Cheat Engine already, but didn't realise it has a general purpose Speedhack. In fact I am really surprised something like that is even possible.

Considering that pretty much every game uses ticks or a main loop with some sort of delay, it's possible to just modify that delay to change the game's speed. I don't know for sure if this is how Cheat Engine handles it, though.

Link to comment
Share on other sites

Right, I'm still concerned about the possibility of tunneling and/or similar effects that might influence gameplay however.

But I'll just enjoy that it's working and keep an eye open for such things... just in case... :)

Link to comment
Share on other sites

Maybe i missed some point, so sry if i say something stupid, but as far as i understand it, what u really want, is not to make a bot that controls the character, but just use creatures. their AI is fully modable. u can just mod the character to be untouchable and then program creature for whatever u wanna do. the only small problem might be, that only a certain radius of the world around the character is calculated, dunno if this can be changed, but maybe this can be workarounded with dont starve together.

Link to comment
Share on other sites

As someone who has used chat engine's speed function quite a bit (I am a tower defense addict and sometimes they are to darn slow ;)), I can say definitively that suppressing up the game via cheat engine can absolutely impact gameplay. Not always, and when it does is not necessarily by a huge amount, but the point of experiments in science is replicability... so Id be at least a little wary, or at least mention it when describing the procedure.

Link to comment
Share on other sites

Maybe i missed some point, so sry if i say something stupid, but as far as i understand it, what u really want, is not to make a bot that controls the character, but just use creatures. their AI is fully modable. u can just mod the character to be untouchable and then program creature for whatever u wanna do. the only small problem might be, that only a certain radius of the world around the character is calculated, dunno if this can be changed, but maybe this can be workarounded with dont starve together.

 

Might be I could make it work with creatures too in some way, but for multiple reasons (e.g. the "certain radius" around the player :) ) I figure it's actually easiest to simply make a bot that controls the player. Makes it easier to follow him as well...

 

As someone who has used chat engine's speed function quite a bit (I am a tower defense addict and sometimes they are to darn slow ;)), I can say definitively that suppressing up the game via cheat engine can absolutely impact gameplay. Not always, and when it does is not necessarily by a huge amount, but the point of experiments in science is replicability... so Id be at least a little wary, or at least mention it when describing the procedure.

 

Thought so, thank you for sharing your experience. :)

Hmm, I think the "mentioning"-part should have been a bit more obvious to me, thanks for the hint too. :)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...