Jump to content

  • Log In with Google      Sign In   
  • Create Account


We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.

Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


Member Since 15 Sep 2006
Offline Last Active Today, 03:03 PM

#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.

#5198982 Reading File in to a pointer

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

Ok, this is bad, mmmkay?


user default_user;
default_user.username = "user";
default_user.password = "1234";



You probably aren't doing what you think you are doing here.  Basically you a priming a live hand grenade with this code.


A pointer points at a location in memory, that's why they get their name.  However, when you declare a pointer, that memory ISNT allocated.


Going in to a big thing about how pointers work is a bit beyond what a forum like this is for ( for more details on C++ memory allocation, try this guide. ), I would highly recommend you start learning from a different source.  Also, is there a reason why you are writing very old school C code here?  I think my biggest suggestion is, pick a different learning source.




EDIT: Ugh, just noticed this line...


user14 = new user;


So... this is C++ code after all and not actually C.  In that case, there are many many many problems with it, and more likely, from whatever source you are learning from being horrifically out of date.  For example:

  • struct typedef
  • direct memory usage in the first place
  • old school IO code
  • not using std::string

#5198970 Is Java a good Language for Games?

Posted by Serapth on 18 December 2014 - 11:37 AM

Thanks to everyone for their answers they were very useful, I decided and i will ve using Java with libGDX. Thanks to everyone


I've done a massive tutorial series, as well as a video tutorial series, on LibGDX that should more than get you started.



Java has a couple challenges that any other languages don't.  The native invocation experience could certainly be improved... this is why you really want to go with a library like LWJGL or LibGDX ( which uses LWJGL ).  


Of course, the garbage collector is your biggest enemy.  The number one piece of advice I can give is, dont make garbage unless you have to.  This leads to sometimes uglier code for the sake of performance, such as creating and caching "temp" variables, etc.

#5197404 3ds Max or Maya?

Posted by Serapth on 10 December 2014 - 10:52 AM

I actually just finished a really in-depth post on this subject  that covers the various 3D packages available, and what approach a beginner starting out should take.  For the more video inclined, I also did a (about hour long) video that is an overview of the 3D app market coupled with a bit of a history lesson.



I obviously can't go into anywhere near the level of detail I did there, but as AllEightUp said, there is no one "best" answer.


As a rule of thumb though, if you are looking to build your CV, you want Max or Maya.  If its films/TV you are most interested in, there is a small bias in favour of Maya.  For games, there is a small bias in favour of Max.  


Of course if its not for CV, just go download Blender and see what you think.  From a workflow perspective, it's actually my personal favourite.  Again as AllEight said, there are plenty of other packages ( I cover all he's mentioned, and more in the linked article ) and sometimes it's a matter of finding the workflow that works for you.  Hell, one of the best modellers I know prefers to work in Rhino!

#5195961 Guide: An Introduction to 3D Computer Graphics...

Posted by Serapth on 02 December 2014 - 03:59 PM

If you are new to the industry or just want to learn more about 3D graphics applications, I just published a guide that you may find interesting.  It's a look at all of the 3D applications in use today, with a bit of a history lesson thrown in.  For even more detail/info, there is an hour long video as well.



So if you are just starting out and trying to figure out what to learn, or are just interested in CG in general, I hope this proves useful.  If you are a vet, I would love to hear your opinion or let me know if you think I missed anything important.

#5195960 Browser game development: Flash or HTML5?

Posted by Serapth on 02 December 2014 - 03:55 PM


I think that will mostly have caught HTML5 up to Flash
For the desktop, perhaps.


On mobile devices HTML5 is still a slideshow on most devices. It is also prone to running out of memory as the devices do not provide gigabytes of virtual memory to processes.




Yeah, frankly HTML5 games on mobile, not wrapped in an application package anyways, are pretty much a gong show.


Oh, and I am not active in this space, but previous things I have read on the subject say for sponsered/browser games, even with the rise of HTML5, 80-90% of revenue is from Flash.  Obviously over time this is going to change, but as it stands today, browser games earning money are Flash based.

#5195526 laptop for programming

Posted by Serapth on 30 November 2014 - 12:56 PM

Indeed, Apple hardware that supports dual booting with BootCamp does work impressively well (hardware is fully supported, well enough for playing video games), and Parallels VM does a good job, too, when you can get away with it. (Parallels has a few UI features that makes it all the more pleasant, compared to VirtualBox, that may or may not matter to you).


As far as display size goes ... The only mistake I made buying this Macbook Air was going with the 11" model. A friend with the same model and excellent eyesight has no problem, but me? Terrible eyesight. With that said, I'd have to suggest always going with the largest display available (both size and resolution matter). You can never have enough displays (I've got three, including the notebook, and I could easily use a fourth).


If you are just getting started with game development, even a crappy integrated Intel HD 3000 is more than likely to be more than enough for at least the first ~2 years or so (assuming 2D programming). Personally, I find CPU being my #1 desire (C++ build times, zzz). Never can have enough of that sleep.png Not sure if it would matter so much with C sharp..? My little bit of experience with it says no.



It's funny you should mention the HD3000... I actually draw that as the line NOT to cross.


An HD4000 falls in the "good enough" bracket, but the HD3000 does not.  It does not support GL 4 and the GL support in generally is iffy.  Plus well, it's damned slow.  The newer series GPUs from Intel are quite reasonable.  I have a HD4600 that gets used instead of the nVIdia thanks to the general shittiness of Optimus and it still handles a decent framerate.  It's also sufficient for running the likes of Blender or Unreal Engine.



My needs in laptops are slightly different than most, as my number on criteria is portability, then power, then battery, then style then finally price.


I am currently using a 2013 Razer Blade 14" and a 2013 MacBook Air.


I no longer recommend the Razer Blade however, for the same reason I dont recommend the Macbook Pro... the stupidly high resolution.  The GPUs aren't powerful enough to properly power them, making things ultimately look like crap when you are forced to run in a non-native resolution.  In the case of the Razer, it also killed the battery life.


My current Razer 14 gives me about 5 hours battery and is fast enough for all of my needs.  The MBA has an HD4000 which works in a pinch, but isn't great for gaming by any stretch.  The battery life there is more like 7 hours, although high computation tasks like compiling KICK THE CRAP out of your battery on OS/X.  Way worse than on Windows for some reason.  

#5195200 Where It all begins

Posted by Serapth on 28 November 2014 - 08:57 AM


 I would like to use C++ because of the memory management advantages, unless someone has a better idea language wise?






This is such a bizarre thing to say.  It's like saying "I'd like to drive a Corvette because of the transmission".  Without context, it's pointless.  Using something for a feature you may or many not need is also a bizarre criteria.  You are committing one of the greatest, and most common, sins of game programming... premature optimization.  Also throwing around terms like "better" when discussing programming languages is almost always a mistake, at least without a qualifier ( aka better at ______ ).





To your actual question at hand, think of your end goal and work back from there.  So instead think of things like:


  • platform you want to target
  • platform you want to write your code on
  • 2D or 3D?
  • game type/features/genre
  • where are you getting your art assets?  What's the pipeline like?


Then using that information it becomes easy to pick a library, which in turn dictates the language to you.  Which then makes it easy for us to make recommendation, for both learning resources and languages/SDKs if you are stuck.