Jump to content

I really want to get into hobby game making

nightmarevoid

I feel like this has been said a million times, but now it's my turn I guess.

 

In high school I took a game development course. It was all done in VisualBasic and there were no prerequisites. That being said, I always added my own twist to the assignments (i.e. different difficulties, easter eggs, or multiplayer), and I enjoyed it so much that I installed VB on my laptop and worked on my projects at home. I even got the teacher to make that genuine smile that is always enjoyable to see.

My desire to do this was reignited when I watched Yahtzee's dev diary. I really felt like it was achievable because unlike other youtubers who flash code quickly on the screen, Yahtzee lets it stay on the screen and talks about it, and I actually understood. Somehow that really gave me a boost of confidence.

 

How can I get started? Yahtzee brought up using game maker studio 2, but the demo is just 30 days and the version I'd like is $100 single purchase. Not crazy, but maybe too much to spend on a hunch. 

Also how do I decide what language to use? Do the interpreters use their own language or do they have you select something like C++ or Java, and from there where I can I find a good guide on how to use those languages? This has always been my problem with coding; classes are easy to get into but they never tell you where to go from there. Sure I know how loops and common functions work now, but I don't know how to take that info with me to another language, or how to package my code to make it useable by someone else. Learning a new syntax has always made me feel like I was learning everything from the ground up, and that's always intimidated me. If there's a class out there that can help me understand what language to use based on my desires (probably just 2D side scrollers and platformers for now) that would really go a long way for me.

 

I really want to jump into this, but I don't know where to do it. Thank you for the help, and for reading my late-night rambling. 

Ryzen 7 3700X

Aorus GTX 1080ti

G.Skill TridentZ 3200MHz 2x8GB

Corsair SFX 750W

Phanteks Evolve Shift Air (glass front)

2x Corsair Force GS 120GB SSD (RAID 0)

Link to comment
Share on other sites

Link to post
Share on other sites

a friend of mine just downloaded unity, and tried to make a game where a ball needed to roll and catch stars, and you did that by moving the entire board.

took him about 3 days to learn how to do via youtube videos.

you could try that if you want.

Anything i've written between the * and * is not meant to be taken seriously.

keep in mind that helping with problems is hard if you aren't specific and detailed.

i'm also not a professional, (yet) so make sure to personally verify important information as i could be wrong.

 

Link to comment
Share on other sites

Link to post
Share on other sites

When you write code, your compiler creates executable files (on Windows) that can be opened by anyone running the correct hardware and software. For Windows, the Visual Studio IDE can compile your code and it even has ways of adding an installer. For macOS, you have Xcode which does the same thing. Xcode handles app development for Apple devices.

 

As for the programming language, the way you write your algorithms are very similar. The syntax can be annoying but if you look past it, the thinking is the same.
 

You don’t usually need to create games from 0. For any language you choose, there exist commercial and open source libraries that you can use in your code. For instance in python there’s a library call turtle which lets you create a window and draw things on it, move them, rotate etc. I’ve built a Tetris game in it. What you need to do is look for particular libraries that you need for your game. For example in C++ you have a library called SDL which is used to create visual stuff for games and there are tutorials about it.

 

Obviously there’s also game engines but I don’t suspect that’s what you are looking for.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, flashiling said:

a friend of mine just downloaded unity, and tried to make a game where a ball needed to roll and catch stars, and you did that by moving the entire board.

took him about 3 days to learn how to do via youtube videos.

you could try that if you want.

Yes i think this is a very good start. Unity is very hobbyist friendly for basic stuff and you can get VERY far with it. also 1000 times easier than trying to learn how to make the visual engine just to display meshes, lighting and textures properly in OpenGL and C++.

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, nightmarevoid said:

This has always been my problem with coding; classes are easy to get into but they never tell you where to go from there.

Yeah. That's the problem with high school CS classes: They teach you languages instead of theory. However, you can overcome that with practice.

 

Quote

Sure I know how loops and common functions work now, but I don't know how to take that info with me to another language

A loop is a loop of course of course...

Unfortunately your school chose to teach you VB, which has kind of a different syntax compared to most languages that you will actually use. Once you pick up a "C type language" like C, C++, C#, Java... Well, you get the point. Most languages that you will end up using have a similar loop construct which looks like this:
 

for (int i = 0; i < 10; i++)
  WriteToOutput(i);


int i = 0;
while (i < 10)
  WriteToOutput(i++);


Python ends up being a little different, but still somewhat similar and is easy to parse if you know the C style:

for (i in range(0, 10)):
  print(i)

 

Quote

how to package my code to make it useable by someone else.

That really depends on the language, but most languages use some sort of "modules" or "namespaces". C/C++ of course uses "Includes", which are a little bit different.

But at the end of the day, all of it really boils down to telling the "compiler" where to find the other code in a file.

 

Of course if you mean "distributing your finished program", that's easy. For a language like C/C++, C#, or Java, with simple projects, clicking the "compile" button in your IDE will usually generate a folder with everything that needs to be distributed for your application to work. For more complicated projects with lots of resources (like games), that's a little more complicated. Fortunately, you will know what needs to be distributed, and how it needs to be distributed, because you wrote the application and you know what it expects and where it expects it to be :)

 

A game engine like Unreal or Unity has tools to help with that as well.

 

Quote

Learning a new syntax has always made me feel like I was learning everything from the ground up, and that's always intimidated me. If there's a class out there that can help me understand what language to use based on my desires (probably just 2D side scrollers and platformers for now) that would really go a long way for me.

Learning a new syntax can be hard until you've learned a few. Fortunately you've already learned one. The next one will end up being C like, which will make it easier to learn a whole host of languages.

My recommendation would be C# and Unity. If you can learn the basics of C# on your own (which should be "easy" considering how much money Microsoft and the DotNet Foundation spend to make sure people can learn C# easily and freely...), then https://catlikecoding.com/ makes some pretty good Unity tutorials for free.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

 

22 hours ago, nightmarevoid said:

In high school I took a game development course. It was all done in VisualBasic and there were no prerequisites.

Step 1: 

make games using what you know. They will exist. Work around what you know & make it work. 

22 hours ago, nightmarevoid said:

That being said, I always added my own twist to the assignments (i.e. different difficulties, easter eggs, or multiplayer), and I enjoyed it so much that I installed VB on my laptop and worked on my projects at home. I even got the teacher to make that genuine smile that is always enjoyable to see.

There we go, you can do step 1. Feel free to revisit step 1 as needed. End user 99% don’t care what you used to make it. 

 

22 hours ago, nightmarevoid said:

 

Somehow that really gave me a boost of confidence.

Most languages are the same thing. 

C++

for (int I = 0; I < 10; I++) {}

python

for I in range(10):

22 hours ago, nightmarevoid said:

How can I get started?

You already did. Post your games online. Newgrounds is still used... for some reason... itch.io is a popular game dump place. 

22 hours ago, nightmarevoid said:

Yahtzee brought up using game maker studio 2, but the demo is just 30 days and the version I'd like is $100 single purchase.

The first one was free & got mad popular. You can probably find game maker 1 for free. Maybe not. Someone might inject a virus to it if it’s not from yoyo games. 

You can try it, it’s 30 days. If you’re still in high school, ...i didn’t do homework in high school & just played video games, so you have plenty of time to use it. Otherwise, you prolly have time somewhere, or you can make time. 

22 hours ago, nightmarevoid said:

Not crazy, but maybe too much to spend on a hunch. 

Sometimes it’s best to pay for software. Sometimes. Get a small day job or weekend job. 

22 hours ago, nightmarevoid said:

Also how do I decide what language to use?

Depends what you want to do. 

C++ is the end all be all, but with great power comes great crashes. 

If you’re in high school, ask mom & dad to let you take a C++ class at a community college. Many offer night classes. Plus it will count towards a degree. 

Don’t let college intimidate you. It’s easy if you pay attention & do the work. 

22 hours ago, nightmarevoid said:

Do the interpreters use their own language

An interpreter reads a text letter by letter & then figures out what you mean & does each command one by one. It’s “slower” but if you write solid code, you write solid code. 

22 hours ago, nightmarevoid said:

or do they have you select something like C++ or Java,

C++ is the best balance of power over the computer’s operations & human readability. It’s very prone to crashing because you can mess up. Learn the debugger, it’s mad easy. Just use visual studio if you have windows. 

 

Java is another decent language. Minecraft is written in it. 

22 hours ago, nightmarevoid said:

and from there where I can I find a good guide on how to use those languages?

Learn Java from codecademy.com & don’t pay for it. “Learn Java.” It’ll take you maybe an afternoon. 

 

How to learn API? API means application programming interface. It’s an extension of a language that calls commands that interact with a program to make it easier to work with a program. 

 

IE:

gameObject.FindGameObjectsWithTag(“Enemy”);

this is a command from the Unity API for C#. It finds all spawned game objects that are labeled as enemy. 

To learn this, you need to look through documentation. Every good program has some form of documentation. It’s like a textbook written by the developers. 

 

Pro tip:

dont read the entire thing front to back unless you have an eidetic memory. Just look stuff up when you need it. Don’t worry, you’ll learn it as you use it. 

22 hours ago, nightmarevoid said:

This has always been my problem with coding; classes are easy to get into but they never tell you where to go from there.

Google. 

 

Jk, but not really. 

Take what you know you can do & plan out a game & make it. Create a game design document (not hard) and plan out your game. 

Wrote down & draw out your game. 

22 hours ago, nightmarevoid said:

Sure I know how loops and common functions work now, but I don't know how to take that info with me to another language,

C++

void Func (int arg)

{

cout << “hello” << endl;

}

 

python

func (arg):

print(“hello”)

 

I like textbooks. Codecademy is nice. Sololearn is nice. Both of those are free. Learning syntax is easy. The logic is the same. 

22 hours ago, nightmarevoid said:

or how to package my code to make it useable by someone else.

Google how to use GIT. 

Also write self documenting code. 

 

rule of thumb @Mira Yurizaki told me;

a function should be named a short sentence. If you can’t do that, make another function. 

I should know what your code means if I know the language & read your words. 

 

Add (A, B)

soldier.teleport(newX, newY)

 

self explanatory? 

22 hours ago, nightmarevoid said:

Learning a new syntax has always made me feel like I was learning everything from the ground up,

Meh, kinda. I recommend a class on computer architecture. 

Learn how the CPU works, write some assembly code. It’s very easy. 

Once you do that, computers make a lot more sense. 

Learning int is and integer, if is an if statement is annoying. 

 

C, C++, C#, Java, JavaScript 

all those are basically the same in basic syntax. As you get into it, it’s a bit more but 90% of basic stuff is copy/paste compatible. 

It’s easier to jump between these. 

(Watch 5 people at me on how “these are nothing alike”)

 

Python, Lua, PHP, BASIC & variants of Basic are all kinda different. 

22 hours ago, nightmarevoid said:

and that's always intimidated me. If there's a class out there that can help me understand what language to use based on my desires (probably just 2D side scrollers and platformers for now) that would really go a long way for me.

Game maker 2. $99 USD. Or try unity with C# which is free. Whatever floats your boat. 

 

Game maker was made to make 2D games & imo is better for 2D. 

Unity has had TONS of work to make 2D really viable. Plenty of 2D unity games exist & are great. 

 

Ask for game maker 2 for education. It’s not a game, it’s programming & learning. 

22 hours ago, nightmarevoid said:

I really want to jump into this, but I don't know where to do it. Thank you for the help, and for reading my late-night rambling. 

NP. 

Link to comment
Share on other sites

Link to post
Share on other sites

I would learn to program, then you can do so in almost any language and pick it up. What I mean by this, is learn the core concepts like loops arrays, objects, classes etc. Then depending you can apply this in almost any language. So many people just try and learn Python for example without having a good core fundamental understanding of programming as a whole.   

 

Now the obvious question here is how do I learn to program without using a language. Well, this will sound like a contradiction but you pick a programming language to learn to program, but you are not learning that language as such, you are learning the concepts then you can transfer these into pretty much any other language. 

 

C is a nice place to start as you have to do almost everything your self include memory management and really gives you a good understanding, if you then want to learn object orientated development you can then move to C++. 

 

Once you have a fair amount of experience in programming you will realise that some languages make certain things in programming easier to execute as a solution. However don't go in with the mindset of learning python or learning C, learn to program and then you will be able to pickup almost any language quickly and use the best one for the job.

 

If you then wish to do game programming, you can do so by using C++ and opengl however, you have to have a pretty solid maths foundation before you start.  

 

I hope this helps :)    

Link to comment
Share on other sites

Link to post
Share on other sites

@nightmarevoid you have some excellent questions! I was asking those exact questions when I first got into Game Development. And fortunately, I was able to find some really good resources for coding and game development!

 

First off, for learning the basics of coding, I would HIGHLY recommend CodeMurai from Zenva https://play.google.com/store/apps/details?id=com.zenva.codemurai&hl=en_US 

It does the exact opposite of those "Learn to Code in 48 hours by making games!" books and actually teaches you the fundamentals of coding. It's like DuoLingo for programmers. Seriously, I've been using C# for 6+ years and I still go back to it every now and then.

 

Secondly, in terms of game engine, I would recommend, as others have recommended, that you use Unity. Mainly because it's so widely used that they have an excellent documentation and community. Plus, it has a lot of 2D packages you can use to have some immediate success. There are others but I'd start with Unity since you can get up and running much quicker (provided you have the hard ware).

 

Thirdly, for going a bit deeper, try picking up an online course in Unity that focuses on projects you want to make. Zenva's Game Dev Academy (https://gamedevacademy.org/) has some free tutorials that might be helpful. They also have online courses which I would recommend if you don't mind spending a few dollars. Also, look into a course on Udemy (https://www.udemy.com/). They are very inexpensive and the teachers are usually very active to answer questions. Sure, you can find free Unity tutorials on Youtube but sometimes it's helpful to have quick responses to your questions, especially when you're just starting out.

 

Good for you for looking into these things! Game Development is a very fun hobby and is extremely rewarding. 

P.S. I literally just created an account here. I saw this thread and thought I had to give my input lol

Link to comment
Share on other sites

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

×