It’s been a while since the last regular development update, and we have some exciting news to share about new developments during the past few months.
SDK Release 1.10.3
The new bugfix release of Panda3D has been released. A lot of improvements have been made in this version including fixes for the physics and collision systems, support for various gamepads, some important stability fixes for macOS, and many more. Some improvements also apply to the OpenGL rendering system, such as the ability to create multisample-enabled graphics buffers in non-multisampled host windows, which makes it easier to enable multisample antialiasing at runtime without having to reopen the window.
Take a look at the release notes at the bottom of the download page for a full list of the included changes.
Note, however, that 1.10.3 does contain a known regression with DirectOptionMenu, which throws an exception regarding an unknown property
popupMarker_pos when initialized. While you can work around this by replacing the DirectOptionMenu.py in your Panda3D installation with the latest version from GitHub, this could be a reason to choose to hold off on upgrading for now. This issue will be remedied in the upcoming 1.10.4 release, which we intend to release shortly.
Two students are working on improving Panda3D as part of Google’s Summer of Code (GSoC), a 3-month long programming project that intends to introduce higher-education students to open source development and help them gain exposure to real-world software development techniques during their summer break. For the organizations partaking in this event, it is a big opportunity to get new developers involved with Panda3D, with the hope that they will continue contributing to Panda3D and open source in general even after GSoC has ended.
One of the students is working on Panda3D’s internal collision system. He is working on implementing several new collision tests that were previously not available to the internal system; namely “parabola into box”, “parabola into inverse sphere” and “box into capsule”. Several changes have already made it to the main repository. In addition to this he will also implement a new solid for the system, CollisionHeightfield, which can be generated from standard grayscale heightfield maps. This will help to implement collisions with heightfield terrain more efficiently than the current approach of representing the solid with individual collision polygons.
You can get more information about his approach and updates on his progress in this forum post as well as on his official proposal document.
The other student has taken up the task of finishing the iOS support, which was once started by David Rose but later abandoned due to a policy change in Apple’s AppStore which has since been reversed. Since we intend to switch to the CMake build system in the near future, he has taken the approach of implementing support for iOS on top of the CMake port rather than the current makepanda system. He has already achieved proof-of-concept status, being able to run basic Panda3D games on his iOS device, and is now focusing on implementing multitouch support based on work that has already been done for other platforms. He also has defined a few stretch goals as part of his project, including embedding Panda3D into other iOS apps via a custom ViewController, providing XCode project templates, and writing documentation.
You can get more information about his approach in this forum post as well as on his official proposal document.
Our OpenCollective funding campaign, which officially started back in March to ensure the future of Panda3D development, has had a great start. We’ve quickly sped past our first target and have nearly reached $1000 per month. We’re very grateful to have a community that is so willing to support the development of Panda3D.
Thanks to the success of the campaign, we’re in the process of expanding our development team. We’re actively looking for people familiar with Panda3D who are willing to do paid C++ labor for us. If you are interested, please get in touch with us on Discord!