Just a tiny patch, more updates should be coming before too long!
May 11 2022 Patch 8721273 ------------------------------------------------------------------- -Fixed issue with level editor saving levels as "Save Level As..." (oops) -Added graphics option for disabling screen flashes. This disables full screen flashes for grenades and other explosive weapons. It may not disable flashes in mods!
Proton Support Patch
This patch is intended to allow Duck Game to run flawlessly through Proton on Linux (this hopefully includes the Steam Deck, I haven't got one to test with yet) with mods and all, and without requiring the '-linux' command line option. Something seems to have broken Proton 6 and below as mods are now unable to load textures properly in those versions and there's unfortunately nothing I can do about it on my end. So if you want to play with mods it seems that you need to upgrade to Proton 7 or higher. Please let me know if you're still having any issues running through Proton, and please include your Linux distro, Proton version and crash log if you've got one!
-Updated Steam SDK version -Fixed issues with toggling fullscreen in Linux (Proton) -Added onscreen keyboard support when playing in big picture mode -Duck Game will now automatically detect if it is being run through Proton, the '-linux' command line is no longer necessary. It can still be used incase automatic detection fails, and the '-nolinux' command line option has been added just incase the auto detect returns a false positive in some situations. -Usability menu now works through Proton -Fixed a number of issues with Mod types loading incorrectly through Proton (Dord's Weapons and any other assembly with weird characters in it's name such as ' will benefit from this) -Fixed some rendering issues on Proton
May 31st Patch (6789227) Bug Fixes, Icy Things
A note about the game updating a million times an hour: Sorry for all the updates in quick succession, I've been debugging the BadFormatException error that has been keeping some people from playing and the only way to iterate on it is to see what it does live. There where also a few other issues related to DInput and NAudio, which both break differently depending on the vast number of configurations that exist out in the wild.
June 12th Hotfix - 6858840(1.1.7717.16375) -------------------------------------------------------------------
F10 no longer enters debug pyramid tile editing mode. If you need this (unfinished!) feature for some reason or another you can now access it by typing 'randomedit' into the dev console.
CTRL + S now saves in editor, CTRL + SHIFT + S now saves-as in editor.
Editor now shows a star in the top left corner when unsaved changes are present.
Fixed an issue with loading level previews
Fixed issue with map pack preview generation
June 3rd Hotfix 2- 6809975(1.1.7717.16375) -------------------------------------------------------------------
Fixed issue where same random map would generate every time (whoops..)
Fixed bug where mods without a workshopID defined where disabled on startup
Fixed a few crashes
Reduced mod SFX memory usage a bit to reduce out of memory errors, more work still needs to be done.
June 3rd Hotfix- 6808994(1.1.7717.16375) -------------------------------------------------------------------
Mod data hashes are now calculated per-mod instead of as a single global number, so if 2 players' versions of the same mod are incompatible the game can now notify players of which mod is causing trouble.
Fixed a few issues with modhash initialization
Fixed a few crashes
June 1st Hotfix- 6794611 (1.1.7717.16372) -------------------------------------------------------------------
Fixed serious memory leak with reskins mod, in particular with Tom Clancy R6 mod which was causing out of memory errors for some players
Fixed a number of missing method errors with mods
Fixed a number of null reference crashes
Duck Game's steam integration DLL is now called "DGSteam.dll" instead of "Steam.dll", as the latter name may have been conflicting with Steam's own DLL with the same name.
May 31st Hotfix- 6790287 and 6790023 (1.1.7717.16372) -------------------------------------------------------------------
Rewrote DInput device enumeration, it's now threaded as it should be. This should solve a ton of framerate spike issues and freezes.
Improved logging for BadFormatException
May 31st Patch - 6789227 (1.1.7717.16372) -------------------------------------------------------------------
Objects can now be encased in ice by placing an IceBlock in the editor, and setting it's contained object.
NOTICE!! New re-texturing system that was previously called 'Reskins' is now called 'Texpacks' to differentiate it from the existing Reskin mods.
Texpacks should now be placed in Mods/Texpacks- instead of in Mods/Reskins
Texpacks now look for their texture/music/sfx data in a subfolder called Content, which should mimick the Content folder found in the Duck Game install.
The above changes will unfortunately break any existing mods using the official Reskin system. There aren't very many new reskin mods as far as I can tell, but I'm sorry to anyone who this affects. To change your reskin into the new Texturepack format, move all the DG reskin content from the root folder of your mod to a subfolder called Content. If you're testing locally, move the mod out of DuckGame/Mods/Reskins and into DuckGame/Mods/Texpacks.
Old Yupdaniel reskin mods from pre-DG 1.5 should still work fine.
Fixed a number of issues with Texpacks, retexturing ducks should now work correctly.
Added "Show 8 Player" setting in local lobby pause menu that zooms out to show extra slots, to help clear up confusion with how to use 8 player mode.
Text to Speech setting now shows "Text To Speech Not Installed..." if the system fails to initialize, or if there are no voices installed on the system.
Fixed a large number of level synchronization issues related to MysteryGun and RandomItemBox. This should fix a number of situations where item boxes wouldn't pop anything out.
Fixed a number of issues with controls resetting due to device changes (this was a bad one, really sorry to anyone whose been suffering over this)
Added "SAVE CHANGES?" dialogue when backing out of profile control editor with unsaved changes.
Added warning message for title screen global EDIT CONTROLS setting, which warns you if any active profiles have their own personal control overrides set, which would override the global controls.
Binding two UI controls to the same key is no longer allowed
Duplicated UI controls will now be detected and reverted to defaults on game startup (These two issues should help prevent Cancel and Accept from being bound to the same key, for example)
Running with -moddebug enabled will now throw mod OnPreInitialize exceptions
Issues encountered in a mod's OnPreInitialize function will now be displayed in the error output in the mod browser window
Text To Speech should now be working again
Fixed issue with Never Mined and Books Are Fun achievements not triggering.
Fixed issue with odd behavior when placing parallax backgrounds in the editor when a mirror object is present.
Pipes no longer use a separate object to render their end pieces, this should fix a number of pipe related issues in the editor.
"Show Error" in the mod browser menu now opens the error in a Notepad document, instead of showing it in a crappy ingame window.
Added emergency garbage cleanup call for compatibility with old mods that leak textures
Fixed bug where backing out after choosing to play online could softlock the lobby
Fixed bug where match settings would be reset if Play Online was accidentally chosen
Fixed Waffle Cape
Added 'xpskip' command to console for players who really don't want to see Vincent and can't stand to wait for him to gift the Voodoo Vincent doll.
Improved duck animation sync when playing online
Command line option -dinputNoTimeout is no longer neccessary. DInput now initializes asynchronously and can take as long as it wants.
The above change should fix '???' control errors with DInput pads, but if DInput is being finnicky it may take a bit of time before your DInput pad is detected.
Wall disarms have been re-implemented
Hopefully solved a few System.BadFormatException errors, and added better logging to indicate the offending DLL.
Added 'savedir' command to console, which opens your current Duck Game save folder in a new window.
Added 'userdir' command to console, which opens your current Steam user's Duck Game save sub-folder in a new window.
Fixed a few issues with object appearance offsets when netted while playing online
'F' to flip selection in editor on keyboard should now be working properly
Fixed a number of disappearing object issues when playing online, related to objects created by references in net messages not being initialized with the correct authority values.
Fixed race condition crash in audio engine when connecting to remote play
Fixed a few crashes with initializing audio drivers
Fixed issue with renderstate pileup when rendering level previews, which caused crashing when uploading some workshop levels
Fixed issue where selected duck color could be ignored upon joining a game
February 26th Patch (6302127) Audio Fixes
February 28th Hotfix (6307667) -------------------------------------------------------------------
Changed full moon calculation to use UtcNow, and made detection more lenient (12 AM on the day before or after a full moon should also be detected now)
The -debug command line option will now log additional steam related messages to the command console when running as administrator.
added 'copy' command to console, which will copy the command consoles current contents to the clipboard
February 26th Patch (6302127) -------------------------------------------------------------------
WAV files in mods bigger than 5MB are now streamed from HDD instead of loaded into memory to prevent out of memory errors when many mods are installed
Added Audio Engine selection to audio options menu to help anyone having issues with the default Wasapi API (Some builds with Proton on Linux seem to dislike this API)
Starting a remote play session now automatically switches the audio playback API to DirectSound (other APIs cause horrible horrible sounds)
More fixes for full moon check
Updated link for crash message when XNA framework is not detected
Added another check for -debug command line DLL dependency check
February 16 Patch
Hotfix =================
Added -debug command line option for debugging BadFormatException errors.
Fixed some new issues caused by target duck change.
Fixed issue with collision detection that caused unwanted clipping when jumping horizontally against a wall and a pane of glass at the same time (this was an issue introduced by 1.5's collision detection optimizations)
Main Patch =================
Added checks to prevent crashing when LoopingSound/ConstantSound instances aren't loaded properly/are disposed early.
Fixed cape not appearing for waffles hat
Removed _holdAction from TargetDuck, as this was only ever meant to be added to TargetDuckNew. This may affect challenges made after the 1.5 update using poweruser to place old TargetDuck objects holding automatic weapons.
The above change should fix a number of issues with the Grenade Launcher 102 challenge.
Added special check for version == 1 when loading old levels with background frame values == 255
Fixed issues with using frame 255 from custom tilesets in 1.5 level format
Fixed issue with editor where block nubs would get left over when removing objects and clutter up the editor UI
Rewrote mine sync again! Mines should now work online as they do offline. Mines are now client-synchronized similar to Quad Laser bullets, instead of being a mishmash (Mines will only explode when an object moves off of them if that object has isServerForObject == true)
February 4th 2021 Patch (6190465) (The Blocking Update...)
February 7th 2021 Hotfix (6204004) (Does not update version number) -------------------------------------------------------------------
Vincent will now buy things that
aren't* Round Tables.
Fixed crash caused by blocking the last player in your 'Recently Played With' list.
Fixed feathers!
February 5th 2021 Hotfix (6196421) (Does not update version number) -------------------------------------------------------------------
Fixed issue with Vincent giving multiple perimeter defence turrets.
February 4th 2021 Hotfix (6191479) (Does not update version number) -------------------------------------------------------------------
Fixed some index issues with font character fallbacks
Ragdolling now resets previous gun pickup delay, allowing quicker gun recovery when ledge grabbing and more (thanks Tater!)
Fixed crash with grappling hook
Fixed index crash with NMTransferScores
ItemBox contents are now included in the initial level data payload, this should help prevent issues with items not popping out of the boxes for clients
New Muting/Blocking system. To use, open the pause menu in a multiplayer game, move up to the name you're having trouble with and press GRAB. You can mute chat, hat, room and name seperately and blocking a user will automatically mute chat + hat + room. Additionally the blocked user will be kicked from your game if you are the host. Matchmaking will not join players you have blocked and they will be unable to join games that you host.
Fixed crash related to SteamUtils() returning null (the game will now run for the few experiencing this issue, but chat filtering will not function)
Removed chat filter toggle from options menu, as it was redundant with Steam's settings. To disable chat filtering go into Steam and click 'View -> Settings -> In-Game' and click 'Change Chat Filtering Preferences'
Fixed issue with XML loader where loading a blank file would cause a crash
Made a number of changes related to the PS4 porting process (rewrote shaders, optimizations and preprocessor changes). This should have no visible effect if everything was done correctly.
Duck Game is now being built in Visual Studio 2017 instead of Visual Studio 2015 due to PS4/Mono build requirements
Significant level rendering performance optimizations (AutoBlock/Level tile batches are now cached, need to keep an eye out for layering issues and other oddities)
General performance optimization (Level.things._bigList and Layer updates no longer constantly call RemoveWhere)
Disabled mods now appear at the end of the mod selection list, instead of at the beginning.
Retextures and map packs are now loaded before anything else, which should fix retextures not being applied to ducks
Fixed a number of issues related to using higher definition textures in texture packs
HD texture packs no longer need to set the isHD variable, larger resolution images will automatically load in properly
New system for re-texturing parallax backgrounds, see background/office.txt in DG's content files
Fixed bug where spectator's fans where showing up in the crowd
Fixed bug with full moon check not taking timezones into account
Fixed glitch when holding F1 with chat open (F keys no longer repeat when held down)
Fixed bug where taping a taped sword to another sword would eat the sword (taped swords should not be able to be taped to other swords)
Characters missing from room fonts will now fall back to the default font
Fixed issue with Energy Scimitar where it would get stuck glowing in props
Fixed bug with storing gold rocks in purple box where the stored rock would not be gold for clients
Fixed issue where input 'down' actions weren't behaving correctly with inputs mapped to mouse buttons (you can now properly throw the energy scimitar with throw bound to the mouse)
Killing ducks by hovering gun barrel over them while they are floating in the lobby beam is no longer possible (this was a bug introduced in 1.5 related to changes with armor/prop vs. gun collision checking)
Fixed Musket/Blunderbuss collision boxes
WELCOME TO DUCK GAME 1.5!!! (PART 2)
Welcome to the Duck Game 1.5, the biggest Duck Game update ever! In fact it was so big, we had to break the update notes up into two parts! Here is the long, long list of bug fixes. Quack on ducks!
BUG FIXES:
Hopefully fixed alt-tab lockup issue
Insane amounts of SFX should no longer cut out music
Musket/Bazooka smoke now properly travel in their gun's barrel direction
Added a fix for stretchy cannons
Fixed a number of offset/lighting glitches with level transition rendering
Fixed crash in sunlight refresh
Fixed rare occasion where steam lobby connection would be affected by previous lobby data
Removed infinite loop detector as it was crashing the game without reason and was basically in place to debug problems that have already been fixed
Reverted some Hat Selector changes that were causing bad things to happen
Non-lethal bullets now behave correctly with surface penetration
Non-flammable things can no longer burn
Fixed an issue that caused floating doors
Fixed an issue where network ducks would not moves sometimes
Fixed a desync issue with GhostObjects
Fixed a bunch of meaningless network talkback in the ghost object system
Fixed a number of pyramid level generation issues
Corrected some threading issues with the loading system.
Fixed issue where clients weren't properly spawning with holstered items
More platform fallthrough fixes (crouching and jumping near the edges of ledges was cancelling jumps, even though it shouldn't have been)
Fixed a number of power holster issues
DuckPersona.mallard now works properly
Fixed hat offset issue with vincent
Fixed -nomods not working with texture packs
Fixed issue with lobby type detection, this should help prevent Dan Rando from showing up in your private game
Random map generation fixes (first pass)
Fixed weird offset when removing helmets
Fixed reskins mod crash
Fixed issue with not being able to set custom challenges on custom arcade machines
Hopefully solved a number of sound initialization crashes
Fixed a number of object initialization synchronization issues
Fixed "Ignoring Removed Ghost" issue that was causing ducks not to move
Fixed a number of DWEP issues
Fixed synchronization issue with wire buttons on level start
Fixed sound synchronization issue with chain dartgun
Fixed a few synchronization issues with guns firing via heating or springing
Fixed issue with drumset blocking bullets
Fixed crash when joining local duck with no local slots enabled
Fixed a sword crash
Fixed crash running game without steam
Fixed issue with shotgun not returning to correct spawner when throwing it into the beam as players 5 to 8
Fixed issue with tall teleporters not connecting to each other when placed vertically
Fixed a number of pipe issues
Fixed issue where quickly drag removing objects in the editor wouldn't work properly
Fixed issue with random item crate not working, added "reveal random" property allowing '?' item crates
Fixed a few fullscreen crashes
Fixed a number of issues with background pipes generating collision
Fixed a few issues with death ray sound effects
Fixed parallax culling issues
Fixed issue with drumset disappearing online
Fixed a number of connection issues and lobby desyncs
Fixed issue with hat offsets on scoreboard in eight player mode
Fixed issue with background tile index loading that was causing potential data loss for larger tilesets
Fixed issue with layer cameras not getting reset which led to floating foreground objects and offset spawn indicators
Fixed crash related to setting too large a font size
Fixed issue with matchmaking window getting stuck when connection to a server fails
Fixed issue where infinite loop detector would trigger while dragging the game window
Fixed a memory leak with BufferedGhostStates
Fixed graphics object disposal crashed
Fixed item spawner item position glitching issue
Fixed position glitching issue with trapped ducks getting out of their nets
Fixed a custom/client/workshop level transfer related crash
Fixed crash related to creating a large raster font buffer when hidef mode is disabled
Fixed a number of minor graphical errors
Fixed a few collision bugs related to new collision code
Fixed changes that were causing DWEP to WOPP
Fixed GoalType crash caused by not setting a goal object
Fixed disappearing duck/ragdoll issue with full ghost state synchronizations (this caused particular problems when re-joining lobbies, as existing ducks would have their owner connections assigned to the host for the new client, which was causing a discrepancy and causing messages to be ignored)
Fixed a few input lockout issues with magnet guns and RC cars
Fixed red hot graphics glitch with flamethrower
Fixed a number of issues with object removal code
Fixed stack overflow crash with demo crate (this was likely causing hard lockups, the likes of which may have required a computer restart for people playing with native fullscreen enabled)
Fixed issue with jetpack smoke not appearing online
Fixed a few texture pack loading issues/crashes
Game will no longer crash when no audio device is detected
Fixed some editor resolution issues when using extremely wide aspect ratios
Fixed index out of range crash when disconnecting from game
Fixed bug with infinite firecrackers spawning way too many firecrackers when burned
Fixed a number of lobby crashes and errors
Fixed bug where destroyed network objects would be resurrected in a feedback loop
Fixed emoji support for different font sizes
Fixed issue where additional local players couldn't select custom hats
Fixed issue where players rejoining lobbies would get corrupted data (causing disappearing ragdolls/hats/etc)
Fixed an XML crash
Fixed issue where target ducks could no longer be crushed
Fixed a few editor placement issues
Fixed Kingdom Tileset collision issues
Fixed bug where backing out a local player would leave their door stuck open with a black background.
Fixed a bunch of holster synchronization bugs (disappearing objects)
Fixed bug where '+1' round win number color was appearing incorrectly
Fixed save location issues for OneDrive users..
Fixed MindControlRay crash
Fixed end of game recaps crash when playing in windowed fullscreen mode
Fixed issue where sliders with range minimums less than ze
WELCOME TO DUCK GAME 1.5!!!
Welcome to the Duck Game 1.5, the biggest Duck Game update ever! No seriously. It’s quacktastic. This update is our thank you to all of the long time supporting fans of Duck Game. Many of the things you’ve been asking for are here - 8 player multiplayer, spectator mode, hundreds of fixes and optimization, new maps, new weapons, expanded editor capabilities, customization options, and more.
Thank you for playing Duck Game.
Now, onto this ridiculous list of notes that took us like a week to compile. They were so big, we had to break it into two parts...
Eight Player Multiplayer
Duck Game now supports up to 8 Players
Added eight player versions of a number of levels
Added 'Eight Player' object to level editor which can be placed to designate a level as an eight player level
Creating a game via invite now automatically supports up to 8 players
Spectator Mode
New Spectator feature!
Games can support up to 4 spectators in addition to the new 8 player limit
Spectators get to wiggle around at the spectator table and drink their favourite beverages
Added Melon Soda for spectators
Spectator names appear purple in chat and connection windows
Spectator duck color can be changed by holding strafe and pressing ragdoll
You can now host a "dedicated" server, allowing a game to be passively hosted and watched without a present player
New Maps
Lots and lots of new maps
New Weapons & Equipment
Added Duct Tape - Now you can tape two weapons together!
Added The Dandylion - You’ll shoot your eye out, kid!
Added Camping Rifle - Trap enemy ducks in a cozy sleeping bag
Added Energy Scimitar - It’s a laser sword, but cooler
Added Pokeyhead - Pierce enemies and items from below with this handy new hat!
Added Powered Holster
Added Hats from Switch Version
Wahhs, Postals, Kerchiefs, UUFOs, B52s, Zeros,Clams, Bigearls, Toeboys, Waffles, and Diplomats, a top hat with 270 flags to choose from to use as a cape
Improved Mod / Custom Content Support:
Custom hats can now be loaded from PNG files in the game directory
Hats now support metadata (put an extra line of pixels to the right side of your hat- A 32x32 hat becomes 33x32, 64x32 -> 65x32, etc.)
The Red value of the pixel determines what type of metadata it is. Currently supported is HatIsTail(R = 0), and Offset(R = 1, G = 128 - X, R = 128 - Y) (128, 128 means zero offset)
Custom rocks are now supported:
If you make your custom hat texture 24 pixels higher (32x32 -> 32x56 for example), then the bottomLeft 24x24 pixels will be read as a custom rock.
Added support for viewing mod exception stack traces through mod browser
You should now be able to play levels with local mods online
Levels with mods containing workshop ID's will no longer be considered levels with 'local' mods, even if the mods are located locally
Improved mod crash detection
Mod.Debug.Log should no longer severely lag game when debugger is attached
The steamprofiles and invitelinks mods by eim64 are now autodisabled on startup to prevent crashes due to changed UI code because these mods have been implemented officially!
Levels from a mods’ Content/Levels folder are now shown in the level browser
Mod content load errors will now be shown, and miods with content load errors will now appear in the mod browser list
Restored a number of functions that various mods were accessing
"Disable Mods?" window that appears before creating/joining online games can now be disabled
You will now get a "Download mods?" notification when joining a server with different mods than yours through an invite
Crash windows will no longer open when a mod fails to load, unless the '-moddebug' command line option is present
Texture/Reskin packs are now officially supported (Add a folder in Mods/Reskins that mimicks the contents of the Duck Game/Content directory)
Texture/Reskin packs are now officially supported (Add a folder in Mods/Reskins that mimicks the contents of the Duck Game/Content directory)
Client reskin mod should now be working again
Added workshopIDFacade, namespaceFacade and assemblyNameFacade to Mod.cs to allow DEV versions of mods to define the ID's and Names of their release counterparts, allowing compatibility between them
ADDITIONAL NEW FEATURES AND IMPROVEMENTS
Ducks now breathe. As ducks should.
Added flagpole furniture for your room
Added 'Trick Shots' to stats screen
New pipes! Use these to traverse the map, and also to your immediate death.
Added a game paused indicator
Added an indicator for when host skips a level
Duck ragdolls are no longer torn apart so wildly while flying through the air, much to their satisfaction
Little men may now grow freely, even when you reach level 20.
Hats are now drawn on netted ducks
Screen will no longer show up in rooms with backgrounds
GAMEPLAY
Several improvements to Team hats
Team hats now have the lowest pickup priority of all props, which should prevent players from picking up a hat when they want something useful.
Team hats now go underneath everything
Team hats no longer block doors or spawners
Team hats no longer work for pressing buttons
Team hats will now drop at feet if replaced by an equipper
Darts really do stick to walls again now!
Dartgun now works at point blank range
Dart guns now work much closer to as intended online
Implemented a dozen more giant icicle breaking situations
Icicles now react to death laser, quad laser, darts
Strafe sliding into a wall will now make your duck stand up
Clicking and dragging the mouse should now allow any rightstick function (tongue, waving rock throw signs, etc)
Tongue-stuck ducks will now fall if what which they stuck their tongues on is destroyed
Made crates less shiny because crates aren’t shiny
Improved platform fallthrough code
Large item crates can no longer be moved around
Subtly increased velocity needed for a disarm (prevents waterflow objects from disarming, hopefully prevents a number of unintentional ragdoll disarms)
Rock collision is now accurate when raised against wall (also helps prevent rock camping)
Killbox and equipment collision boxes are now accurate when sliding (helps prevent rock camping)
TV stuck onto spike helmet now functions properly
The Rocket launcher no longer has slight rocket speed variation, and now has perfect accuracy (it was 95 percent accurate previously)
The Sword should now properly push other ducks online
Netting a sword wielding duck is now consistent between online and offline (the previously held sword no longer immediately kills the netted duck when playing online)
Sharpshot vertical kickback has been reduced while flapping wings
Insta Unragdolling is back
Flying Nets no longer block bullets
Changed timing on spawncannon feedback
First jump when spawning in water is no longer dampened
Scimi jumping is now possible with keyboard control schemes combining 'jump' and 'up' into one button
You can now speed up quad laser bullets by hitting them with a sword in the same direction (why wasn't this possible before??)
Bananas are no longer made of metal
Drumset now appears in front of blocks
Team Hats no longer disarm or push ducks
Reduced time it takes to load golden Oldpistol, Musket, Blunderbuss and Bazooka
Fall deaths will now occur only if the player's duck is off the bottom of the camera, in addition to being below the level. This should prevent dying in midair when skirting the bottom of levels
CHAT IMPROVEMENTS
Added chat Text to Speech accessibility option
Russian font support
Added support for non-english keyboards
Made chat bubbles less transparent to improve readability.
Improved black duck's chat readability
Custom mojis!
put an 11x11 or 28x28 png into MyDocuments/DuckGame/Custom/Moji then type it's filename in chat like this- :mymoji:
Received custom moji names are now shown in the Dev console (~)
Received Mojis can be stolen by typing their name into chat
Removed arbitrary moji sub-size limit, custom mojis can now be any size < 56x28
Chat emojis now use : instead of @ . For example, :sadface:
Chat/Connection indicators now appear on netted ducks/ragdolls
Chat avatars now have bodies and quack
Added 'bold' and 'italic' suffixes for 'chat font ' command
Added custom font support for chat font via options menu More.. section, or through console commands 'chat font' and 'chat font size
Added chat filtering, sentence enhancers can be re-enabled via options menu
Chat size has been corrected
(A new Tiny size has also been added, players with existing data may find their chat automatically set to tiny. New players will default to Regular chat size)
UI IMPROVEMENTS
Mallard skip signs should look a bit better
Game now supports resolution settings
Game should now properly support non 16:9 ratios (gameplay camera follows screen ratio, UI cameras are locked to 16:9)
Corrected squishing issues on non 16:9 monitors
Fullscreen settings are now updated in the Draw function instead of in Update
Windowed Fullscreen is no longer default
VSYNC should now work for non 60hz monitors
Error uploading now supports Japanese
Simple Hiragana/Katakana support (sorry about the font, I found it online. I'll make an improved one later!)
Reimplemented all ingame audio using NAudio, should reduce audio stutter and improve performance. Should also allow audio device switching while game is running. This also seems to seriously reduce random framerate stutters too (at least on my computer), I don't know what the heck happened to XNA's default audio playback but it's really not very good anymore.
Reduced size of all sound effects (trimming, converting files that should have been mono to mono). This should improve load times and reduce memory footprint.
Sound now supports Exclusive
Reduced volume of sound when things light on fire
Changed Duck #5's color to improve clarity
Improved sun and point light rendering
Made lights more dynamic
Further sound engine optimizations
All mallard colors are now more clear
Red hot glow is now more obvious and affects props as well as guns
Improved frame timing for when VSYNC is disabled (no longer using XNA's IsFixedTimestep)
PERFORMANCE AND OPTIMIZATION
Improved level loading times
Added limit for snow generators
Added redundant collision function implementation for checking layer, ignore object, etc which should improve collision check performance
Added more stuff to prevent Alt-Tab crashing
Removed network overload message, as it wasn't reporting anything useful (or any actual overload for that matter)
Completely removed threading from the initial loading process. This actually improves loading times, and should fix a number of lockups/crashes.
Improved object serialization/deserialization performance, should improve level/game loading times
Improved asset lazy load, this should help reduce stuttering during the games initial screens
Massive collision code optimization
Removed unnecessary XInput check in DInput driver that was causing a moment of lag on startup
Removed cloud settings menu, if you want to disable or enable cloud, or manage cloud files, please use the steam UI or a 3rd party tool
Improved purple box synchronization
Made a change that should help reduce crashing when changing back and forth from fullscreen (huge thanks to Dan for spearheading this and finding the issue)
Reduced unnecessary steam cloud activity (Steam's API's weren't updating file timestamps when writing cloud files unless said files had changed.
Added saveIndex variable to all save data which increments upon each save, ensuring save data timestamps are always up to date)
Major optimizations to ghost state refreshing system, as well as improvements to general network syncronization accuracy
Resolution logging in crash logs should now be more accurate
Improved crash logging
Removed gamepad enumeration thread in favor of a callback system (should help reduce framerate spikes)
Added "Alt. Timestep" setting for using original XNA timestep (which doesn't work correctly at all on my computer)
No longer preloading music, should decrease memory footprint
Synchronized save data is now saved in a Documents/DuckGame sub folder corresponding to your Steam ID number. Existing save data will automatically be moved there, anything outside of this subfolder will
not* be synchronized to the cloud.
things.RefreshState is now called before a network level is 'started'. This should fix some object initialization errors (and hopefully not create new ones..)
Crashlogs now show RAM details
Cleaned up bug report log format
All challengedata is now stored in player profiles. The ChallengeData folder will remain for existing users, but once the game has been started its data will be migrated and it will no longer be used.
Rewrote cloud integration, it should now detect deleted/modified local files (testing needed)
Custom levels are no longer preloaded, this should improve load times for people with many levels (and add a bit of lag when opening Custom Levels menu for the first time)
it will end the challenge as soon as MAX TROPHY is reached.
Crash/Alt-F4 related disconnects should now be detected much quicker.
Optimized level format
Reduced lag spikes caused by Xbox controller "IsConnected" check.
Optimized save data (should be smaller and load faster)
Changed GC settings to hopefully reduce framerate spikes
New netcode to prevent loss of state information in high jitter situations (packets arriving out of order)
Removed a bunch of unused data from BufferedGhostState (may improve network GC hitches, may already have been optimized out when building in release mode)
Added file saving safeties to reduce crashing on people with saves synchronized to dropbox/onedrive
Windows' new(ish) Rumble over Bluetooth feature doesn't seem to limit outgoing packets in any way, which was causing the game to become extremely laggy with bluetooth controllers. It was also causing bluetooth controllers to lose their composure and disconnect randomly. I'm limiting sent rumble messages on my end now, which should greatly improve wireless controller support. As always hardcore ducks should use a keyboard or a wire for best input performance.
MAP EDITOR IMPROVEMENTS
New editor feature:
Holding CTRL while dragging out background tiles will automatically select and place tiles adjacent to the selected tile allowing entire portions of the tileset to be drug out all at once. (this should help make adding Danny DeVito to levels easier). This can also be done on gamepad by holding down the tile placement button, then holding the MENU1(SHOOT) button at the same time and moving. On an XBOX controller with default settings this means holding A and X.
New city background tileset
Added box selection/mirror/flip functions to level editor
Added BuildingFramework tileset, an indestructible tileset which can be placed below normal blocks
Improved editor object placement - Quickly dragging out a line of objects should now form a consistent line without gaps
Added check when loading older levels for
extremely* large Y values, any objects with bozo values will not be loaded
Mouse will now automatically move to the current selected tile position when picking background tiles from the editor using MENU 1 (H by default)
Improved window focus detection, should prevent random tiles being placed a million miles offscreen when minimizing while using the editor (if you're ever making an XNA game I don't recommend using Game.IsActive)
Mouse input is now disabled until all buttons are released when clicking back into the Duck Game window. This should help prevent unwanted block placement in the editor.
High-Res texture packs are now possible (add the line 'hd' at the bottom of info.txt)
Reskin packs now support limited color replacement (Include a 'colors.txt' file, each line represents a string/hex pair that replaces a Colors.Color or Color.Color static data member. For example, to replace menu color with red: MenuOption=0xC0202D
Existing texture packs are now supported (thanks Yupdaniel!)
Vanilla maps can now be selected from custom map selection and put into playlists
Most vanilla levels now have explicit 1v1 spawn configurations. You can set your own 1v1 spawn configs by setting the 'secondSpawn' property on any duck FreeSpawn
(for example, have secondSpawn = false for spawns located on the left side of the level, and secondSpawn = true for spawns on the right to ensure 1v1 ducks never spawn on the same side. Note that secondSpawn does
not* explicitly mean any particular color of duck.
'My Levels' cloud folder is no longer a thing. Everything goes through the normal DuckGame/Levels folder again like always.
Level browser in editor now remembers what folder it left off in
Previews now show custom tilesets (you may have to delete My Documents/Duck Game/EditorPreviews)
CTRL + Middle Click in editor now activates layer selection swap mode- hold it when placing background tiles to select foreground objects and vice versa
NETWORKING:
Changed Invite lobby type from Friends to Private to prevent Dan Rando from just rolling in (this potentially means a bit more 'can you resend the invite' in the future unfortunately, as it disables right click -> join functionality on invite lobbies)
Rewrote connection system and level synchronization system
Added 'netData' to Profile class, which can be used to easily and automatically synchronize string->object pairs over the network. Example: DuckNetwork.profiles[0].Set("crazyName", "wowman")
Rewrote net synchronization for GoodBook
Snow tileset freezing and melting is now synchronized
Grenade Cannon should now be synchronized properly
Bonk stars should now be synchronized
Huge laser blasts are now synchronized
Synchronized more warp gun sounds
Getting smacked sideways with objects is now synchronized
Synchronized Present sounds/effects
Synchronized hat selector
Basketball whistle sound is now synchronized
Fire synchronization has been improved a bit, should result in less random lighting on fire online.
Synchronization of objects is now strictly locked between levels, this should help solve many level start desync issues
Fire position synchronization is now more accurate
Improved chainsaw fuel leaking synchronization
Firecrackers now work online
Disarm knockback now works correctly online
Added calls to properly upload stats to ensure accurate numbers (no more losing quack numbers)
New version numbers weren't working correctly causing games not to connect. This should be fixed!
Changed the way network particles and objects are removed, hopefully this will solve the serious slowdown and lockup issues that have come up online
Increased resolution of synchronized position and angle variables which should improve the visual smoothness of online play
Rewrote network particle manager, implemented a limit on the number of network particles to prevent lockups (fire should truly be more accurate now)
Rewrote cloud integration (again) to minimize unnecessary syncing and improve loading times. Removed 'local files deleted' message in favor of a new cloud file manager window where you can manually delete specific files from the cloud. If you delete files from your save game locally with cloud enabled, they'll come right back unless you delete them through a cloud file manager.
Massive pings should no longer cause a feedback loop of message resend
Ping calculation should now be more accurate, and should average out faster during connection. This should hopefully help prevent ducks from moving early.
Restored network authority system to round robin configuration (dropped pickup time comparison, it was leading to major desync issues.
If two ducks pick up and object at the same time, the duck with the lower network index will get to keep the object. To avoid host advantage, the network index is calculated as (DuckNetwork.levelIndex + duck.networkIndex) % numberOfPlayers, so the advantage order will change every level.
Changed some lobby sync code, this should result in faster initial connections and a smoother lobby experience (that is of course if it doesn't throw a wrench into things instead)
Reported Ping numbers should now be more accurate
Reduced network bandwidth required for sending removed objects
Reduced lag spikes that occurred in -nothreading mode
Removed network threadlock (may improve performance, hoping to solve a particular connection timeout issue)
Send.Message is now ignored when called online (why wasn't this the case before?)
General network synchronization improvements
Rewrote GhostObject synchronization, reducing redundant data and grouping together state messages to greatly reduce network traffic (should help with lag and performance!)
Game now properly sends disconnect message on intentional disconnects, so feedback should be a lot better for disconnects now.
Disarms are now accompanied with a special network message to make them more reliable online
Hopefully reduced situations where 2 or more players would claim to own the same object online. (this should reduce teleporting/getting killed by invisible objects)
Added strict level index filtering for non-reliable NetMessage
QUALITY OF LIFE:
You can now view a players steam profile page by selecting their name in the online pause menu (thanks eim64!!)
MAX TROPHY can now be set under "ADVANCED" in the arcade options menu, if you've gotten the best trophy on a challenge. This is for speedrunning.
Added "browse" button for file browsing dialogues that will open the current folder in Windows Explorer
Backfill fix is now enabled by default to prevent discord overlay artifacting
Abandoned green mallard heads in favor of color clearness
Alt-Enter no longer brings up chat window
Added IME support which can be enabled through the options menu
ESC can now be bound as a control
Slightly zoomed out camera on random levels to assist with navigation
Added the option to merge 'DEFAULT' account with main steam account (this will be done automatically if the game detects that there's no challenge progress on your steam account)
DG screenshot command is now button combination SHIFT + F12. F12 still takes normal steam screenshots
ItemSpawners set with Random and KeepRandom properties set now appear orange
CONSOLE CHANGES
Always remember not to put linebreaks in your command line!
Added -netdebug command line for enabling the network debugger. Hover the desired game instance and press START to join the game with it, each game will automatically host and join the first game. To override automatic join, hold SHOOT while pressing START.
Added Duck.invincible, and Duck.disableCrouch (thanks DORD!)
Added accelerationModifier variable on Duck for modifying duck speed, Duck.jumpSpeed now properly affects jump
Added '-command' command line option, which allows DevConsole commands to be called on startup. Commands must be in quotes, and multiple commands can be defined with additional '-command' elements. For example:
Added new console command options to 'level', including 'title', 'rockthrow', 'pyramid' and 'next'
Added '-oldangles' command line option for enabling old angling code, overriding the 'oldangles' console command
Added 'oldangles' console command, which will enable the old pre-beta direction changing code. This offers no objective benefit, and exists solely for personal preference!
Changed console resize commands, they are now accessed through 'console': console width, console height, console scale, console font, console font size.
Additional dev console commands can now be added via DevConsole.AddCommand. For Example:
Command console 'level' command now supports 'editor' and 'arcade'
Command console now supports copy and paste (hi Dan)
Command console 'give' command now supports 'e' as a third parameter, which will equip the spawned item.
Command console 'give' command now supports 'h' as a third parameter, which will holster the spawned item (spawns a holster if no holster exists). 'hp' spawns a Power Holster if none exists.
Command console now supports running multiple commands in a row by pasting (Ctrl + V) a line split list of commands. For Example:
level forest02
give player1 pewpewlaser
give player2 energyscimitar
wait 60
give player2 chestplate e
give player2 helmet e
wait quack
give player1 flamethrower i
Custom levels can now be loaded through dev console 'level' command
Dev Console can now be resized via Graphics settings menu, or through commands dcwidth, dcheight, and dcscale
Holding SHIFT while using PgUp, PgDown, Home and End in the console will allow faster browsing through old log messages
DevConsole is no longer teensie tiny, now has line numbers and PageUp/PageDown can be used to scroll through output
Dev console no longer opens when opening Discord overlay with Shift + ~
Dev console command "showcollision" now functions properly, and will not function when playing online
You can now move the cursor in the dev console, and toggle through all recently typed commands
September 18th Hotfix
Hey everyone! Just pushed a minor Hotfix patch for the current version of Duck Game. The changes include:
-Fixed crashes related to My Documents folder being located on a network, or otherwise being unavailable in some way.
-Fixed loading lockup crash related to profile unlock lists getting stuck in a feedback loop, leading to massive profile file sizes.
-Added forward compatibility for levels created in the latest beta versions.
Sorry if this got anyone excited thinking the big update was finally here. A massive patch will be released very soon, I'm aiming for mid October. Among hundreds of other things, it will add major editor improvements, new weapons, equipment and levels, an all new City tileset, vastly improved network synchronization and Eight Player Multiplayer! So keep an eye out~
September 19 Hotfix-
-Removed My Documents changes temporarily, as the change wasn't reliable. I'll post another patch as soon as I figure out how to deal with OneDrive MyDocuments folders (currently OneDrive causes the game to crash when save data is updating).
Duck Game @HOME UPDATE
A year and a half in the making, delayed many times to be released alongside the PS4 version of Duck Game, the big update is finally here! Raise little men, get toys, and fight in the snow!
Changelog
===================================
-New leveling system, grow up little men and get toys to decorate your duck's room.
-Buy toys from Vincent and his Boy.
-Entirely new random level generation system, "Pyramid" themed levels.
-A dozen new Snow tileset levels with new ramp and ice physics.
-Half a dozen new hats, unlockable through the leveling system!
-All new fire extinguisher with much more sudzy foam.
-Rewritten netcode, online play should be faster and smoother.
-Cloud support now included, must be enabled through the options menu but automatically uploads your save games for safe keeping even when loading them from the cloud is turned off.
-Server browser! Search for games, find and play games with mods. Privacy and filter options coming soon!