🚀 A fan game created while learning Godot Engine 4 🚀
- About
- How to play the game
- Technical Restrictions
- How is this Duck Hunt fan game different?!
- Resources used
- Disclaimer
- Third Party Licenses
I created this fan game as a first project in order to learn how to develop games in the Godot Engine 🤖.
If you don't know the Duck Hunt game, you can read about the original NES game Duck Hunt on Wikipedia 📖.
You can also watch a YouTube playthrough video of Duck Hunt 🎥 to get the idea.
Be sure to watch my demo video of Duck Hunt Remastered on YouTube 🎥 to see the game in action. 😎
Here are some screenshots of the game:
I uploaded an HTML5-Export of the game to itch.io, so that you can play Duck Hunt Remastered in your web browser. 🕹️🌐
In addition, I uploaded binary exports of the game for Mac OS, Windows and Linux 🕹️💻 to itch.io as well.
I encountered the following technical restrictions while testing the game in the following setups:
Export Type | OS | Web Browser | Playable? | Restrictions encountered |
---|---|---|---|---|
🌐 HTML5 on itch.io | 🍎 MacOS 14.1 | Safari 17.1 | ✅ | You have to click once so that audio output is enabled. |
🌐 HTML5 on itch.io | 🍎 MacOS 14.1 | Chrome 119.0.6045.123 | ❌ | Chrome freezes! 😱 |
🌐 HTML5 on itch.io | 🍎 MacOS 14.1 | Firefox 119.0.1 | ❌ | Game freezes while loading! 😱 |
🌐 HTML5 on itch.io | 🐧 Ubuntu 22.04.3 in VMWare Fusion 13.5.0 | Firefox 119.0.1 | ✅ | Cursor change on mouse hover on duck not working |
🌐 HTML5 on itch.io | 🪟 Windows 11 Enterprise Evaluation, Build 22621 in VMWare Fusion 13.5.0 | Internet Explorer Edge 119.0.2151.58 | ✅ | Cursor middle part not visible in embedded iframe, working though when maximized |
🌐 HTML5 on itch.io | 🪟 Windows 11 Enterprise Evaluation, Build 22621 in VMWare Fusion 13.5.0 | Firefox 119.0.1 | ❌ | Error: The following features required to run Godot projects on the Web are missing: WebGL2 - Check web browser configuration and hardware support 😢 |
🌐 HTML5 on itch.io | 🪟 Windows 11 Enterprise Evaluation, Build 22621 in VMWare Fusion 13.5.0 | Chrome 119.0.6045.124 | ✅ | Cursor middle part not visible in embedded iframe, working though when maximized |
🐧 Linux binary | Ubuntu 22.04.3 LTS in VMWare Fusion 13.5.0 | - | ✅ | Cursor change on mouse hover on duck not working |
🍎 MacOS binary | MacOS 14.1 | - | ✅ | - |
🪟 Windows binary | Windows 11 Enterprise Evaluation, Build 22621 in VMWare Fusion 13.5.0 | - | ✅ | - |
While this is no 100% guarantee that the game functions on your setup, it can give you a good indication.
Note: The SharedArrayBuffer support feature is activated on the game page on itch.io.
Fair question indeed and what started out as a spontaneous personal learning project that would never get shown to anybody, soon became a real passion for me. ❤️
I did research other Duck Hunt fan games on itch.io, before deciding to upload my version of a Duck Hunt fan game. 🦆 Here's the points I identified that my game does differently in many cases:
- 🕹️ Close to the original, but with a slight fresh touch, while sticking to the (S)NES style
- 😅 It's actually playable!
- 💪 Playable in web browser (via itch.io) and downloadable as native binary for MacOS, Linux & Windows
- 🧑🏫 GitHub repository including the source code of the game to learn from
- 🎥 Demo video & screenshots of game play
- 📖 Detailed Readme
- 🙈 Detailed comments and explanations in the source code, especially for pitfalls which some of cost me hours of debugging
- 🤖 Created and working in Godot Engine version 4.1.3
- 🎶 Background music & pond ambience sounds
- ☁️ Parallax clouds in the background
- 🦆 Ducks can have 3 colors: blue, brown, red
- 🐕 Dog picks up the correctly colored shot duck
- 🌾 Intro animation in which the dog jumps behind the grass
- 🎯 Animation for completing a round (shooting 10 ducks)
- 🦆 Ducks shot scream and then fall behind grass
- 🔫 Points appear where duck was shot
- 🚀 Duck flies out of grass from random X position
- 🤣 Dog laughs at you on game over
- 🦆 Duck bounces of window boundaries and top edge of grass
- 😏 The info boxes on the bottom part of the foreground are separate sprites which get scaled according to their content and on window resize (see Godot Engine docs on NinePatchRect)
- ⏱️ A timer shows time elapsed (mm:ss) since game start
- 🎯 Local highscore stored in a text file in the user space for downloaded game versions
- 👤 Random player name generator for highscore to keep it clean from profanity 😜
- 🎯 Online highscore for game version played in web browser on itch.io
As this is my first game in Godot Engine, I'm really proud of how it turned out and what I was able to learn so far! 🤩
- The Godot Engine, Version 4.1.3 🤖
- This project is inspired by the great Duck Hunt in Godot 4 tutorial video and example Duck Hunt project by 16BitDev ❤️
- The sprites for the animated ducks, animated dog, background & foreground are from Pik on spriters-resource.com. I did tweak them here and there a bit.
- The pixel clouds are from craftpix.net
- The Pixel Operator font is from fontlibrary.org
- The crosshairs cursor and regenerate icon are from kenney.nl
- All sound effects and music are from freesound.org
- I based the custom mouse cursor on the great tutorial by Jon Topielski. I had to make quite some changes though in order to get it to run in Godot Engine 4.
- The random player name generator is inspired by the random container names in Docker
- The online highscore is powered by the great SilentWolf backend services for Godot Engine
This personal learning project is not related to or endorsed by Nintendo®️. Use this personal project as is and at your own risk to have fun while playing it and to learn how to develop games with the Godot Engine. 🤖 No warranty and no official support are provided for this fan game project.
As this is a fan game, I have no commercial intent whatsoever regarding this project.
If you still want thank me somehow:
- ⭐ Leave a star for the project's repository on GitHub
- 👍 Like & comment my demo video of Duck Hunt Remastered on YouTube
- 😎 Like & rate Duck Hunt Remastered on itch.io
- 🕹️ Buy something great from Nintendo️®️, the originators of Duck Hunt
- 💰 Make a donation to the Godot Engine project
- 🐼 Make a donation to the WWF if you feel bad for shooting too many ducks 😜
See also https://godotengine.org/license/
This game uses Godot Engine, available under the following license:
Copyright (c) 2014-present Godot Engine contributors. Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Godot uses FreeType to render fonts. Its license requires attribution, so the following text must be included together with the Godot license:
Portions of this software are copyright © 1996-2023 The FreeType Project (www.freetype.org). All rights reserved.
Godot includes the ENet library to handle high-level multiplayer. ENet has similar licensing terms as Godot:
Copyright (c) 2002-2020 Lee Salzman
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
If the project is exported with Godot 3.1 or later, it includes mbed TLS. The Apache license needs to be complied to by including the following text:
Copyright The Mbed TLS Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.