Completely new to this, where to start?

Started by
7 comments, last by Mouser9169 9 years, 11 months ago

hi everyone, i'm new to this site and anything related to this topic. nice to meet you all, kinda cool finding a site like this. anyway...

my second to last semester on network administration is ending, I have a break coming up and i want to take advantage of that time and start making a game. i have next to 0 experience in programming, art, audio and so on; however i do use autohotkey. i did dabble in C# and made a tic-tac-teo game that can detect stale mates, keep score, and switch player turns however I've forgotten most of it. which is one reason i'm making this game: to learn and retain what i will need when i make a move to become a game programmer for any of these brand named games.

so no experience, and i'm debating using a game engine or making one. i'm leaning towards making one to learn how to program, and i'm leaning towards C#. i'm getting my brother in on this as well, because his career goals i think are the same. i'm 25 and he's like 19 though. he doesn't have any experience in anything either. i already know what genre of game i want, a dungeon crawler on the windows 8/store platform for mobile, tablets, and pc's because i noticed the windows store doesn't have anything good in that area. as far as a plan goes that is all i got unfortunately. which is why i'm making this thread.

so my questions are:

is C# the only language i should learnt o make an engine, or do i need to learn python as well?

having no experience in anything, is there a downside to learning C#, as in: does it have a limitation a novice wouldn't know about? like do i loose customization because it's a high-level language? or does it have a performance hit if not used on the right platform or way? im just asking for really really basic things about what it means to use a language before diving in

before i even touch code, art, and sound: what are some TO DO's that i absolutely should do before hand? like should i create a design paper thing before hand, can i even do that without knowing any code? things like that

i kinda threw a lot out there, i just don't want to jump in and find out that i need to start over because of something i should have known/done before this even starts.

Advertisement

1) If you want to learn to program. Learn how to program. Don't worry about games, or engines. Start small with non-game stuff. Get competent and make some commandline games like tic-tac-toe, hangman, guess-the-number, Zork. NetHack. Just get a handle for programming. Honestly, I recommend CS courses to teach you the basics of data structures and algorithms at the bare minimum. Once you understand programming, it shouldn't be a hard leap to pick up graphics libraries and start making 2d games.

2) Don't make an engine, make games. Until you know what you need to make a game, you don't know what you need to make an engine. Engines are the byproduct of programmers who've made many games and distilled down the core elements they've used over-and-over. Until you understand what those parts are, use someone else's engine, or just go straight for making the game you want. You can make Tetris with something like SDL or PyGame or XNA rather easily without worrying about how perfect and professional your code is. You can learn all the things that are part of Tetris and all the parts that could be re-used to make Breakout. Those re-usable parts are your first engine.

3) But one of the most common suggestions is once you know how to program, skip the hard and repetitive programming all together. Pick up a tool like unity and make tetris or mario or astroids in Unity. Unity takes care of all the little details you don't really need to know (like how to load a model or texture), and gives you a chance to work on just the code that defines the interactions that make the game. You still need to know basic programming, but it takes care of boilerplate code that would take you a significant amount of time to write.


3) But one of the most common suggestions is once you know how to program, skip the hard and repetitive programming all together. Pick up a tool like unity and make tetris or mario or astroids in Unity. Unity takes care of all the little details you don't really need to know (like how to load a model or texture), and gives you a chance to work on just the code that defines the interactions that make the game. You still need to know basic programming, but it takes care of boilerplate code that would take you a significant amount of time to write.

Strongly recommend running through the tutorials for Unity, they go quite deep and give you a really good idea of what it takes to build a game.

Justin Stenning | Blog | Book - Direct3D Rendering Cookbook (using C# and SharpDX)

Projects: Direct3D Hook, EasyHook, Shared Memory (IPC), SharpDisasm (x86/64 disassembler in C#)

@spazzarama

 

ok ill take all of this into serious consideration, so Unity will have all the flexibility I need I take it? question about point number 2, wouldn't pushing myself to make a prototype of my game be overall a better learning experience than tic-tac-toe?

Don't focus too much on an engine. Focus on the game. Engines and programming languages are just tools to achieve the end product.

For your situation I would recommend picking up the free version of Unity and watch some tutorials on learning the workflow of game development. This is the best way to approach it 0 prior programming experience but you will still need to know the basics and enough to create scripts for your game objects. There are some free scripts available on the Unity asset store for general purpose things and you can just modify those to your liking but I can assure you that you will need to write some of your own code to get the desired behaviour out of your game.

Aside from programming, Unity has many tools with graphical user interfaces that substitute a lot of the programming required for things like physics, rendering, collision detection, audio, etc.

Bottom line is you should watch a couple programming tutoials to get the basic concepts down (unity supports C# and it is a great language to start with), and watch some tutorials on how to use Unity. The official tutorials are great as well as Brackeys'

Ohhhhh havent done this in a while....

Read me

It pretty much answers every question you are asking and sends you in the direction to hopefully answer the next dozen you will have.

Ohhhhh havent done this in a while....

Read me

It pretty much answers every question you are asking and sends you in the direction to hopefully answer the next dozen you will have.

So that article (which is great) says this:

I know, of course, that you are going to completely disregard this advice and start with C++, but in 3 or 4 years when you’ve got the scars and trauma from ignoring my advice, I’m going to smugly *tisk tisk* and give you my best “I told you so!”. I will offer another piece of advice while I am at it… anyone that recommends you start with C++, in the future ignore their advice!

I learned how to program in the 90s using C++. While now that I know it, everything is easy, I would love to go back in time and smack myself in the head and then try python, or even BASIC.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


I learned how to program in the 90s using C++. While now that I know it, everything is easy, I would love to go back in time and smack myself in the head and then try python, or even BASIC

might be fun to watch. ill start on C#, but first I still gotta finish this last day for the semester

Ohhhhh havent done this in a while....

Read me

It pretty much answers every question you are asking and sends you in the direction to hopefully answer the next dozen you will have.

So that article (which is great) says this:

I know, of course, that you are going to completely disregard this advice and start with C++, but in 3 or 4 years when you’ve got the scars and trauma from ignoring my advice, I’m going to smugly *tisk tisk* and give you my best “I told you so!”. I will offer another piece of advice while I am at it… anyone that recommends you start with C++, in the future ignore their advice!

I learned how to program in the 90s using C++. While now that I know it, everything is easy, I would love to go back in time and smack myself in the head and then try python, or even BASIC.

I started with a bit of Basic and Pascal in school, then was handed a copy of the 1st Edition K&R at a job working for CECOM (I've still got the book :) ) and told to learn C over the weekend so I could start programming. There's something to be said for being thrown into the deep end of the pool.

As for the other stuff - If you want to learn to code, learn to code. If you want to make games, make games. Making a game engine is completely out of your reach right now, both from a technical (you don't know how to code well enough) and a design (you don't know what to code) standpoint. It's the coding equivalent of "I'm going to make my first game an MMO". Don't neglect other skills: learn to write effectively.

Unity's a good engine to start with. There are others - do your homework, look around the internet and see what you can find. Don't worry about whether other people think it's 'too simple' or not cool enough, or whatever. If you think you can use it to make the game you want to make, use it. The worst that happens is you get in over your head, or don't succeed for whatever reason, and you've hopefully learned a lot in the process.

Devmaster.net lists 365 game engines when I just checked. Most won't do what you want or will require more skill than you have.

Find the 'complete' and 'simple' ones and start from there.

"The multitudes see death as tragic. If this were true, so then would be birth"

- Pisha, Vampire the Maquerade: Bloodlines

This topic is closed to new replies.

Advertisement