Archived

This topic is now archived and is closed to further replies.

Mephs

Best method to enter the games industry?

Recommended Posts

*Warning LONG POST!!* First off I wasnt sure which forum this is best off in, but I'm doing this all in DirectX so I figure this is the best forum to post in.... if not... mods feel free to move the post. I'm trying to work out what I'm best spending my time on. I may be going to university next year to do something in computing, but my plan has always been to code up some sample games/tech demos to get into the industry... showing that I can do the job through experience rather than through normal education. Either way, if I go to university I'd still like to have some work to show off so whether or not I go to university is irrelevant to my question. So anyways, the way I see it I have two possible options. I can aim to code a simple full game to show my versatility, OR I can code something more complex in a specific area to show how much I understand about a given topic. This has all come about because I've been trying to think up how I will design my game levels. Now I have several options here and have partially worked on all of them. I could use worldcraft *.map files, load the geometry, textures, entities etc and perform my own routines on them to arrange them into BSP trees etc, OR I could use Quake 3 BSP files which are already fully lightmapped and are already optimised for speed in rendering, OR I could code my own simple map editor that works on an object level (ie no vertex/texture manipulation... 3D modellers do that well enough). I have considered using 3DS Max and adapting it to my needs but I figure this may be more complex than writing my own editor and that perhaps it is easier to just use Max or another modeller just to produce meshes and not for the actual level editing. All of these methods have their pros and cons. If I load worldcraft .map files and perform my own processes upon them it will be more time consuming than using BSP files that have had all this already done, but it wouldn't demonstrate to an employer any understanding of the BSP/lightmapping process. By that I mean how the structures are created, not how they are utilised. If I create my own map editor it will take me even longer but would demonstrate an even lower level understanding of the whole process. Basically this has all come about after reading Jim Adams book on programming RPG's with DirectX. The one flaw with the way levels are designed in his book (IMO) is that all objects are positioned by manually typing in coordinates into a script editor, which is all fine and dandy in a small project where you can test everything reasonably quickly... but obviously it's not very suitable later on when the game is getting larger and you really want a visual level editor. Also bear in mind that with Worldcraft and Quake 3 maps, the maps are very small and I'd kind of prefer outdoor maps with some simple buildings as opposed to highly detailed indoor scenes. So ideally I think I'd want to use a heightmap, combined with manually placed models for the architecture and other game objects. So which project do you think I should see through to completion? Am I best working on making a full game as fast as possible (therfore probably choosing Q3 BSPs) and demonstrating my ability to make a playable and fun game, or am I better off taking longer, making my own map editor, performing the processes myself and hopefully still making a fun game so I can show my abilities to work with more complex code at a lower level in the creation process? I know a lot of people say code a tetris clone for your first game. My point is that I'm not 100% sure which area I'd most like to go into in game devlopment so I don't know if a tetris clone is best for me. I think I'm most intrigued by game content creation, not the design side but the creation of the tools. The level design tools area is something I cannot escape... I'm becoming intrigued by it and I think this may be the area of game programming I'd like to get into. I love RPG's partially because of all the customisation you can do. When I watched one of the Morrowind trailer videos of their level editor, I loved some of it's features and I think I'd like to be the one to be progamming things like that because it to me is the area of game programming that most closely knits the design and the programming process together and I am most certainly both a designer and a coder at heart. I am not a 3D modeller, I'm not a sound coder or a network coder or whatever... I can work in these areas for sure, but really they are just tools to see some of my design ideas realised while also allowing me to work with game coding which I love in general too. So to sum that all up if there were such a position in a computer game company I'd probably best fit in as a "content tools / general game programmer" working mainly on the content tools but also helping with their implementation in a game. From all of that I guess I'm asking a) What would be the best thing to work on not to produce as shareware but as help towards entry to the industry: A full but very simple game, A level editor, Something else b) Anyone know of any decent tutorials showing how to combine DirectX and MFC... I found the OpenGL MFC 3D tools article quite vague (I know a little MFC but I'm not really sure how to render a DirectX screen into an MFC app) c) Is it best to specialise and show expertise in a few areas or best to show simpler knowledge in all areas? d) How do you (as in how do YOU not as in how do I) define objects in your game levels as opposed to the level geometry? Using entities in Worldcraft or similar editor, Using a custom created editor, (in which case how did you go about making your custom editor.... MFC? directly in game? etc etc) Using 3DSMax with a plugin to define object properties, Something else You see I'm fine with creating the map geometry but most 3D games will have to distinguish the difference between a wall and a weapon (or other item) and 3D modellers do not account for this. Level editing tools like Worldcraft do account for this through the use of entities but they do not produce the style of level I would like, I would prefer outdoor levels but do not know of any commonly used level editors that make outdoor levels and distinguish between what is geometry/objects AND produce an output file that is easy to work with like WorldCraft. Completely for the sake of arguement, say I wanted to work for the team that made Dungeon Siege (one day maybe!!) the levels they used were wide open levels that would appear to use heightmapping, but had multiple levels. None of the existing editors I've spoken of would fulfil the needs to create that kind of level, so they must have either coded plugins for 3DMax (or another modeller) or made custom editors which is why I'd like to learn the best way of making these kinds of levels. I could learn how to work with smaller indoor maps, but if I have any influence as to the type of company I'd end up working for, it'd be one involved mainly in the creation of RPG's for which this type of map is generally unsuitable. I know I'm being very specific but I figure in the industry you will have to work in a more specific area than just general game coding, but a general knowledge will also help in implementation... so I aim for a bit of both. Anyway after this humongous post you can probably see why the whole topic is driving me nuts and I can't stick out a project through to completion because every time I get anywhere I'm thinking "this BSP is all good for some games...but I want outdoor levels" or things to that effect. Sure I could create and render a heightmap no worries.... I could probably code something up to do that in a couple of days, but what use is a heightmap without objects and enemies positioned on it? You absolutely must have some kind of editor in use because hard coding the data or manually typing in object coordinates and properties would just be daft unless it were a very small project. Comments please... I want to be sane again!! *Edit Basically I think I'm looking for some kind of complete walkthrough of creating 3D game tools as opposed to a brief incomplete guide. I have no problem finding articles about MFC but none of them relate directly to DirectX. Thats what I loved about Jims book, it was a great walkthrough to creating an RPG that didnt involve having to go off and learn something in an entirely unrelated manner. I can go off and read these MFC articles, but with no articles on how to combine D3D and MFC it is hard to put standard MFC programming and DirectX programming together. I don't know WHAT exactly I'm looking to learn about MFC in relation to a level editor. My best guess is to learn as much as possible but I'm worried that I may end up wasting time learning too much about MFC when it isnt the focus of what I'm doing. With some kind of a walkthrough, a tutorial or a book or something I'd always know I was on the right track and learning what I should be. *EDIT [edited by - mephs on July 15, 2002 6:31:04 AM]

Share this post


Link to post
Share on other sites
I highly suggest, you don''t blow off college. Get a degree. You''ll learn a lot (more so then you think you will at the moment), meet people, esp professors, who can help you toward your goals. You''ll realize that taking a few math and computer science course will help you out in game programming.

Share this post


Link to post
Share on other sites
Perhaps, but I did state thats not the point of this post... whether I go to uni or not it cant do anything but help to have some code to show which is what I''m asking for help with... please no more references to whether I''m going to uni or not, thats my choice and I am specifically asking that you leave that to me.

Share this post


Link to post
Share on other sites
The ability and interest in developing tools in the present industry is very usefull. While most of us have a love for gameplay, or dot3 bump-mapping, what most companies actually need is someone willing to take up the often unrewarding task of creating content enhancing tools.

If you''re seriously into making tools, I''d advice looking at some slight less crowded area than 3D modellers (between Maya and Max on the high-end, and Milkshape and Worldcraft on the low end, it''s quite saturated). You may want to try your hand at building a world editor for an RPG, or plug-ins for Max. Just remember, what is impressive is the ability to actually start and finish a project, not create 5-6 tech-demos..

And go to uni Not only is the education usefull, but you''ll have more time to play around with your game/tools development there as well.. =)

Allan

Fe doeyr, Frender Doeyr,Ein sjoelv doeyr paa sama vis.
Eg veit et som aldri doeyr, dom over kvar ein doed.
Cattle die, Friends die, You yourself will also die.
I know something that never dies, the memory of every dead.

Share this post


Link to post
Share on other sites
I decided to look at Jims apps and some MFC code again. I came across the article dealing with combining DirectX and MFC but it stumped me. I wanted to use my existing engine code (a class for graphics, one for input, a worldcraft map reader and a Q3 BSP renderer among others) but with the way MFC seems to work it looks like I have to alter my engine code to suit it. I tried including my core_global.h file in the mainframe.cpp but then it came up with linker errors saying unexpected end of file in my engine *.cpp files and something to do with precompiled headers. I''m wondering if it''s worth using MFC if I have to rewrite all that code to suit it.

Then I looked at Jim''s samples. I had thought that he used MFC but it appears he used win32 directly and did everything through resource dialogues and I''m wondering if thats the way to go with making my level editor. I''ve also considered perhaps making my editor kind of an in game editor, the advantage would be that I know the directX API well enough that I don''t have to learn anything much new... but I''d have to create the entire user interface through DirectX which could be greatly time consuming over using an MFC U.I. On top of that, most commercial level editors seem to be made using MFC (I would guess).

So I guess my problem is in porting what I already have over to MFC. I''ve been happily using the method in Jims book for adding new header files and source files to my project in a manner that they link together correctly, but I am uncertain how to go about putting them into an MFC app. I also tried adding:

#include "Core_Global.h"

to my MainFrame.cpp file and adding that file to my project but none of my other files. They became external dependancies and the program compiled without errors. But then I was stuck trying to work out how I was supposed to use the functions from those files... where do I create instances of these classes and where do I make the calls to cGraphics::Init() and so on. As I said I understand a little MFC and a lot of DirectX but as to how to put the two together without having to completely rip apart my code is a little beyond me at the moment :/

Share this post


Link to post
Share on other sites
The precomiled header thing is something like "unexpected end of file found while looking for precompiled header directive"? You need to turn off precompiled headers in the project settings (Alt+F7), or #include "stdafx.h" at the top of every .cpp file.

You shoudl init your DX engine in the OnInitDialog() function of your dialog - if you use dialogs. I have no idea about SDI and MDI priojects - but i think its got something to do with the views, look into the initialzation code for them.

HTH, Steve

Steve
DirectX Programmer
Soon to be the new Bill Gates

Share this post


Link to post
Share on other sites