Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 15 Sep 2006
Offline Last Active Feb 28 2015 07:35 PM

#5212521 Godot Game Engine tutorial series

Posted by Serapth on 23 February 2015 - 02:37 PM

Added a new part on Handling multiple scenes and global game data, pretty critical stuff and probably something I should have covered earlier.  Video coming soon.

#5211907 Godot Game Engine tutorial series

Posted by Serapth on 20 February 2015 - 09:54 AM

First off, if you've never heard of it, the Godot Engine  is a cross platform, open source C++ based, Unity-esque game engine that runs on Mac, Windows and LInux and targets those plus iOS, Android and more.  For an overview of the engine you can start here.



... anyways, one of the major downsides is the lack of documentation, so I've set about creating a tutorial series.  Starting from day one this series includes both video and text tutorials.


The series table of contents is available right here.  Right now the series covers graphics, audio, input, life cycle, UI and more.  Eventually I hope to cover all aspects of Godot development.  So expect more tutorials soon.  Also, for each video tutorial, keep in mind the video on YouTube is available in 1080p, while the embedded version is much lower resolution.


If you've never checked it out and want to try a game engine with a full suite of tools included, be sure to give it a shot, it may surprise you.  Of course, free and open source is always nice!

#5207444 Need help with eclipse

Posted by Serapth on 29 January 2015 - 09:52 AM

If Lactose's link doesn't get you going, I've actually done an in-depth video tutorial on getting Eclipse/Android/LibGDX up and running

#5207204 Second programming language...

Posted by Serapth on 28 January 2015 - 11:06 AM

Eww Python, really? I'm only half joking, Python strikes me as a language that forgot to die. The fragmentation then stagnation effectively killed it. Plus it's performance ain't great, at least with vanilla Python.

#5207074 Second programming language...

Posted by Serapth on 27 January 2015 - 11:08 PM

Oh, my bad. I interpreted "14 years programmer" as programming for 14 years, not 14 years old. Yeah, functional programming might be a bit premature.

Besides, C# gets you close enough to functional programming, without going full weirdo.

#5206559 How to actually learn game development?

Posted by Serapth on 25 January 2015 - 10:58 AM

Learning to program is a much larger topic, more akin to learning carpentry rather than learning a specific tool. Just as a carpenter can adapt to other people's tools since they know the end goal, so too can a skilled programmer adapt to new languages very easily.


This analogy is apt.  I do believe I am going to steal it, claim it as my own, and never ever give credit.  Ever.

#5199416 Where should I start learning game development?

Posted by Serapth on 21 December 2014 - 09:55 AM

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.

This implies that being a developer for any length of time erodes your ability to help others learn your craft, and therefore my insistence to learn C++, the industry-wide standard language of game development, is bad advice to give someone who wants a career in game dev. This assertion lacks logic. It is also insulting to aspiring students that they must be too stupid to learn to code a for-loop in C++ before they've done it in PHP or something first.

Before my current job I spent three years teaching programming students, and in my spare time today I still make C++ tutorials for beginners with overwhelmingly good reviews. C++ was my first language too, so I know very well the struggles of learning it. Learning an "easier" language first won't make it easier to learn C++, and in my teaching experience, more often than not encourages bad coding habits that you'll have to unlearn once you start using a real language like C/C++.

So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra. There's much more to it than that, but that's where you start.
You don't downvote because you disagree by the way.

Yes, I know the irony in down voting you here. that said, I do believe your advice is overwhelmingly bad.

As you said yourself, you know the struggles of starting with C++. So why the hell would you inflict that on other people?

The rules of teaching are pretty we'll entrenched at this point. You should focus on as narrow a field of study as possible, structure lessons so the learner feels accomplishment, and build on those accomplishments.

With C++, in addition to having to learn to program, the user also has to learn a 20 year old linking system, a language with a completely ineffable inheritance system and more rules than most legal codes, a build cycle that certainly doesn't support experimentation (non REPL), in a language which is a mashup of 4 prior languages.

It is not insulting to a student to managing their learning curve, in fact, it's the signs of a good teacher. Every skill has a natural progression of difficulty, programming is no different. Properly managing that progression is the key to efficient learning. Yes, a student can learn starting with C++, it's simply not efficient.

Compare and contrast teaching a for loop ( your example ) in say... Lua or JavaScript vs C++.

In Lua or JavaScript, you explain how to enter code, feed it in for evaluation and most importantly, you explain how the code works.

Now do the same for C++... Now you have to explain... The compile link cycle, #include, namespaces, main, scope, bracket operators, etc.

Now take that example to something like drawing a sprite on screen with Lua vs C++

One is a two step process, the other is about 20, only one of which is about code. So yes, you will learn faster if you learn in a more beginner friendly language, you will also be more likely to stick with programming I you see initial success. And yes, if you know programming concepts already, when you do decide to learn C++ the process will be faster.

#5199405 Where should I start learning game development?

Posted by Serapth on 21 December 2014 - 08:12 AM

Beginners should almost never choose C++

This is terrible advice. Knowing Python, Unity, or Unreal won't get you a career in game dev. You need to learn C++, so start there. It's not too hard to learn as a beginner unless you're generally bad at programming anyway, in which case you won't end up in game dev either way.

Source: Myself - A software engineer for a game & simulation company with a degree in game development.

This is terrible logic... You need to know algebra eventually so shouldn't you just start there? Of course not.

C++ is a language with many positive attributes but learnability certainly isn't one. Learn the basics of programming in a less complex language then learn C++.

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.

#5199165 Thoughts on Rust?

Posted by Serapth on 19 December 2014 - 03:18 PM

The conversation of the Rust programming language came up in this thread, but instead of a threadjack, I figured I would spin off a new thread talking specifically about Rust.



Have you ever used it?  What's your impression or opinion?  I haven't put enough time into it to form much of a sharable opinion personally, but a C++ alternative that can get low metal but also add higher level productivity features and safety is certainly appealing.  That said, we've heard it all before, haven't we D?

#5199094 Easiest coding language?

Posted by Serapth on 19 December 2014 - 07:40 AM

Off topic, would Rust be a good language to pick up? I am looking to learn more languages apart from C++, Java and C#.


For practical real world use...?


No, not really, at least, not yet.

#5199052 Where should I start learning game development?

Posted by Serapth on 18 December 2014 - 09:40 PM

3D programming and 3D asset creation are two vastly different skills. Don't try and learn both unless you are willing to invest some serious time... Like 10 years we are talking about here... Both are their own profession and both have massive learning curves.

Trust me, I know, guess what I've spent the last 10+ years doing... And the only reason I've kept at it is programming was my job, while graphics was my hobby. Even with that mindset, the quality of my output is still very hobbyist.

I mean certainly learn both if you are interested, but trying to master both is a fools errand.

#5199050 Easiest coding language?

Posted by Serapth on 18 December 2014 - 09:35 PM

To Serapth
From Lua's Wiki: Lua is crap!
"Lua is a tiny and simple language, partly because it does not try to do what C is already good for, such as sheer performance, low-level operations, or interface with third-party software. Lua relies on C for those tasks. What Lua does offer is what C is not good for: a good distance from the hardware, dynamic structures, no redundancies, ease of testing and debugging. For that, Lua has a safe environment, automatic memory management, and great facility to handle strings and other kinds of data with dynamic size."
In  this modern age, battery life is just as important as absolute performance.

Of course, all features come with a price tag, this is certainly true of ease of use.

That said, we aren't talking about performance or battery life ( granted, they are often very similar ), we are talking about ease of use. I am by no means calling Lua the greatest or best language, simply the easiest, within the defined terms.

If you ever meet someone that proclaims one language as superior in every way, congratulations, you've met an idiot. Sadly, the world is full of them.

#5198993 Reading File in to a pointer

Posted by Serapth on 18 December 2014 - 02:11 PM

Well I know that I need to initialize the data thats why I asked why it works. Seems if I declare the struct without typedef it works. I thought writing user.username = "blala" it intitialize the pointer with a buffer that contains "blabla" so I dont need to make a new to initiate data for that pointer. Also I though write() function from files initiates data for me so the pointer will point a valid buffer.


Nope, this is where you went wrong.


It's important again to remember, pointers only point to stuff.  So what you are actually doing is creating a local temporary variable with the value "blala" and pointing at it's location.  The problem is, if that pointer outlives that location in memory, you run into a world of hurt.



This is where new comes in.  Consider the line 


char * myStuff = new char(100);


This is actually doing TWO things.  A buffer in memory is being allocated that stores 100 chars, that's the new char(100) part.  THEN a char * pointer is being created that points at that buffer.  The initialization part is the new call.

#5198990 Easiest coding language?

Posted by Serapth on 18 December 2014 - 01:53 PM

I would actually argue that this is a question with an actual answer.






At least so far as game development languages go, with a minimal useful set of functionality, Lua is in fact the easiest option available.  This is of course assuming you meant easy as either a) easy to learn b) easy to use.




One of the easiest type systems ever implemented.

Extremely simple syntax.

No build/link cycle.

Very good logical consistency.

Well documented and supported.

Good tooling available.

Single click download available.


The only knocks against Lua, for beginners anyways, are the lack of REPL out of the box, the 5.1 vs 5.2 fragmentation and the fact it's 1 based unlike well every other programming language since Visual Basic



Most of the "conventional" programming languages ( Java, C++, C#, etc... ) are an order of magnitude more complex than Lua.  This isn't a bash on any of them, but in terms of "easy", they aren't.


You can look at comparable scripting languages and each of it's competitors have "easy" issues.

  • python is a great deal more complex, and vastly more fragmented.  The fragmentation has basically killed this languages momentum.
  • ruby is much smaller in community size (at least in gaming) and is also more complicated.
  • PERL is shit, outside of it's intended string processing role
  • PHP is what someone gets when they take a shitty language and make it shittier
  • JavaScript is...  well first off, there is the DOM, JavaScript in the browser is a nightmare, because the implementations are crap.  When just looking at the language itself, certain horrible design decisions ( this implementation, comparison operators, etc... ) are a huge hazard for new (and experienced) devs
  • ActionScript... is actually a pretty good choice.  It's like JavaScript where someone polished away a lot of the stupidity.  Being tied to a vendor as awful as Adobe though...  and a very questionable future make this one iffy.  ActionScript is actually a pretty solid beginner choice, well documented, clean language, good community... tooling is kinda crap though, unless you are on windows
  • F#, Smalltalk, LISP, Haskell, et al.  Well, they are just too weird for beginners... good idea to learn though.... eventually
  • Visual Basic.. too old.  Modern Visual Basic is just C# in a pretty dress, so the language is basically dead
  • Haxe... it's a nice clean language, but ultimately requires knowledge of other languages when shit breaks, and it will



Now, once you take "language" out of the equation, and look purely at game development tools, then it gets a bit more interesting with players like Stencyl (Haxe), Construct2 (Javascript), Gamemaker (GML), RPG Maker(Ruby), etc...  basically acting as code generators for you.  In those cases, easy isn't so clearly defined.


But when it come down to actual programming languages, for game development, defining easy as "easy to use" or "easy to learn", I do think Lua is actually a clear winner.  Put simply, if I was going to start a game programming class for young teens, I would almost certainly start with Lua.

#5198988 Looking for a ChromeOS based Python IDE for school

Posted by Serapth on 18 December 2014 - 01:38 PM

... and here is where Chromebooks show their suck.



If you could do local installs, I would recommend PyCharm or Komodo.  In your situation you are obviously stuck with cloud based offerings.  The cloud9 IDE appears to allow you to write and run Python applications, but currently no debugger support.