The Dink Network

Reply to Re: New dink-like game making thingie from RTsoft

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
October 17th 2006, 07:02 PM
seth.gif
Seth
Peasant He/Him Japan
 
Dan> "One of the things I still like about DinkC is how simple it is in regards to scripting dialogs and cutscenes. The wait, say_stop, and move_stop internal functions are great and easy to grok."

I agree, and I went through the same process of looking at coroutines and such, but the simplicity comes at a price in dink's case, if any other function is called in the script it forgets where it was "sitting" at. I think avoiding the whole issue of being able to sit at a specific position makes things cleaner, otherwise we need ways of canceling the threads from other functions and it gets real complicated real fast. I think.

kikki> "I'm guessing Dink Smallwood isn't very markatable these days, or is there other reasons behind not following the original game up?"

You guys didn't leave me any Dink stories, you've done 'em all!! I like the idea of associating with a place rather than a specific name, feel less tied down to a single plot.

About typing a lot: Well, actually the line is even longer than I used, it's:

this:GoalManager():AddSay(...);

The "this" could also be any other entity, you can access or control other entities goals.

Part of the reason for the extra addressing is Goal's themselves are objects that can be manipulated:

g = this:GoalManager() ushNewGoal("Killing");
g.AddSay("I'm going to kill now.");
g.AddSay("I'm done");

//so that's a little like DaVince's idea, a "g." isn't so bad.

Then another entity can examine us like this:

if (entEnemy:GetGoalManager():GetGoalCountByName("Killing") > 0)
//We know the enemy has at least one goal called Killing!! Oh no!
end

Of course, you could also write your own helper function like for all entities to use:

function Say(text, entityToSayIt)
entityToSayIt:GoalManager():AddSay(text);
end

//then the entity could say:

Say("Cool!", this);