• 0

How to be a game programmer and developer?


Question

Hello :) .I am new in this forum and i am really interested in programming.I really want to learn to program with Cuda, C++ you know. I want to make my own game engines and 3D games with stunning grafiks. I saw really interesting things in the Nvidia developer zone like Nvidia PhysX SDK, OpenGL, OpenCL, DirectX and many other stuff. I want to learn how to program with them and for what and how can i use it? What i must learn first? From what i must start? What book's i must read of i am new to software and game programming? I am really confused. Thank's :D .

Recommended Posts

  • 0

If you want to get big, you got to start small.

And TBH you won't believe how many people drop out of Electrical/Computer Engineering around here (Especially Software Engineering majors) because they think they love programming until they realize what the hell they got themselves into. I only have a couple of friends who are truly passionate about these things and stuck with the program. And personally when I was younger I "sort of" liked programming, but I'm glad I'm in Electrical and programming is less than 30% of the education. Be careful to distinguish between stuff you like when it's not so challenging, and when it's super challenging and super boring. This is when it separates true programming lover or just someone who dreams of making something epic when they're younger.

in my experience you should never do something you love for a living. When you do something that you love for a living... it becomes a job and you could learn to hate it. Make your job something you can "happily tolerate" and keep your passion a hobby.

  • 0

You really expect to make a game like Assassins Creed, Need for Speed, Mirrors Edge etc? You do realize these were NOT made by a single person right? I'm not saying a person couldn't do it but it would take a LONG time plus we're talking about someone with a lot of experience.... not someone who's still not willing to make a tic-tac-toe game

  • 0

in my experience you should never do something you love for a living. When you do something that you love for a living... it becomes a job and you could learn to hate it. Make your job something you can "happily tolerate" and keep your passion a hobby.

I don't agree with that heh, I love programming and despite working at a company that one could argue is a crap place to work at I still enjoy work for the most part because I'm still doing something I truly enjoy doing. If the OP truly loves programming he should definitely look into it, but also shouldn't expect to skip all of the building blocks.

  • 0

Like others are saying, you need to start small. Your mind will explode if you go straight into trying to develop something like CryEngine. You need to start with making games like snake, tic-tac-toe, you know all that 2D goodness. Then move onto the complicated stuff.

I didn't start writing complex software that aids automation straight away, I wrote calculators and notepad applications first then start to find projects or tools you can develop.

Finally, no one is going to stay on this thread and tell you every book you need to read. I think that what I am saying is the basis of what everyone else is going to say.

  • 0

The reason I think I've been successful (besides the fact that I work for an awesome company) at keeping my sanity and passion in the industry is because I've managed to position myself in a place that pays me for my hobby, not requires me to do a job. There are deadlines, sure, and a lot of the tasks can get tedious, but I'm also encouraged to innovate and try new things, experiment in new technology, and do things on my own initiative. Very rare you'll get those perks in a engine design house... there's a happy medium to be had in the industry, but finding it's HARD.

  • 0

I think quete everyone are understimating me. I will say it a second or third time: I know how to program with BASIC and i want to say that BASIC is one of the first languages ever made and Visual Basic.NET is really a programming language based on the old BASIC language. Ok i don't know why i am writing that, but of course i am not planning to make Assassins Creed Brotherhood for one day xD. And i know how large teams make games. An example is Crysis 2 with 3000 people developing it on the Sandbox 3.

Ok not just on the Sandbox, but on Photoshop, 3Ds Max i think, but i am not shure, maybe Affter Effects and there are actors and many many other stuff.

  • 0

I think quete everyone are understimating me. I will say it a second or third time: I know how to program with BASIC and i want to say that BASIC is one of the first languages ever made and Visual Basic.NET is really a programming language based on the old BASIC language. Ok i don't know why i am writing that, but of course i am not planning to make Assassins Creed Brotherhood for one day xD. And i know how large teams make games. An example is Crysis 2 with 3000 people developing it on the Sandbox 3.

Ok not just on the Sandbox, but on Photoshop, 3Ds Max i think, but i am not shure, maybe Affter Effects and there are actors and many many other stuff.

BASIC is exactly that...basic, learn a better language, maybe C or C++ and again learn the basic stuff regarding graphics and then consider writing your great 3d game

  • 0

Of cource i will learn C++ or C#. With BASIC you can't make so many stuff.Ok i am planning that. I will learn C++, DirectX, programing PhisX, OpenGL, OpenCL and then what!? What can i make with them? How can i make a game engine with them or a 3D Design program or a render or i don't know xD. I just want to know how to work with these languages and make with them a game engine with toolset and with that toolset to make a game. Just tell me the books that i need, the stuff from school that i need and everything that I NEED. Is ot soooooo hard!? Ok i don't know how hard is that i am not the other users.Ok sory that i am so nervous :whistle: .

  • 0

Wow, cut this guy some slack.

Games programming is IMHO one of the most involving aspect of programming with more to juggle than many other areas.

How about you start with a simple top-down 1 screen shooter and progress from there?

  • 0

Okay, what we're telling you is that you're going to need a lot of experience with different languages and building smaller, single purpose applications (like tic tac toe) before you're ready to take on larger projects like engine development. It's not as simple as "read ______" unless you want to use a very specific technology. There are tons of books and online tutorials for learning XNA or Unreal or Unity or JavaGL or... insert technology. But building a low level graphics engine requires a lot of non-specialized code that there really honestly isn't that many people doing at this point, and if they ARE doing it, they're doing it in a corporate/business environment and aren't exactly going to write a how to.

If you want to be able to build tools like Sandbox or Unreal, you've got a long way to go from where you are now to there. Again, if you want to make a, from the ground up, full 3d game...you can do that with a bunch of different platforms without having to mess with DirectX directly. If you're famliar with .Net, check this out:

http://www.riemers.net/eng/Tutorials/XNA/Csharp/series1.php

or there's Unity, which produces finished games for browsers, desktops, macs, linux(?) and iphones at least... you can read about how to use it here:

http://unity3d.com/

and find tutorials here:

http://unity3d.com/support/resources/tutorials/3d-platform-game

If you really want to go low level... Here's some basic tutorials for C++ and Direct X

http://www.directxtutorial.com/Tutorial10/tutorials.aspx

(i linked to DX10 because 11's still not fully adopted widely... if they are backwards compatible correct me but never messed directly with this stuff...)

  • 0

Making a game with the UDK and from scratch are two entirely different worlds. I'm definitely not saying you wouldn't be able to do it, just don't skip the building blocks. Creating a game engine, even one that isn't 3D takes a lot of practice and knowledge. Creating simple games like tic-tac-toe will give you some insight into the structure of a basic game and that will be something you can build on when you start making engines.

  • 0

You don't need any books (in fact, I think they're a pretty poor way to learn things after you've got the programming fundamentals down), and Direct3D 11 is just Direct3D 10 with a few new things. You can't learn Direct3D before you learn C++, various Windows APIs, and the basics of COM. These are prerequisites. You have to actually be able to use the programming language, and you have to actually know how Windows works first. You can't skip this step. It's like trying to build a house without even knowing how to use a hammer.

Since it appears that you are more interested in getting quick results rather than being genuinely interested in actually learning from scratch, I suggest you follow the advice given by others and just use an existing framework/engine. Then you just have to fill in your game logic and art. Alternatively, you could stay in the .NET world and give XNA a try.

  • 0

I know UDK. It's a really good tool :) .

Ok look. I will learn C++ and then DirectX3D, but can i learn it fully with just tutorials? I think that i need a book xD.

You can learn Direct3D from tutorials, but you have to be willing to put in the effort to learn it..not just copy it.

Usually most tutorials will give you like sample codes with a few exercises..don't just copy and paste and modify like 2 digits to see what you get. Think about something that you want to make, and as you're learning the different bits...change what the tutorial tells you to make into what you want to make. For example, the tutorial I used showed me how to make pong and tetris...instead I'm making a side shooter.

Obviously there are some exceptions...like most OpenGL / D3D tutorials start off teaching you how to draw triangles (there's a reason for that and you'll learn it)...so don't expect that within 2 mins of reading something you'll be able to make Crysis.

Oh and LEARN C++. Don't jump into D3D without having good knowledge of C++, it will be hell...good knowledge of Windows APIs will help you too but you can learn those along the way.

---

One thing I highly suggest is learn how to use multiple source / header files beforehand (it isn't hard, in-fact its quite simple but I'll leave it to you to learn / understand how to do it :p ). Don't start coding everything into 1 .cpp file...it will eventually become really hard to read / follow / understand and then when you try to split it...it just gets messy.

  • 0

C++ For Dummies is a good starter book, then followed up with C++ Programming Language - Special Edition.

Basically have a look at books by authors Scott Meyers and Herb Sutter. These books will help you learn and understand the C++ language. Then it would be a good idea to look into:

Beginning Game Programming

C++ Game Programmers Development

I always find reading from books a much easier and more effective way of learning rather than looking at online tutorials.

  • 0

I know how to program with the BASIC.NET language in Visual Studio, but not fully :rolleyes: .

LOL. First off, it's best to begin with a real language like C. That way you can concentrate on actually programming instead of learning a bloated library for months. C will also force you to solve problems, and not rely on other people's work.

And as others have said, start with learning basic programming, then move on to advanced graphics stuff. If you plan on doing game programming, I hope you know euclidian mathematics :ninja:

  • 0

Of cource i will learn C++ or C#. With BASIC you can't make so many stuff.Ok i am planning that. I will learn C++, DirectX, programing PhisX, OpenGL, OpenCL and then what!? What can i make with them? How can i make a game engine with them or a 3D Design program or a render or i don't know xD. I just want to know how to work with these languages and make with them a game engine with toolset and with that toolset to make a game. Just tell me the books that i need, the stuff from school that i need and everything that I NEED. Is ot soooooo hard!? Ok i don't know how hard is that i am not the other users.Ok sory that i am so nervous :whistle: .

You've just highlighted the biggest problem - you're massively underestimating the task you're taking on. It's not as simple as reading a few books, it is as you put it "soooooo hard", and takes decades of study and experience to become good at.

If it was as easy as you think it is, every man and his dog would be making their own games. Wake up, and grow up.

  • 0

Thank you for the answer :) . I really want to know DirectX 11, but there are no books for now and my computer with his "High end" parts xD.

Wow Unity looks really like Sandbox. Really cool :) .

I suggest starting with something simple like an isometric tiled map game. It's simple enough, but it will also allow you to play with the camera, design and experiment with internal data structures that represent the game on screen, and get to know the opengl/dx API.

  • 0

Professional game engines generally use C++ and Direct3D but that doesn't mean you should start with these (they are HARD). The best thing you can do is to learn one language well (continue with VB if you please, it's fine), make small games with it and gradually make larger projects. You say you don't want to do Tic-Tac-Toe, but I bet you don't know how to do it. How will you know how to make 3D game engines then? All you learn by making small projects is stuff that you will one day integrate into a full-blown 3D game engine if you ever get there. It's more rewarding and will make your portfolio look better, so that the day you show up to EA or Blizzard, you can say : "look when I was in high school I made these small games", instead of saying "well I had an idea of that next-gen 3D game but it never saw the light of the day". The former will impress them a lot, the latter will not.

You're just not going to code a C++, Direct3D-based 3D engine that supports several state-of-the-art features. Not now, not in a year, probably not in a decade. It's just not happening, so instead of wasting your time trying to grab the holy grail, do what all the guys at EA and Blizzard did, and make some small games that present a manageable challenge to you. Gee, if you don't have the patience for that, you won't go very far in programming.

Edited by Dr_Asik
  • 0

I think everyone is forgetting to ask OP a very important question:

emilxp, do you actually enjoy programming or do you want to get into game development because you enjoy playing video games?

If it is the former, than I wish you the best of luck in you endeavor and I would suggest you take some college courses, especially if you are considering doing so as an occupation.

If it is the latter, I would very much consider not wasting your time on it. The skill set required to enjoy video games and that required to make them are very different. And I can guarantee, if you go to any college, you will find plenty of liberal arts majors who set out to make some really cool games, got to the lecture in CS101 where they teach recursion and found out they couldn?t cut it.

  • 0

Ou sory i forget to read page 4 in the topic :p . Now my answer is: I really enjoy programming. It's really fun, because from code you make cool stuff :) . And i don't think i will continue with VB, because i know the basics stuff in it and some advanced stuff, but i will not use it in the future and for that i think i will read the books that gave me sean.ferguson. I have the one of them. I have Beginning C++ Game Programming, but on pdf :p .

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • State of Decay 2, Blasphemous 2, and more join Xbox Free Play Days by Pulasthi Ariyasinghe The latest Free Play Days offer has just kicked off, giving Xbox players the chance to try out a new selection of games over the weekend. The offerings this time aren't as massive as last weekend, but there are still major releases for Xbox players to jump into. This includes Undead Labs' post-apocalyptic title State of Decay 2, as well as two Team17-published titles. Two of the games being offered this time are available to all Xbox players without needing any kind of Game Pass subscription. In the fully free-to-play section, you can jump into State of Decay 2. The title is both an action survival title and a community builder, letting players choose a map, set up their base, and try to keep the growing zombie threat at bay. Cooperative play is available too. Don't forget that the studio is preparing a third entry for 2027. Next, Blasphemous 2 drops in for Metroidvania and Soulslike fans, where The Penitent One returns for another adventure. The title has tough combat with multiple weapon options, deadly traps to avoid, and platforming sequences requiring a lot of patience and timing. Keep in mind though that the offer does have a 5-hour time limit attached to it. Lastly, Xbox Game Pass Ultimate, Premium, and Essential members can now try out the WWII-set first-person shooter Hell Let Loose. The multiplayer game offers 50 vs 50 combat in massive maps, with infantry, tank, and artillery options available for players. Here are the announced games and the platforms they are available to play on: Hell Let Loose (Xbox Series X|S, PC) State of Decay 2: Juggernaut Edition (Xbox Series X|S, PC) Blasphemous 2 (Xbox Series X|S, Xbox One) To easily find the titles on Xbox consoles, first head to the Store, and then in the sidebar, find the Home section. In there, open the Subscriptions tab. The Free Play Days collection will show up in this area. This week's Free Play Days promotions will end on Sunday, June 11, at 11:59 pm PT.
    • Can we not have paperless office, like we was promised in the 80's
    • I actually laughed out loud in real life at the heading on this—whatever Microsoft is drinking, I want some of it.
    • Euro-Office must default to ODF to be considered "genuinely European", LibreOffice argues by David Uzondu Euro-Office is a web-based collaborative office suite that positions itself as a "European sovereign alternative" to American tech companies, backed by a coalition of developers including Nextcloud, IONOS, Abilian, BTactic, OpenProject, and, more recently, Tuta. The project officially went live a couple of days ago, but not before drawing heavy fire from LibreOffice developers, who called the marketing claim that Euro-Office represents the "first open-source office suite developed in Europe" a deceptive historical inaccuracy because projects like OpenOffice and LibreOffice existed decades earlier. Now that the project has launched, LibreOffice is back with another complaint, arguing that Euro-Office cannot consider itself "genuinely European" while it pushes proprietary Microsoft defaults on users. Euro-Office had promised to improve the OpenDocument Format (ODF) back in April, but the current release still plagues users with several technical failures. For instance, the suite lacks an admin setting to enforce ODF, and mobile editors completely block ODF saves, forcing files into Microsoft's OOXML formats. Some configurations force files into read-only mode, while editing frequently corrupts document formatting or erases data. LibreOffice thinks that merely supporting a format as an afterthought does not make you a sovereign alternative, as file formats are the battleground where" digital sovereignty is won or lost." The road to the first stable release of Euro-Office has been quite bumpy due to an aggressive public fallout with OnlyOffice, from which the coalition originally forked the project. OnlyOffice struck back by accusing the coalition of violating copyright terms under its AGPLv3 branding requirements by stripping the original branding anyway and forking the code. Getting Euro-Office up and running is a bit wonky (at least for non-technical users), as there is no direct installer to grab off the web. The easiest way we learnt is by using Docker. First, pull the official Euro-Office image from the GitHub Container Registry: docker pull ghcr.io/euro-office/documentserver:latest Then, run the container with active ports and a secure JWT token, enabling the test environment: docker run -i -t -d -p 8080:80 --restart=always -e EXAMPLE_ENABLED=true -e JWT_SECRET=my_secure_jwt_secret ghcr.io/euro-office/documentserver:latest And finally, open a web browser and go to the following address: http://localhost:8080 If you are running this on a remote server, replace localhost with your server's IP address. You will see the Euro-Office test page, where you can create new text documents, spreadsheets, or presentations directly in the browser. Image via Euro-Office Nextcloud promises that proper standalone desktop versions and mobile apps will arrive in a future release.
  • Recent Achievements

    • Week One Done
      FBSPL earned a badge
      Week One Done
    • One Year In
      Jim Dugan earned a badge
      One Year In
    • One Month Later
      Tommi118 earned a badge
      One Month Later
    • One Month Later
      sjbousquet earned a badge
      One Month Later
    • Week One Done
      sjbousquet earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      486
    2. 2
      PsYcHoKiLLa
      197
    3. 3
      +Edouard
      155
    4. 4
      Steven P.
      83
    5. 5
      ATLien_0
      69
  • Tell a friend

    Love Neowin? Tell a friend!