• Advertisement

Archived

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

Actually creating a game

This topic is 5801 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

At first I thought making a game would be semi-difficult, but as I learn more, it''s becoming increasingly complex, and I''m starting to have trouble bringing it all together. I''ll make this short.. does anyone have any suggestions for making a game? So far this is what I have learned on teh subject: 1) Plan the whole project out. 2) Break the project down into DLLs, it''ll allow the project to be broken down easily (problem is that it leaves the game easier to hack) 3) Put the code which interfaces with DirectX/OpenGL into a seperate node (DLL/LIB/etc) This is something I''m starting to find difficult to comprehend, but a necessity. I find it particularly difficult to imagine how I would add functionality of newer versions, or completely different APIs, and how I could add it to my project. 4) Read lots of docs.

Share this post


Link to post
Share on other sites
Advertisement
Have u even made even one game yet? because if you havent then you dont need to worry about half of that! you will only need to learn one API at the moment eg either DX or OpenGL, once you become quite good in one you can move on and have a go at the other so you dont really need the two in one project... unless you are using openGL for graphics and DX for input but in that case they have nothing to do with each other so they do not really need to go together... and there is no point in spliting your code up into seperate .dll files unless you are making some massive 3D engine...

CEO Plunder Studios

Share this post


Link to post
Share on other sites
No, I have not made a game yet, but I feel very comfortable working with DirectX. Creating a game is really just physics, and ingenuity once you get right down to it.. besides, the OpenGL DLL does not haveto be made by me.
Also, yes, I am working on a massive 3D engine which could easily stretch in development for 2-3 years. This is a necessity.

Share this post


Link to post
Share on other sites
My suggestion is this: Crawl before you walk, walk before you run.

In other words, start simple and work up from there. Make a simple arcade game that would make the Atari or NES look good. You won''t write a good game that way, but you''ll learn a great deal about directX initialization(if you''re using directX), game design, AI, creating artwork and sound effects, debugging, etc, etc... The things you would learn from that will be priceless further down the road.

But, that''s just my opinion, and I could be wrong. I''m taking this route myself, and so far, I feel like I''m progressing at a decent rate.

Share this post


Link to post
Share on other sites
I''ve already worked with DirectX if that''s what you''re asking. But it''s not a game - It''s an editor for my game. I''ve already spent 3 months working on learning animations, vertex/pixel shaders, key concepts such as texturing, and manually creating meshes (ie Bezier curved terrain) Like I said, I''m fairly comfortable with DirectX, and will work with it for about 3 more weeks before I begin implementing this.. But I would like to begin planning so that all my code does not go to waste.

I understand your concern though. I have seen many people trying to make a game, but are asking c++ related questions, LOL

Share this post


Link to post
Share on other sites
quote:

3) Put the code which interfaces with DirectX/OpenGL into a seperate node (DLL/LIB/etc) This is something I''m starting to find difficult to comprehend, but a necessity. I find it particularly difficult to imagine how I would add functionality of newer versions, or completely different APIs, and how I could add it to my project.



Consider COM.

Neil

WHATCHA GONNA DO WHEN THE LARGEST ARMS IN THE WORLD RUN WILD ON YOU?!?!

Share this post


Link to post
Share on other sites
Learning is one thing (very important indeed). Actually implementing the idea WITHIN another framework is another. The important word being ''Within''. Sure, you can read a doc. or a paper about a technique and make a demo of it. Blending all the elements that make up a standard app (not even talking about games) is another thing. You say you have made a tool, that is good.

The NES suggestion is good. Forget graphics for now, and concentrate on game architecture. This type of architecture is the same for all games (input, output, processing, etc). The easiest way to learn this is with an easy game. For me it was a text adventure on my TRS-80. I was able to ease into graphics and 3D as the years went on. I feel sorry for people today that are forced to understand everything at one time now. It is almost like cramming for an exam the night before. Sure you know the stuff, but that is about it. Understanding takes time and practice.

You say 3 months? Wow, 3 whole months? Overconfidence is another thing we all fall prey to at one time or another. For me, and MANY others, it is the Freshman year of college. Most of the over bloated responses on these, and other boards, come from Freshman and Sophomore CS majors.

As far as DLLs go, one good thing is to make a resource DLL. For example supporting many languages. Every line of text in your game has an ID which is indexed into a dynamically linked DLL depending on the language that is chosen. Resources like this can be easily made. Make a tool that allows input of several lines per ID, and automatically generates the source code.

Share this post


Link to post
Share on other sites
hello2k,

From previous posts I''ve seen you made, you seem to have a good understanding behind how to implement important concepts in a game(ie: characater animation). The difference between the concepts and the game is the complexity. I wouldn''t doubt you''d be able to implement a bunch of demos showing the advanced topics in DirectX but putting them all together is a challenge because as you add features into your game, the size of your files are larger, harder to read, and overall more difficult to follow. The following tips are all for a rather large game. For a small game, you shouldn''t need as much design.

From experiences I''ve had, the way I create a game is by starting a new file for handling a BASIC d3d device and object. It doesn''t do anything itself but gives access to the device and various other parameters. From there you just keep creating classes in different files for d3d8 and game related functions. Remember to keep them in seperate files. When you''ve finished this task, you''ll have a lot of files in your project. I group them together and put them all in a folder called something like "this_games_engine" where this_games would be replaced with your game title. Every game you make should have it''s custom engine. I''ve had luck with that and so have other top companies(ie: ID Software with thier engines). Also, remember to keep testing your features to make sure no bugs are in them. It gets ugly trying to find bugs in a huge project.

After you have a custom game engine completed, start making more classes under a new folder called somthing like "this_games_source". It would include all the functionality of the actual game. For example, if you''ve ever looked at the Tomorrow Never Dies source I believe, you''ll notice they have a specific class for the death scene. That is what I mean. Make focuses game classes for your game. Set it up in a hiearchy. Make small classes for your gun as an example. Then on top of that have a character class with the model and gun classes inside of it. Then on top of that have the intro class for the introduction scene. Maybe you''ll have a class to encapsulate all of it together from menu to intro to game to credits. That''s your decision but just keep in mind to keep it very organised because your code can get large very quickly.

And that''s the advice I can give you. You''ll usually end up with two folders; one for the engine and one for the game source. Inside of them you should have two seperate folders for the header and source files. You mentioned that you''re hoping to implement both opengl and directx using .dlls. This is fine but it would be more suitable for a multipurpose engine. If that is what you''re going for, you may not want to create any games at all until that''s all done. I''d recommend implmenting that after you''ve made a few games with specific engines but it''s your choice after all.

My Site

Share this post


Link to post
Share on other sites
Write simple games first. Don't even think about all those DLL nonsense. They will just make the game even more complicated. Write everything in ONE program ONE exe, it's much easier. You don't have to link to those DLL, etc. In fact, that's not how DLL is used. DLL is supposed to be used if you have one common function/interface that will be used by two or more programs, unless you really know how to encapsulate DirectX/OpenGL really nice and good (that it becomes project-independent). But, it requires a very good organization/programming skill. But you know the point of making games is: how to make the game fun, not thinking how the code should be written (well, that's part of it, but fun is priority).

Life is fair.
The hardest part of a project is to finish it as planned.
-Albert Tedja-

[edited by - nicho_tedja on June 2, 2002 11:55:35 AM]

Share this post


Link to post
Share on other sites
Just to get a few things straight:

1) I said I had 3 months experience in games.. not programming. I currently have about 4.5 years of experience backing me in programming (starting from grade 6.. as a child it realy sinks in) This not only includes making fairly large projects (around 5-7k lines, not too big, but big enough to grasp the concept), working with MFC, C++, DirectX, and ASM. I have seen at least two of my projects get totally out of hand because of lack of organization.. and I''m not making the same mistake with this project.
2) Right now I already have an object oriented project, and if you''d take a look at a post I just made at http://gamedev.net/community/forums/topic.asp?topic_id=97616 you''ll realise it is so far workin exteremly well.
3) For the last time, I already am making a smaller project; my editor. I know how to organize projects.. but I have never worked on a team, and the idea that 3 people are going to be working on this project blows my mind. Right now I am just working on flexability, making classes that can be reused, and moved around easily.
4) What kind of experience have you guys had? I have seen many people with barely any programming experience trying to make a MMORPG, and it makes me want to burst out laughing. They want to create an efficient engine, but are still asking how they could figure out if the output from DirectInput is alphanumeric. I have even seen these people trying to help others out!

I consider myself to be a very fast learner. I understand most of the concept behind D3D after only 2.5 - 3.0 months. I started off being confused by the idea of normals, and am now discussing issues such as KeyFraming, Vertex/Pixel shaders, and dynamic LOD. I still wont be working on my actual game engine for AT LEAST another month, but I want to research the idea extensively so that I can do it right the first time.

Also, one more question: Have you ever had to convert one of your projects to a higher level of DirectX? If so, then what exactly did you have to do?

Share this post


Link to post
Share on other sites

  • Advertisement