{"id":210,"date":"2020-06-27T00:00:00","date_gmt":"2013-01-01T00:00:00","guid":{"rendered":"https:\/\/www.sqlhammer.com\/getting-started-with-godot"},"modified":"2026-03-19T14:00:39","modified_gmt":"2026-03-19T14:00:39","slug":"getting-started-with-godot","status":"publish","type":"post","link":"https:\/\/sqlhammer.com\/index.php\/2020\/06\/27\/getting-started-with-godot\/","title":{"rendered":"Getting started with Godot"},"content":{"rendered":"<p>Over the last couple of months I\u2019ve been having fun playing around with the Godot game engine.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=575%2C232\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/www.sqlhammer.com\/wp-content\/uploads\/2020\/06\/1200px-Godot_logo.svg_.png?fit=645%2C261&#038;ssl=1\" alt=\"\" \/><\/p>\n<p>At first, I gravitated to the systems and back-end aspect of game development. My first version was a LAN connected multiplayer framework which could only go as far as connection and client synchronization.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=576%2C307\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sqlhammer.com\/wp-content\/uploads\/2020\/06\/local-multiplayer.png?fit=645%2C344&#038;ssl=1\" alt=\"\" \/><\/p>\n<p>Peer to peer RPCs were interesting and I had fun learning it but I realized that server-client communications was more feasible for hosted multiplayer games. So, I learned a different pattern with direct RPC calls or server relayed broadcasts.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=576%2C300\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/www.sqlhammer.com\/wp-content\/uploads\/2020\/06\/server-client-multiplayer.png?fit=645%2C336&#038;ssl=1\" alt=\"\" \/><\/p>\n<p>I also had a little bit of fun with building the command line interface and building a pattern for easily snapping in new commands and mapping them to method calls.<\/p>\n<p>It didn\u2019t take me long, however, to realize that the back-end side of this was a lot less fun than seeing an actual game come to life. This is when I switched to learning physics processes of sprites along with their animations and some very basic vector math.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=569%2C395\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sqlhammer.com\/wp-content\/uploads\/2020\/06\/space-fighter.png?resize=569%2C395&#038;ssl=1\" alt=\"\" \/><\/p>\n<p>I further enjoyed parallax backgrounds and playing with varying ship speeds in relation to the middle and backgrounds to make a controllable experience but the feeling of moving fast.<\/p>\n<p>After all of that, however, I realized that zero gravity drift calculations might be fun but it wasn\u2019t the kind of game that I would like to play. This is when I began making a more dungeons and dragons style RPG.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=571%2C360\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/www.sqlhammer.com\/wp-content\/uploads\/2020\/06\/dnd-1.png?fit=645%2C408&#038;ssl=1\" alt=\"\" \/><\/p>\n<p>If you care to play around with my v0.1 alpha, download the Windows Desktop app <a href=\"https:\/\/sqlhammer.com\/wp-content\/uploads\/2020\/06\/DND.zip\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the last couple of months I\u2019ve been having fun playing around with the Godot game engine. At first, I gravitated to the systems and back-end aspect of game development. My first version was a LAN connected multiplayer framework which could only go as far as connection and client synchronization. Peer to peer RPCs were [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-210","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/comments?post=210"}],"version-history":[{"count":2,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/210\/revisions"}],"predecessor-version":[{"id":619,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/210\/revisions\/619"}],"wp:attachment":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/media?parent=210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/categories?post=210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/tags?post=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}