i want to become a game developer and I thought it would be nice for me to learn a language. I took a class in college about html/css so im familiar a bit with writing code. I took a few classes on codecademy for python and I dont exactly know what im learning or if it is relevant for game design(the beginning lessons). Im not even sure if it will transfer over. I dont plan on using what ever language im using with anything not related to game design
Am I wasting my time learning how to say code with python or java? I was thinking of just jumping into a engine but I want to be able to write the code for my own game(not a engine just my own scripts).
Is it worth learning a language if I only want to do game development?
If your goal is to simply make games, the language you choose does not matter too much. And even if you pick the "wrong" language or change your mind later, the skills you learn in one language will frequently transfer to the new one. It's always hardest to learn your first language - the second, fifth, and twentieth are much easier
In all honesty, if you want to solely create a game and not hand-code it, there are better options out there. Game Maker comes to mind. It is drag-and-drop with the ability to code your own scripts. I don't recall which language the scripts are written in, though. There is also software such as Unity, Unreal, etc. I can personally speak for Unity. You basically drag-and-drop game objects into your scene and you can attach components to them. Eg. Scripts, rigidbody physics, controllers, etc. The scripts are written in C#.
It all depends on what you want to do. C/C++ is your best bet if you want to get into writing games or even programming in general. That and Java. Minecraft is written in Java, but I believe that nearly every modern game out there (PC/Console) is written in C/C++. I'm not a professional game developer, so don't quote me on this, but I believe that sometimes in performance-critical sections of code they will hand optimize it by using assembly. So that would be good to know also.
Also, look into Alice. It's extremely simple and you can use pre-defined functions or write your own. When I took my computer course in High School we used that and Scratch(something to also look into);
If you learn coding just to make a game... you're kinda hurting yourself. Unfortunately most of game programming is actually in the thickest part of Computer Science and Math.
No, there are frameworks to make games in both Python and Java. (I'm sure other members here will be quick to point out some, I'm not familiar with Python or Java frameworks/engines off the top of my head to make good recommendations)
Yeah, here! Pygame, Processing and LibGDX come to mind - three excellent frameworks.
However, if you are not aiming to be a professional programmer, there are easier choices to make games. You might want to look into Visual Coding Tools, for example. Or Game Maker, as Renthalkx97 mentioned.
I was thinking of just jumping into a engine but I want to be able to write the code for my own game(not a engine just my own scripts).
Unity. I'm surprised no one else mentioned it sooner. The scripting API for Unity is fantastic, any question you have will have been answered on StackOverflow and C# is a very good language to learn. I think because Unity's very visual too it's a great introduction. Try out the beginner & intermediate tutorials on their website.
Although in Unity what you're writing is indeed just scripts, I think it'd be best for where you're at. However if you're unsure, C++ is never a bad option. It's the go-to language for the games industry and although some studios will produce mobile/web games in different languages, I don't think you can go wrong with it. Check out SFML for a decent 2D kit although there're a plethora of others.
Unity. I'm surprised no one else mentioned it sooner.
I did.
There is also software such as Unity, Unreal, etc. I can personally speak for Unity.
From my experience, you only need to know the basics to create code for a game. In Unity, for example, most of the physics, simple shaders, collisions, and rendering is done for you. You only have to code the logic for specific events such as how an object moves or what happens when a key on the keyboard is pressed. The stuff you learn from one semester of Computer Science almost covers the basics of you need to know. The only thing you would need to learn is Unity's API, but there are a lot of tutorials on YouTube to walk you through it. Also, there are some programs that don't require conventional programming at all. GameMaker and Construct 2 have a drag and drop system, meaning you drag in actions to make a game object do something.
I recommend researching software that would work with the type of game you are working with. It depends on what type of game (2D or 3D) and whether or not you are comfortable writing out your own code for the game.
There isn't much reason to learn coding just for the sake of learning it, you can pick up the very basics of a language in a day or two, but learning all the rules, complications, ways to make things happen on different platforms or working with libraries, those things take years to learn. In the case of just wanting a game you're basically avoiding the experience all those developers making the toolsets have accumulated over the years, just to have your own crack at it. That's fine if you want to be a programmer longterm, but not exactly efficient if you just want to develop a game. It'd be like learning to cut down trees and saw them just to make something out of planks you could pick up from the hardware store.
I could also point out those engines just save insane amounts of time even as a programmer, I couldn't even begin to explain how much code and time it saves just using those engines. Even if you're experienced enough to know how to do those things, the fact is that they are already done for you. It isn't like we all have 'fun' writing what amounts to almost boilerplate code to set up things that have been set up thousands of times before, but in a slightly different environment.
I was thinking of just jumping into a engine but I want to be able to write the code for my own game(not a engine just my own scripts).
While developing a game with an existing engine can save you A LOT of time, you still need to be able to program to do so.
Many engines give you simple APIs and hide the low level complexity for you, and in case of Unreal Engine 4 you can also use the Blueprint Visual Scripting system to avoid having to learn the Syntax of a programming language...
But: you still need to know the basics of programming, else you will make mistakes that will make your game inefficient or not work at all. You will reach the limits of what these simples systems can do.
The good news is though, instead of having to learn to program boring "hello world" programs, you can jump into an engine and just learn by doing. Try your hand at Unity or Unreal Engine, or, if you want it a little bit easier and are fine with 2D games, start with a simpler 2D engine.
Try and error, listen to tutorials on the net, see how other people get their stuff working, learn from them. You will pick up basic programming knowledge before you know it.
Yes, the first experience for me with that was the first Crysis game in Editor mode. The way I played it. With little mutexes. The reason is to make those large art teams as productive as Posible.To be honest game engines(at least the big mainstream ones) are getting much more point and click as the years go on, more time and effort is being put into trying to make engines that are easy to work with for non-technical people like artists, designers, etc. It saves a lot of time and money when big companies don't need to hire a dozen programmers just to make tiny changes to an engine to do something that the other devs need/want in a game, so the suite of tools you get is relatively impressive.There isn't much reason to learn coding just for the sake of learning it, you can pick up the very basics of a language in a day or two, but learning all the rules, complications, ways to make things happen on different platforms or working with libraries, those things take years to learn. In the case of just wanting a game you're basically avoiding the experience all those developers making the toolsets have accumulated over the years, just to have your own crack at it. That's fine if you want to be a programmer longterm, but not exactly efficient if you just want to develop a game. It'd be like learning to cut down trees and saw them just to make something out of planks you could pick up from the hardware store.I could also point out those engines just save insane amounts of time even as a programmer, I couldn't even begin to explain how much code and time it saves just using those engines. Even if you're experienced enough to know how to do those things, the fact is that they are already done for you. It isn't like we all have 'fun' writing what amounts to almost boilerplate code to set up things that have been set up thousands of times before, but in a slightly different environment.
With script coder artist and game designer a total conversion means a new game.
I got this FPS weapon balanse idea. But I also want to learn C++. So I have 3 pet projects one is a game, to do it myself or at least try to.
But for FPS where my focus is more on weapon balanse and realism or simulation. I think Crytech engine wil do where you can choose out of 3 script languages c++ C# Lua. Even a balace mod wil do.
Triple A studio have huge art teams that the way they are in the big league as you need huge capital to have large workforce. So a very data driven engine is key to productivity of those work forces.
Of course with a smal team you have a small art team you can still make GFX rich games but not that rich in assets or high fidelity. But not all games need that. A Mass Effect high profile title vs the first Counterstrike. Total conversion mod of other game.
A other way to get quantity with small team in assets is go Procedural generation.
These solution complement each other.
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.