Duck Game Developer QA

Just before the holidays there was a 4 hour stream where I played Duck Game and answered questions from the community. It was a long and messy stream, and it didn’t feel like the questions where all answered in a satisfying way so I decided not to post a VOD and rather to make a QA post here that covers many of the questions from the stream in more detail. This post was done over a number of weeks, so sorry if it’s a bit of a trip to read. It’s a long one too, so brace yourself…

When is the PS4 version of Duck Game coming out?

As some already know, the current PS4 version of Duck Game is missing a number of features (the level editor, for one!). It has also had connection issues since it’s release ten million years ago and these issues have prevented some people from playing online with each other. I’ve been working on a total rewrite of the PS4 version and at this point it’s pretty much complete! It’s going through Sony’s certification process at the moment, basically what that comes down to is us sending a build out to them, them getting back to us saying “This is broken, and we don’t like the way you did this..”. Then I fix the issues and send a new build back to them for another go. It’s impossible to give a solid estimate for how long this process can take, but things are looking good and I don’t expect it to take a whole lot longer. The dream was to release the PS4 update in 2021, but since the game hasn’t gotten through cert yet it’s going to be early this year now. As soon as it’s approved, I can’t see any reason why it wouldn’t be coming out right away unless we uncover performance issues in 8 player testing or something like that.

So I still can’t give an exact day of release, but I can say that the PS4 rewrite will:

  • Perform much much better, with less frame drops and vastly improved network synchronization.
  • Support 8 players online (unfortunately not locally, 4 controllers is a hard limit on PS4).
  • Have all the other new DG 1.5 features such as City levels and a number of new guns and items.
  • Include control customization.
  • Include a level editor and the ability to play custom levels online with your friends.
  • Be an absolutely free update for people who own the game.

I’ll be working with my publisher to try to get the game to be significantly on sale for release, and also potentially available for free on PS Plus (fingers crossed!).

When is the Switch version going to be updated??

Once the PS4 version is all ready to go, the Switch version will be next up. It’s basically fully working with 1.5 right now, but it still needs a round of testing and optimization as I want to be very careful not to let the amazing quality of Armature’s port slip with my changes. It will have all the latest features, and unlike the PS4 version you should be able to play 8 players on one console with it using sideways joycons. So expect it sometime in the first quarter of 2022, or expect me to be saying “It’s done and just going through cert!” by then.

What are the engines for the Switch/PS4 ports?

Both versions are still running on XNA (Monogame), but the build process is fairly different for each. The PS4 version originally used Unity to run the XNA code via a wrapper, but the rewrite is using the PS4 version of Mono which has allowed the build process to be much quicker and the code to be more efficient. The Switch version, on the other hand, is using BRUTE- which is a C# to C++ transpiler written by Tom Spilman and some other wonderful people. How that works, is that Duck Game’s C# code is fed into BRUTE and it spits out C++ code on the other end which can be compiled directly to the Switch using some interface classes that allow the Switch version of Monogame to interact with the hardware. The methods used by both ports result in very good performance, but the Switch version unfortunately takes a lot longer to build (at least a minute up to 5+ minutes for a full rebuild vs. the 15 seconds or so to build the PS4 version). This makes working on the Switch version a little bit harder, since you have to wait that long before you can test each code change. If you make a lot of silly mistakes this can make a 5 minute task take half an hour!

What inspired you to create Duck Game in the first place?

Duck Game’s original incarnation was made using Game Maker:

gaem

Look at that, it’s the same game! Originally, the game wasn’t going to be a multiplayer game at all. I wanted to make a game just like my favorite game in the world, James Pond 3, and Duck Game wasn’t the first time I tried to do this either- This is the original duck sprite sheet:

veryoldduck

The original game had 360 degree platforming similar to JP3 or Sonic, not sure if I’d intended to do the same for the newer game at any point but that obviously didn’t end up happening. One day my friend Ryleigh and I where hanging out making games and I showed him my progress on the James Pond thing, we’d been playing some local multiplayer shooty games around that time and he suggested adding guns so we could fight each other in it. Pistols and shotguns where added first, with one shot kills because it was the easiest and quickest way to get it working. It ended up being fun, so I put together a prototype and one thing led to another. Eventually Bawb (Bob Mills) from OUYA and I met at a show and he asked if I was making anything that’d be cool for the console, after porting the prototype to the OUYA and the game was born. Without Bawbs enthusiastic support from the beginning, Duck Game would probably still just be that old Game Maker prototype sitting in a folder…

When Duck Game first launched it released on the legendary Ouya… How was that whole experience, launching on a new platform without the history of something like the big 4 choices?

It was exciting!! Having never developed a game for a console before, or ever making whole game using XNA and C# (Pretty much used Game Maker and a bit of Unity up to that point) it was a learning experience in many ways. Since Bawb had gotten me working on the project in the first place, there was never a point where I’d considered other platforms or thought of what it’d be like if the game was being made for PS3/4 instead or anything like that. Back then I did things head first without pondering things too much until they where finished and I really miss that mentality- as I get older it’s easier and easier to avoid starting something altogether for fear that it won’t work out. Developing for the OUYA was a really smooth experience, there was a version of Monogame being developed for it based on the Android version and it made things really easy. The workflow was to develop the game in Windows, then as soon as a new version was ready I would build it to the OUYA through Xamarin and test it out. Often the game wouldn’t perform as well on console as it did on Windows, so it would usually take a day or two running it through a profiler (A tool that helps you find where the slowest bits of code are) and optimizing code to make the latest builds run well.

oldduckoffice

Levels where originally going to be supported by buildings. The OUYA didn’t like all this extra rendering too much so that’s why we have floating levels.

What was the hardest part of making Duck Game?

After the OUYA version, I showed the game to Adult Swim Games- they had previously published my friend Andrew Morrish’s game “Super Puzzle Platformer Deluxe” which I had worked on the music for (This game was also a huge inspiration to me, and Duck Game owes it a lot of credit aswell). Adult Swim had just finished publishing a local-only couch coop multiplayer game that didn’t do so well, and the only way they could be convinced to publish DG was if I agreed to implement online multiplayer.. This turned out to be easily the hardest part of making Duck Game and remains the hardest part of making it to this day. I had so much trouble with it that at one point during development I practically begged Adult Swim to let me drop online multiplayer for now and add it later, but they extended the deadline and insisted that the game have it for release. Originally DG had prediction based client server networking, all the fanciest games like Counterstrike and things had it so I figured my game must have it too. It turns out that these systems are very complicated, they need to basically record the game state constantly and be able to rewind it to earlier stages to ensure the game stays in sync. Months into development I gave up and dropped this method in favor of the much simpler P2P system which is currently in the game and I’ve never looked back.

How did you learn to write networking code?

Most of what I knew back then, and the bones of the system currently implemented in Duck Game, came from the Tribes Networking Model: https://www.gamedevs.org/uploads/tribes-networking-model.pdf.  Suppose Duck Game owes a lot to Mark Frohnmayer and Tim Gift for writing this wonderful pdf.

Everything else is owed to Glenn Fiedler and his Game Networking series: https://gafferongames.com/categories/game-networking/

He even got back to me and helped me out a lot when I sent him an email while struggling with Duck Game’s real time synchronization code. He’s a really good guy.

Any plans for fixing the desync online? There’s a lot of situations where my friends say “I wasn’t there when I died!”

Unfortunately, this is just one of the issues that comes with the game having a P2P (Peer-to-Peer) networking system (and, well, with networking video games in general but P2P makes it extra obvious). I’m going to get into a bit of what I know about game networking now so if that’s not nifty to you then you might want to go on to the next question!

The root of the cause for situations like this is lag. When playing a network game, you can never actually see things as they are, you can only see a representation of how they may be. This is because data takes time to travel between computers, and the more time it takes the more pronounced this fact becomes. If you have 500ms of latency (one way), then everyone else sees your duck 500ms in the past and you see their ducks in the past too. So if someone shoots your duck, your duck will pop on your screen and you’ll die where you where 500ms ago- cause that’s how they saw it happen. Other players’ ducks are a bit like stars, they’re extremely far away and light can only travel so fast. The light from stars can take upwards of millions of years to get to us, so we’re actually just seeing a representation of how they used to look, and therefore not a representation of how they are but rather of how they may be. If you flew towards a star, you’d be collecting all that old light data on your way and you’d be able to see it transform really quickly as the time gap between how it was and how it is closes. It’s the same with a Duck Game duck, if you where able to fly through your internet wire back towards the computer you’re playing against, the duck would appear closer and closer to where it was actually supposed to be until you reached the other computer and saw its true state. We can’t actually know how the stars really are, but we can study closer stars vs. further stars and make guesses as to what they might look like if there was no lag. And so, must the diligent Duck Game player do this. Things are not as they seem…

Much of video game networking science is trying to work around the fact that two players are not seeing the same thing, since even in the most ideal situation game latency would still be limited by the speed of light and there would still be lag. In games like Counterstrike which implement a client-server based simulation, there’s one computer that runs the game’s simulation (the Server) and all the other computers basically just send inputs to it to tell it how they want to move around (the Clients). So you’ll say “I pressed up, I want to go forward”, and that message will be sent to the server. One day, the server will get back to you and say “No problem, you moved up, here’s where you are now.” This message from the server could take say  200 milliseconds to get back to you, which means it could take 200 milliseconds between you pressing up, and you actually starting to move up. This sucks. So clients implement something called client-side prediction to compensate for this. With client-side prediction, you press up and your game simulates that move immediately so you have good solid gameplay feedback without feeling super laggy. Client side prediction can also move all the other players along their current paths of motion, allowing your game to somewhat simulate where they’re going to be aswell. This way, the code itself is making guesses as to the way things “really are” and in an ideal situation it means that even with 500ms of lag, if the game guessed correctly then you’ll see the same thing the other player sees. What makes this complicated though, is when it guesses wrong and two players see different things.. One day the server might get back to you and say “Oh no, you’re actually 10 feet left of where you think you are, and that guy you killed? He’s actually alive and it turns out that he killed you instead”. When this happens, your game needs to rewind its state back to where it was when things went wrong and play back the server data to correct things. This is where the rubber banding effect comes from, where players start warping back and forth when things get laggy. All of this comes together into a somewhat smoother gameplay experience when playing with lag, since it allows you to see things as they really are in ideal situations and the rubber banding helps you see what went wrong if something does. It also has the very nice benefit of making cheating much harder, since there’s one server running the true simulation and it can decide whether or not something really happened. If you say “I’m warping around the map at the speed of light and shooting everyone right in the head like a champ”, it’s a lot easier for the server to look at it’s simulation and say, “No.”

Duck Game, of course, doesn’t do all of this, because all of this is quite hard to do (there are also some nice benefits of P2P, though, which we’ll get to in a second). In a P2P system, there isn’t really a “server” in the same way. Everyone is running the simulation on their own computer, and nobody else’ computer will ever get back to them and say “No, here’s the way things really are.” That means you can say “My duck has just used it’s brainwaves to send out a pulse that cooked every duck into a roast chicken, even though I’m totally out of psychic energy and untrained on how one uses it anyway.” and everyone else’s game pretty much just has to say “Alright. Sounds good. Cooking duck now.” It also means that on someone else’ computer you might be standing where you where seconds ago, and if they shoot you then you’re going to see your duck suddenly appear dead at where you used to be. No prediction to help ducks appear closer to where they really are, no rubber banding, no nice feedback to help you discern what the hell just happened. No server to look at both situations and say “No, you didn’t actually kill that duck. You both seem to be lagging”. Just your duck suddenly popping to somewhere else and dying, and you thinking “Hey, that didn’t hit me, what the hell?”. These are some major downsides of a P2P system, and it means that when you’re playing at high latencies things are going to get messy.

Where P2P shines, however, is in low latency situations where there’s very little chance of anyone cheating. Playing with your friends is a great example of when this is likely to be the case, and that’s what Duck Game is all about. As we talked about before, in a server based game everyone connects to one computer and that computer tells everyone what’s going on in the simulation. Let’s say everyone has a latency of 100ms, which causes it to take 100ms for their information from their computer to another computer, and 100ms for the other computer to get back to them. In a client-server (not P2P) situation, let’s say Bob and Doug are two players connected to XxDarklord99xX[DUK]’s server. Bob has resolved to shoot Doug square in the face, so his computer sends a message signaling his intention to Darklord’s server because Darklord is the host, they’re running the simulation and they need to know about it. 100ms later, Darklord gets the message and decides that killing Doug is a cool thing to do- they relay this message forward to Doug so he can know how it is. 100ms later, Doug’s computer receives the message and Doug sees that he has been shot in the face. It took 200ms for Bob’s message to get through to Doug.

In a P2P situation like Duck Game has, Bob and Doug don’t have to go through Darklord’s computer to talk to each other. They have a direct line, so if Bob wants to shoot Doug he can tell Doug straight away. Bob sends his message, Doug gets it in 100ms and sees that he’s been shot in the face. This time it only took 100ms for Bob’s message to get through to Doug in the same situation. That’s half the time it took in the client-server model. Another interesting thing, is that in the client-server situation it may take 200ms for Bob to kill Doug, but it only takes 100ms for Darklord to kill either of them (or for either of them to kill Darklord). Since Darklord is the one everyone has to go through, it means that they get to see the information 100ms quicker than everyone else allowing them to act on it first, giving Darklord a bit of something called “host advantage”. So P2P can cut latency in half and it (mostly) eliminates host advantage. Because of these reasons, I think P2P is the perfect system for a game like Duck Game which is intended to be played with friends at low(ish) latencies. P2P is not so good for playing at high latencies with strangers who may or may not want to show you how they’ve been blessed with the ability to cook ducks with their brainwaves.

You seem to think adding online is hard, do you think it’s worth it for me to add it in my game?

It was absolutely worth it, and there will definitely be online multiplayer in any games I make in the future. If you’re an independent developer, or if you’re new to networking, I recommend a P2P system as I found it made the development of Duck Game’s online much easier. Also, the problems I had with Duck Game may not be problems you’d have with your game. DG has a lot of complex real time object interactions and unexpected aspects that made implementing its online a challenge. For example, at the start of every round there’s a countdown and as soon as it’s finished everyone is allowed to move. Synchronizing the timing of this so that everyone starts moving at the same moment was very difficult and it still doesn’t work as it should. In a lot of games this wouldn’t be a problem, but in Duck Game rounds happen so fast and so often that it’s very obvious and it can be fairly frustrating. It could even cause you to lose matches entirely when it’s really acting up on levels with spawns right close to guns.

What engine or framework would you choose if you developed a game like Duck Game now? Some XNA thing like Monogame or something new?

Honestly I would probably still use Monogame (XNA), I can’t imagine I’d use anything else for 2D games in the future. It takes a bit of work to set up vs. Unity or Game Maker because XNA doesn’t come with its own level editor, and a few of the built in systems aren’t so good (the audio stuff in particular is awful, I’d highly recommend implementing NAudio if you plan to use it for a larger project). Once you get through the growing pains though and it’s quick and easy. It’s also C#, which is my favorite language and I wouldn’t really want to make games using anything else. C# is clean, compiles quick, let’s you have a lot of fun making systems that change the way you write code, and best of all C# games are extremely moddable with a minimum amount of effort. It’s also flexible enough to withstand a whole lot of shitty poorly written code without punishing you for it which makes it great for jams. It’s an indie developer’s dream.

To anybody looking to get into Game Development who is discouraged by the need to find your own level editor, or the need to learn C#, Game Maker as it’s very quick to get started with and I found GML coding quite a bit simpler to get the hang of when I was first starting. It also has a built in level editor, sprite editor, and a visual scripting system so you can basically make your whole game without ever tabbing out of it.

What’s your favorite mod, or one that surprised you a lot?

Picking a favorite would be an impossible thing to do, but I’ve always had a place in my heart for DWEP (Dord’s Weapons). Of all the mods I’ve played, I think DWEP feels the most like an extension of the original game and the wacky nature of it’s weapons are very much in the spirit of things. Dord is also a cool person, an awesome pixel artist and a brilliant game designer. Sometimes when playing DWEP the game designer part of me just gets giddy at how much better it’s put together than the original game, it really is something. The UFF Items mod is also really cool, and again feels very much like an extension of the original game. It and DWEP have been around since pretty much the beginning and they’re both classics.

The mod that surprised me the most was probably the 8 player mod. I couldn’t believe that someone was able to make a mod changing something so fundamental as the number of players that the online could support. DG was hard wired for 4 players and it must have been a ton of work to overcome that without being able to change the original source code. The 8P mod was also the inspiration for officially adding 8 player support in DG 1.5 so I owe a lot to it. Thank you.

What do you think of doing official community mod packs for the game? What about official map packs?

As much as there are some really awesome mods and map packs that are frankly better than some of the built in maps, I just don’t feel comfortable implementing them as an official part of the game- whether that be adding them directly or by having the mods download automatically or appear in the game’s menus. I’d like Duck Game vanilla to be just that: vanilla, with no extra stuff so people can decide for themselves what things they want added to it. I don’t want to give preferential treatment to one mappack/mod or another and pull attention away from the others. They can do that on their own by their own merits and the all time top rated lists in the workshop already serve as a good way to find some pretty good content.

I’m also the sole developer of the game and I plan to move on to other projects soon… I’m sorry. If I did mod packs now I’d be picking them with my foot halfway out the door, there would be one mod pack ever and I’d be onto other things. I take the idea of picking official mods very seriously and even if I was up for the idea it’s not something that I’m comfortable doing unless I’m active in the game and in the community. Any official mods would have to be continuously moderated, if they where implemented into the game I’d have to work with the creators to update them regularly and if they came in the form of a list then that list would need to be updated with the latest and greatest mods. It’s awful to think that someone might work hard on their mod with hopes that it might be an official DG pick one day, only to find out that the developer hasn’t added a new pick in years.

People have also recommended that I work with members of the community, let them send me picks and moderate existing ones, etc. The topic of picking one of the Discord servers to be the official server has also come up. This again, is a problem for me because I am only one person. I’m just not comfortable designating other people to speak for me and my game, I don’t have time to moderate and work with a constantly changing group of people and I don’t have time to keep up with community politics which I think is a very important aspect of making good decisions. Trying to take on such a large undertaking would only lead to apologies and ulcers and lost sleep. I’d rather just get those out of the way right now. I’m a game developer, I’m a programmer, I’m socially awkward, easily distracted and I’ll lose sleep and get sick in the pit of my stomach over just about any problem- I’m just not a publisher, a curator or community manager. I’m really sorry.

I’m not really a fan of the old Star Trek series (of the 5 or so minutes I’ve seen of it) but I think the old joke would be “Dammit Jim! I’m a lazy video game programmer, not a functioning member of society.”

Will you ever add (X) to the game? Will the arcade update you where working on for the game ever come out? What about capture the flag mode and AI bots and stuff?

I don’t think I will… At least, not in the immediate future. Something that I’ve already mentioned above, and that I’m going to make a theme in this QA, is that I’m planning to move on from Duck Game development after the PS4 and Switch updates are released. I’ve been planning a new project for a long time and I want to get started on it full time this year as soon as possible. That doesn’t necessarily mean that Duck Game will never be updated again, or that it will never get a sequel, but after 7 years of fairly consistent development on the game a break is in order and I’m taking it. I’m sorry… But I do want to say thank you, to everyone who has played the game, those who write mods and those who create/participate in the game’s different communities. Thank you for all the kind words, thank you for the streams and videos, thank you for trying to keep the mood around the game wholesome. Duck Game has always been about playing with friends, and over the years so many different communities have formed to help people find others to play with. People getting along with each other and having fun is so much more important than games themselves, and it brings me almost to tears to think that something I’m involved with was able to inspire people to create communities and to help people make friends. It’s amazing. It breaks my heart to think of moving on from Duck Game, and that feeling has been what’s kept me consistently developing the game all this time. But new projects have been pulling at me for a long time now, we only get so much time in this world. There’s so much that I still want to do. It’s time to go, for now.

Why haven’t you done a Mac/Linux port?

As the sole developer of Duck Game, managing the Steam, Switch and PS4 versions has already been a very overwhelming process and the thought of adding any more platforms to the mix is just too much for me to handle. It’s been said that porting to Mac/Linux is easy to do, and that I should just go for it, but I think the answer is more complicated than that. It’s taken years of development to get the Windows version running consistently for everyone with good performance and minimal weirdness, and still people run into issues. There are so many different versions of Mac and Linux, so many configurations and peripherals, so many OS specific things that Duck Game does which would need to be figured out separately and tested for each platform.

For me not to lose sleep over the new versions, they would each need extensive testing and a significant amount of time put into making sure that each version was feature complete and took advantage of it’s OS without running into performance issues or Input/File System/Resolution caveats. The game’s Steam integration would need to be re-written as it’s currently written in C++/CLI which is Windows specific, alternate Text-to-speech options would need to be found and the entire sound system would either need yet another implementation fork or it would need to be gutted and replaced (again!) since it’s currently using NAudio which is again, Windows specific. All of these problems would end up with some pretty core changes to the games code, which in turn would complicate the update process for future versions on every other platform since every other version would now need extensive testing before it could be updated again to make sure that the changes hadn’t broken anything.

Anybody who has been waiting for a Duck Game update for their version of choice knows that this already takes me forever. So in short, implementing the new versions would not be so simple- but even if the work was done the amount of time it takes me to update and test each version goes up drastically with each new version and I simply can’t take any more than is already on my plate. Especially not when I hope to be moving on to new projects. I’m sorry.

Are there any plans for a Duck Game sequel?

I have a lot of ideas for what could be done in Duck Game 2, but as of now there are no plans for a sequel. It could happen one day, but I seriously need a break from DG development for a little while before it’ll be on the table.

Why don’t Vines/Chains work online?

This is another question that’s been asked a bunch and it’s good to finally have the answer archived here. The reason vines haven’t been synchronized yet is that they basically use the same code as the ragdolls do. Any two who’ve ever picked up opposite ends of the same Duck will have experienced the Duck tornado. It’s tons of fun, but I think vines would probably have the same effect and as funny as that would be it wouldn’t be very functional.

Why isn’t Cowboy Pistol synchronized online? Will the Cork Gun ever work online?

The Cowboy Pistol, along with the Death Ray, Cork Gun and a few other guns are not synchronized properly because they aren’t complete and probably never will be. They’re dev guns and you’re not really supposed to be able to place them in levels at all. I was never able to get them working in a way I was satisfied with, unfortunately.

How come you never finished adding the boxing gloves to the game?

When I first started adding them, the only way I could think to make them work that I was happy with was that you’d punch a duck with them and they would go flying in ragdoll. I didn’t want them to be a fatal weapon, so the idea was that you could get back up after you got punched. While playing at shows, people would often ragdoll by accident and think that they had died, so I wanted to avoid having a weapon that causes you to go ragdoll out of fear that it would cause the same misunderstanding. So the boxing gloves where shelved. In 1.5 the Camping Rifle was added which solves the problem in a way I’m satisfied with, by changing the way duck looks when they go ragdoll. Looking back, if I where to try implementing the boxing gloves again, it would probably have punches make you go ragdoll with a dizzy spiral above your head. As soon as the dizzy spiral went away, your duck would get back up automatically.

What is your favorite obscure duck game ability?

If another duck is holding a large barreled gun, you can walk up to them with a flower and press throw to place it in the barrel of their gun. This has no strategic benefit whatsoever but it is fun to do.

How does the internet map option work in the lobby? I feel like I tend to get the same 20 or so maps rather than a truly random selection. The John Cena map is like every other map??

The way random workshop maps are selected is somewhat complicated, but what it tries to do first is select randomly from the top few hundred highest rated maps. Once it’s picked a few of those, a chance to pick a lower rated map comes in. I really need to adjust it to pick more mid-rated maps, or to allow customization of the map selection settings. This will hopefully happen in the final Steam version update before I move onto my new project. Not sure why it always picks the John Cena map but that’s definitely a thing that happens.

I’m going to take this moment to shout out to the KFD and Pyramid obstacle course maps. Also the maps that use custom parallax backgrounds to move a white bar behind a completely black level, revealing the level as the bar moves.. So cool!! Also shout out to Giampiero for making perhaps the finest collection of Duck Game maps ever conceived. The amount of work he’s put into his stuff is unreal and I highly recommend his maps to anyone looking for a high quality map pack with good consistency between levels.

Can you fix how the UI looks like a mess when holding F1 and Space to force start a lobby?

Sorry about that.. For anyone whose unaware, if you hold F1 in a lobby it will bring up a list of player pings. While hosting a lobby, if you press Space while holding F1 it will force the round start countdown to begin. This was originally added as a debug feature so I could start the game without manually moving all the ducks into the beam, but it’s turned out to be an important feature for starting a match when people won’t/can’t get into the beam for some reason or another. It’s sort of janky as it was never intended to be a released feature, so I can definitely look into cleaning it up now that it’s a thing.

Can you implement online physics for offline mode, or at least do a toggle or command for it somewhere?

I’m going to start answering this question by explaining a ragdoll jumping technique- when standing on the ground, if you press ragdoll, then unragdoll and jump immediately afterwards, you can get an extra block of jump height. This is called a WUMP. The reason this is possible, is because of a variable called _groundValid. Whenever your duck is on the ground, this variable is set to 7, whenever you’re not on the ground it starts counting down to zero. As long as _groundValid > 0, the game will pretend that your duck is still on solid ground, allowing you to jump off of it. What this means, is that once you walk off the edge of a platform, you have 7 frames in which you can still press jump and it will happen. If you walk off a platform and press jump shortly afterwards, you’ll actually see your duck jump out of mid-air. This is called jump forgiveness, and it’s a technique used to make platforming games a little easier to control.

The reason a WUMP works, is because _groundValid will be > 0 as you go ragdoll if you do it while standing on the ground. The part of the Duck object that counts down _groundValid is inactive while ragdolled, so as soon as you un-ragdoll that number will still whatever it was before going ragdoll allowing you to jump, usually within 7 frames of un-ragdolling. When you un-ragdoll, your duck appears 1 block above the ground to give a sort of “jumping up” effect. Pressing jump immediately after, you can take advantage of that extra block of height and jump up from the apex of it- the WUMP- this is possible because of _groundValid carrying over.

Now, the part that only works online. If you combine a WUMP with immediately ragdolling again while in the air, then spamming UP, you can get even more height. Sometimes a LOT more height.. Soh can WUMP JUMP 12 blocks high which is the highest known WUMP at the time of writing this. This and a few other ragdoll techniques are possible due to the difference in the way ragdolls are implemented in offline vs. online. In both cases when you press ragdoll, your duck is teleported 5000 pixels upwards into space and a ragdolled duck appears where you used to be. When playing offline, a new ragdoll is created and that ragdoll is destroyed as soon as you un-ragdoll. Online, however, your ragdoll is created at the same time the duck is and it is re-used every time you ragdoll to simplify synchronization.

When the ragdoll is created, a variable called _timeSinceNudge is set to zero. This variable counts up as the ragdoll updates. Usually you can use the arrow keys/dpad to wiggle your duck while ragdolled- this is only possible if one second has passed since the last time you wiggled your ragdoll and _timeSinceNudge is a counter that keeps track of that. When playing offline, a new ragdoll is created, so you always have to wait 1 second before you can start wiggling after you go ragdoll. Due to an implementation oversight with re-using the same ragdoll in online mode, _timeSinceNudge is not reset to zero when going ragdoll online and it will be whatever value it was previously. This often means that you can wiggle the duck immediately after going ragdoll, which allows you to take advantage of the existing vertical (or horizontal!) momentum of your duck which would usually have dissipated over the 1 second delay. This is why you can WUMP so much higher when playing online, as well as getting some pretty fast wiggle movements going.

I think there may be some other differences between offline and offline physics aswell, but I can’t remember what they are at the moment. It would be pretty easy to change it so that wiggling the ragdoll immediately worked consistently in both online and offline, the only reason I’m hesitant to do so is that it could have a drastic effect on the best possible challenge times. I don’t really like that people would have to learn to WUMP all over the place in order to get the best times, especially considering that the effectiveness of the technique is somewhat random by nature due to the fact that ragdolls don’t always wiggle the same amount. It would mean that some best times would be undefeatable simply because the speed runner managed to get extremely lucky with their wiggles. One solution may be to have the physics only apply to multiplayer matches and not to the arcade.. If anyone has any strong opinions on the matter please let me know in the comments!

Can we have MIDI support for playing the in-game instruments?

This is something I’ve wanted to add for a long time!! There are two main reasons why it hasn’t been done yet- the first was that there aren’t many good MIDI interface libraries for C# so I’d probably have to write my own interop library which would be a bit of work.. This is no longer an issue as the game is now using NAudio which has MIDI support built in. The second and perhaps main reason it hasn’t been added yet is that if the game had proper MIDI support, it should also have proper instrument timing synchronization. Currently instruments just use the normal sound effect sync, which works alright but it means that two notes played in perfect rhythm will be sent in two separate independent packets, which will both take arbitrary amounts of time to arrive. This means that if your latency is sliding between 100ms to150ms the timing between the two notes could change by up to 50ms which could totally ruin the groove. In addition to this, Duck Game only updates 60 times per second which means it only takes new instrument commands every 16ms or so which unfortunately is not really enough precision to play something seriously funky with any level of consistency. Finally, the average sound card is going to add quite a few ms of delay to just play the sound in the first place which is the nail in the coffin. So in short, if I added MIDI support I’d want a professional level of quality in the instrument playing implementation which would mean:

  • A set of configuration UI’s for setting MIDI input devices and ASIO output devices to ensure minimum playback latency.
  • A new system specifically for synchronizing musical notes over the internet and making sure the times between them are unaffected by latency.
  • A new audio playback channel with a way to take MIDI input data (and probably controller/keyboard input too, to improve the existing instrument playback system) faster than 60 times per second. This would have to run on its own thread, which means its code would have to be independent from the DG code or the parts of DG it interacts with would have to be made thread safe.

All of this would also mean a whole new world of hurt if I ever planned to do Linux/Mac ports (Which I don’t plan to do because of things like this, read above!). So as much as I’d like to add a feature like this, this is why it hasn’t happened yet and may not ever happen.

I lost my save data.. Is there any way to just get a 100% save or something?

Oh no.. sorry about that 🙁   Duck Game’s Steam Cloud implementation was absolutely horrendous prior to DG 1.5, and for many people it was basically not working at all. This has been fixed in 1.5 but it unfortunately means that if you where playing the game before and where relying on the Cloud to restore your save data when you came back to play again, it probably means that save data is gone. If you want to try recovering your save, or if you want a tool to just put together a new one, you can find that stuff here:

https://steamcommunity.com/app/312530/discussions/1/2983033649184644715/

Why is Sniper 101 so hard…

Oh! It is really hard, whenever I have to go through and test the platinum trophies on every challenge it’s always Sniper 101 that takes the longest. I probably spent longer setting the Dev time on that one than on any other challenge as well. Not sure why, just wanted to finish one perfect run where I hit a target with every single shot. Since Sniper 101 has targets popping up randomly, there’s always a chance that you’ll get a good run with every target popping up in an ideal location and that must be what happened. Might try resetting the Platinum requirements on that challenge for the PS4/Switch updates, since this complaint has come up a lot.

I don’t like the new city levels, why aren’t they any good?

Some of the city levels I’m really happy with, some other ones not so much.. The problem is that level creation is a really intimate part of the development process and it’s best done when you’re testing the game with people regularly. The original levels where created while actively developing the game’s core features and taking it to shows, this meant that I could create a new level with all the games mechanics fresh in my mind, then take it and play it with people again and again to see if it was actually terrible. After a hiatus, I was playing and developing the game quite a bit again while creating the city levels so a bit of that was there, but they didn’t get nearly as much testing as the original levels and sadly I was only able to get into my level design “flow” state nearer to the end.

What’s with that bunker level where you shoot each other into spikes with dart guns? That level is the WORST.

I think it’s the best! That level is Duck Game in peak form and I am exceptionally proud of it.

bunger

Awesome.

Why didn’t you make more maps with buttons and wires?

I think my original hesitation to make more maps with buttons was that I wasn’t sure about the quality of their online synchronization back when the game first came out. As this has improved over time, the main reason now is that I just haven’t been making maps with them in mind since I tend to focus on making maps with newer features and wires are an older feature now. Really should have made more maps with them..

What do you think about foss games (free and open source software)? Will Duck Game ever be open source?

They’re great! I think open source software is an incredible thing and I have a great deal of respect for anybody who releases their source code. That said, I’ve never released any of my stuff open source and there are a few reasons for that. One reason is that my code is trash garbage and releasing it would only serve to upset people and to hurt my pride. I am slowly learning to write better code and I know people tend to care less about that sort of thing as they get older and finally experience ego death so one day I still hope to just release the source for everything. The second reason I haven’t released my source code, and maybe this is the biggest reason, is that I’m still actively working on most of the things I’ve made. I’m not a very good collaborator as I tend to tear things down and put them back up a lot, and if I had active githubs for say GENNY or BENDY (some VST plugins I work on) then there’s no doubt I would be stepping on people’s feet constantly. That, and it would turn the whole process into an actual job- coordinating with people, writing up reports and merging code, explaining my messes, arguing– and there are just too many projects I want to work on to have time for all of them to be like that. The way I make stuff is fast and loose and it’s hard enough to get up in the morning without the thought that my project may have moved on without me and I’ve got to catch up to it before I can get started again. Another reason I’m not a good collaborator is because I am a “perfectionist“. I want to take a moment to say how much I hate the word ‘perfectionist‘ though, because I don’t think it’s an accurate word at all. It’s not about knowing how to make things perfect, it’s more about knowing that there’s a way you’d personally like things to be, and if they aren’t like that it bugs the heck out of you. I’m like that, I want my things done in my dumb way because it means when I suddenly get an idea in the future I can implement it quickly without worrying about how my mess is going to clash with a bunch of other peoples nice code. If I ever release my projects open source, I’ll probably keep working on them on my own anyway and it will lead to a weird two-version thing where there’s the communities version and my version. Although come to think of it, sometimes open source stuff is developed so nicely that maybe the community version would end up being way better and I’d be forced to give up my weird brain stuff and just collaborate. That would be awesome. Shout outs to Blender 3D and NAudio.

Oh yeah, this all applies more to my freeware stuff. The main reason that Duck Game isn’t open source is because it’s technically not entirely mine and I’m not sure my publisher would like that. I’ll ask them, but I don’t think they’ll be very keen. I’m also not sure if there are legal issues with releasing source code that porting companies helped write, and there are almost certainly legal issues with releasing source code with PS4/Switch API stuff so the whole thing is a bit complicated. My dream would be to release the source code for the Steam version as soon as my next game is well underway.

I should really set up a zip folder with all my released/unreleased projects and their code, to be released upon my death. That would be really neat.

Have you ever considered hiring people to work on a prospective sequel/new game or do you prefer working on your own?

This seems like a good place to answer this question, because the answer for it is basically the same as above. I’m not a very good collaborator and would prefer to work with close friends only, close friends who I’d rather work on new IP stuff with rather than DG sequel stuff. I don’t think they’d be interested in working on DG stuff and even if there was a DG 2 I’d prefer to keep it to a scope where I could still make it on my own anyway.

It’s been suggested before that a team could make Duck Game 2 and I could just be the lead designer on it without getting involved with code and stuff (or maybe not get involved with DG2 at all) and I’m not really comfortable with that, either. Game Development is a really intimate thing, and since Duck Game is my baby I’d lose massive amounts of sleep over the idea of another version of it being made by another team. These feelings are covered in a bit more detail up above in the last paragraph of the question about whether Duck Game will ever have official community mod packs added into the game.

What are your thoughts on working with publishers?

I’ve had a really good experience with it for the most part. In the early days, back when every one was still at Adult Swim Games, I couldn’t have asked for a better publisher. Everyone was extremely kind and positive, they where all excited to be working on the game and they where extremely helpful with testing and marketing, and getting the game to shows and all that. I couldn’t have done it without them. Even made some friends there, though as everyone went their separate ways we’ve unfortunately fallen out of touch since I’m not so good at keeping up with people (and pandemics don’t really help, either)

🙁

But it was an incredible experience and a central part of some of the best years of my life. Businesswise the ASG contract was fair enough and they did a lot of marketing and user support/community stuff that made life a whole lot easier. Since the early days, though, they’ve gone through quite a few big corporate changes and unfortunately most of the people who I worked with are no longer working there. It was a bit scary when everyone disappeared and there was a while where I wasn’t sure who to contact or what I was supposed to do in order to update the PS4 version. I had to take the reigns on a lot of community stuff too, and I’m really not good at that (Sorry again to the DG community, thanks for putting up with me and my unreliability). The downside of having a publisher is that things can change and you might not always be sure of what you’re going to get and if it will be the same tomorrow. You never know when the mega corporation that runs your publisher and your publisher’s publishers might just dissolve them completely. Luckily though ASG is still around in some capacity and I’m working with a new guy there who is super cool. So it’s not all bad. Overall still a super good experience and I wouldn’t have traded it for anything. Thank you Adult Swim Games.

Will there ever be an official basketball mode?

If you’re itching to play Basketball in Duck Game for this reason or that, I recommend trying Antikore’s basketball mod which is a very good time.

Will there ever be a Duck Game NFT?

Nope!

What’s your favorite weapon/item in Duck Game?

For the pre-update weapons, definitely the Netgun. Throwing crates around is such an important part of the game and it’s really exciting to have a gun that makes other ducks into one- crush your friends with your friends and all that. It’s also lots of fun to dance around with a trapped duck while they’re trying to get out, then you wait too long and they get out right at the last second and blast you. There are a lot of good karma moments with the Netgun.

My favorite new weapon is the Energy Scimitar. It’s just good stupid fun.

What does the flower do?

It brings joy.

Will Switch/PS4 players ever get a chat like on PC?

Definitely not, sorry. I like the way players have to quack and dance around to communicate with each other, there’s something wholesome about it that I think is more in the spirit of the game than a text or voice chat system. I’ve also found with the 1.5 update that as the game gets more popular, more and more people seem to be abusing the chat feature and just using it to troll or be nasty to people. I’ve even had people come to me and ask if the chat could be moderated, which unfortunately is out of the realm of my resources as I’m the only person working on this project. If it ever came down to it I’d have to just remove the chat altogether and that would be really sad. I’ve lost a lot of sleep over the PC version’s chat system and I’m not at all eager to add it to the console versions.

Will we ever have John Mallard in online multiplayer?

Once again, probably not.. He’s been close to being added to online a few times but is always left out due to technical issues related to performance concerns to do with how the replay system is implemented. To record the highlight reel at the end of the game, a rotating buffer of about 7 seconds of draw call data is recorded, and if the game decides that the latest buffer is more impressive than the current top 5 replays, the lowest replay is replaced with the latest one. These replays always comprise of the last few seconds of a round, but since it’s impossible to tell when a round will end they need to be recorded constantly. This recording takes a fair bit of extra CPU power, a resource that is already being stressed pretty hard in order to synchronize online games. This would be alright on many PC’s, but on PS4 and Switch where a lot of optimization was needed just to get online working smoothly, this extra CPU strain could make the game run choppily. Long story short, John Mallard isn’t in online because the computing power required to record his replays would compete with the power required to synchronize online data.

Can we get a Mort The Chicken hat for Duck Game?

Actually had to look up what Mort The Chicken was and I’ll be damned, thought my PS1 game awareness was pretty thorough but here we are. As cute as this little guy is I have no attachment to him and he likely wont be a hat in DG.

How successful is Duck Game, are you set for a long time with the amount of money you made?

What a question.. When Duck Game was first coming out on the OUYA back in 2014, I hoped that it would make enough money that I’d have time to update it for a while and find a new job if I had to. It ended up doing much better than expected, and thanks to that I’ve been able to update the game and work on other projects full time in the years since it’s release which has been an absolute blessing.  I’m not loaded, but am well able to support myself as an independent developer for now and honestly that’s a dream come true. I’d like to offer a sincere thank you to everyone who helped make it possible for me to keep making games. Also, grandma says not to ask people about how much money they make.

I heard you made the music for Duck Game- what instruments do you play, and did you study music theory?

It’s true, all the music in Duck Game was created by me using FL Studio and GENNY- which is a VST I developed alongside DG that emulates the Sega Genesis YM2612/SN76489 sound chips. Normally all the music I make is sequenced on the computer, but piano and electric guitar are two instruments that I can play well enough to do some basic recording/performance stuff and every now and then a little bit of that gets into my music. Mostly I play for fun, I’ve never studied musical theory and have always played by ear. I collect random instruments and really enjoy the process of learning to play them. I love sloppily blasting out Irish folk songs and the Titanic theme on my pennywhistle or stumbling through the saddest and most broken off-tune version of Oh Canada on my violin but you will probably never hear me do it in public (thank goodness for you).

What is your favorite song in duck game?

I usually say sfs2002 for this (actually thought it was called sfs2003 but someone corrected me on stream and wow- they where right. The name of the song is basically a keyspammed save name that I’ve now grown fond of over time). That song is like a time capsule of the sort of stuff I was making around then and it represents happy times. Arbuckle, comic, onboard, chillstream, dunit3 and a few other similar songs are sort of part of the same “album” of songs from the game, they all have similar emotions and I’m really happy with them all.

Did you compose any of the songs in Duck Game for other projects? Some tracks sounded like they where for cutscenes (baba) or platformer levels (emerald 2).

Baba is sort of part of that same album of songs mentioned above, most of the songs where composed specifically for Duck Game with a few exceptions for the later songs which often became additions to the soundtrack by surprise. Due to the sort of “playlist” nature of the way the game’s music works, it was easy to just toss in WIP tracks as I worked on them and I didn’t really need to worry about what sort of scenario I was writing the songs for, so the soundtrack really is a mishmash of things. I was pretty much just making stuff inspired by my favorite things-

“NewMain” was inspired by Linkin Park, “Backwen”, “buttspin” and others are Van Halen/classic rock in general, “Portraits of Kings” is a tribute to DOS game music. “smokingroom”, “FunkyDuck” and basically every other funky track came from a year long obsession with funky rhythms. “castil”, “ninjatoes” and of course “yuzo koshiro is my hero” are all inspired heavily by my favorite video game composer Yuzo Koshiro (same with all my other music in some way, I’m sure). “SynthRock”, “DontFuckWithDuck”, a few others and the original trailer music for the game came from a month long obsession with Italo music. “arbuckle”, “barrysboots”, “wintercitylights” and any upbeat happy music must take heavy inspiration from Barry Leitch soundtracks I loved as a kid, namely the Gadget Twins and Humans soundtracks. “baba” was an emotional dump playing with arpeggios, and was named as such because when I finally went to save it once it was finished I thought “wow, this is really just Baba O’riley by The Who”. “emerald2” may be the most obviously named, it’s meant to be some kind of Sonic Green Hill Zone song and it’s the first grass tileset inspired song I wrote for the game. Need to make more songs with birds in them.

Race Day (the song that plays on the stat screen with all the doors) was actually originally composed as a race results song for Super Indie Karts back when I was applying to do music for that, but guy was looking for more of a SNES sound so it never worked out. And now it’s one of my favorite songs in Duck Game, it’s funny how stuff happens.

homeplanet.ogg seems to be cut off at a random spot…

Unfortunately there are a few songs like this.. With the loose and fast way I ended up doing the soundtrack some songs made it into the game without being entirely finished or without being set up to loop properly. Some songs, such as “comic” had their project files lost when my backpack was stolen while travelling. Other songs, such as “homeplanet”, where made during times of heavy development on GENNY, and they use random old versions which the DLL files no longer exist for so the projects can no longer be opened properly. I really need to be more organized, issues like these are the main reason why the soundtrack isn’t up on Bandcamp yet, though I’ve tried to work out a reduced track list with the most complete songs included-

Do you plan to ever do Bandcamp for the soundtrack?

This was actually planned, the track order is all figured out and a folder of songs is ready to go. The plan was to release the soundtrack on bandcamp alongside the vinyl, but unfortunately that line has been silent for some time and it seems like the vinyl wont be happening. The bandcamp made a bit more sense alongside the vinyl, as it ended up as a selection of songs rather than every song in the soundtrack. Might still just do a raw Bandcamp of every song regardless of it’s level of completion, either that or the main track list and a “B-sides” list.

How can Duck Game be real if our eyes aren’t real?

How can anything be real? Maybe our definition of real is meaningless. It’s just like the word ‘perfect’. Perfect to who? The “true” definition of real, is whatever is real in the fake eyes of the beholder (who is at once perfect and imperfect, and who does not actually exist, unless they think they exist, in which case they exist to themselves but they do not necessarily exist to others). You can smush and sculpt your mashed potatoes into the form of a beautiful butterfly, to create organization amongst the chaos. But when your fist inevitably comes down on those potatoes the physical configuration of that butterfly is completely destroyed and it is lost forever. It can never be recovered in its exact form, yet it remains imperfectly in your memory and you could possibly shape another like it. The evidence of that potato sculpture lives on in your head, and once you die that information is permanently lost and the universe will cease to recognize that it ever existed at all. That butterfly dies with you.

If any evidence of our existence dissolves into cosmic noise before it’s able to travel far beyond our system, and if we where pulled into the singularity of a black hole where all information is lost, can it be said that we ever existed at all? Can it be said that anything we ever knew was real? As long as someone or something with some information still exists, then some evidence of our existence may remain. Memory is a powerful thing, it allows information that existed previously to continue to have an effect on the universe. It is able to save things that have been physically lost, however imperfectly. Does the universe maybe have some mechanism for doing the same? Does it have a memory? Maybe our great ancestors and their mashed potato art hasn’t been lost at all… All we can do is look forward and keep on moving, pretending that things are real because they seem real to us. That’s got to be enough. And that’s why it’s important to follow your heart and to do what you think is right- because if nothing we do is “real” then that means that we have to fake it and create our own reality and we might as well be honest about how we make it, because that will make it easier to accept. Maybe the universe will notice our sincerity and we’ll have become something worth remembering.

When where you born?

I am 31 at the moment. 30 is in fact the first age when you get to start feeling like you’re becoming withering old bones. Look forward to it!

Is your twitter avatar you?

Only in spirit. He is actually stolen from Skitchin’ which is a Sega Genesis game where you skitch on cars, which I guess was a popular thing back then. I don’t look that terribly different from this guy but unfortunately my chin is not nearly as fantastic.

138869-skitchin-genesis-screenshot-the-shop

This screenshot and my twitter avatar at the time of writing are from Skitchin’ for the Sega Genesis, and this particular shot was stolen from Moby Games (https://www.mobygames.com/game/genesis/skitchin/screenshots/gameShotId,138869/)

How are you?

I try not to think about it! I hope you’re doing okay and aren’t thinking too much about it either.

What are you favorite party games in the last couple years, or games in general?

I haven’t played a lot of party games in the last few years for obvious (plague related) reasons. Finally got a chance to play through the Dark Souls games over the pandemic and that has been extremely inspiring, everything I feel about them has surely been said before but they really are great games (though I have many strong negative feelings about DS2, I still enjoyed it in retrospect). I also finally paid my dues as an indie developer and worked my way through Earthbound. The gameplay gets a bit better once you get through the slog of the first couple towns but all in all it’s not a lot of fun to play. The combat is very limited and I found that most of the buffs/tool items that the game gives you basically just work once and then never again. A lot of it comes down to feeling like Use the Red Bug Killing Spray on red bugs, but don’t you dare try using it on maroon colored bugs. Also Here are a bunch of PSI related tools for your engineer guy to use, note that they won’t work on any PSI enemy who is even remotely difficult to fight (every PSI enemy). It felt like a lot of things had maybe a 10% chance of working and you where supposed to be buffing that chance in one way or another, but I just never did it. So, lazy gamer I am, I’d just grind until Ness and Paula could tank enough hits to beat pretty much anyone with brute force. I actually found the game easier to play with the other two of my party members dead all the time so I could spam through to attacks quicker while my party’s health bars slowly ticked down. For anyone who hasn’t played the game, it has turn based combat and when a member of your party gets hurt their health starts ticking down slowly- if you can end the fight before it’s done ticking it will stop. That means you can take mortal damage and survive it if you spam through menus quick enough. It also means that the time it takes for the game to print out “Jeff tries using KNEE TICKLER” “It does not work on SENSITIVE JIMMY” is time better spent attacking with party members that can actually do something…

The game was extremely charming and sincere though and I can see why so many people are inspired by it. There are tons of Earthbound/Mother inspired games but honestly the only one I’ve ever played that seems to get the tone right in my opinion is Undertale.

Have you played Undertale?

Yes! I think the Earthbound/Mother series had a profound effect on indie developers because they where able to reach a level of sincerity in dialog and world design that I don’t feel had ever really appeared in games much before them. They also played with mixing dialog and gameplay together which was super cool and another very new thing. As mentioned up above, there are many Earthbound inspired indie games and to me the only one that really got the feeling right is Undertale. Beyond that, Undertale stands out entirely as it’s own thing with it’s original approach to gameplay and story stuff. It’s actually fun to play! If Earthbound was the honest game that people wanted to make before, then I think that Undertale is the honest game they want to make now. It is such a good game.

What music do you like?

Really into 80’s 90’s rock, alternative rock and melodic pop music in general. As a kid I liked Pachelbel’s Canon, the 1st movement of Moonlight Sonata and Jesu Joy of Man’s Desiring. I have a crush on the Titanic theme song and have heard every cover of it under the sun (there is a lounge sax version and a bagpipe version that are particularly good). I don’t actually like the original version very much, and am more into the melody than anything. I love angsty music, vague lyrics and heavy modern electric guitars so anything that can combine all these things with some nice obvious chord progressions gets me pretty excited, I am not afraid of popular things. Especially into newer J-Rock right now (Japanese Rock), a few bands and my favorite songs by them are Survive Said The Prophet (Ne:One), Age Factory (Dance all night my friends, Gold, Kimi Omou Koro), Straightener (After Season, 戦士の屍のマーチ), Sakanaction (Aoi is like my ideal song I’m obsessed with it), and The Winking Owl (basically every song on Thanks Love Letter is awesome). Also really into J-Pop bands like Jin Akanishi  (Love Yourself, Pinocchio), BBHF (Back) and ‘ame no parade’ (Take My Hand, If). illiomote (Melancholy) and 4s4ki (Star Player, 孤独のメリーゴーラウンド) are two new bands that are super good.

Will you come back to chatting with the community on Discord once the PS4 version is all said and done?

Just a warning, this answer has an extra embarrassing amount of I’s in it and it’s mostly a dump of personal feelings regarding real time chat/remote communication in general. An explanation is owed for not returning to Discord and unfortunately the issue ultimately comes down to me problems. If you’ve already read the “Game Maker 5.3” post from a while back then you’ve already put up with some of this.

During development of the 1.5 update I spent a whole lot of time chatting with people from the DG community on Discord. We talked about the new features, about what people wanted to see and sometimes just about random stuff. I met a lot of really cool people there and had a great time, it’s the first time I ever connected with the community on such a personal level and it’s something I’ll never forget. Unfortunately though, the whole experience wasn’t entirely positive and it taught me something I never knew about myself- that I can’t handle real time chat programs. During the peak of using Discord I would spend 4+ hours a day frantically chatting to people, and whenever I wasn’t chatting I would be constantly checking it to make sure that nobody was trying to message me. I was in dozens of groups and had dozens of people messaging me about Duck Game on a daily basis, all this made Discord ding  constantly and no matter how hard I tried, I could never track down which chat the ding was coming from. Ultimately I had to just disable notifications from it entirely which led to me missing some of the more obvious messages from people and a lot of people felt left out or ignored.. It sucked.

My instinct is to never give preferential treatment to anyone if I can help it, so instead of responding over time to the messages one by one I would see that I had a dozen messages on Discord and think “Okay, that’s too many messages to deal with all at once right now, not sure I can deal with it right now so I’ll just wait a little while and respond to them all a bit later.” Then a bit later that dozen would turn into two dozen and now answering them all would take twice as long. Maybe some of the messages where about serious issues people where having with the game, or maybe they where somebody who found some questionable workshop content that needed immediate attention. Worse yet maybe it was somebody who was having a bad day reaching out for someone to talk to and here I am not responding to messages for days at a time. Or an old friend catching up. I couldn’t just click one message, because I knew that as soon as I did the guilt barrier would be broken and I’d have to respond to every single message. That could (and did) take days, and the thought of how much time it might end up taking away from work built the stress up further. Sometimes I’d break down and just message back a few people I knew well, while somehow feeling that it wasn’t the right thing to do. Then when I started looking at messages from everyone they’d sometimes be asking why I wasn’t responding to them. And I would think, “I don’t know. I’m responding to other people but I haven’t responded to you. I don’t know why, it’s really not fair. I think I’m a bit of a prick.” I started losing sleep over it. Waking up with a nauseating dread deep in the pit of my stomach that would mount and wouldn’t subside until I broke down and spent days responding to all the messages I had become too afraid to look at.

Things have calmed down since then and I was no longer getting dozens of messages a day. Even so, I found that whenever I used Discord it was still obsessively and I would lose large bits of time to it. You get up in the morning with plans to finish something and think “I’ll just respond to a couple people on Discord real quick.” Discord gets exciting, you get into some good conversation and suddenly it’s supper time and you haven’t done anything. Repeat this tomorrow, and the next day. Plus the guilt of dozens of old messages still unanswered, still bubbling. Why not. Maybe this is time better spent talking to grandparents, or to aunts and uncles? Maybe to get back in touch with old friends? How long will that take, as soon as the seal is broken and you start calling people, is it going to become another obsession?

Are you emotionally ready to be talking to people, is it fair that you talked to one person with a clear head and to another while you where trying to decide if maybe you should end the conversation and return to the bathroom to once again try having that dump that just wasn’t happening? Is it fair to the person whose email you’re responding to that “Call On Me” by Eric Prydz is at the same moment eternally jackhammering at every corner of your subconscious, like each compressed kick drum is another unwelcome whack-a-mole firing into your brain’s buttocks from every angle and you’re grimacing but you don’t want to stand up because you’re sitting and looking all cool in your leather jacket and it would ruin the whole image and be embarrassing if anyone where to realize that you’d accidentally sat down on the whack-a-mole game and didn’t stand back up immediately? Should you wait for the moles to stop? How long will they be!?

But.. the fact is that I’m very easily distracted and obsess over things easily. Just look at this blog post, this hulking monster of a post has taken weeks of on and off work and it came from the guilt of not wanting to post a video for one 4 and a half hour QA stream (that itself was planned to be a 2 hour stream). Even having obsessed over every aspect of it, the second what you’re reading now is posted I’ll definitely feel sick. The only way around it is to not post it at all, or to just post it and get that feeling over with. I promised to post this so posting it seems like the only real option. Besides, It’s already written.

Luckily these feelings are now well logged and I never have to speak of them again.

The short answer is unfortunately that I’m not ready to come back to Discord, I’m sorry. I’m only using it to chat with close friends right now. And I’m really sorry if anybody feels bad about this whole thing, please don’t ever feel like you caused trouble by sending me messages. I really enjoyed talking to everyone both about Duck Game and about more personal stuff, the DG community has some really wonderful people and I will never forget you all. It was my inability to deal with the excitement of the whole thing responsibly that led to it having a negative effect on my life outside of chat and that’s nobody’s fault but my own. Maybe I’ll be back one day when I can get my shit in order. Thank you to everyone who talked with me through Discord in 2020 and made that a great year against all the odds. Know that Duck Game 1.5 wouldn’t exist without you.

How will we contact you if you’re not going to use Discord anymore?

Please, e-mail me! I know that’s old fashioned telegram stuff by this point but I am much better at handling one big message vs. a potentially unlimited amount of little messages. I don’t want to post my email here in it’s purest form lest the robots find me, so my Twitter is https://twitter.com/superjoebob and my email is my twitter name @gmail.com

Why wont you upload videos of your streams?

Every time I’ve done a question answering stream there’s always the question along the lines of “Will you be uploading a recording of this stream later”, “do you have VODs enabled”, etc. Having done a few of these streams now I’ve unfortunately noticed a pattern… I always promise to upload a recording of the stream later (if I remembered to record it), but then I never follow through. Some sort of justification for this is warranted I think, whether or not it excuses the broken promises. I am not a streamer and most of the streams I do are to play Duck Game with fans or answer questions. I’m generally a shy and nervous person, so my streams end up being a whole lot of umming and uhhhing, voice cracking and confusing sentences that don’t really make sense. People have assured me “Don’t worry, you’ll get the hang of it!!” but I’m not really worried about getting the hang of it, to be honest. I’ve accepted that I’m not a streamer, and I don’t want to be one. That means my streams aren’t good content and they probably never will be. They’re visceral and raw just like a conversation, and watching them live maintains them in that form. As soon as you upload a video of a stream it becomes content, and since I don’t think my streams make good content I don’t really believe in uploading them. I know that might sound dumb but that voice deep down inside just won’t have me posting vods so no matter how much I promise to do so I’ve discovered that I just wont do it at the end of the day. Maybe I will one day, who knows, but I know I’m not going to promise them anymore. I’m sorry to anyone whose missed the streams, I will try to do a few more Duck Game streams when the PS4/Switch updates come out. I’ll announce them at least a week in advance on Twitter and will do them at different times to make sure everyone gets a chance to come listen to me babble nonsense.

Any ideas of other new games aside from Duck Game?

Yes! The main reason I want to finish up with Duck Game and move on is because I have another project all planned out and I want to get working on it full time. I won’t say much about it yet, but it will be a 3D single player focused futuristic exploration/management/real time combat game (still with local and online multiplayer coop of course) where you command a team of penguins across a desert planet on a journey from the North to the South pole.

pengg

Super early concept thing that doesn’t really reveal much.

Do you plan on making a game about every species in the animal kingdom (dog game, cat game, horse game, lion game, etc)?

Well.. honestly not sure why I default to animals (specifically birds) for games. It just felt right for Duck Game and it just feels right for Penguin Game. Penguins actually work super well with the mechanics that will be in the new game, so it made sense.

Do you own a bird? 

I don’t, I really like birds but don’t really think that flying birds should be pets. It makes me sad that they don’t get to fly around when they’re in a cage, since flight would be the coolest part of being a bird. As for flightless birds, I’d like to have chickens one day.. and I dream of one day going to Antarctica to see the penguins up close. I’d really like to pet one but I’m not sure they’d like being pet so I probably wont.

When do you expect Penguin Game to come out?

It will take a few years at least, but there will definitely be screenshots and gifs and stuff before then.

What engine are you planning to use for it? Will you be making your own or will you be using Unity or something like that?

Planning to use Unity, due to its C# support and straightforward 3D stuff. Thanks to C# this will make modding the game a breeze-

Is Penguin Game going to be made with mod support in mind?

Yes, absolutely! Forever and always. Going to work on making the modding experience at release much more straightforward than Duck Game’s ever was. The plan is to implement one of the games major features as a mod to ensure the mod system gets a lot of testing, and to give modders something to reference for their own work.

What will Penguin Game’s ESRB rating be?

It will be for everyone, E 10+ at the most.

Are you actually going to call it Penguin Game?

Oh, no. Almost certainly no. Almost certainly.

——————————————————————————————————-

Well, that’s all the time we have for now (phew). If you made it through all that then congratulations, you’ve just read over 14,000 words (thank you Microsoft for counting them, word counts are fun)! There where times when it looked like this post would never get finished but you know if you work at something every day, a little bit at a time… I’m sure there’s still lots of stuff I missed, though, sorry if your question didn’t end up getting answered here. Until next time,

And If I had a boat, I’d go out on the ocean

And if I had a pony, I’d ride him on my boat

And we could all together go out on the ocean

I said me up on my pony on my boat

-If I Had a Boat, Lyle Lovett

This entry was posted in Uncategorized. Bookmark the permalink.

12 Responses to Duck Game Developer QA

  1. Firebreak says:

    > Can you implement online physics for offline mode, or at least do a toggle or command for it somewhere?
    a good option is to add a new console command with the cheat value as true for it, so that it doesn’t work in the arcade but can be toggled in offline matches since the console is unrestricted there, this would not change anything to casual players but more advanced players testing online techniques in offline mode or the editor can use this command instead of switching to online.

    • superjoebob says:

      Ah, never considered it as a power user thing like this! Thanks for the idea, I can make sure this gets added in the Steam update that will be released alongside the PS4 and Switch versions. Will probably make it linked to the save game and have it stay on until you turn it off, but it will only apply to deathmatch and testing and won’t work in arcade levels.

      • Firebreak says:

        sounds good! excited to see it in the future, and wish you the best of luck with your life and new game you’re working on!

  2. Belt_Bucket_TCB says:

    My wife and I have spent hundreds of hours playing Duck Game together and with friends and family, young and old. Can’t thank you enough for all the good times. We look forward to checking out your future creations.

  3. Quack says:

    I know this is a longshot but would you ever consider releasing Duck Game on a DRM-free platform like GOG.com? I would quadruple dip as a Steam, Switch, and PlayStation 4 owner.

    • superjoebob says:

      Possibly, the main reason I haven’t done it yet is that I’d want to treat the GOG version like another platform meaning that it would need integration with the GOG Galaxy API’s for matchmaking and whatever else they offer. Still focusing fully on the PS4/Switch updates and really hoping to get a bit of a break from DG stuff afterwards but maybe someday!

  4. Tanagram says:

    Hi superjoebob I really hope you see this message,

    Im tanagram, im an annoying member of the community but i love duck game so much man like its my favorite game ever made ive laughed at least once every single time ive played it, its incredible.

    anyways: TAKE A BREAK!!!! 7 years on a project is too long. the game is great, always has been. thanks for getting it to where it is now, its better than ever. you need to step away from it and let yourself get to new places in life. plus returning after a break might feel really cool later on

    im a programmer but even more lazy than you, but ive got some stuff going on rn, anyways long term i want to see dg2, and dg3D, and help with both, but you need a break. you gotta do you for a while man, if dg2/3 is ever ready to go i already know ill be able to assist when the wheels are in motion. i may even take dg and run with it for a while now that youre stepping away tbh (some basic extensions etc), but nothing thatll conflict with adult swim/other publisher stuff no worries. Ive never modded it yet but it seems straightforward enough and im starting to hit that point of curiosity n whatnot

    anyways this post was so freakin’ informative, im glad i just came across it. thanks for a’s to the q’s, enjoy your DG break when you hit that point youve more than earned it! ty for everything and good luck moving forward 🙂

    • superjoebob says:

      Hey, Tanagram! Thanks for the message, and for understanding. You’re definitely not annoying and never where, it’s really good to hear from you and to know that you’re still having fun with the game. It’s definitely time for a break, but you’re right about the mood returning from breaks making all the difference and I’m sure it’ll be exciting to pick up Duck Game again one day. Awesome that you’re going to try modding, if you run into any trouble you can send me an email if you want and we can work through it! Good luck and thanks again for the message and the kind words. They mean a lot and it helps make my day/week/year, seriously.

  5. It’s nice to hear about your experience with the ports.

    Me and my friend had some fun porting (for private/personal use) Duck Game’s Windows build to MonoGame so that it’d run cross-platform (including swapping out the Steam integration for Facepunch.Steamworks.)

    Most of the time was spent on porting the audio, networking, and Steam code so it’s cool to see that this lines up with your experience/expectations with the ports (although we had some bonus time wasted porting the HLSL bytecode back to HLSL.)

    It didn’t perform on our android devices very well even after some targeted optimization, but it was funny to see a PC playing Duck Game against a mobile phone.

  6. Cookie says:

    Hi, Landon!

    I’m a huuuuge fan of Duck Game and have been playing off and on since 2016. I have incredibly fond memories of Duck Game: competing in the 2017 Feather Cup at my grandparents house, sitting outside playing it after school on my laptop, writing about it in one of those “what did you do over the summer” essays, etc.

    These days I play a lot less, and whenever I hear the soundtrack upon opening the game, I’m hit by a boatload of nostalgia. 6 years may not be too much for “withering old bones” like yours but that’s almost a third of my bones’ lifespans! Furthermore, the soundtrack is not only nostalgic but also makes for great studying music with its lack of lyrics to latch onto.

    Anyway, I’m just here to thank you a ton for your work on Duck Game and humbly request that you put the Duck Game soundtrack on music streaming platforms such as Apple Music and/or Spotify.

  7. crdnh says:

    Hi!
    I have a question regarding hat metapixels – specifically 36 (velocity), 37 (gravity) and 38 (friction). I can’t seem to graps how those are supposed to work, and my results are mostly random and disappointing. How do the 2D vectors work in case of those three?

Leave a Reply

Your email address will not be published. Required fields are marked *