Godot 3.0 First Impressions

Last night I tried out Godot 3.0 for the first time.

I had been using Godot 2.1.4 for quite some time. And I was really excited to learn all about the new tech. When I saw the post that Godot 3.0 was launched I couldn’t believe it! Godot had finally come! I thought it would never come!

Godot 3.0

Godot 3.0

The one thing that I am very grateful for is that the developers said a long time ago that this update would break code.

When I was learning how to use Unity, they had made some very big changes when changing versions and It just broke all of my code. As a learner this was very frustrating. The code in tutorials broke and I had to look elsewhere to learn what to do.

With Godot, this is different. Everything is very intuitive to use. I can easily do what I need to do and figure out things with the built-in documentation. For a complete beginner to programming, Godot still has a good learning curve, but it is not as steep as Unity.

And that’s why I ditched Unity. My code kept on breaking, and I couldn’t keep up with all of the fancy changes. Also, making 2D games was just clunky at the time. I would go back to Unity if I needed to. But right now Godot has everything I need.

So let’s talk about my first Impressions of Godot 3.0 as an avid user of Godot 2.1.4.

The first change that makes a difference in they way I work is the use of properties and Methods. In Godot 2.1.4 I could easily sling variables around and call functions from anywhere. This gave me great freedom as a programmer. But this freedom makes it easy to write messy code.

Objects should have a purpose. And some methods should be handled privately within the object. In Godot 3.0 I can’t just set an object’s position from another object anymore. The object itself must handle setting it’s own position. I can however give it coordinates from an outside object.

Another big change is the debugger. I can’t seem to find the remote inspector. Maybe they dropped it in this version.

Oh! I found it! You have to go to Debug at the top and click on Deploy with Remote Debug. This will give you access to the remote inspector very easily. Nice!

Remote Debug in Godot 3.0

How to enable the remote inspector in Godot 3.0

Well, I guess they moved things around. That was expected. The new UI is fresh and slick, but it comes with the cost of re-learning where everything goes.

I do wish that the properties in the Inspector were all expanded by default. I don’t like making extra clicks to access my properties in the inspector. Perhaps there is a way to set this by default.

But there is an easy one click solution for each new scene or node that you make. I wish I could set this to the default, though.

Expand All Properties

How to expand the properties in Godot 3.0


The types of Nodes has changed a bit and the methods for them have also changed. This is the biggest thing I have to get used to. Many things cross over from Godot 2.1.4, but the updates will take some time to re-learn. All of these changes are for the better.

The only thing that I got myself scratching my head on is what the import tab does exactly. Perhaps if I import some sounds or something it will be more useful.

Oh! I see If I click on assets in my file system, I can reimport them into the system with different settings. For instance, this Image.

What the Import Tab does in Godot 3.0

What the Import Tab does in Godot 3.0

There is still a lot of fiddling around and learning how things work in the new Godot 3.0. I’m happy to be using it to make some games. It’s the best system that I know to make games quickly and thoroughly.

Perhaps after I learn quite a bit more, I can write up some documentation. But for now, here’s my humble little blog post.

Thanks for reading! If you have any questions about the Godot game engine, leave me a comment below! I’ll try to answer as much as I can. This is still very new to me and many other people out there who wanted to wait till the stable version was released.


Making a Casual Halloween Game – A Case Study – Part 2

Okay! I finished the game!

It’s called Spooky Pumpkin Pinball Mania!

At first it was slow going and I couldn’t get the game to feel right. I made up simple objects to get the ball rolling. Then I felt it was a little boring. Video pinball and real mechanical pinball are two entirely different animals. I had to search for a more interesting kind of game.

So I built some ghosts and houses to hit. I made the animations very simple, yet fun!



ghost house

ghost house


Then I built the school and set up the win and lose case. If the school gets destroyed, you lose the game.

School sprite sheet

The school sprite sheet

The hardest part was making the caudron. It wasn’t hard as much as it was complicated. I had to make a whole bunch of things to get it to feel right. At first it wasn’t even moving at all. Then I had some trouble getting the meter to work properly.



After that I polished up a few things such as the menus and the scoring system. I made the win and lose screens last.

And now we have a finished product!

spooky pumpkin pinball mania

spooky pumpkin pinball mania game screenshot

If you ‘d like to play the finished product for free go here!

Please rate my game if you liked it! And if you didn’t like it go ahead and let me know what I can do better next time!

I did end up making the deadline, but it was very close. I launched the Mac OS version on October 30th and then the Windows version on the 31st. I had a linux version posted to the site on the 31st, but it was the wrong game. So I posted that a few days later.

Anyways, Enjoy!

Making a Casual Halloween Game – A Case Study – Part 1

Halloween is coming on fast! Time to stitch together some candy and conjure up some costumes!

I’ve always wanted to write a holiday themed game for people to download and casually play for the kicks. And now that I have a few small games under my belt, I’m going to try my hand at this one.

It is October 5th. Can I make a game in time for Halloween with my crazy schedule? Let’s find out.

First some initial sketches of how I want to game to feel and look.

Case Study - Casual Halloween Game development

And now It’s time for bed. I know I want to build some sort of casual cutesy pinball game with a pumpkin theme.

2017 Game Dev 001: Wild ideas coming to life

After less success with learning C++ I decided to follow my intuition and I tried out a game engine called Godot.

Godot uses a simple Pythonic scripting language that is very intuitive.

The original plan was to recreate my Laser Cats game. However, I decided to follow another idea that came to me very randomly after drawing some pixel art of a character to test out the engine.

I wrote a bunch of designs on paper and things that I wanted. Then I started to build it out more and more. I am doing the art, the programming, and eventually the sfx and music.

I started out doing little animation, but this weekend I learned how to use the animation editor and I made a good boss animation.

More to come.

I am starting C++

It is late at night and I’m here at the kitchen table scratching my head over a bit of code. I am coding in C++. I am getting good at it. My confidence in the language is building. Everything seems very familiar to the C#, Python, and Javascript I’ve used in the past.

I am stringing together a game engine. Just like I did a few years back in Javascript and Python. It seems to be working.

And yet, after many attempts at moving things around and playing with SFML, I realize that I need to figure out the basics. Back to basics. Back to the drawing board.

When I first started learning Python, I got up and running with the basics quickly. I used Python the Hard Way. I learned all of the basics first. Then I went through a ton of tutorials on Youtube.

I build up a lot of confidence. So much that I went on to build my own game using Pygame and my knowledge of building classes. Object orienting programming in Python is a breeze! If Python could compile easily, I would still be using it.

Now I am stuck learning C++. And I am loving it! But there is a whole other layer of complication that comes with it. It is a fog to me now. Review the basics and I will be just fine.

For the next few weeks, I will be glancing over C++ tutorials and building simple applications. I need to find out how to do OO properly.

That’s all for now. Time for some sleep.

Why are languages being taught like math?

Within the past century there have been many great developments in language teaching, especially from American educators. And yet, the majority of foreign language courses taught in America and around the world are very much your standard grammar/translation course mixed in with “communicative” learning. While this is a very valuable method the major drawback is that it needs to be intensive in order to achieve good results. Your 50 minute high school Spanish class 3 times a week doesn’t count as intensive. Even with all of the worksheets assigned for homework.

So now I must ask the question; Why are languages being taught like math? And more importantly why are they being tested and graded like math?

Let’s do a little thought experiment.

Imagine you are in math class. Nothing too crazy, it’s just your typical fourth grade elementary school arithmetic.

Now like any good student you’ve been studying hard and doing a ton of practice problems on worksheets and from your textbook. Every problem is beautifully solved step by step. And like the perfect student you show each step of your work written out in your best penmanship.

You are well prepared for what’s about to come next. The math test. What’s on the test? Long division and multiplication. The test is an hour long with 100 questions.

But, unfortunately the copier in the teacher’s room is broken. So the teacher decides to give the exam orally. And you can’t write anything down. In fact, you have to do all of the math in your head and have to speak your answers aloud. You still have an hour and 100 questions.

Can you do it?

I imagine you won’t do very well unless you’ve been working with a private tutor or teaching yourself on how to do long division in your head.

That’s how many language classes work to prepare the learner for conversation. Most grammar focused courses are very good, but they rarely give the students the skills to do any real work in the language. Communicative classes try to address this issue but usually put the cart before the horse and miss the fine parts of understanding the language. Students say things without understanding.

Why are grammar classes good? Well, if you take a look at Chomsky’s recent works about languages, you’ll understand something very important. Language developed first as a method for thinking not communication. That came afterwards as a result.

However, it’s very hard to think in another language without acquiring the grammar. Grammar courses are focus on making you aware how the language works and how the forms change. Thinking only happens naturally when the brain acquires the grammar patterns and meaning with sounds.

Are they good at helping you acquire that internally? Depends on the class. If the class is heavy in comprehension, it’ll have stronger results. If it’s taught like a series of math puzzles, once the puzzle is solved there is less reason for the brain to retain the pieces of the puzzle.

Now let’s move back to our thought experiment. Acquiring a language is like acquiring another way to do mental math. You can’t simply understand the rules and apply them when in mid conversation. You must have it already internalized. Your brain must be trained to hold the capacity. The brain must process meaning and take mental notes in the language.

Many language courses are taught focused on reading and writing. And it’s done through the scope of  the mother tongue. Very little attention is given to understanding. Dialogue and conversation is stressed. Thinking is glanced over.  It is presented as a set of grammar rules to decode messages. And remembering all of these rules before the brain has fully acquired them causes too much strain on the mental capacities. Especially during an unrehearsed conversation.

Should we teach grammar? Absolutely.

Should languages be taught and tested like math?

What is the end goal?