Serox

Material for game developing

Recommended Posts

Hey, I was wondering if you could help me with some begginer game development material such as Books, websites, etc. I find myself a little bit lost since seems that there only few websites (from my expirience) that covers this matter in a quite professional way. If possible, I would like to know what people do study on university and what kind of books they have access to in order to be able to go ahead and jump in this vast world. Although, if possible, I would like some reccomendations on how to start and direct me a little bit more into mobas. I'm aware that few steps are needed before jumping into this whole world and that mobas are really hard to create and expensive (my main objective in the future), I just would like people to give me some adviced more orientated than other games even if the first games that I would probably start to make would be even less than a level from super Mario bros. Meanwhile engines, even if is a matter that I believe that I shouldn't touch yet, Unreal Engine have a lot of documentation of how to is it and how everything works in their engine, so I feel confident that there's no need for further material but who knows, I'm just a noob trying to figure out how this world works.

Thank you in advance for your help.

Share this post


Link to post
Share on other sites

@Infinisearch I'm not quite sure yet but I would say it would be logic programming. What's the main core of a game? For example, I would say that programming is the core, and concept art, graphics, etcetera would be the layers to make it good looking.

I would say something like: "Go to this direction, this key equals to jump."

I expect to be understandable, if not, sorry in advance and thank you for your help.

Share this post


Link to post
Share on other sites

Core of the game highly depends on the game. Eg a table-top game or a card game doesn't need much programming :)

University is only slightly helpful, as it teaches the fundamentals of computers, and programming, the theory of programming, so to say. Making an actual game (or even writing actual software in general) is much more practical. The theory does its work in the background only.

Below a link to an article with some basic questions and advice on how to get started.

 

Share this post


Link to post
Share on other sites

That's a tricky question.

For programming, one would start with knowing how to actually code, but that tells you very little about the specifics of game development.

Then, you have game design (Jesse Schell's book comes to mind) but that tells you very little about how to make it happen.

A good gameplay programmer has quite a background under his belt. The technical know-how, the understanding of how to architecture their code (using 'contexts' for example instead of boiler-plating everything, etc.)

Doesn't seem to fit your requirement here.

On the other hand, using a tool like Construct might help you a bit. It is 'relatively straightforward' and will allow you to get results swiftly. At least, that'll bring you one step closer to understanding how things get made, all the while actually producing results.

Share this post


Link to post
Share on other sites

@Alberth @Orymus3

Thank you very much for you help. The article that you just shared though is something that other articles talk as well. I'm sure that I want to start with little things such as Pong that would let me reach and sratch the surface of this subject. However where do I start? Should I learn specific programming language that would be relatively easy? Use a GameMaker? At what point a GameMaker wouldn't be enough?

For programming I understand what you mean because I had experiences with HTML5, CSS, Java, and a little bit of JavaScript. What I really wonder is the actual coding that would allow me to reach the stage of sending commands to the interface, so something like a little triangle can move or even shoot squares. That's where me real lack of understanding appears.

Does the Jesse Schell's book talk about game development in depth?

Edited by Serox

Share this post


Link to post
Share on other sites

Do you want to make games beyond the MOBA?  Or is that your only goal?  Do you want to make 3d games in the future? (including the MOBA)  Gamemaker Studio 2  is a fine choice for 2d and simple 3d.  I don't know much about gamemakers 3d performance so I can't help you that much with it.  If you're serious about 3d then unity or unreal would be more to your liking.  If you know java then switching to C# should be pretty simple, so Unity would be a good pick since it uses C#.

Share this post


Link to post
Share on other sites

Many beginner learning materials are engine-dependent, so pick up a tool (just go with whatever you feel like: Unity, Unreal, GameMaker, Construct) and just go through the official tutorials, there are plenty of those.

It's harder with books. Most renowned stuff is game design books like Scott Rogers's "Level Up" or Jesse Schell's "The Are of Game Design". Those are great, but I would not necessarily recommend them as a starting point (they also are only about design, they do not cover anything else). There are also some tech/programming books, but from my experience they are often pretty advanced.

I think the main thing is just to start making something (just grab any official tutorial from any engine). Then eventually you will figure out what you should learn next, what books to read, etc.

Share this post


Link to post
Share on other sites

@Infinisearch @Oxeren

The idea is to be able in the future to do a moba, however due to the lack of experience, the high revenue needed and the amount of people that are needed in order to be able to, is just not possible. So I was wondering what can I do so I can start to understand this world better, start to develop some 2D games, or some 3D games as a way of practice to get into mobas in the future. However it seems like everything is very engine dependant which I believe it can be great because so much work is done in just a couple of hours. At the same times it seems like having knowledge of Java, JavaScript and C++ (it can be C# and other as well) is enough. It seems like there's already an input that would let players to control characters. Correct me if I'm wrong, but at least the documentation that I got is seems to be like this. I think is a really good idea to start with an engine and even if it's hard to understand at the start, as long as I can still taking their documentation and I study the languages above mentioned is enough to make games work.

Now the art concept, design, audio, etcetera is a completely different matter. I'm glad to understand how it works now and thank you very much for your help. If it's anything else that you would like to explain to me, or if there's something that you think I still don't understand, don't be afraid to tell me something because I almost know nothing about game development and it would be very helpful for me to get into this world. Furthermore, I never expected to be that simple, if course it would need a lot of work however with engines things becomes much, much easier.

Edited by Serox

Share this post


Link to post
Share on other sites
16 minutes ago, Serox said:

The idea is to be able in the future to do a moba,

2d or 3d... this is important in choosing a tool/engine to stick with.  Unless you want to learn more than one language and way of doing things.

After you pick a tool/engine, start learning the language it uses.  At the same time play with the engine to get a feel for it and what you both know and don't know.

There is other practical knowledge that you'll need to know like what a vertex is or a texture or a matrix.  All of which you can google.

Since you have a particular game you want to make (work towards) I suggest after the above continue with small games using tutorials on the internet or books.  It will introduce you to game making and build your understanding of how things get done.

As to the below IIRC yes you are right there are 'controllers' built in but you can also make your own custom one.  Its been a while since I played with Unity so hopefully someone can correct me if I'm wrong.

16 minutes ago, Serox said:

It seems like there's already an input that would let players to control characters. Correct me if I'm wrong, but at least the documentation that I got is seems to be like this.

Edited by Infinisearch

Share this post


Link to post
Share on other sites
9 hours ago, Serox said:

At what point a GameMaker wouldn't be enough?

Ironically enough, possibly 'never', but that truly depends on the type of games you intend on developing.

Once upon a time, I was a GameMaker user (I think they were known as Animo back then) and little did I know the progress they had made until, a year or two ago, I stepped into a studio that actually intended on using the latest installment of Game Maker professionally (we're talking teams 5-10 people strong!).

Some of these 'authoring tools' have really come a long way. In a way, Unity, one of the most popular engines out there, is a bit of an authoring tool in itself, and Game Maker (along many others such as Construct, etc.) caters to a crowd that's a bit less acquainted with the programming part by providing a visually 'simpler' solution.

Granted, to a seasoned programmer, it probably takes longer to actually do something in Game Maker, but it enables non-programmers a chance to develop games from scratch without having to know about pointers, etc.

A few super hits were made in Game Maker too (Hyper Light Drifter has exceeded the 500k units sold if memory serves, you can do the maths here!).

 

It used to be that these authoring tools were a means to entertain a younger audience (rpg maker 2000 is a big offender here) and that they provided a fairly limited framework that could simply not be bent in any way shape or form. But those that survived found a market in the indie dev sector, and adapted accordingly. While authoring tools certainly used to have a negative connotation to it (as a kid's toy would on grownup turf) I find that, more and more, they provide viable alternatives to actually release games, and moreso than just on itch.io.

 

9 hours ago, Serox said:

For programming I understand what you mean because I had experiences with HTML5, CSS, Java, and a little bit of JavaScript. What I really wonder is the actual coding that would allow me to reach the stage of sending commands to the interface, so something like a little triangle can move or even shoot squares. That's where me real lack of understanding appears.

Unity 3D actually dumbs this down quite a bit with built-in physics.

Moving around an object could be as simple as:

 

Rigidbody2D rigidbody = 

//get it either through GetComponent<Rigidbody2D>() or assign it through an inspector [SerializeField] or (I don't like that) use a public variable to see it in the inspector.

 

And then, in your update method:

private void Update()

{        
	if (Input.GetKey(KeyCode.W))
    {
    	rigidbody.AddForce(Transform.up);
    }
}

That's about the ugliest simplest implementation of allowing you to 'throttle' the speed of an object in a given direction.

That being said, Unity has one of the largest library of GREAT video tutorials on their website. They take it slow, start with the basics, and work you down the path of becoming a great developer. If you can watch all of the beginner's lessons and survive, there's hope for you yet (and by then you can pretty much start making the 'simple' gameplay side of most games, though probably not yet a multiplayer FPS).

 

9 hours ago, Serox said:

Does the Jesse Schell's book talk about game development in depth?

It is a book about Game Design essentially. It does not cover (as far as I can remember: let me know anyone if I'm wrong) the programming aspect, but it is definitely worth a read. That and A Theory of Fun by Raph Coster (don't mistake its simplicity, elegance and playfulness for lack of content, it is probably one of the most influential books amongst recent publications).

 

Share this post


Link to post
Share on other sites

I think I'm going to learn Rust and program in Rust since is much easier than C++ and performs quite good or even better than C++. C# is really good as well and very easy to learn, I have no problem at all. As engine, maybe I would use Unity since is more flexible by adding your own code, not sure yet about other stuff. I think I will start by doing a 2D game, I bet it has to be really fun to do so.

Thank you again.

Share this post


Link to post
Share on other sites

I just want to see how Rust perform since is becoming a better language than C++. I would rather learn Phyton to be honest, but Phyton is completely inneficient unless is for scripts. I would learn quite a range of languages to have fun.

Share this post


Link to post
Share on other sites

Wouldn't you rather focus on one way of doing things when just starting out?  I mean if you don't mind then whatever but focusing on one language to begin with is a good idea.  The amount of tutorials and books and material for C# outnumbers what's available for Rust as well.  Good luck either way.

Share this post


Link to post
Share on other sites
8 hours ago, Serox said:

I would rather learn Phyton to be honest, but Phyton is completely inneficient unless is for scripts.

Luckily, for 90% of the code in any programming language, efficiency is a non-issue. Many people are so focused on maximum speed that they forget about this rule, and become horribly inefficient with their own time by writing loads of trivial non-speed-critical code in some low-level language, to gain pretty much nothing in performance of the program.

Python doesn't position itself as as a number-crunching language. It aims to be a glue-language, connecting blobs of fast C etc code with each other. It's also a great prototyping language, quickly trying an idea.

I often find the Python implementation fast enough, and leave it at that. If you want more speed, the simple trick is then to rewrite the speed-critical part in a language tuned for such problems, connect that to Python, et voila, it all runs near the speed you'd get by writing everything in that low level language, but at a fraction of the time, and where most of the code is much easier to maintain.

 

Note that Python itself is moving towards faster execution too; we've had cython for several years now, the faster sister of our favorite snake language. In Python 3.5 type-hinting has become part of the language, so I expect major improvements in speed the next years.

Share this post


Link to post
Share on other sites
Quote

Wouldn't you rather focus on one way of doing things when just starting out?  I mean if you don't mind then whatever but focusing on one language to begin with is a good idea. 

I know is a good idea, but I have more projects as well, I just believe that learning multiple languages would be fun, and better. I can see how each other interact with a same process and with different ways to write.

Quote

The amount of tutorials and books and material for C# outnumbers what's available for Rust as well.  Good luck either way.

Rust documentation, there ya' go:

https://rustbyexample.com/hello.html

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now