The Dink Network

New Dev File: Push and Pull

February 24th, 11:13 AM
custom_king.png
redink1
King Male United States xbox steam bloop
A mother ducking wizard 
Robj (a secret ballast scorcher) and Bluedy (a secret pixel surgeon) have released Push and Pull. This is a new developmental D-Mod that demonstrates a new technique to push (and pull!) objects.

As you likely know, pushing, as implemented in vanilla Dink Smallwood, is... not very good. It is only used once to move an object in the original game (and 3 other times to simply have Dink say the object could not be pushed). It is the absolute weakest way to interact with Dink's world.

This file is magical. Pushing and pulling are so smooth it feels as natural as smacking a pillbug around. I haven't looked at the source code, and I'd like to think I'm pretty experienced when it comes to the DinkC arts, but I have no idea how Robj managed to make this happen. Look at this magic:



February 24th, 02:38 PM
custom_fish.png
SabreTrout
Noble Male United Kingdom
Tigertigertiger. 
That's neat. Would have loved this for designing some push/pull puzzles back in the day.
February 24th, 04:05 PM
peasantmp.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
DUCK, DOOD, WE CAN NOW TRULY PUSH THINGS

but no one's gonna make a dmod, so i guess that's that
February 24th, 08:39 PM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
Oh well, gives me time to fix any bugs that pop up. I've been made aware of 2 already that I'll have fixed and updated tomorrow.
Good thing is, people can go ahead and implement these scripts, and update them as they come, because the scripts that do all the work are called from external and the author should never have to touch them, so even If they have moveable sprites they've edited and stuff, can just drop in the updated external scripts and overwrite them, don't need to actually change any code. Easily implemented, easily updated.
February 25th, 10:04 AM
spike.gif
scratcher
Bard Male Finland bloop
cigarette bonca 
Wow, impressive! I think I tried doing something like this in a dmod at some point, but it wasn't anywhere near this smooth.

Is one of the bugs getting stuck inside a rock? Because that did happen once.
February 25th, 11:34 AM
death.gif
RangerLord
Peasant Male bloop
I'm here, just hidden in the shadows. 
Man, it's sweet to see Dink's pushing animation at this detail. Good job guys.
February 25th, 11:56 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@Robj and Bluedy:

Nice work guys!

@Skurn:

DUCK, DOOD, WE CAN NOW TRULY PUSH THINGS

but no one's gonna make a dmod, so i guess that's that

But you are wrong Skurn. There are several dmods currently being developed. Don't you read the forum posts about that?
February 25th, 09:14 PM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
"Is one of the bugs getting stuck inside a rock? Because that did happen once"

Yes. Already fixed. Just gotta upload. Fixing one other thing first.
February 26th, 10:27 AM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
Sorry guys, haven't uploaded it yet, couple more bugs found, also cleaning up the code a bit, and then I'll update it.
February 27th, 10:38 AM
custom_king.png
redink1
King Male United States xbox steam bloop
A mother ducking wizard 
V1.01 is now available
February 28th, 01:00 AM
dinkdead.gif
megadogV2
Peasant Male New Zealand bloop
Only paritally dead. 
I'm pretty sure you can also push a rock in Windimere. I don't recall it DOING anything, but you can do it.
February 28th, 04:16 AM
peasantmp.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
yeah on the arrow. that shit confused me
February 28th, 05:38 AM
knights.gif
DinkKiller
Peasant Male United States xbox steam
The world could always use more heroes 
Huh. This would have been very useful to me a couple years ago. Maybe this will finally get me to finish polishing up that big update for my D-mod that I never released.
March 1st, 11:32 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@DinkKiller:

Huh. This would have been very useful to me a couple years ago. Maybe this will finally get me to finish polishing up that big update for my D-mod that I never released.

Well, don't be shy. We are all waiting for it!
March 10th, 03:16 AM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
I would just like to say.
I have fixed all the bugs, and thoroughly tested it, and can not find a single bug, even if I deliberately try to do stupid things with this system. So that's good.

The reason I haven't released it yet is because, I'm now implementing the DinkHD, Mobile device, and gamepad compatibility.
And also I have scripted a way to enable an optional "collision system", so when pushing and pulling an object around, rather than the object stopping at hardness based on it's depth dot (which means you can mash objects together), it will stop when it's hardbox edge meets another. It's a work in progress, and by that I mean, it is currently implemented, I'm just seeing if their is any bugs I can find before I release it.

Also, going to include a tutorial video on how to implement, and an option to enable "T-Mod" mode in game, so you can see how things work in the Dmod.

Waiting til this is all done, rather than just releasing the bugfixed version, so Redink can just do 1 epic news update I guess. Then if any other little bugs pop up, I'll address them.

This is now a 17 script system, but still extremely easy to implement, with only 1 of those scripts having to be attached to a sprite to make it moveable, and nothing else required, any editing of any procedures in that sprite is also done via that 1 script. It is the only ".c" script, the rest are compressed to make 1.08 run it smoother, and also because there is not need for an author to ever touch them (source ".c" scripts are included in a separate folder).
March 10th, 03:44 AM
anon.gif
Exzcimus
Ghost
 
I've tested this new dev file on the v1.08, it did exhibit a bit of performance issues when using the pull function. Sometimes the game would crash after attempting to pull the objects by pressing and holding P when you are not close enough to the object. There's a glitch where dink doesn't return to his idle and walking sprites after using the push and pull functions, but it turns out that it ends up on showing a push sequence instead of an idle sequence when you move away from the object. As a result, dink walks with a static push sprite.
March 10th, 05:47 AM
pq_cthunik.gif
GOKUSSJ6
Peasant Male Poland steam
Everyone should get a pizza for free in each week. 
OG Dink 1.08 at this point is outdated and inferior. Just either use DinkHD or FreeDink for that matter.
March 10th, 06:07 AM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
"I've tested this new dev file on the v1.08, it did exhibit a bit of performance issues when using the pull function. Sometimes the game would crash after attempting to pull the objects by pressing and holding P when you are not close enough to the object. There's a glitch where dink doesn't return to his idle and walking sprites after using the push and pull functions, but it turns out that it ends up on showing a push sequence instead of an idle sequence when you move away from the object. As a result, dink walks with a static push sprite."[/i]

Hi.
As mentioned above. These bugs have all been fixed, I have not released the update yet, as I am adding a couple of other improvements first.

Thanks for testing tho!
March 30th, 05:03 PM
bonca.gif
Christiaan
Bard Netherlands xbox
Lazy bum 
This is amazing. A gamechanger! Might pull an ancient experimental D-Mod out of the proverbial closet because of this very welcome script.
March 30th, 05:46 PM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
Wait for the next update. It's compatible with every version of Dink and I've thoroughly tested it, ironing out all the nasty bugs people found.

Or you can actually go ahead and start using this version, but just make sure you update the scripts to the latest update when it comes out.

I'm aiming to get it out within the next fortnight, I've got a lot of projects going on atm, which is why it's taking a while.
March 30th, 06:23 PM
peasantmp.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
how dare you utter the "f" word without immediately following it with "sucks"
April 4th, 03:39 PM
bonca.gif
Christiaan
Bard Netherlands xbox
Lazy bum 
Nice Robj, can't wait! The current version is quite buggy.
April 7th, 10:58 PM
custom_robj.png
Robj
Peasant Male Australia
You feed the madness, and it feeds on you. 
PREPARE FOR A BEHEMOTH UPDATE/HYPE POST.

Just about done. Should be this week
This is honestly the most complex thing I've ever created in scripting, so it was hard to get it all working properly in all versions, but I finally deleted the last line from my own "Buglist.txt" yesterday. Just gotta finalise a couple of things and get it tested by Bluedy and it'll be good to go.
The way I've rewritten this, I've included a few optional extras/edits that you can turn on by changing sp_custom keys in your sprites script.
Also, there is a couple new procedures in the moveable sprites script - one is poked constantly as the sprite moves which allows some cool stuff like detecting when the sprite has reached a certain location. And the other is poked AFTER the sprite has moved and the player has let go of it. I've created a few cool example uses of these as well.

There is a hard box based collision system which is turned on by setting a custom key "setcollision" to 1 in your sprites main procedure, but will only work in Freedink versions, due to 1.08 and DinkHD bugging up. You can still set it to 1, it's just ignored in those versions, for this reason, to use this feature, you need to make sure my "version checker" is implemented, which has been uploaded to the DN and approved, but no news post yet (easy to implement, tutorial video link included, no globals used). If you don't have version checker, setting it to 1 will do nothing.

THEN.. I realised the hard box based collision system does look cool, but certain sprites stopping right at there hardbox edge means there is still a gap between sprites, and it'd be cool if you could customise their hardbox a bit for collision calculation only (to allow them to move a bit closer to other hardness for more of a snug fit I guess?). So there's also 4 optional custom keys you can set when setcollision is enabled, in the sprites main procedure, to trim the specified amount off the hardbox edges for hardbox collision calculation only ("trimleft" "trimtop", "trimright", and "trimbottom").

There's other optional stuff too. And none of this is required, the basic push/pull still works based on depth dot Calculation, by just attaching the basic skeleton move script to sprites.

I'm excited about this, and how I was able to maintain the ease of use and implementation.

Fin.