Items tagged with: godot
Digital Declutter and Learning Godot checkin for 2019-04-29
I'm nearing the end of my digital declutter. This is my check-in for the
- Reduce my use of social media to only a few times per day. I've had
some mixed success with this. I'm starting to feel the pull of
wanting to check in more to see how folks are doing. But I've also
found that using the tools I'm using (tootstream on the computer,
Pluspora on the web, etc.) have allowed me to keep more of my focus.
Tootstream doesn't auto-refresh so it's not the constant barrage of
incoming stimuli. I think that's helpful. But it's also not as
visual as the web.
- No social media on the phone. See above. Though I have found that I
can waste my time with anything (reading Ralph Vaughan Williams
biography on Wikipedia on the phone while standing in the kitchen
was not my proudest moment this past week).
- No podcast catcher on the phone. This was the first thing to give as
I mowed the lawn. When I mow the lawn I enjoy listening to podcasts
as it gives my mind something else to do while I'm working on the
lawn. I knew this would happen though, so I'm still calling this a
win so far.
- Disengage from Reddit. I might subscribe to the Fate RPG subreddit
at some point, but for now I'm really no missing this.
- Utilize RSS more. I've found that I'm starting to use RSS as my
distraction throughout the day. This isn't helped by it being in my
email client and being a few keystrokes away. Part of it also is
because if I don't look at it then I'll be greeted with a boat-load
of new articles. That said I do subscribe to things that I could
probably let do, and most of my RSS reading is deleting articles
that I'm not interested in. I'll need to play with this some more.
- Cutting back on the number of times I check email. Some days this is
easy, and other days I found myself looking in there to see if
something showed up. It's something that I'm going to need to be
aware of more, and something that I'll need to focus on.
- Cutting out Youtube. Still noticing the same patterns when I'm
looking for music to share with others. Perhaps I need to make a
hard cut on this and say that if it isn't on Bandcamp it doesn't get
shared. Also I follow way too many folks on Youtube and will need to
start culling those down.
glued to digital distractions are:
- Creating more with Godot. The pressure of the upcoming presentation
has given me renewed interest in this. I have a working clone of a
game that was released in the 1970s working (it's not complete, but
it should suit enough of my purposes). I'm hoping that my progress
so far isn't culled completely when I deliver these presentations. I
rather enjoy working with this tool.
then this hasn't gotten much attention this week.
Administration. I've been working to make more space for this. So far
it's been getting some slow progress, but I'll take it.
Reading. I've not expanded much of my reading habits.
Tidying. Presentation crunch, so no progress here.
Playing games. Some slight progress here, but not a lot. I do want to
focus more on board games in the coming months.
Interacting with human beings. Not much progress here.
I think I'm going to extend this challenge to the end of Penguicon and
slowly reintroduce things. I can see the first thing will be the web
client for Mastodon, but I'll add that slowly and monitor my progress.
Maybe I'll make it so during working hours I can't use it, and if I want
to use it later on I can. But I can feel myself looking forward to this,
so I know that could be a subtle trap. Will still need to play with this
#Adayinthelife #DigitalDecluttering #Godot #Computers #Programming #SocialMedia #LearningChallenge
Learning Godot while doing a digital declutter
I've been working on learning Godot for the past few weeks in
preparation for a presentation for Penguicon. (Pro-tip: if you want to
learn something in a hurry the best way I've found is to commit to a
presentation about the topic.) What's been rather interesting bout Godot
is that on the surface it seems rather simple in what it can do but can
get rather complex as you dig deeper into how it works. I've also
realized that GDScript (the language that Godot uses as a scripting
language) is really a thin layer over the internal workings of the C++
engine for Godot. That sparked an interest in learning a bit about C++
and getting more familiar with how Godot is working under the covers.
C++ is not my favorite language by a long shot (I've resisted learning
more about it in part because I find C++ a rather ugly language) but it
might be high time to sit down and give it some more attention. I'll be
digging deeper into Godot and I hope to share more of what I learn in on
What's helped though is the digital declutter that I've been working on
(see previous post). By reducing my digital distractions I've chosen to
make learning more of a priority. That's not to say that it's been
perfect, or that I've become a learning powerhouse (I haven't by any
stretch) but it's given me more options outside of scrolling through the
lives of others and living vicariously through their successes and
failures. And that's what I've wanted the most out of this: the ability
to focus my attentions more on my work and my learning.
#Adayinthelife #SocialMedia #DigitalDeclutter #Godot #LearningChallenge
HN Discussion: https://news.ycombinator.com/item?id=19676105
Posted by makepanic (karma: 1824)
Post stats: Points: 142 - Comments: 18 - 2019-04-16T18:35:11Z
#HackerNews #2019 #announcing #engine #godot #showreel #the
HackerNewsBot debug: Calculated post rank: 100 - Loop: 379 - Rank min: 100 - Author rank: 155
We are delighted to announce that Godot Engine has been awarded USD 50,000 by Mozilla as part of the Mozilla Open Source Support (MOSS) Mission Partners program. This award will be used to fund the…
Article word count: 804
HN Discussion: https://news.ycombinator.com/item?id=19639421
Posted by wyldfire (karma: 10897)
Post stats: Points: 184 - Comments: 21 - 2019-04-11T21:28:33Z
#HackerNews #50k #awarded #engine #godot #mozilla #open #program #source #support
We are delighted to announce that Godot Engine has been awarded USD 50,000 by Mozilla as part of the Mozilla Open Source Support (MOSS) Mission Partners program. This is the second time that Godot receives a MOSS award, after a first award of USD 20,000 in 2016.
This award will be used to fund the work of some of our core contributors on three different work packages, all linked with Mozillaʼs mission of furthering an open and accessible Web. For Godot, this means making sure that everyone can build and play networked and browser-based games with open source technology.
The work packages (WP) that we defined together with Mozilla are described hereafter. All the contributors working on those work packages are hired as contractors by our fiscal sponsor Software Freedom Conservancy, part-time and for a duration of 9 months. They will post progress reports on this blog.
WP1: Godot Engineʼs editor on the Web
Godotʼs editor is built with Godot itself, using the same runtime and UI toolkit as games developed with Godot. This means that it can run on any platform where Godot can run, including browsers via WebAssembly. While itʼs relatively easy to make the editor build and run for browsers, many of its features canʼt work out of the box and need specific development for HTML5, such as handling multi-threading or the lack thereof, running/debugging edited projects, filesystem management, cloud storage, etc.
Our contributor Leon Krause (eska), who is the maintainer of our HTML5/WebAssembly platform port, will work on providing a first-class integration of the Godot editor in browsers.
This might open many possibilities in the future such as sharing direct links to projects/scenes in bug reports of the Godot Q&A, being able to run and edit demo projects directly from the browser, collaborative edition features... Notably, this could also be an advantage for Godotʼs adoption in teaching environments, where getting software installed and configured on all computers of an institution can be a hassle (even for an engine with such a small footprint like Godot).
The WP also includes work to make the editor work on mobile browsers, such as touch screen gestures, responsive UI, etc. This should also make it possible for us to port the editor to Android and iOS natively to tweak your projects on the go.
Additionally, while working on make the editor run smoothly on all major browsers, Leon will have to fix issues which are also relevant for exported games, so all users of the HTML5 port should benefit from this work.
Leon will start the work on WP1 in coming days.
WP2: WebRTC and networking improvements
Fabio Alessandrelli (Fales) is the maintainer of both low-level and high-level networking APIs in Godot. In 2018, he mentored the student Brandon Makin as part of the Google Summer of Code, who did initial work on integrating the WebRTC technology in Godot. The project faced various hurdles with the WebRTC library and could not be completed during GSoC, so Fabio will complete this work. He will also write documentation and create demos and plugins showcasing the use of WebRTC and WebSocket.
WP2 will also cover better tools and debugging features for networked projects, including some changes which will be relevant for Leonʼs work in WP1, such as implementing an HTTPServer to serve HTML5 exported files, and use WebSocket instead of TCP to communicate between the editor and debugger in HTML5 exports.
Finally, Fabio will work on further networking improvements, including a refactor of the low level TCP/UDP abstractions, implementing DTLS over UDP using mbedTLS, and improving the error handling in the Multiplayer API.
Fabio already started working on WP2 in March, and will soon post his first progress report.
WP3: Artwork commission for high quality demos
Fernando Calabró, the artist who worked on the TPS demo, is going to make professional 3D assets for two more demos. These demos will be used to showcase and benchmark various features of the engine. Particular attention will be given to optimize them for Godotʼs HTML5 platform (in part thanks to work done in WP1). This will enable them to be used as benchmarking material for upstream WebAssembly developers, thus contributing back to improving this stack.
Fernando started working on WP3 in March, and will soon share his current progress and more details about the planned demos.
A big thank you to Mozilla for supporting our project again with such a substantial award!
As a non-profit entity, we rely on the generosity of the many users who support us on Patreon, as well as companies who sponsor us or grant us funding for specific work packages. Being able to add two part-time developers and one artist on the projectʼs "payroll" will be a huge boost in productivity and development for the engine, and should greatly benefit the community as a whole.
HackerNewsBot debug: Calculated post rank: 129 - Loop: 288 - Rank min: 100 - Author rank: 38
I've also created a basic 3D flyover animation of Giza:
You can download the model here:
All made with #foss only of course: #Blender, #ffmpeg, #Gimp and so on. Already uploaded to Wikimedia Commons. I hope you will reuse it, and my hope is you will keep the derivative works in the public domain as well. It would be great if someone could e.g. create an interactive tour with the #Godot engine.
After a bit more than one year of work, the Godot developers and contributors are delighted to get their new release out the door, Godot 3.1! It brings much-requested improvements to usability and…
Article word count: 2795
HN Discussion: https://news.ycombinator.com/item?id=19386409
Posted by reddotX (karma: 2535)
Post stats: Points: 137 - Comments: 25 - 2019-03-14T03:53:57Z
#HackerNews #godot #released
After a bit more than one year of work, the Godot developers and contributors are delighted to get their new release out the door, Godot 3.1! It brings much-requested improvements to usability and many important features.
Godot 3.0 was a massive release, which required large rewrites of the engine codebase and breaking backwards compatibility significantly. This new version builds upon it by improving it and finishing the pending work.
As a result, Godot 3.1 feels more mature and easy to use, and it does away with many hurdles introduced in the previous versions.
Download Godot 3.1 now and keep on reading about the great features added in this version.
As always, please remember that we are a not-for-profit organization dedicated to providing the world with the best possible free and open source game technology. Donations have played a vital role in enabling us to develop Godot at this sustained pace. Thanks to all of you patrons from the bottom of our hearts!
If you use and enjoy Godot, plan to use it, or want support the cause of having a mature, high quality free and open source game engine, then please consider becoming our patron. If you represent a company and want to let our vast community know that you support our cause, then please consider becoming our sponsor. Additional funding will enable us to hire more core developers to work full-time on the engine, and thus further improve its development pace and stability.
While this article focuses mostly on the new features of the engine, itʼs worth mentioning that Godotʼs documentation has seen a lot of work from dozens of contributors. A detailed changelog is being worked on, you can see the current draft on GitHub.
Release trailer by Nathan Lovato (GDquest) showcasing the outstanding new features of Godot 3.1.
Hereʼs an index of the outstanding features described in this post:
OpenGL ES 2.0 renderer
The Godot 2.x branch used OpenGL ES 2.0 / OpenGL 2.1 (GLES2) as its rendering API. This worked well, but had many limitations preventing us to use more modern rendering techniques.
In Godot 3.0, all rendering code was rewritten to use the more modern OpenGL ES 3.0 / OpenGL 3.3 specifications (GLES3) and the OpenGL ES 2.0 renderer was removed. This seemed like a great idea at the beginning, but ended up giving us many problems, such as:
* Bad performance on old mobile/desktop hardware which wasnʼt designed for the more modern rendering techniques being used. * Incompatibility with older mobile devices which do not support OpenGL ES 3.0. * Incompatibilities in the HTML5 platform, as not all browsers support WebGL 2.0 (the equivalent specification for OpenGL ES 3.0). * Lots and lots of driver bugs in mobile and desktop. On desktop, it seems that modern OpenGL is not well supported by various driver vendors, and regressions keep coming up in new drivers on macOS and Windows. On mobile, as OpenGL ES 3.0 is comparatively new, there is a range of many years where devices with very buggy drivers came out. Even modern flagship devices still ship with crippling driver bugs.
Due to this, we were forced to bring back the OpenGL ES 2.0 / OpenGL 2.1 renderer. This work was done by Thomas Herzog (karroffel) and I (reduz).
On the 2D side, this new renderer is feature complete. On the 3D side, a simpler approach to rendering was done that is intended to be more limited, but more compatible. It has the following features and limitations:
* Rendering is done entirely on sRGB color space (the GLES3 renderer uses linear color space). This is much more efficient and compatible, but it means that HDR will not be supported. Lighting looks a bit different too. * Some advanced PBR features are not supported, such as subsurface scattering. Unsupported features will not be visible when editing materials. * Some shader features will not work and throw an error when used (which is to be expected when using an older OpenGL version). * Some post processing effects are not present either. Unsupported features will not be visible when editing environments. * As this back-end is intended to run on the lowest end hardware possible, shaders need to be kept very small. As such all lighting is done by using a forward multi-pass approach. * GIProbes of course donʼt work. Use baked lightmaps instead. * GPU-based Particles will not work as there is no transform feedback support. Use the new CPUParticles node instead (more on this later).
From the points above, it must be clear that OpenGL ES 2.0 is not a fallback but a different platform you should target your game for. It looks different and has different limitations. If your game aims for absolute maximum compatibility, use this backend instead of the GLES3 one. If you aim for modern features at the cost of compatibility, donʼt use it.
Optional typing in GDScript
This has been one of the most requested Godot features from day one. GDScript allows to write code in a quick way within a controlled environment. As any dynamically typed language, it allows churning out large amount of code at a high speed.
However, dynamically typed languages have some limitations that can be a hassle:
* Code completion is not always possible. * Performance is constrained to the interpreter. * Does not always catch errors during compile (or write) time. * Code can be less readable and difficult to refactor.
Our contributor George Marques (vnen) did a fantastic job implementing optional typing in GDScript to tackle these problems. For Godot 3.1, optional typing is a parser-only feature. The plan is, afterwards, to include typed instructions in the state machine to greatly optimize performance.
One nice implementation detail is that the code editor will now show which lines are safe with a slight highlight of the line number. This will be vital in the future to optimize small pieces of code which may require more performance.
This work also enabled GDScript warnings, which will now be raised by the parser. You can toggle which warnings you want to see in the Project Settings.
The Godot inspector has been rewritten from scratch. It is now a lot more comfortable to use. Among some of the nice new features are proper vector field editing, sub-inspectors for resource editing (no longer needed to switch to a separate one when editing resources), better custom visual editors for many types of objects, very comfortable to use spin-slider controls, better array and dictionary editing and many many more features.
Revamped 2D editor
The Godot 2D editor has seen a serious rewrite by Gilles Roudiere (Groud). There is a much better use of gizmos, as well as showing small crosses where generic nodes exist. In particular, it solves a major pain point for new Godot users by no longer offering scaling handles for collision shapes, but letting you directly change their size instead.
New TileSet editor
The tileset creation workflow in Godot had always been a major pain point for users due to its tediousness. Mariano Suligoy (MarianoGnu) wrote a whole new TileSet editor with many features familiar from other tileset creation software, and a much better support for the autotile feature added in 3.0.
Revamped filesystem dock
Another fine piece of work by contributor Gilles Roudiere (Groud) and sponsored by Gamblify. The new filesystem dock has been rewritten and now supports a single tree + files view by default, with thumbnails for the files. It makes it easy to navigate projects and understand where everything is.
KinematicBody2D (and 3D) improvements
Kinematic bodies are among Godotʼs most useful nodes. They allow creating very game-like character motion with little effort. For Godot 3.1 they have been considerably improved:
* Support for snapping the body to the floor. * Support for RayCast shapes in kinematic bodies. * Support for synchronizing kinematic movement to physics, avoiding a one-frame delay.
Revamped animation editor
The animation editor has also been completely rewritten to ensure a much better experience. Some of the more outstanding features are:
* Friendlier layout, with less clutter. * Key previews for most types of keys allow seeing the key values within the track. * Ability to group tracks by node. * Key editing in inspector. * Copying and pasting tracks. * Capture tracks, which interpolate from existing values. * Ability to create custom track editor plugins. * New track type: Bezier. * New track type: Animation (play animations of sub-animation player, allowing complex cinematics). * New track type: Audio (play audio on StreamPlayers, including 2D and 3D).
The old AnimationTreePlayer has been deprecated in favor of the new AnimationTree node. Besides improving the blend tree, it also supports blend spaces (1D and 2D), a state machine, and a modular approach that allows you to combine all modes hierarchially to better reflect your gameplay.
Support for root motion as well as the ability to write your own custom blend nodes has also been added.
New axis handling system
After several months of deliberation and prototypes, we settled on a really good approach to axis mapping, courtesy of Gilles Roudiere (Groud). Instead of going the way other game engines do it with axis definitions, Godot 3.1 uses the novel concept of "action strength".
While it may take a bit of time to sink in, this approach allows using actions for all use cases and it makes it very easy to create in-game customizable mappings and customization screens.
Visual shader editor
The visual shader editor has made a comeback. This was a pending feature to re-implement in Godot 3.0, but it couldnʼt be done in time back then. The new version has a lot of niceties, such as PBR outputs, port previews, and easier to use mapping to inputs.
It is now possible to create 2D skeletons with the new Skeleton2D and Bone2D nodes. Additionally Polygon2D vertices can be assigned bones and weight painted. Adding internal vertices for better deformation is also supported.
Godot now supports 2D meshes, which can be used from code or converted from sprites to avoid drawing large transparent areas.
Improved 3D editor
Just like the 2D editor, the 3D editor has also been considerably improved. Joan Fons Sanchez (JFons) did a magnificent job by improving how selection works and entirely rewriting the gizmo system.
3D softbody support
Andrea Catania (Odino), who integrated Bullet to Godot 3.0, has added support for soft bodies in Godot 3.1. This is a very easy to use implementation supporting many nice features.
Ragdolls and Skeleton IK
Also by Andrea Catania (Odino), there is a new PhysicalBone node used for easy ragdoll setups, as well as a SkeletonIK system which allows creating simple Inverse Kinematics (IK) chains for existing skeletons and toggling bones from regular to IK mode.
Constructive Solid Geometry (CSG)
CSG tools have been added for fast level prototyping, allowing generic primitives and custom meshes to be combined via boolean operations to generate more complex shapes. They can also become colliders to test together with physics.
OpenSimplex and NoiseTexture
Support has been added for OpenSimplex (another very requested feature from users) by Joan Fons Sanchez (JFonS). Additionally, a noise texture can now be used as a resource, which generates noise on the fly.
CPU-based particle system
Godot 3.0 integrated a GPU-based particle system, which allows emitting millions of particles at little performance cost. As OpenGL ES 2.0 support was added, this feature could not be supported there, so we added alternative CPUParticles and CPUParticles2D nodes.
These nodes do particle processing using the CPU (and draw using the MultiMesh API). They are quite efficient for lesser amounts of particles and work on all hardware. Additionally, these nodes open the window for adding features such as physics interaction, sub-emitters or manual emission... which are not possible using the GPU.
Greatly improved C# support
Ignacio Etcheverry (neikeq) and other contributors have done a tremendous work since Godot 3.0 to improve the C# integration in Godot. As of 3.1, C# projects can be exported to Linux, macOS and Windows. Support for Android, iOS and HTML5 will come further down the road, with Android being the current priority.
Both Ignacio and Hein-Pieter van Braam (hpvb) did great work to improve our Mono builds and remove some of its previous hurdles, such as being tied to a specific Mono version. The relevant bits from the Mono SDK are now included directly with the editor binary, and you only need to install MSBuild to build and ship C# games.
Fabio Alessandrelli (Fales) did a number of improvements to Godotʼs low-level networking APIs and high-level multiplayer API. He also implemented support for WebSockets, and Max Hilbrunner (mhilbrunner) helped him with various fixes and adding support for UPnP.
Custom classes registration
Will Nations (willnationsdev) implemented a way to register GDScript classes (and thus scenes/nodes) as custom classes that can be added directly from the "Add Node" dialog as if they were built-in nodes. This is done with the class_name keyword, which also allows defining a custom icon for the node.
MIDI and microphone input
Marcelo Fernandez (marcelofg55) added support for using MIDI devices as input devices. Together with SaracenOne, they also added support for capture microphone audio.
More VCS friendliness
Godot is already unrivalled with regards to being friendly to version control systems (VCS). The new 3.1 version includes some very requested enhancements such as:
* Folded properties are no longer saved in scenes, avoiding unnecesary history pollution. * Non-modified properties are no longer saved. This worked up to some extent before with properties that were not zero but it now applies universally. This reduces text files considerably and makes history even more readable.
Many more changes
The above are only the most outstanding features. Hundreds of other changes have been made since Godot 3.0. You can read about them in the release changelog.
A heartfelt Thank You to all the contributors who worked on Godot 3.1!
Compatibility with 3.0
Godot 3.1 strives to maintain compatibility with Godot 3.0.x, so your projects should be easy to port over to the new version. There have been some compatibility changes though, especially in GDScript due to the new optional typing changes, but they should be easy to adapt to in a couple of hours at most. Refer to the changelog for details on what changed exactly.
After so much work on improving usability and compatibility, the main focus will move into further improving rendering. The current GLES3 renderer will be deprecated in favor of a Vulkan-based one and 3D rendering will once again become the priority. The goal is to release Godot 4.0 one year from now (or less, I hope) with a top notch modern renderer capable of everything the other big engines can do.
In parallel, other contributors will continue working on other areas and usability will keep improving. We plan to release Godot 3.2 in the second half of 2019 with those improvements (the Vulkan work towards Godot 4.0 will be done in a separate feature branch). Some of the areas we want to focus on are:
* Adding typed instructions to GDScript to improve performance of typed code. * Adding FBX support, either via Assimp or OpenFBX (the official Autodesk library cannot be used due to their restrictive licensing terms). * Improve the Android and iOS export workflow, in particular adding a simpler way to integrate mobile SDKs such as AdMob, without having to recompile the whole engine. * Getting the Godot editor to run on a web browser (ideal for public teaching institutions). * Improving networking to better support dedicated servers and modern protocols.
And many, many more features. Of course, always keeping priority on stability and usability.
Finally, we will also have patch releases for Godot 3.1.x to fix some more bugs and improve usability in a backward compatible way. In particular, some of the new features in 3.1 might still have issues preventing their use in some scenarios. We know for example of yet-unresolved OpenGL ES 2.0 issues on some lower end mobile devices, which will be addressed soon in 3.1.x maintenance releases.
Help us reach our next funding goal and speed up Godot development!
We are looking to get enough funding to hire a dedicated generalist. This will significantly reduce the time between adding features and new releases, which is currently our biggest bottleneck. Having a dedicated generalist will help us work constantly on fixing issues and improving usability even while new features are being added, reducing the time required to wrap up a new release.
Again, if you use and enjoy Godot, plan to use it, or want support the cause of having a mature, high quality free and open source game engine, then please consider becoming our patron. If you represent a company and want to let our vast community that you support our cause, then please consider becoming our sponsor.
And now, have fun with Godot 3.1ʼs new features!
HackerNewsBot debug: Calculated post rank: 99 - Loop: 253 - Rank min: 80 - Author rank: 41