Twenty Twenty Five

Soichi Terada – Arctic Wonderland 2 – Ape Escape 3 Soundtrack

Another year has passed and once again I’m sitting here trying to come up with resolutions that have any hope of being fulfilled. The same ones come to mind every year- Communicate with people, be more organized, have a work life balance. Start learning Japanese again, learn some songs instead of just noodling around, learn to cook more than like 4 meals. And finally, to make an effort to find an excuse to go out somewhere, possibly a place where thar be girls (more likely to start training to be an astronaut than follow through on this one). After so many years it’s starting to feel silly. New Years is a time to remember that I’m not happy with life outside of work, and that I don’t plan to fix it.

Oddly enough, though, it seems that as I get older I tend to be happier. I credit this to age wearing down my ability to give a fuck. Every time I say something stupid, see something anxiety inducing, put up a shelf crooked, it becomes easier and easier to shrug it off. Meh. When life gets out of hand I can just let it fall into my bib and eat it later. Let that fart turn into a shit. You can simplify things if you’re happy enough just to marinate in your own sludge, the smell will tell people to seek help elsewhere.

The problem with this plan, is that I still give a fuck. It pains me that I can remember giving more of a fuck, and it tortures me with worry that there could be a point in the future when I just don’t give a fuck.

I don’t believe that life is strictly necessary in this universe. Things where fine before, when rock was the sound of planets smashing together and heavy metal was the result of nuclear fusion. The universe was into it just fine. Then life shows up, along with feelings of joy and suffering. There’s nothing really wrong with life, creatures eating other creatures to survive is pretty impersonal and feels to me like the “no hard feelings” attitude of one sun swallowing up another. But then humans show up and introduce to the concept of being salty. We added hate, cruelty and apathy. We also brought awareness so we could feel guilt and recognize the consequence of our actions, and intelligence so we could do something about it. We can build it up or tear it all down, and how much beauty we bring into this universe is a direct function of how much we give a fuck.

So I don’t want to stop caring. Anything but that. I don’t know what my New Year’s resolution is, but what I’ve been struggling to find this past decade is some way to stop spending my free time staring at the walls in distress and to start enjoying life again. My heroes all focus their anxieties outward in some positive way, they prove again and again that when it comes to pain you don’t have to give what you receive. I still believe that, and have found that nothing brings me peace and tranquility more than to return a punch in the face with a pat on the back. If that somehow leads to our annihilation, then the universe is better off without us.

♫ Your life is over now, your life is running out.

When your time is at an end, then it’s time to kill again!

We cut without a knife, we live in black and white.

You’re just a parasite, now close your eyes and say goodnight!

You better get ready to die!

You better get ready to kill!

You better get ready to run, cause here we come…

Been a lifetime coming now you better get running, and you better get ready to die! ♫

-Ready To Die, Andrew W.K.

Posted in Uncategorized | Leave a comment

Duck Game, The Forsaken

It’s been a decade since Duck Game came out on the OUYA, which means this year was Duck Game’s 10th anniversary, though you might not know it if you where expecting me to tell you… Short of any events or celebration related to it, Warner threatened to remove it and all the other Adult Swim Games titles from storefronts and I continued working on our new game instead.

Some incredible news, is that a few heroes over at Warner took the reins and did the work to transfer all the titles back to their owners. Coordinating this seemed like it was an especially daunting task for console versions, and the Duck Game transfer only just reached completion this week, but- it’s done! Duck Game now belongs to Corptron Games Corp!

Some crappy news (well, it’s not really news…), is that Duck Game hasn’t been updated in well over two years.

It’s depressing, and I’m ashamed. What happened? It’s no coincidence that we’ve been working on Flatlanders for two and a half years. We’ve been trying to sort out a publisher for a while, and I’ve spent the last year flipping between trying to sort my life out and frantically trying to jam as much code into the game as possible before we’re on a schedule. We’ve finally just signed with a publisher, which I’m very very excited about, and I’ll make a post about that when I can. Figuring that out has relieved some pressure and allowed me get my mind off the new game just long enough to realize with full force that I’ve forsaken Duck Game.

It’s been hard to get away from the new project. As of January we’ve brought a programmer on board, who is a close friend of mine. We grew up playing Timesplitters/Smash Bros at lunch hour, and making Game Maker games. His games where cooler than mine and after we hung out I would always go home and try to figure out how he made them. We also have a funny producer-type guy who helps keep meetings in check and provides us with jokes. Since I brought everyone on board, it makes me the defacto lead when it comes to meetings and delegating work. I want everyone on the project to play the game and mess around with the editors so we all work as testers and designers too, which means everyone on the team is finding bugs and working around missing features. Since I’m the main programmer and the only one who understands the engine and editor code, a lot of movement depends on me fixing broken stuff. When I’m not actively on the project it leaves everyone hanging and the guilt comes, which makes me feel like I’m doing the wrong thing whenever I’m not working on Flatlanders.

Duck Game is way overdue for an update. It’s extremely out of date on Switch. The PS4/5 version has some arcade bugs that have never been addressed and the PC version has been having random issues. In particular, newer graphics cards (the Nvidia 40 series specifically, as far as I’m aware) have introduced an incompatibility with the original XNA framework that Duck Game still runs on. This causes random crashes (System.InvalidOperationException
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawUserIndexedPrimitives) and the only real solution will be to switch the game over to FNA or MonoGame. Phasing out the XNA dependencies is going to be a bit of work, the hardest part will be making the change without completely breaking mods. The thing that always takes the longest, though, is dealing with console versions of the game.

I’m still not familiar with Switch/Playstation APIs and when problems arise in those systems it can take serious time and energy to figure out the cause. This along with a fairly complicated patching/submission pipeline and a particularly tedious C++ transpiling stage for the Switch version makes the whole process heavy on brain pain for the terminally oblivious (me). I’ve worked with porting teams in the past on the original PS4 release and the Switch release, with mixed results. I ended up re-writing the PS4 port from scratch in 2022, since the old version had a ton of issues and was running on an extremely out of date Unity codebase that couldn’t really be updated. A team out of London did the original port, and though they where an excellent team they didn’t have much experience with online stuff and I think in particular Duck Game’s demented network code ended up being too hieroglyphic, delaying the project and ultimately leading to a release that wasn’t all there. For the Switch port, I got the game booting up to the title screen then passed that code off to Armature Studios, who did the hard parts of the port such as dealing with cert considerations and implementing platform specific API stuff. They did an extremely good job, working with them was a very harmonious experience and I met lots of great people who I really hope to meet again someday, somehow.

For both ports I worked alongside the teams helping them un-contort my twisted systems while creating new content for the game. I’d really like to work in a similar way again, and with the new game having a schedule and publisher finally figured out I hope to split my time between Flatlanders and Duck Game in 2025. The dream is to find a porting team and finally get the game to where it should have been years ago, the same on all platforms and with some long missing features. I’d work with them to add a bunch of new stuff and to finish a bunch of old stuff that never quite got done, releasing a big update on all platforms simultaneously and in the best case scenario releasing an XBOX version too. Localization and cross play would be things I’d want to look into as well, though if we did do cross play it might end up being between console versions only as there are some reasons why including PC would complicate things. Making the PC version harder to update is a major one, while PCs making cheating easy and fun is another. But at it’s heart Duck Game is designed to be played with friends rather than strangers, so anything that helps friends connect to each other (even if one of those friends turns out to be a filthy cheater) seems like a win.

I can’t give a timeline for this as it’s all pretty unknown, but I plan to start working on new Duck Game stuff in January. I’m sorry for taking so long and for keeping everyone hanging. I appreciate all your support, your kindness and most of all your patience as always. Some friends and even some avid players have told me that I don’t need to keep updating the game for the rest of my life. It’s nice of them to say that and the idea brings comfort at a time when I’ve left the game alone for a quarter of a decade, but it doesn’t sit well with me. One person tweeted that I’m “like an absent father” and that’s closer to how I feel. Duck Game is my kid and it’s only 10 years old… It’ll be another 8 years at least before it’s old enough to move out and until then I’m gonna try to be a better parent.

Now the old man sits and tells of days when time stood still,

the hours always seem to fade but the memory never will.

All the love that you gave me, all the dreams in the night

and I just want to thank you while the day is still light.

-The Man Who Would Be Santa, Vertical Horizon

Posted in Uncategorized | Leave a comment

Anti-Skip

IMG_1493_crop2

It’s been a long time since I’ve posted or interacted or tried to write anything sincere, and I think the reason is because I’ve been finding it harder and harder to find anything positive to say. Not necessarily because of an actual deterioration of positive things in general but more because of a change within myself, both mentally and physically. There’s a bitterness growing inside of me and I don’t want it to show itself. 

I’ve been having issues with stomach pain for the past 4 months, the first time in my life that I’ve had a chronic problem, one that’s changed the way I live and which feels like it will have no end. When you’re having a good day, working, walking, hanging out with friends, then pain bubbles up and pulls you out of it in an instant. People see it on your face and try to help, ask if you’ve talked to a doctor or tried this or that, but you’re tired of talking about it and just want it to go away. It’s hard to make plans when you’re not sure if this bout is going to last for hours or days. It makes me want to hide away until I know whether I’m coming or going, like a cat sitting out it’s illness under a pile of junk.

I’m not alone in this feeling, and it’s given me perspective. We never know where we’ll end up on the spectrum of suffering but I know many have it worse and I feel incredibly lucky to still have a pretty normal life. The thing I can’t seem to help, though, is that feeling of bitterness coming and going. Things I would usually enjoy- jokes that should be funny, good music or games that are really well made, even just wholesome experiences with people tend to have the opposite emotional effect when I’m in pain. It’s like an instinctual response, meant to shoo away beauty so my ugliness doesn’t rub off on it. In part, I understand what it’s like to be an ornery old man now.

There’s so much beauty in this world, despite the anxious people who claw at it in self defense because of their own suffering. We’re lucky to be living in this timeline and we all have so much potential. Especially with homes, jobs, education and healthcare, we’re so close to accepting one another and so many have the power to see the world for what it is and to love it, to love others and to help them have the same. It’s insane that people who have been given so much still find things to complain about, reasons to rip their own lives apart and to attack the things they love. How can we project our anxieties onto others and say “There, it’s you, not me. You’re the problem. I’m suffering because you’re having too much fun with life. How can you smile when you’re so full of shit? Shit that could blast out of your ass at any moment? How can you dance when you know there’s a spooky skeleton inside of you?”

To anyone I’ve kept waiting, hanging, hoping on my shoddy promises, I can’t help but spin my same lines and say “I’m sorry” again, like a tumbling CD player looping through it’s 5 seconds of anti-skip. I’m sorry. You’re not the problem. Like always, I’m the problem, I know it, and I’m still working on it and will be working on it till the bitter end. I just hate that the bitterness is showing itself. I’ve been given so much, have been so lucky to have lived so many good years and though I’m sure there are many more to come I believe that if it all ended tomorrow I’d have had more than my fair share of joy in this life. But, life continues whether or not you feel like your story has ended, and there tends to be more flailing than dialogue before the lights come back on.

You can bend, but you can’t break.

You can’t break.

Hey little girl, keep dancing.

Hey little girl, keep dancing alone.

Cause there’s not enough time in your life to stay here.

-Soldier’s Daughter, Tonic

Posted in Uncategorized | 7 Comments

The Future Of Duck Game

The rumor is that Warner may make all Adult Swim Games games unavailable in May. It’s still not totally clear whether or not that’s happening, but some devs have already been notified that their games will be removed which is depressing, and scary. It’s a particularly confusing kind of scary for those of us who haven’t gotten any notice yet.

I wanna talk about Adult Swim Games before anything else. We met at PAX West in like 2013 through my friend Andrew, whose had a few games published by them and seems likely to be in the same boat. They seemed really awesome, so once the time came to start porting Duck Game to Steam I decided to ask for their help. All the ASG people in the Duck Game credits played a huge role in making DG the game it is today, and there are very few names in that list which don’t bring a face and a whole wonderful and passionate person to mind. The only few that don’t are the names I don’t recognize. Everyone at ASG was like a friend and we talked and played DG together constantly. They where as dedicated to the game as I was and their producers/marketing people where constantly working to hustle the game and get it in front of as many people as they could. The testers played the game into the ground every time a new build was pushed and they where always showing up in multiplayer lobbies whenever a new update/port came out. They always brought the game to shows, always invited me and treated me like family at every second. They even invited me out to their offices a few times and flew me both to London and to Austin so I could work on the game directly with the porting teams. They would always send somebody along and the times we spent hanging out making games in different countries are some of the best times I’ve had.

This is all stuff I took for granted, but from what I’ve seen it’s an extremely lucky thing to have a publisher with people who care so much about what they’re working on and I didn’t know how good I had it. I don’t want to mention anyone specifically because my memory sucks and I’m bound to forget someone and make some mistakes but I dearly miss working with the old ASG folks and I hope we can meet again someday.

It’s funny how things change. Funny in that fucked up kind of way like when you’re laughing out of madness because life is the funniest joke. I’d always been weary of working with bigger companies and with ASG I thought I had finally found one worth trusting, but the mistake was assuming that forever trustworthy people make a forever trustworthy company. They don’t, and they can’t, because no matter how good a company is today there’s always a chance that the people will change, that the company will go bankrupt or get swallowed up, and that any agreements you made with them will slurp down into the shit pit. None of the amazing people who worked at ASG are to blame, but the fact is that those people where ASG to me, so without them ASG has become a frightening corporate puppet and Duck Game has lost the delicate care of it’s previous keepers.

In the midst of the drowning splash of this big stinky unfeeling mega steamer, what happens now? For some games the future is unclear and I really hope that everyone comes out of this with their own best case scenarios, or that at the very least they get their games back. Luckily for Duck Game, since when I first signed ASG had such honest people with such reasonable contracts, there seem to be a lot of options and possible futures for it.

One simple future is that DG doesn’t end up getting delisted at all. That one’s easy, everything stays the same and I can start feeling the full shame and regret of worrying any of you with the possibility that DG might be affected (Sorry…) The other, better, simple future would be that another publisher buys the contract and takes the reigns. As much as I’d like to get the game free of the possibility of something like this ever happening again, ASG’s considerate support was absolutely priceless over DG’s development and the support of another publisher who I respect and trust would help move things along more smoothly in the future (anyone who reads this blog knows how slow and unreliable I can be on my own).

Another future would be that DG is delisted, and Warner extends the same option to DG that was offered to the other games which have been notified so far, the gist of which sounds like: “We’re delisting your game and not giving you back your store page, but you’re free to remove ASG branding and republish to a new steam page if you’d like.” This is obviously a shitty future, but it’s not the worst one. This future assumes that delisting means people who previously owned the game would still have it, you just wouldn’t be able to buy it anymore (this is what I believe delisting will mean). In this case I would republish DG under Corptron. The ideal result would be that I could still update the old version of the game to be identical to the new one, and make the old and new versions connect to each other and share online lobbies so people with different releases of the game don’t even notice. If I can’t update the old version, which is a more likely going to be a problem with Switch and PS4, or if I can’t otherwise give the new version to existing players for free, then Duck Game will have to be republished as a free game to avoid anyone having to rebuy something they already bought. Some people have said they’d be happy to rebuy DG and I seriously appreciate the kindness everyone has shown- but you won’t have to rebuy it, it’s absolutely not going to be like that.

The most bleak future (and I seriously don’t think this will happen, but let’s discuss it) would be that the game is delisted, removed from everyone’s libraries, and an email comes saying I can’t republish or otherwise do anything with the game (this is the ‘Send Us Your First Born Child At Your Earliest Convenience’ future). In this case, I talk to a lawyer right away to make sure my assumptions about my contract are correct. If everything checks out, the next update would be published as a new version of the game without ASG branding and with a different name. I would never sell one of my IP’s (and this is why you shouldn’t) so I’m free to make “Duck Game 2” or “Hyper Duck Game Chronicles Prequel: Beginnings of the Shattered Ends” and doing a Game Of The Year edition a month later which includes a one DLC “season pass” if I want to. In the meantime I should also be able to make the old game into “Duck Game Classic” and release it for free.

In the extra special “Why Do We Live” and deluxe “Let Me Die” editions of the future where Duck Game Classic is not allowed, everyone will probably switch over to playing Duck King 2- which will suspiciously appear shortly after Duck Game is obliterated from the universe.

I’m hopeful for the future. It’s been a crazy ride, and many of the best moments of my life have been adjacent to DG somehow. I’ve been so lucky up to this point, everyone has been so kind and understanding that I could cry. Thank you. Duck Game will be 10 years old on May 13th, and it’s going to show up to it’s own party. DG belongs to it’s players as much as it belongs to me, and it belongs to all the great people who used to work at the best game publisher I could ever ask for. There’s no way anything will ever make it disappear, I will never stop updating it as long as my hands and eyes work and I’m sorry for scaring anybody in the heat of the news with my own fears otherwise.

I dreamed of this so long, this used to feel so strong…

Now I wait, wish these thoughts would go away.

I hope I dream of you, cause it’s taking my life away.

No, I don’t hate, but these thoughts won’t go away.

I hope I dream of you, cause it’s taking my life away.

-Taking My Life Away, Default

Posted in Uncategorized | 49 Comments

Flatlanders

20230424152207_1Welcome to the edge of the earth. (Art by Dayton)

For the last year we’ve been working on a new game! It’s called Flatlanders, and it’s being developed by Dayton McKay (@FarfinFarfin) and myself. I’m programming, he’s doing the art, and we’re both designing the game. We’re building it in Monogame with my patented “ElfEngine” (it’s not patented) which is a total rework of the Duck Game engine. It’s also designed in the same spirit of sorta dumb fun as Duck Game but Flatlanders is a completely different beast- it’s a turn based strategy game in the vein of games like Advance Wars or Civilization, mixed with a deck building card game. The gameplay is simple and completely based around placing cards and moving them around a map. Each player picks 40 cards and pairs together a Castle and a Sovereign that each have special abilities which affect the entire match. Your base area expands as you place cards around your castle, and the game ends when only one castle remains. 

partygifGeneral mood in the Corptron offices.

basicGameplay consists entirely of placing cards and moving them around.  

comboSome units move and attack differently, and setting up combos is important for getting the most out of your deck. 

promotionPromotions are a limited resource that lets you boost a card and move it again.

stealthSneaky units cannot be seen by your opponent until they’re revealed, and will stun the opponent’s card if they attack while hidden.

sealionTraits allow cards to share certain behaviors. The Sea Lion for example is a “Swimming Psycho Beast”- Swimming means they can move through water without slowing down, Psycho means they can attack friendly cards, and Beast means that they don’t require a citizen to build.

dekA typical deck. 

I won’t be going super deep into gameplay stuff right now but hopefully you can get a pretty good idea of how it works from these screens and gifs. We’re serious about balance but are taking a “Red Alert 2” approach to it where fun is a bit more more important than making sure every card is equal. Like Duck Game, this is the kind of game that you’re supposed to play with your friends and attacking your opponents in funny ways is more important than crushing them efficiently. We’re trying to make sure no cards are totally broken but if a card is a little bit bullshit but it’s fun to use we usually leave it in and if your friends don’t like it they can say “no bringing Crazy Legs, he’s for cheaters!”.

In addition to being designed for silly nonsense, Flatlanders is being made with a very strong focus on modding and we’re trying to make it easy as possible. All the cards in the game are built using the modding APIs so modders will be using the same code as we are. Every action in the game triggers events you can hook onto to make things happen, and you can even hook to events globally to say things like “whenever any unit card runs ‘effect.death’ destroy any cards adjacent to them aswell” or “whenever any card spends Blood give it +1 ATK”. Making your own card is pretty straightforward: 

lightening

select_arrow

witchcard

witchpromoVoilà! 

It’s going to have AI and a proper single player mode too! There are AI opponents to play against and we’re planning to do a full single player story mode where you walk around a map and duel teenagers and firemen and the like. Flatlanders can be played with 1 to 4 players in either local hot seat multiplayer or online (modders rejoice, all AI and online code in this game is absolutely automatic so you don’t have to write any).

worldYour quest to be the best.

office

So, who are you to resist it?? Flatlanders is coming!! We don’t have a release date or platforms totally figured out yet- dev is well underway but we want to take our time and make sure that we get everything in, that the base card set is solid and the UI flow is cool and good so right now we’re aiming to have it done by early next year. I’ll keep you up to date and will definitely be writing more posts about the game that get more into the mechanics and development aspects of it. Thanks for reading, good things are coming!

 

 

 

Posted in Uncategorized | 11 Comments

Genny 1.5 Beta (Genny X)

genny15

Important: This is a Beta! It may not be completely stable and you’re bound to run into stuff. Please make backups of any older projects you plan to work on with this beta version of Genny!

After an exceedingly long delay (ah.. sorry…) and lots of rewriting the new version of Genny is finally ready for testing. I’ll be doing a full writeup and update to the documentation for release, but in the meantime the major changes include:

-Channel 3 Special mode, allowing you to set the frequency of each operator on channel 3 individually. You can assign a midi channel to send notes to the operator, adjust the octave/semitone offset, and set the fine pitch.

-Mono/Legato play modes allowing you to do note glides and arpeggios without re-triggering the attack envelope and fun stuff like that.

-A Ping-pong system that lets you set a custom panning pattern, allowing you to have notes automatically pan based on a sequence of letters. (fore example, Left Right Center Left Right Center to make a sort of stereo effect).

-Improvements to the drum sampling system, you can now set the sampling Hz, adjust pitch and volume and loop samples. You can also use a sample as an instrument by only loading a sound into the first slot.

-Significant improvements to accuracy and DAC performance for anyone using the MegaMIDI output setting.

-Improved automation support for all versions. Every control should be automatable now, and the VST responds to pitch bend messages properly now (you can set the bend range in the chip tab). Added support for note controls in FL, allowing you to bind Note Control 1 and Note Control 2 to various parameters in order to control them from the piano roll.

-Number of instruments has been increased from 16 to 32.

-Tons of bug and crash fixes of course. The UI has been rewritten to fix a number of memory issues and everything has had a going over.

Important Again: Please make backups of any older projects you plan to work on with this beta version of Genny! Due to major changes in the way the plugin’s data is stored, I had considered renaming the actual DLLs to GennyX and making this version of Genny is not compatible with projects built with the old version, but the backwards compatibility code works well enough that I wanted to try this beta as an upgrade to the original Genny instead of a replacement. I’ve tested saving and loading a lot of old projects and things seem alright but more testing is definitely needed. Please let me know if anything is amiss (controls coming undone, weird sound, crashes) and we can work to make sure the new version is completely compatible.

If you have any issues, suggestions, or problems with differences between this version and the last please let me know! Especially let me know if you’re using the MegaMIDI feature, as I don’t know anyone who uses it and would love feedback on the way it works.

All Versions: https://www.wonthelp.info/genny_all_v151.zip

VST Plugin: https://www.wonthelp.info/genny_vst_v151.zip

FL Plugin: https://www.wonthelp.info/genny_fl_v151.zip

MegaMIDI firmware: https://www.wonthelp.info/genny_megamidi_firmware_v150.zip

Source Code 

I’ve decided to release the source code for Genny! A few important things to note about it, though: 

The code is TERRIBLE. It is so awful and so bad and it belongs in C++ jail. There are probably still memory errors in it, it’s build setup is a mess and there are inconsistencies everywhere. This has been hacked together over more than 10 years, it was started when I had no idea what I was doing and continued without the intention of ever having anyone else look at the code. It is not a happy codebase. For this reason, and because it’s just not something I want to deal with, I won’t be maintaining a Github or anything like that. I’m dropping a zip of this nasty source code like an animal drops a hot shit and then I’m hoofing it outta here:

https://www.wonthelp.info/genny_src.zip

It uses VS2019 to build, with the C++ Desktop Development and MFC components installed: installsettings

You can probably build it in a different version of VS but that adventure is up to you. You could probably even get it working without MFC if you’re keen. Go ahead and do whatever you want with this source code. Modify it, take things from it, laugh at it. You can give it away or claim it as your own (why would anyone want to take responsibility for this?). Release your own version of Genny sans bugs and with more hardware accuracy. You can even go ahead and make a public GitHub for it if you’d like. Just be warned about the mess of a codebase you’ll be getting yourself into, and make sure you blame me for everything. I take full responsibility, but only god can help you now.

Deep down deep down,

Da di da da da do da da-

Deep down deep down,

Da di da da.

-Hyperlink (Deep Down), Eiffel 65

Posted in Uncategorized | 3 Comments

One More Feature

daruma

It’s that time of year again when an explanation is in order for my disappearance. Anyone trying to get in touch with me will tell you that I don’t exist, and anyone playing Duck Game can tell you that I definitely haven’t been updating it. Not since the minor Steam updates in May, which where meant to be in preparation for a larger update, another PS4 patch for the 1.5 remaster and an update of the Switch version to 1.5. There where dreams of doing a beta for the PC changes shortly after the May updates, and grand plans of having the Switch version updated by the end of summer. In a sort of reliable fashion, It’s now November and none of this has happened.

There’s a stereotype that Canadians say “Sorry” too much, and honestly it might be true if I’m any representation of the average Canadian because I feel sorry as hell. I’m not sure I’ve ever written a blog post here that doesn’t have the word sorry in it and once again, like many posts on this blog, this one is an apology and another attempt to explain why it is that I disappoint. And another reiteration of the only promise it seems I’ve ever been able to keep, the promise that I’m trying and that something will come to fruition some day.  The reason nothing has happened since May is absolutely my fault, nobody else is to blame. I’ll also say that, like so many times before, I really thought it was going to happen this time. “Duck Game is finally going to be updated to 1.5 on all platforms this year, and it’s going to be incredible. Everyone will finally be playing the same version and it’ll be working perfectly. I’ll be able to fill in the eye on my Daruma.”

What happened? The year got off to a strong start with the PS4 version finally getting updated, a total rewrite that had been promised for a very long time. Things where looking good, the new code was running on Switch, and performance was great thanks to the Roslyn code generation stuff. Stress testing still needed to be done, and the online code needed to be ported into the new version of the SDK in order to allow friend invites and other fun stuff that came into existence on Switch after DG’s original release. The Proton support patch that came out for the Steam version in April helped get me back in the groove for doing Steam updates, and the patches in May helped prepare the Steam codebase for some of the new PS4 code. The first PS4 patch was basically lined up and ready to go. So why then, with everything moving so smoothly, did nothing ever come to fruition after May?

coilgunshockerExhibit A

I blame the The Shocker (once known as the Coil Gun, a long unfinished weapon of some renown). Or more specifically we can blame my poor attention span, a desire to get as much into one update as possible, and a guns blazing attitude when it comes to quickly jamming in new features at the last possible minute. Looking at the build, everything was ready to go and all that had to be done was to send off the PS4 update and move onto Switch- but something was missing. The change log consisted of a few (important) bug fixes and nothing else, and I thought “Wow, that’s really lame. Two weeks of cert and all people are going to get are a few bug fixes.” So I thought, what can be added on fairly short notice to make this update more exciting? What have people been asking for the longest? The answer was immediately clear- it’s The Shocker!! It’s a really cool weapon that probably wouldn’t take that long to get working. When you shock a live duck with it, they die. When you shock a dead duck, they come back to life. No problem. The Shocker was working within the hour, but once again… Something was missing.

The Shocker is a gun that shoots electricity, and electricity could be a really cool game mechanic. What if it could arc between metal objects, and run through wires to activate things?? This stuff had to happen so I got to work. It should also shock ducks who are in the water, and travel across the top of it. It’s a cool new gun so there has to be a few new levels to showcase it. Oh shit, it needs to work online too…  It was slowly getting out of hand, finally to the point where I sat down one morning and thought “Ah… I don’t even want to look at The Shocker today… What else can be done?”. There was some stuff I’d been sitting on forever that had been hastily pulled out before a previous update, where Chancy had a cheat menu and there was some pretty crazy stuff you could do with it. Instead of noticing that working on this would only get things more out of hand, I went for it. And it branched out from there, I’d promised to implement a friend’s Donut hat forever and decided upon putting it in that the hat should change colors in different temperature, that there should be a Donut you can actually pick up and eat (to unlock the Donut hat, of course), and that the donut should have it’s own special level that comes up really rarely. Oh yeah you should also burp after you eat it… and what if you could hold quack to hold in a burp? If you can do that then you should be able to hold quack through the entire game and let it out on the win screen… If you can store a burp like that, what if the burp did something cool? Like if you ate a ton of donuts and held them all in, your burp could become a laser beam that actually kills other ducks. Then you could let out a hyper burp to take the victory during your draw breaker match and it would be ridiculous. That’s gonna have to be synchronized online… But it’s gonna be great I can’t not do it, right?

donud2

These are just a few examples of the many things that got added to the update last minute, and each one of these things brought more questions and required more testing. There where still many unanswered questions and the new features desperately needed testing. So instead of just submitting a simple PS4 update with confidence, I had this mess of one that needed a good deal of attention before it was ready to go and that would probably have months of repercussions. The thought became that there needed to be a PC beta with these features first, to hold off on the PS4 update until the issues are worked out. I just had to finish up the new features and get the Beta out and then stuff would start moving again. It was almost ready too, almost all the features where implemented and seemed to be working perfectly- except for The Shocker. There was always another question being raised by The Shocker, and I could not for the life of me come up with even one good level design for it. I would sit down at my computer in the morning and think “Why haven’t I just released this beta already? Oh, oh yeah that’s right. The Shocker. UGHHHH”.

The right answer was to just go back on it, to revert the changes. Maybe even to go as far back as before the Donut/Chancy changes, all in the spirit of actually getting this update out and getting to work on the Switch version (honestly the Donut stuff was solid, it probably would have been fine). But reverting code is really hard to bring yourself to do after a whole bunch of work on cool new stuff and I couldn’t bring myself to do it, I was on the verge of having all this stuff complete but the unsolved problems and the anxiety of releasing it all in an update was keeping it from ever quite getting finished. I was losing sleep over The Shocker. It was summer now, company was coming over and an excuse to look away from Duck Game for a little while was just what this problem needed. It could all be solved after a little break…

In a way, that break is still happening. For some background on where my time has been spent the last few months: Back in 2015 or so, a friend and I started work on a game that was gonna be next after Duck Game. We spent years making the game but eventually stopped working on it, because -very very much just like The Shocker– it was getting out of hand (this is a pattern with things I work on and this isn’t the first Duck Game update it’s ruined). It was turning into an insane tree of features and complex implementation and we finally decided that we didn’t know where the game was going or if it would ever be done. After that, working with another friend we spent a year on a new project that ended up the same way. I had a lot of fun with those projects and will never forget the time we spent on them, but I’m sorry that my friends can never get that time back. The time they spent bearing with me on big dreams with little direction. 

oldgameThe Famous 2015 Cancelled Project. I was programming, Dayton McKay was doing the art, and we where going 50/50 on designing it. 

How this all relates to this blog post though, is that sometime during all of the indecision and the Donuts and The Shocker-s, my friend came to me with a game design document he’d been working on for a while. It was a re-imagining of the game we had been working on in 2015 with totally different art and very different gameplay, and it looked awesome. It always bothered me that we never finished that game, and this was a chance to pick up the pieces and keep all that work from being a waste of time. To prove to him that I could work more concisely on a project and help keep it’s scope under control. So I got to work on a prototype right away, first working part time alongside Duck Game’s update and later working full time. So full, this time was, that the project became a bit of an unhealthy obsession and it has helped keep me from communicating with anyone or doing anything else but work. With all that’s been going on in the world and anxiety that has been getting worse with age, staring wide eyed through a computer screen and slamming code into it as fast as I can is like a drug and I’ve been getting blitzed on it every day…

oldman

But It kills the pain. People forget the past, beauty deteriorates and disappears while time grinds away at your will to care. Memories of good things are lost forever and the energy you once used to find new experiences is now spent in the morning, finding the effort to stand up.

As kids, we dream about what we can start.
As adults, all we dream about is when we can stop.

 

Hey, though, we’re working on it. This post is part of my three-hundred-and-eighty-seven step plan to become human again. And, despite the distractions and a little bit of burnout the Duck Game updates are still coming. They’re not cancelled and the plan is still to update Switch to 1.5 and to patch the PS4 version. Whether or not these updates will come with The Shocker- remains to be seen. I’ve been off Twitter, off Discord, barely on E-mail and will most likely remain reclusive until next year. I’m sorry for never messaging you back, for always taking forever and for the ups and downs. Good things are always hiding just beyond sight, but you don’t need to see them. You only need to know they’re there.

 

Rising above the city, blocking out the noon-day sun

It dwarfs the mighty redwoods and it towers over everyone.

I still remember, when that delivery truck came down our block.

What a lucky guy, I hear he got the last one in stock and the neighbors are just screaming.

They say, 

“That’s the biggest screen we’ve ever seen.”

-Frank’s 2000 Inch TV, Weird Al Yankovic

Posted in Uncategorized | 11 Comments

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

Posted in Uncategorized | 12 Comments

BENDY – An FL Studio Plugin For Using Piano Roll Bends/Panning/Etc In Third Party VST Plugins

BENDY is a free FL Studio native plugin meant to allow piano roll note bends/panning/effects to control third party VST instruments and external synthesizers, something that is not normally possible in FL. It also comes with some simple automatable MIDI controls that can be assigned to note controls allowing each individual note to send messages to a VST to control some arbitrary parameter (per note frequency cutoff, or per note reverb for example).

As BENDY is still in it’s beta stages, you can probably expect a few hiccups. Make sure you back up projects that you’re using BENDY in, and if you run into any issues please send me a message either on Twitter (https://twitter.com/superjoebob) or via the e-mail listed at the end of BENDY’s readme file- or leave a comment here.

Latest Version 0.99: https://www.wonthelp.info/bendy_0992.zip

One Drive mirror: bendy_0_992.zip

Changelog:

BENDY 0.992 – December 3rd 2024
———————————————–
-Fixed bug where new projects where running the legacy codepath, preventing new velocity implementation from working.
-Added version number display.
BENDY 0.991 – November 24th 2024
———————————————–
-Fixed bug where master pitch wasn’t working
-Fixed bug with re-triggers
BENDY 0.99 – November 22nd 2024
———————————————-
-Completely rewrote the plugin in native C++ to solve stability issues.
-Fixed a number of bugs and issues with features not working correctly.
-Improved velocity/volume support in order to closer mimic FL’s Midi Out plugin.
-Added right click menu to CC settings filled with useful defaults.
BENDY 0.96 – July 28th 2023
———————————————-
-Rebuilt using older toolset for improved compatibility and to remove VC++ runtime requirement.
BENDY 0.95 – May 28th 2023
———————————————-
-Fixed issue with note releases cutting off note triggers in newer versions of FL.
-Upgraded to newest SDK allowing the plugin to work in newer versions of FL.
BENDY 0.92 – December 13th 2021
———————————————-
-Fixed issue where note pitch would reset to neutral at the end of notes, causing notes with long release
envelopes to bend unexpectedly. This change may affect Nexus users, along with users of any other plugins
that have pitch bend speed settings. Make sure to always set your VST’s pitch bend speed to it’s maximum!
-Fixed issue where BENDY wasn’t being affected by the master pitch setting. To fix this, FPF_MIDIOut was
removed from the plugin parameters, as it seemed to have the plugin ignore master pitch as it’s only effect.
-Note Controls can now be assigned as either Full, Upper, or Lower. Full uses the whole note control value
range, Upper just uses the top half and Lower uses the lower half. This means you can assign up to 4 custom controls
to the piano roll, but you can only have two active at the same time.
-Added vibrato knobs, which can be linked to piano roll controls to enable piano roll vibrato control.
-Improved performance.
BENDY 0.91 – December 4th 2021
———————————————-
-Fixed issue where CC-0 was being sent from knobs with uninitialized CC numbers, which caused
random bank changes.
-Fixed issue where changing the channel setting would cause a bank change
-Fixed issue where automating the patch selector would lag out FL with the number of messages sent
-Fixed patch selector automation not updating UI
Old Versions:
0.99:bendy_0_99.zip
0.96:bendy_0_96.zip
0.95: bendy_0_95.zip

0.92: https://1drv.ms/u/s!At9QBJ_8lobha8bixOVNRawBPXE?e=aey8gO 
0.91: https://1drv.ms/u/s!At9QBJ_8lobhajoVb…, https://wonthelp.info/bendy_0_9.zip

 

Posted in Uncategorized | 27 Comments

You’re A Superstar

yamato5

I’ve been spinning on trying to write something nice for a change, something more positive, and there are about half a dozen bits of new posts sitting in my drafts that I’ve tried to write since my last one in February. Some are just beginnings of ideas, while a few of them are flow blown posts that I finished and then decided weren’t any good.. but here we go again:

My last post was anxiety incarnate and I regret making it a bit, it was entirely full of bottled up feelings about a fear of getting attention that’s been left unchecked ever since I hid from my first birthday party. I think it came off as a bit of a ‘pains of fame’ cry to some, but that’s really not what it was meant to be. I’m not famous (thank god!), and my qualms about staying in touch with a large number of people are compiled from years of experiences that reach back to well before Duck Game. I think most people have felt overwhelmed with keeping up appearances at some point in their lives, especially in modern times. It’s hard to avoid having a somewhat gigantic group of people you keep in touch with when we all have such close and quick contact with each other via the internet. It’s amazing, it’s exciting, and maybe it’s a bit scary..

personality2You too, can be like this.

We sort of live in an age of idols, where everyone has the chance to become famous overnight- you can casually post something cool or clever online and have it suddenly turn into an interaction with thousands of people. That’s really not something that existed in the world before the internet, and it’s a feeling that used to be reserved mainly for people who stepped confidently onto the stage. Imagine making a dumb joke while you’re just hanging around with your friends in the mall and suddenly the walls drop from around you to reveal a live studio audience, and they’re just losing it at how funny you are. It could be flattering, but maybe it’s more than a bit uncomfortable if you thought it was just you and your friends hanging out. Public spaces can be wild like that. Some people like the feeling, and some people don’t. But with the internet putting everything in front of so many people, the average person is a lot more likely to find out whether or not they want to be in the limelight these days.

I personally don’t like the feeling, it’s a nightmare! But I make games and try to keep up appearances on social media/write this blog, and these are things that draw attention. I’m not sure why I make video games exactly, but I’ve found that I can’t be happy without doing it. And I can’t make things well unless I’ve got someone to make them for, so I need someone to share them with. I was the most happy as a developer working with OUYA, and later with the old Adult Swim Games team (god, I miss them). At that time Duck Game was created solely for my friends here, my friends there, and for the people who played it at shows. The feeling of taking the game to shows- being able to stand anonymously at a distance watching people enjoy the game, along with being able to step in like a member of the crowd and just play it with everyone casually was the best feeling in the world. In those moments it wasn’t about some dude and his ego, it was about games and it was about having fun. I loved that nobody knew who I was- it was Adult Swim’s game.

moleman

So, I’ve been a recluse for the past few months. Tweeted that I was taking a short break in June and that’s what I did. Having had this break, and having discreetly returned back to work for a while has made me realize that the only way Duck Game PS4 is going to get finished- is if I hide away from distractions and from anxieties and just finish it. With my stage fright I find it’s about the only way to get things done. So that’s what’s happening, and I’ll be back when it’s finished.

When we look into the future to the place we haven’t gone, see what we haven’t done..

We have known it all along.

If we wait until tomorrow, will tomorrow ever come?

This is where we’re coming from, and we’re not the only ones.

When we find ourselves in trouble we can find ourselves away,

You can find a place to stay, and the place is always safe.

If you have a heart that’s in pain, don’t be afraid. You’re not to blame.

There’s a better world inside of us, where we always thought it was. You don’t need to hide.

You can open up your eyes and you’ll discover, that there is another world.

-Totally Stupid, Andrew W.K.

Posted in Uncategorized | Leave a comment