It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
Tigersong: Thanks, all. I should mention I want to do gamedev eventually and have seen the folly of following tutorials. I.e. you don't learn how to come up with new ideas, just how to follow tutorials.

I picked up a little engine called DragonRuby after realizing that the big graphical engines make my head spin.
avatar
rtcvb32: I was going to ask if it was going to go into development or not for games.

DragonRuby, then maybe you should read up and learn Ruby and the Gem library systems. RPGMaker VM and those games use Ruby too.

Otherwise, C# in Unity and others you can learn minimally, C knowledge is enough since you're just making certain logical decisions and calling other functions.

As mentioned Unreal uses C++, but actual usage of C++ you are unlikely to see unless you're tinkering with your own filters or effects, materials and lighting.

Not sure on some of the other engines, as i haven't looked closely at them.
I actually have several RPG Maker versions, so that works out nicely. Much easier than trying to make a game from scratch.
avatar
Tigersong: I actually have several RPG Maker versions, so that works out nicely. Much easier than trying to make a game from scratch.
OK, wanting to make a game vs wanting to code or make an engine are indeed different things. I'd check if your version of RPGMaker is not using JavaScript though. I thought the newer version used that for scripting in place of Ruby.
Post edited October 26, 2023 by EverNightX
Good point. They switched to Javascript after VX Ace, I think.
avatar
Tigersong: I actually have several RPG Maker versions, so that works out nicely. Much easier than trying to make a game from scratch.
Mhmm. RPGMaker also includes a default engine, you'll only need Ruby if you want to change it and do your own thing. Pretty sure it plays a bit like early Phantasy Star (random target, and target does random action in return). So if you wanted you could just make layouts, choose growth rate and use animations already included as part of the package. But probably be better to mix it up so it doesn't feel like 100% RPGMaker.

avatar
EverNightX: OK, wanting to make a game vs wanting to code or make an engine are indeed different things. I'd check if your version of RPGMaker is not using JavaScript though. I thought the newer version used that for scripting in place of Ruby.
True, ton of Json files it would be easy enough to make it all JS. Plus the nondescript index.htm that is never explained why it's there, meaning it could just be a pseudo browser running JS.
Post edited October 26, 2023 by rtcvb32
If you want to learn C++, I'd suggest looking at the recently leaked Starbound Source Code in order to see how not to code a game.

Seriously, there's so many improvements, optimizations, and rendering calls that could be made.
Honestly, I recommend Python as a beginner language. In particular, it makes simple things easy to do, and its use of indentations tends to help new programmers learn how to properly indent their code. Also, the language does have advanced features, and is used in many fields (including data science, for example).

Then, after you're comfortable with Python, you can branch out into other languages.
* C is good if you want to go for lower-level stuff. I recommend learning C (and having had to debug at least one segmentation fault) before you try learning C++ and Rust. (Note that C++ has a lot of legacy baggage, which is not good for beginniers.)
* JavaScript if you want to learn frontend web development. (Also learn HTML and CSS, though I don't consider those to be programming languages.) The semantics feel similar to Python except that, like C++, JavaScript has a lot of legacy baggage.

If you learn one language, it becomes much easier to learn another.
For beginners looking to doing coding-heavy gamedev (as opposed to low- or no-code solutions), I recommend One Lone Coder videos.
He teaches C++ with Visual Studio in a very accessible way.

With incredibly simple means and clear explanations of the math involved, he walks you through how to make various projects.

Normally, I'm not keen on video tutorials, but he's the exception.
I second the recommendation for the One Lone Coder tutorials. I also suggest you pick a language and stick with it long enough to decide whether or not YOU like it. It's easy to waste a lot of time trying to find an optimal solution, but all that time will detract from the time you can spend learning and programming.

Most every opinion on the internet will have you believe that they already have the optimal solution picked out for you: just use language/tech XYZ! For a newcomer, you lack the knowledge to properly asses such claims, and it's easy to let yourself be sent down all sorts of rabbit holes.

So pick a language and stick with it. Your second language will be much easier to learn after that.
avatar
hexadecimal_stew: So pick a language and stick with it. Your second language will be much easier to learn after that.
Mmmm... if i were to say an order of languages, I'd say C for it's fairly low level simplicity, followed by Java, with it's Object Oriented elements for classes and understanding interfaces, prototypes, polymorphism and templates (but no operator overloading). After that not sure, C/Java should give a decent foundation for programming and its mostly quirks of the individual languages that follow.

Lately i've been using BASH more than anything, followed by bc, then Dlang.
Post edited October 26, 2023 by rtcvb32
avatar
rtcvb32: Lately i've been using BASH more than anything, followed by bc, then Dlang.
What do you like about using Dlang?
avatar
rtcvb32: Lately i've been using BASH more than anything, followed by bc, then Dlang.
avatar
hexadecimal_stew: What do you like about using Dlang?
How it uses ranges instead of iterators (to do the same job, but less confusing), this is more for the named interfaces and how anything can be a range if you match the right API.

Syntactical sugar so it can do the same job. (using . instead of ->, those were annoying, and then you can for a function use . on a block of data and it rewrites it so it's the first argument, making it more OOP even if the function isn't following a specific OOP)

90% of the time when i give it instructions, i don't have to go multiple layers deep to try and figure out what's going on.

Unittests are also built into the language design, so you rarely need to even boot up an IDE or debugger.

Templates use () and ! instead of <>, which makes it obvious when instantiating a template or defining it, rather than the symbolic language try to figure out what is a template or what is not.

Then other language decisions, like even if you put protected or private on a class/struct, anything in the same file can still access it as if it wasn't; This gets around a lot of the protections being overzealous.

The lack of :: globals, those were always ugly to me.

Scopes which are always called. Allocate memory on the heap? void* a = malloc(1024); Scope(exit){free(a);} which will execute at the end so you don't forget it, and even if there's an exception it will still clean it up.

And probably a lot more i can put out.