Water shader in Godot and other life signs

Recently I found my inspiration and motivation deep in the cellar. Of course I never cancelled my game development completely, but with the current situation I had a lot of other thing to care about. As usual the biggest problem was the financials the last two years.

So let me just give you this advice to everyone who thinks about getting full time indie – Make sure to have financial freedom to do so for at least one year. With fear of financial ruin in your mind the creativity is completely killed and you will lose all your motivation and inspiration.

I am happy to be back and provide you some updates about my current project and achievements.

Simple water shader in Godot

For my current project I was playing around with some tiles and I created this water shader to have some kind of background for the tiles. I was pretty happy with the result. First of all I have to say that I copied most of it from here https://www.youtube.com/watch?v=5MfcliFqjnE but the difference is in the camera.

For the original shader a perspective camera was used. I wanted to make the shader working with a orthogonal one, so I had to make some adjustments, since the depth buffer doesn’t work this way on an orthogonal camera. You can find my shader code here: https://github.com/ruffiely/windshader_godot/blob/master/water.shader

I hope you like it and you can use it for your project as well.

Get your Godot topic covered by me

Another thing I want to mention in this post is: I came up with a new idea for my Patreon page. You are now able to request a Godot specific topic which will be covered by me in a video tutorial by becoming a Patreon. With this change and focus on my Patreon page I would like to concentrate more on video tutorial and providing more value for the community by getting something in return.

Your advantage: You can get a very specific topic covered and explained in depth which maybe helps other on my channel as well.

Beside of that I started with a new prototype for a new game and achieved already some playable scenes I will report within the next post.

Creating a Multiplayer headless lobby server in Godot

Introduction to creating a headless lobby server in Godot

Hey fellow devs,

today I would like to add some more advanced words to my Tutorial on my YouTube-Channel. If you haven’t already please make sure to follow me on YouTube to receive updates about my upcoming Tutorial videos.

Why do we need a lobby server?

We could of course making just a peer to peer connection. The Problem? Most devices are behind routers and you won’t get the public ip from the device to connect them together.

For this reason we use a routing server aka lobby server which handles the connection to the devices. The lobby server also offers more control and we have the possibility to monitor things like concurrent users online. Opened games and other statistics.

Is MultiplayerEnet the only variant for this server?

No! Godot offers a wide range of Multipler implementations. It is maybe a better idea to use websockets if you would like to have a more dynamic server as a lobby server.

I used the Enet because it feels like it makes the most sense for my type of game, but maybe I will change this later.

If you have any questions regarding my blog or tutorials please feel free to comment below and share your feedback. I still have a of posts to do, but I hope I get the blog up to date as fast as possible.

Create a Game with Godot – First lessons learned

I would love to share my first steps and first learnings with Godot 3 with you guys 🙂

Export Blender Models as .dae files

As one of my first tasks I tried to export models from Blender to Godot. For my first approach I used .obj files and imported them into Godot without any problems so far. After a while I realised, that my artist also created some materials, which weren’t included in the import.
I figured out that Godot advices to use .dae files, which includes the materials correctly. So we exported the files as .dae. Surprisingly every model was imported as a Scene in Godot, which first confused me, but it is the right workflow. I will explain it within the next chapter.

Use Scene instancing

Having each Model as a scene has one big advantage: We can instantiate them. In UE or Unity this is called a “Prefab” as far as I know. In Godot we can use a Scene as a prefab, this is why .dae files represent a scene. It is a good practice to have everything as a scene and then in your game scene instantiate all the other scenes just like that:

Game (Scene)
  Human (Instanciated Scene)
  Landscape (Instanciated Scene)

You can read more about that here: http://docs.godotengine.org/en/3.0/getting_started/step_by_step/instancing.html

Use Unity Tutorials, if you can’t find any for Godot

Actually there are more tutorials available for Unity than for Godot, but nevertheless just watch the Unity ones. Most likely it is really easy to transfer the knowledge from Unity to Godot, since most options have the same names or working in kind of the same way.

GD Script is not Python

Even if they look quite similar GD Script is not Python, it is just inspired by Python. Why is it worth to know that? I was confused, because I encountered some ‘What the fuck’ moments when writing GD Script for the first time, since I have a strong Python background. So you should definitly check out the GD Script syntax first to get an overview. 

You can read more about GD Script here:
http://docs.godotengine.org/en/3.0/getting_started/scripting/gdscript/gdscript_basics.html

Next steps, next big idea

I decided to start a Vlog (it will not replace the Blog) on YouTube within my project (Remastering MegaLoMania). I will record the first introduction video within the next days, so make sure to follow me on my social media channels to get informed.
In the Vlog I would like to share all learnings and progress I made day by day.

Thanks for reading!