Jump to content

  • Log In with Google      Sign In   
  • Create Account


Vodahmin

Member Since 03 Aug 2012
Offline Last Active Dec 15 2012 09:32 AM
-----

#4987335 Game Engine from scratch using C++ and python - Where do I start?

Posted by Vodahmin on 06 October 2012 - 01:00 AM

By the way: You should never, ever typedef a pointer. That's an unnecessary level of indirection, and it's something that has no place in your example, because you're not even using it anywhere.

Actually, typedef'ing pointers is common in game industry, smart pointers that is.


#4987060 Chat Faliszek from Valve gives advice on breaking into industry

Posted by Vodahmin on 05 October 2012 - 03:33 AM

The downside is that members can trip over each other cause problems for others more easily this way.
For example, one person likes to refactor code whenever he sees a chance, and by changing other people’s code (which he is more free to do under this structure) he has
caused more than a few bugs for other people to fight.

Scale all of this up and you have Valve, or so I imagine.

Lack of hierarchy != no rules. I think it should be obvious that if you want to refactor someone else's code, you should first discuss it with that person (or the team you're working with). Flat organizational structure requires more responsibility and thinking, thus doing "anything the fuck I want" may be quite destructive.


#4986449 Not sure if I can get into the game industry without a degree...

Posted by Vodahmin on 03 October 2012 - 10:51 AM

1. For the most part, game companies can be broken into two major categories 1.) Large development studios which are usually publishers (Activizzard, EA, Valve etc..) and 2) Smaller development studios which independently develop (indies).

Without a college degree, you are already pretty much cutting out your chances of getting a job with the first group. That is because they receive such a high volume of resumes daily that they have higher and stricter standards and policies, so HR will look for certain things (Certain buzzwords, education, etc...) BEFORE they pass it on to the departments that actually do the hiring. Therefore, unless you know someone with some kind of pull in the company to vouch for you, your pretty much out of luck.

With the second group, the indies, you have a much better chance of getting hired. However, it still wont be easy because they will be turned off by your age. It is VERY risky hiring someone straight out of high school for a key position (Which most indie teams require, they need a few people to do ALOT, not alot of people to do a little [ie few entry positions]) simply because they are unproven. It is much easier to show nice art in an art portfolio, but is is MUCH more difficult to show your extent of programming knowledge in any kind of portfolio.
Additionally, you must look at it from an employers perspective, the average developer stays at a company for ~2 years since they jump around alot to get diffrent experiences. If an employer has to spend 1-2 years training a guy whos fresh out of highschool to make them truly effective, usually they are ready to jump jobs at that time.

You missed the whole point. Have you watched the video I mentioned? Don't put Valve as an example because it's not how they work. Also EA/Activision don't make games - they would require a degree but from a marketing/business school.

Also, there are no such things as "indie" game studios. Being indie means that you sell something without a publisher - no actual company does that. It's usually individuals working for their own money in their spare time. Unless of course, you consider a group of 2-3 people to be a studio.

By the way, regarding EA/Activision - I think you just provided the two worst companies to work in. In my humble opinion, 80% of the games they publish is rubbish.


#4986379 Game Engine from scratch using C++ and python - Where do I start?

Posted by Vodahmin on 03 October 2012 - 07:44 AM

I'll try to give you a more technical answer. As I understand you'd like to mix Python with C++ and that is really great. As I see it, you'll probably wanna build the entire engine in C++ and use Python as a scripting language for AI and perhaps simple events handlers?

I'm not sure about how well you know programming but it'd be wise to get familiar with the Object Oriented Programming concept (if you don't know it yet). Learn about inheritance, interfaces and virtual functions. Basically most of the game engines are a huge set of interfaces and virtual functions - this way it's fairly easy to implement new things or to make changes to the existing objects, without the need to modify each of them. You should also get familiar with the proper use of pointers - you could probably get away with naked pointers for a very simple game, however all professional engines use smart pointers. This way you don't need to worry about memory leaks, which may at some point make your game a real mess.

After getting the basics done, you can eventually move towards proper memory management. How to cache game files efficiently in the RAM and load them before they're needed (if it's a simple game, then I guess you can load everything at once). After that, you can learn some basics about creating your own Process Manager and Events Manager for the engine - it'll be incredibly useful when you later add AI. Of course, you should also get familiar with DirectX or OpenGL (or SDL if you want to make 2D games only). Having this knowledge, you should be able to create a simple engine - keep in mind, that there's more such as Networking or Multithreading etc - however the things I mentioned above is the minimum if you want to make a nice and flexible framework for simple projects.

As for the literature, I'd recommend this book to learn C++ http://www.amazon.co...49271707&sr=8-3

This one for game engine development: http://www.amazon.co...49271663&sr=8-1 (by the way, this book has been recommended to me by one of the users at this forum - I'm currently reading it and it's great!)

You may also need this one for Python: http://www.amazon.co...49271811&sr=1-3

Good luck!


#4986304 Chat Faliszek from Valve gives advice on breaking into industry

Posted by Vodahmin on 03 October 2012 - 12:46 AM

That was a nice presentation.

For those interested on how Valve works, there was a nice article on gamasutra : http://www.gamasutra...hp#.UGsyXU0xp8E

Be sure to read the PDF Posted Image

Great! I've seen the previous handbook but it wasn't 2012 edition. Thanks a lot for that.


#4986287 Not sure if I can get into the game industry without a degree...

Posted by Vodahmin on 02 October 2012 - 11:22 PM

I believe that is the way it should be, and I don't doubt that the higher ups at companies would say that. However, applicants do not exist in a vacuum and it is a highly competitive job market. Large companies such as Valve probably get hundreds of applications a day from all sorts of people, and that is what HR is for. And i'm not sure about Valve, but it is VERY common for them to simply filter out applications without any degree or experience. I dont know of any programmer that would rather be review applications all day rather than...well...programming. So I would believe their is something wrong if the HR department is filled with programmers, they should be reviewing potential hires, not every application.

You seem to follow a very conservative crowd, that thinks degree = skills. This may be right if you're aspiring to be a new doctor or a lawyer. However that is usually not true in areas such as game development. Of course, as I mentioned in my previous reply, degree is a great addition to your resume and taking a Computer Science class may help you understand a lot - that being said, software development is one of the very few fields that you can enter, simply by learning on your own (just look at how many tutorials and programming books there are on Amazon).

That being said, to speak to OP, not only is your portfolio very confusing to use with it starting on a blank page, the projects that you put on their aren't overly impressive at first glance. Ultimately appearance is everything, and you could definitely use some work with that

Appearance is important but if it's related to the position you're applying for. If you wanna be a programmer, they will look at how flexible, intelligent and efficient is your code. The more professional it is, the more it speaks about your experience. Trust me, no one should be judging you for so called "programmer's art". Unless of course, you're applying for a 3D modeler position - but that's another story.

I guess the biggest thing that you need to remember is that your not in a vacuum, you are in a pool of hundreds of other applicants. You are NOT proving that you can do the job, you are proving that you can do the job better than anybody else. A formal education can supplement the rest of your "package" and prove that you are able to dedicate yourself to something for 4 years (Assuming 4 year degree). Just think if you are hiring, would you rather have someone with no degree and little to no formal experience, or someone With a degree and little experience. I certainly would take someone with a degree

Let's stop here and think for a second. It's true that you're in a pool of hundreds of candidates, no one has ever denied it in this conversation. However, because of that simple fact, you should make yourself somehow unique. I'm not quite sure what you expect from college but higher education focuses on giving you a theoretical knowledge. It teaches you universal coding practices and pure concepts. To make it more clear, most of the universities will teach you for example what is OOP and when to use class interfaces instead of inheritance (purely universal concept), however there won't be too much about how to make the most efficient game loop or how to efficiently cache from disk your high quality SFX for PS3, which has somehow limited RAM. In most gaming companies experience > formal education - mainly because game programming is something you have to teach yourself (for the most part).

Note however that I am still in High School as well, so all my comments are based of of MY understanding, not how it actually is. What you should be doing right now, is start working as a freelancer and do contract work. Of course this is assuming that you know what you are doing and are good at it. Im not sure exactly what area you are interested in, but if you are intrested in programming, you should have no problem finding work. (I have to actually turn most people away their are so many companies looking for short term engineers).

And I'm a second year student of an IT-oriented studyline (developing mobile applications, networking etc) at one of the biggest European universities and I still feel like I need much more stuff to learn, aside from what I get from my school. University is only a couple of hours a day in a classroom of many people when teaching isn't always the most efficient - it doesn't matter whether it's Harvard, Yale or some cheap community college - if you want to make yourself unique, you have to do extra work on your own. The "pool of candidates" you mentioned will be filled with tons of graduates with degrees like yours or even "fancier" but it really isn't enough to say whether you're ready for the work. That's why I said, degree is important but should be treated as an addition to your portfolio - unless you actually make something practical that you can show around and present to people, no one will know of your true skills - university gives you some important insights and teaches theoretical knowledge - your own private work, on the other hand, is how you apply this knowledge in practice and that's how you can make yourself outstanding.

Summarizing my opinion, if you can get a degree - do it, you can definitely benefit from that. However, it shouldn't be the main point on your resume - do extra work and create a few demos, so you can always prove your practical skills. This can really increase the chances of getting hired. I recommend you to watch the video I posted in another thread. It should give you some more insights on what companies, such as Valve look for.


#4985962 Not sure if I can get into the game industry without a degree...

Posted by Vodahmin on 02 October 2012 - 12:00 AM

Not sure what kind of "game company" you're looking for but if it has "guys in suits wearing ties" in HR department instead of real-time programmers, I think something is wrong. There is a video I posted in another thread about how you can get yourself a job at Valve. It seems that degree isn't THAT much valuable after all. The things that professional game studios are usually looking for is whether you can actually accomplish specific tasks in a given time.

According to Chet Feliszek from Valve, one of the most important thing is to actually do something from beginning to end (to ship it). The things they're more interested in than a fancy resume is your portfolio - if you can create a nice demo from scratch (that is creating your own game engine, graphics handler, cache handler etc) and then explain how it works, you'll already a step ahead from people who have fancy degrees but no real experience.

Of course not every company is like Valve - maybe some of them, for some crazy reason, would still require you to have a formal education (even though you already have a nice collection of games in your portfolio) - on the other hand, why working with them? That being said I think a college/university degree should be an addition to your profile, not the focus point.


#4985809 Chat Faliszek from Valve gives advice on breaking into industry

Posted by Vodahmin on 01 October 2012 - 11:55 AM

A very interesting and quite inspiring speech given by Chet Faliszek from Valve. (it starts at 02:49).



#4975077 Books on professional game development in C++ with OpenGL/DirectX

Posted by Vodahmin on 31 August 2012 - 02:11 AM

"The C++ Standard Library ~Nicolai M.Josuttis" is a very good book. It doesn't say anything about DirectX/OpenGL but it does say almost everything about Algorithms, Containers, Templates, Allocaters, Numerics, etc.

And for some "rules" and optimization of your code: "C++ Coding Standards ~Herb Sutter"

I'm learning DirectX at the moment and I have found some decent tutorials lately:
DirectX 10/11: http://www.rastertek.com/
DirectX: http://www.two-kings...als/dxgraphics/ ( haven't looked at this one yet, but it looks nice so I saved it as bookmark )
OpenGl: http://nehe.gamedev.net/
Win32 tips and tricks: http://www.catch22.n...n32-tips-tricks ( no DirectX but very useful )

Thanks a lot! Both books you mentioned have high ratings on Amazon. I'm thinking about buying The C++ Standard Library - it's great it also covers C++ 11 features. I haven't read the DirectX tutorials yet but by looking at the index I think they'll be quite useful for me.

I'm not sure this includes anything about OpenGL or DirectX, but http://www.gameenginebook.com/ I've heard is a good book about Game Development and it uses C++.

Nice. I checked the table of content of the book. It covers most of the things I'm particularly interested in. Definitely, a must-have for me.


#4965918 UML Application?

Posted by Vodahmin on 03 August 2012 - 12:53 PM

If you're looking for a UML tool for designing (rather than generating structure from the code), I'd recommend Microsoft Visio - I used it a couple of times for my university projects and it did the job well - clean, fast and easy.

As for a free, open source solution, I think Dia would do the trick as well.


PARTNERS