
Godot Engine open sourced - beefsack
http://www.godotengine.org/wp/
======
chipsy
The site is totally hammered right now but I managed to grab a copy and get a
feel for what's in this. There's some truly exciting stuff to comb through
since it's a well-used engine with a lot of history, not someone's hobby hack.

What I've seen so far:

A custom scripting language(GDScript) which is roughly Python-esque. The wiki
explains that after trying the other common choices(Lua, Squirrel,
Angelscript) over a period of years, they rolled their own solution that could
be more closely integrated to the engine.

An in-editor help, it has some API docs.

Classes for GUI controls, including layout containers.

A fairly rich audio API, including positional audio, streamed audio, common
sample playback controls(pan, volume, pitch, looping), and some
effects(reverb, chorus, frequency filter).

Some networking functionality, including HTTP, TCP, and UDP(unclear?)
mechanisms.

Keyboard, joystick, mouse, and touchscreen input classes.

And of course lots of rendering and physics-related stuff, including various
shapes, cameras, meshes, sprites, animation, tilemaps, texture atlasing,
internationalized fonts, particle systems, and multiple viewports.

~~~
kevingadd
One specific reason why they rolled a custom scripting language is that they
needed vector/matrix types (i.e. vector3f, etc) exposed to scripts, and adding
those through an interface like cpython or lua's embedding api would have
produced scripts that were incredibly slow at manipulating vectors. Presumably
luajit might have fixed this, but I can understand that they didn't go that
far.

~~~
kmavm
Torch seems to be a concrete example of a numerically oriented luajit
embedding that provides high performance linear algebra primitives.
[http://torch.ch/](http://torch.ch/)

------
xacaxulu
Godot! Just what I've been waiting for!

~~~
sjwright
Haha.

[http://en.wikipedia.org/wiki/Waiting_for_Godot](http://en.wikipedia.org/wiki/Waiting_for_Godot)

(P.S. not _what,_ but _who._ )

~~~
pavlov
More pedantically, shouldn't that be "just _whom_ I've been waiting for"?

~~~
einhverfr
Edward Sapir says no ;-) In fact he devoted significant space in his 1912 book
"Language" to the death of "whom."

~~~
raverbashing
German maintains the difference (and a lot of other stuff), but yeah, as a
substitute for the direct object it's pretty much dead. (Nobody says "Whom did
that")

~~~
einhverfr
German still has a dative case. We lost our dative case in England around the
time Middle English developed.

~~~
raverbashing
Yeah, but Whom is used in the indirect object case, as in "To whom does this
belong"

~~~
einhverfr
Indirect object is similar to dative, sort of.

Seriously, most people would say "Who does this belong to?" We can argue
whether it is good style or not, but descriptively it is standard grammar.

~~~
thesz
Googling "to whom it may concern" returns ~2050000 results, "to who it may
concern" returns four time as less results (~479000).

You are not right.

~~~
lutusp
> Googling "to whom it may concern" returns ~2050000 results, "to who it may
> concern" returns four time as less results (~479000).

"Four times as less" -> "four times fewer" or "one-fourth" ??

~~~
einhverfr
"To whom it may concern" is formulaic though, just like "Dear Mr. President."

Those are words used as they are, verbatem, in a specific context. They are
thus ossified and preserved in a much more conservative state than the rest of
the language.

It is not unreasonable to suppose that even as our language changes, that
phrase will continue to remain intact in root and morphology even if the
morphology disappears elsewhere.

------
moron4hire
The problem with these things is, they show you screenshots of the types of
games you can supposedly make, but that is literally nothing to do with the
game engine itself. That's art assets, which are a whole other ball of wax.

Most of these games, the programming itself is trivial. If you can't hack it
together in Java without a game engine, then you're not going to be able to
hack it together in the game engine.

If you want to make casual indie games that look great, you need to be
focusing on your artwork, and how to make artwork that works well in games.

And for the love of god, do not neglect sound until the last minute. Good
sound in a game can be as complex to create and program as graphics. You
absolutely must develop it in tandem with the rest of your program. We are so
focused on visuals, but bad sound will ruin a game more certainly than bad
visuals, just as bad sound will ruin a movie more certainly than bad camera
work. Bad visuals could be a stylistic choice, but bad sound never is.

~~~
Legend
Any suggestions on where to start with the artwork for a complete newbie? I'm
very interested in game programming but the artwork has somewhat discouraged
me for quite a bit.

~~~
moron4hire
3D: get Blender and focus on learning it. Treat it like learning a programming
language. You get out of it as much as you put in. The only reason people
don't use Blender is because it's not 3DSMAX or Maya and that was what they
used in college, so that is what they've spent the most time on. Blender is
much better now than 10 years ago. It was garbage 10 years ago, but I've done
real work in it and found it to be quite easy to use even 2 years ago.

2D: study cartooning. Buy a Wacom tablet. Suck it up and buy Photoshop and
Illustrator.

Adobe Creative Cloud membership is $50/mo, which is basically the price of
Photoshop alone in a year, but gets you access to everything.

Audio: I started using Audition because of the CC membership, and it's been
great (I've also put together a few, simple videos with Premiere because of
CC). I find Audition is actually kind of fun to use.

Get yourself a drum machine of some kind. I have one of the older Korg
Kaossilators, a handheld device that runs on batteries. The new ones are even
better. I plug the headphone jack into the microphone jack of my computer and
I record directly into Audition. Making serviceable music for games is quite
easy with it. Just remember that less is more when it comes to music, and
don't be afraid to do non-traditional stuff, off beat, dissonant. It's easy to
make and creates much more atmosphere.

Neither I was able to figure out on my own, but they were all quite easy to
use after reading a few tutorials on them.

Just remember, treat it like programming. You're not going to get it
overnight.

~~~
Legend
+1 Excellent suggestions. Thank you for taking the time to write this! :) I'll
start with Blender and see where things go. Really appreciate it.

~~~
moron4hire
Oh, the documentation for Blender _does_ suck, though. There are certain key
UI features that were moved after the documentation was written. Your best bet
is to get into an IRC channel or a forum.

------
countersixte
Github repo:
[https://github.com/okamstudio/godot](https://github.com/okamstudio/godot)

------
malbs
Just playing around with this.... cross platform, doesn't try and be a "no
programming required" environment, GDScript looks good enough. Whole env is
intuitive. The live docs are decent. A couple of minutes in and I'm already
making something. This is pretty damned cool!

------
mariocesar
Impressive! I didn't know Godot. I just downloaded for Ubuntu and it works
100%, this is really awesome.

~~~
jebblue
Multi-platform including Linux, pretty impressive for sure, I'll check this
out for fun.

------
wikiburner
Just curious, does anyone have any recommendations for something similar, but
Javascript/HTML5 based?

What would the framework of choice be for a browser-based multiplayer game?

~~~
TheZenPsycho
Phaser, which uses the really awesome pixi.js rendering engine, can read in
files from Tiled, the map editor, and Spine animations. No 3d really as such
but pixi.js does have a webgl renderer that lets you add in glsl "filters" and
has some built in.

------
Nr7
Here's a similar project. [http://polycode.org/](http://polycode.org/) It's
still under development but it's ready enough to start playing around with it.

~~~
malbs
Polycode looks a little quiet, which is disappointing, it looks really nice.

~~~
JelteF
The screenrewrite branch has commits from 5 hours ago, so it's not really
quite in my opinion.

~~~
chipsy
It's definitely alive, but my second-hand observation through seeing a friend
attempt to use it for years, and even submitting numerous patches, is that
it's in perpetual churn and still is only really usable for its lead
maintainer.

Said friend went back to the homegrown engine and is much happier.

------
doyoulikeworms
This looks awesome!

Sorry to go off on a tangent. I've only been into (indie) game development for
the last year or so (blog:
[http://www.ckcopprell.com](http://www.ckcopprell.com)).

It looks to me like game development has lagged behind web development by
decade or so in terms of the democratization of tools. Free (as in beer) and
open source game development software have grown by leaps and bounds over the
last few years. Unity, GameMaker, Unreal/UDK, Anarchy, many many others have
become both viable and available.

In the 90's and early naughts, did web developers regularly write their own
servers, templating engines, databases, and all else that goes into web
development? Didn't game developers more-or-less have to write the whole thing
from scratch or license an expensive engine?

These are not rhetorical questions. I'd love to hear the perspective of
someone more knowledgeable than me.

~~~
munchbunny
Web development has stayed pretty democratic since the early days because
there is a small number of people pushing technological boundaries while the
vast majority work in a well understood space.

Game development has consistently been the opposite: in a race to better
graphics, better physics, bigger and better everything, game complexity has
only gone up. Companies are working with tech that is not open to access by
"mere mortals" because they are often proprietary hardware from
Microsoft/Sony/AMD/nVidia. As a result of the technological arms race, there
is a LOT of platform fragmentation in the graphics world.

So the problem is that game development is consistently a "big team" task, and
industry expertise is monopolized by companies. Tech trickles down very slowly
to hobbyists, so while there are engines for the rest of us to use, they don't
benefit from the kind of industry battle-testing that web technologies get.

Game engines like Unity and Godot seem to be changing this a little bit by
simplifying game development - standardizing complexity by abstracting away
low level optimization concerns that you'd really only care about when you
need to push technological boundaries. But in general the concept of
"convention over configuration" and its related ideas hasn't really caught on,
so there isn't even a standard way of thinking about game engines.

The last thing to consider is how much more complex games are than web. Web is
mostly a mixture of 2-D graphics and user input handling code. Games are often
3-D graphics (3-D is just much harder than 2-D), often have more
algorithmically complex input problems, require audio, and sometimes require
real-time networking for multiplayer (web can tolerate latency better).
There's just a lot more in there.

Another problem: because of performance requirements, the vast majority of the
core libraries for physics, graphics, etc. are written in C++. C++ is not easy
to pick up.

------
archagon
Looks great! What are the benefits of using this over something like Unity?

EDIT: Sorry if this sounded sarcastic. I was genuinely curious. Always happy
to see a new engine out in the open!

~~~
pikachu_is_cool
_Puts on Richard Stallman cap_

Freedom.

~~~
virgi1
Nope. Not GPL-licensed.

~~~
garg
MIT License is GPL-compatible.

~~~
einhverfr
Cue the BSD vs MIT license flame wars over whether the BSD license is free
enough or whether one needs the sublicense right grant in the MIT license to
achieve full freedom ;-)

------
negamax
Look at the end of error codes. Gold

[https://github.com/okamstudio/godot/blob/master/core/error_l...](https://github.com/okamstudio/godot/blob/master/core/error_list.h)

~~~
tantalor
Actual usage here,

[https://github.com/okamstudio/godot/blob/0b806ee0fc9097fa7bd...](https://github.com/okamstudio/godot/blob/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac/platform/bb10/export/export.cpp#L332)

------
lee337
Their site could maybe use some WP Super Cache :p
[http://wordpress.org/plugins/wp-super-
cache/](http://wordpress.org/plugins/wp-super-cache/)

This looks amazing!

~~~
al_dente
Or just varnish: [https://www.varnish-cache.org](https://www.varnish-
cache.org)

------
ekianjo
I've seen that the editor only runs on OpenGL 2.1 supported platforms, but can
it compile games for OpenGLES platforms?

~~~
pavlov
Looks that way. There are iOS, Android and BB10 targets in the "platform"
directory:

[https://github.com/okamstudio/godot/tree/master/platform](https://github.com/okamstudio/godot/tree/master/platform)

------
rdtsc
Thank you.

Very impressive project. I looked at the code in core folder and it looks very
clean and there are is a lot of good stuff in there.

------
S4M
Has anybody managed to run it on linux? I must be missing something obvious,
but I don't know what to do once I downloaded it. Running `upx -d
godot_x11.64` as mentioned on the download page doesn't do anything.

~~~
recentdarkness
I had no problems. the upx command is only decompressing it. you'd have to do:
`chmod a+x godot_x11.64` then you can run it with ` ./godot_x11.64`

------
beefsack
For those who want to use Sublime Text as the external text editor:
[https://github.com/beefsack/GDScript-
sublime](https://github.com/beefsack/GDScript-sublime)

------
Legend
I have never done game programming. Can anyone recommend whether it is easier
to pick this up compared to Unity? Also, isn't Unity expensive [edit: for a
newbie]?

~~~
j_s
[http://answers.unity3d.com/questions/7720/is-unity-really-
fr...](http://answers.unity3d.com/questions/7720/is-unity-really-free-.html)

> Unity Free is free for any individual to use

Feature comparison:
[http://unity3d.com/unity/licenses](http://unity3d.com/unity/licenses)

~~~
Legend
+1 Superb! I was not aware of this at all! Thank you so much.

------
nunodonato
Downloaded and giving it a try! Amazed that its under 10mb!

------
klrr
Is there any IRC channel for this project?

------
hpcorona
Wow this engine is really amazing... Need to start stressing it out to se
What's its made of...

Congrats

------
pjmlp
Look quite nice. I will surely give it a try.

------
notastartup
This looks like a solid product but any reason I should give up my unity3d? It
does look much easier to pick up than unity but I wonder what are the benefits
of this.

Also, if someone knows where I can find some free assets I can use. I thought
of ripping game sprites from old ROM games but stopped at the thought of
hypothetical lawyers rising from the dead.

~~~
TheZenPsycho
[http://opengameart.org](http://opengameart.org)

[https://github.com/DDR0/open_pixel_platformer](https://github.com/DDR0/open_pixel_platformer)

~~~
JoeAnzalone
Lots of goodies here, too:

[http://open.commonly.cc/unlocked](http://open.commonly.cc/unlocked)

[http://garage.commonly.cc/#download](http://garage.commonly.cc/#download)

[http://letsmakegames.org/resources/art-assets-for-game-
devel...](http://letsmakegames.org/resources/art-assets-for-game-developers/)

~~~
csense
Note to self: Do an Ask HN about open art assets for games sometime in the
future

