Learning Through Experience

Started by
7 comments, last by twoski 13 years ago
Hey all! I've been lurking for a while and now I feel as though i've worked out a list of things I need to have clarified.

I have been programming for a while. The problem is, all the programs i write are merely console apps. I've never really used anything apart from the standard libraries for a language. I've written programs in Java, C and recently i decided to learn C++ (it's basically like a more friendly version of C, from what i have seen thus far!). I've also done a lot of scripting in Lua. I understand the core concepts of programming languages: logic, data types, encapsulation, modularity, data structures (linked lists, heaps, stacks, etc.), header files, and things like that. I've created a variety of programs that ultimately don't do anything interesting. I'd say the most interesting thing i've written is a chess program that reads in a text file containing a chess grid and then outputs the list of possible moves that result in the white team winning.

I am also decent with photoshop and a self-taught modeler, and I consider myself quite proficient with Blender (in my opinion it has the easiest-to-learn interface). I've created and submitted models for Team Fortress 2:

Untitled-40.png
item_test0005-3.jpg

I've also done a lot of work with the Hammer world editor from the Source SDK, here's one of my semi-finished maps that i kind of abandoned:

rd_barracks0001-3.jpg

I also enjoy playing around with sound engineering, and I've produced a few sound mods for a few Valve games (mainly the Left4Dead series). Mostly tweaks made to sounds that seem low quality or "off". I can be a bit of a nitpicker when it comes to audio.

There are a lot of video game programming concepts that I've come to understand over time - controlling player visiblity, proper implementation of netcode (ie. using UDP over TCP), level of detail, environment cubemaps, and other things. I understand the concepts but i've never actually implemented them in any way. The problem i am faced with is that I want to create some sort of game - whether it be a sidescroller or something similar - but i don't know where to start. The game would probably be more of a learning adventure than something i want to sell for profit. I've come to the conclusion that I want to write my game in C++ using XNA, after doing a little investigating. But since all i've ever done is write simple console apps i don't know where to start at all. It feels like i'm making some sort of quantum leap from a simple program that parses a text file and does some computations to a full blown video game.

So i beseech you, programming gurus, where is a good place to start? Should i start my own Source Mod and muck around with C++ or should i begin a project that uses XNA? How have you made the leap from simple console programs to an actual game?

Any input, suggestions or comments are appreciated! I really do hope I can become a well rounded video game producer. At this point i feel like a jack-of-all-trades with no real expertise in any field.
Advertisement

I really do hope I can become a well rounded video game producer. At this point i feel like a jack-of-all-trades with no real expertise in any field.

So you're programming in order to work your way to a producer position?
http://www.sloperama.com/advice/lesson7.htm

-- Tom Sloper -- sloperama.com

I worded that poorly, sorry.

I just want to become a better programmer. I'm not aiming for any position in the future, I'm focusing on learning how to make a video game from scratch, more or less.

I've done some more research and it seems that XNA is more suitable to use with C# - would it be wiser to start off learning with XNA and C#, or should i go straight to C++ and DirectX? I don't plan to make anything that will be used on the Xbox... So the big question is do i want to go with a native or managed language. I'm tempted to lean more towards managed, since i'm still pretty fresh to C++ and memory management in general.
Good call - go for XNA.
XNA seems relatively easy to get into so far - C# is quite easy to pick up and learn too.

Is there a quick reference or something for all of the classes provided by XNA?

I'm also curious about the naming conventions used in C# - I know that a name prepended with "I" (ie. ISomething) means it is an interface. Is there anything else i should know about?
General Naming Conventions
Design Guidelines for Class Library Developers

XNA Framework Class Library

General Naming Conventions
Design Guidelines for Class Library Developers

XNA Framework Class Library


Ooh, thanks for that.

I've been mucking about with the XNA workshop tutorial files but i find myself floundering around without any real direction - I'd like to get some sort of game started. I eventually want to figure out how to make something that uses 3d models and such... But would it be smarter to learn how to make a sidescroller first? Can a sidescroller be considered a stepping stone or are they just as complex as something done in 3d?

I was planning on modeling my game after the source engine - using the same entity system and whatnot. There would be 3 entity types: point based entities which don't have any physics, interactive entities which can play animations, interact with the world, etc. and brush based entities which are used for triggers, moving platforms and all that. Buti don't even know where to start. What should my first development goal be?

But would it be smarter to learn how to make a sidescroller first? Can a sidescroller be considered a stepping stone or are they just as complex as something done in 3d?

I was planning on modeling my game after the source engine - using the same entity system and whatnot. There would be 3 entity types: point based entities which don't have any physics, interactive entities which can play animations, interact with the world, etc. and brush based entities which are used for triggers, moving platforms and all that. Buti don't even know where to start. What should my first development goal be?



Everything done in 2D is much simpler to realise than anything in 3D, IMHO, so a sidescroller would be a great stepping stone toward your goal. For example you could make a hangman, a snake, a pong, a tetris, a pac-man, a mario brother (the sidescroller) and an isometric game to achieve great 2D knowledge before jumping on 3D. The 3rd dimension adds very much complexity to games, so 2D is more suitable, rewarding for learning.
On the source engine entity system: sorry I dont understand that.
rolleyes.gif
That was the time, the Golden Age, when C-64 and Amiga ruled!

On the source engine entity system: sorry I dont understand that.



It's basically a method of categorizing entities. Any given entity in a game, whether it's sidescroller or otherwise, falls into one of those 3 categories i desccribed.

I've begun work on a sidescroller using XNA. The whole thing is still fresh to me. How should i be setting up the layout? I have the basic layout provided by XNA... Should i be making my own classes for entities and such in separate files?

This topic is closed to new replies.

Advertisement