Jump to content

  • Log In with Google      Sign In   
  • Create Account


Making one game engine like any game engine, source engine, unreal enigne and different engines.....


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 SourceSkyBoxer   Members   -  Reputation: 101

Like
0Likes
Like

Posted 25 August 2013 - 04:42 AM

Hello folks, 

 

i am new here and say thanks for welcome talk. smile.png I am searching good game engine 100 % like Unreal Engine or Cryssis Engine...

I am using only Visual Studio 2008 and i am developing a custom game engine

 

For Map Editor or World Editor ( like Radiant GTK, Valve Hammer Editor or Unreal Editor )

I recommend with movements from Valve Hammer Editor ( Gold- and Source-Engine ) for custom map editor.

Questions:

  1. Load and save config file before map editor application loads current config file?
     
  2. How do i hollow with same new brush when i create new brush from map editor than 6 new brushes will show?
     
  3. How do i add same distance / incress max_edit or max_leafs from Half-Life's Limit? If i create my one awesome engine with large distance example -/+ 49152. -/+ means z, x and y with - and + looks like my picture:
     763751-PIC.jpg
     
  4. Is it possible for large limit of game engine like you want build same bigger enlarge map. If we are using high-level computer or laptop than it is allowed or forbidden?

For custom compiler with map convention: like 4 or 5 compilers for bsp, csg, light/rad and vis...

  1. How does compiler read from map file and convert / compile into bsp file or game-able file like Unreal-Engine, 3D Gamestudio3D or Half-Life Engine...
  2. What does it happen that my map is not completed like hole / leak in my map.but Unreal Engine won't show error message like leak or hole. In Engine like Half-Life Engine and Source-Engine shows same map "leak" or "hole" than application was actived with full-light map before error was solved in the map.
    Example for Half-Life Engine, Source-Engine:
    half-life_2:tutorials:leaks:pointfile2.j

    Unreal Engine doesn't show error message about leaks or holes...
    cal9.jpg

    That is great for warnning with hole/leak.
  3. How does compiler pack same textures and models into bsp file or game-able file? If i don't need same files for error-path like map couldn't found /textures/wall.dm with 2 or 3 jpg-files...  If iyou download leaked map than same folks get mad. I wouldn't like to hurt same folks..I would like to "compress" with important files into bsp file or game-able file like Half-Life Maps with special compiler hlcsg -nowadtexture ( same wads are compresssing with current textures into bsp file. )
    I would like to know how do i create argement like csg -noTextureDir -noModelDir -noAuroraDir etc.. for one game engine...

For Models Compiler?
If i play in-game with model-usable birdge than i wouldn't like to fall before model hasn't collision or physic box ( Unreal Engine, Source Engine and Cryssis Engine ) / hit box ( HL-Engine ). How do i know before i must to add in library ( dll file ) like function  by Quake Engine if i put same model in our map than i will enable model with spwamflags 2 = block solid or bsp-solid. ( Don't walk or fall thought with models ). But don't compress with same image . only targetname smile.png like Source-Engine. Because it is very better than compressed model with image...

 

For another compilers or tools=

If we need same utilities for one game engine like tga2dxt = DirectX Texture, *dxm file DirectX Material like Vmt for Source-Engine. 

 

For Main Application like Launcher or Starter like Half-Life ( hl.exe ), Source-Engine ( hl2.exe ), Quake Engine ( quake.exe ) or Unreal Engine ( uds.exe ( Unreal Development Starter, i think ))

  1. Can application load and read library with directX classes? If i play into in-game and in-game progresses from library like movement, functions, effects, shadows and more? Is it fine?
  2. How does application load default mod like Half-Life has default mod valve?
    example "my initial game"
  3. Can it works for Network like Online Game? Example Counter-Strike or League of Legend.?

For Libraries of Game Application:
I would like to code one game engine with completed functions about shadows, reflections, bump-mappings, speculers and more....
Like Spirit of Half-Life has env_fog,env_model, env_sky and Trinity Renderer has shadow effects. HL-Bump ( very old mod since August 2004 ) has bump-mapping with light effects....
What do i need with DirectX11/10 for one game engine? smile.png
If you want develop together about game engine smile.png

 

Thanks for answers and suggestions smile.png

 

I hope because you understand me yet? PS: I am sorry for bad english.... :/

 

 

Best regards SourceSkyBoxer  



Sponsor:

#2 Karsten_   Members   -  Reputation: 1510

Like
0Likes
Like

Posted 25 August 2013 - 05:58 AM

To see how the Quake based engines compile a .map file to a .bsp, have a look at the src of q3bsp (or the simpler q2bsp) tool that comes with gtkradiant.

 

Be warned though, I don't think is an easy feat, even though the .map format looks straight forward, you will soon realize that you will need to generate triangles based on the intersections of the points given. You are probably better off exporting it to the much simpler .obj format before you load it into your engine (gtkradiant 1.5 provides a wavefront .obj exporter).

 

Irrlicht has good support for .bsp (and can load in .pak files) so you might be able to borrow some code from there.

 

There is also the XNA Q3 map loader project which I found was a pretty good starting point. http://q3libxna.codeplex.com

 

Hope this helps you with some of your questions.

 

EDIT: Ah I almost forgot. Someone had reimplemented the q3bsp compiler (http://map3bspc.sourceforge.net/). This is really useful because it is much simpler than q3bsp. Be warned though, it overly utilizes boost shared_ptr (not that boost or shared_ptr is bad, but it typedefs *everything* as a shared_ptr! )


Edited by Karsten_, 25 August 2013 - 06:02 AM.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#3 SourceSkyBoxer   Members   -  Reputation: 101

Like
0Likes
Like

Posted 25 August 2013 - 06:55 AM

Hello Karsten, 

 

But i am not using with Quake Engine. I am using custom game engine ( written by Visual Studio C++ 2008 ) because i would like to develop another engine. Thanks!

 

// EDIT: Quake.lib from Microsoft, heh?

 

What does it happen for the company Id Software? Is the company died? Now Quake Engine move to the company Microsoft? WOW!

I don't believe that. But i am not using C#. I would like to code only C++, header :)


Edited by SourceSkyBoxer, 25 August 2013 - 07:13 AM.


#4 Karsten_   Members   -  Reputation: 1510

Like
0Likes
Like

Posted 25 August 2013 - 10:44 AM

Urm, I dont believe Microsoft has had much involvement with id Softwares games (other than porting Doom in its entirety to Windows 95 ;)

 

The suggestions I made in my first post are to help you create your own engine with support for those technologies (i.e to see how they were originally implemented). I thought this is what you were asking for.

 

q3bsp and map3bspc are both in C++ so it might be more useful to you than the XNA example for loading in the .bsp files.

 

As for the other techniques you want in your engine... you had better get reading some decent DirectX books ;). (I am more of an OpenGL man myself, but I am sure others on this forums can point you towards some good DX books).


Edited by Karsten_, 25 August 2013 - 10:45 AM.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#5 SourceSkyBoxer   Members   -  Reputation: 101

Like
0Likes
Like

Posted 25 August 2013 - 02:13 PM

Urm, I dont believe Microsoft has had much involvement with id Softwares games (other than porting Doom in its entirety to Windows 95 ;)

 

The suggestions I made in my first post are to help you create your own engine with support for those technologies (i.e to see how they were originally implemented). I thought this is what you were asking for.

 

q3bsp and map3bspc are both in C++ so it might be more useful to you than the XNA example for loading in the .bsp files.

 

As for the other techniques you want in your engine... you had better get reading some decent DirectX books ;). (I am more of an OpenGL man myself, but I am sure others on this forums can point you towards some good DX books).

Okay thank you.. i will try again Thanks.. but how do i need with special like loading dll files smile.png like Half-Life from client.dll and <hl.dll??? Thanks smile.png


Edited by SourceSkyBoxer, 25 August 2013 - 02:25 PM.


#6 ill   Members   -  Reputation: 320

Like
2Likes
Like

Posted 25 August 2013 - 02:53 PM

You may not really want to do that BSP style of renderer nowadays anyway.  Most games now are Mesh soups.  You create a bunch of modular pieces and put them together like legos to make a level.  Then use Heightmaps for the terrain.

 

Even Unreal Engine games hardly use BSP now.  If you look at UDK at some of the UT maps that come with it, only a tiny portion of the map is done with BSP geometry.

 

Then if you look at some other maps that come with UDK they are completely made of meshes with 0 BSP geometry.  BSP was good for the hardware of the time, but it also made for static geometry that couldn't easily be modified at runtime.

 

This is also how modern engines like Cryengine, Frostbite, etc... work.  I think even the idTech 5 engine that they used for Rage works this way too although I can't say for sure.  I remember John Carmack was talking about how artists like to do the very thing I mentioned earlier, make modular set pieces and put them together like lego blocks.

 

You can then manage the mesh soup however you like, Bounding Volume heirarchy, Octree, Uniform Grid...

I personally use a Uniform Grid and ended up doing a Masters Thesis on it: http://digitalcommons.calpoly.edu/theses/975/



#7 cube2222   Members   -  Reputation: 180

Like
0Likes
Like

Posted 25 August 2013 - 04:04 PM

In UDK Meshes are used because one mesh is one draw call, and bsp is one draw call per polygon (so actually a few times less efficient).



#8 ill   Members   -  Reputation: 320

Like
0Likes
Like

Posted 25 August 2013 - 05:32 PM

Well you can batch polygons with the same material into one draw call, which I imagine they do.

 

There's simply no way to draw two objects with different materials anyway so it's not much of a loss.  (Well you could, but the shaders would start getting ridiculous)



#9 ByteTroll   Prime Members   -  Reputation: 1179

Like
0Likes
Like

Posted 25 August 2013 - 09:37 PM

 

Urm, I dont believe Microsoft has had much involvement with id Softwares games (other than porting Doom in its entirety to Windows 95 ;)

 Didn't John Carmack port Doom to 95? I swear I remember watching an interview were Carmack said he ported Doom for Microsoft.  I might (and probably am) mistaking though wub.png

 

Anyways, for the OP: I find a lot of these questions too ambiguous. Most of these questions are for very specific parts of designs (such as showing errors for leaks).  As you stated above, not every engine shows map leaks.  This is a specific design choice that you may or may not have to implement based on your design choices and what requirements your game demands.  Regardless, I will take a stab at some of the more generic questions.  First off, as mentioned above (and depending on your map size), I would recommend staying away from binary space partitioning.  If I remember my Unreal days correctly, Unreal uses BSP to flesh out map ideas, but that is about it.  Binary space partitioning usually tends to get a little bit effigy with large maps.

 

 

Load and save config file before map editor application loads current config file?

Loading and saving config files is pretty straight forward.  There are several third party libraries that offer config support (both INI and XML based).  I have had to implement config file systems several times and there really is not anything to them.  Config files are usually just ASCII files that have a section and a key.  To load them, open a file, read the section, read the key line, and then store the key and the value after the equal sign.  How you chose to use that stored information is dependent on your needs.  As for writing them, create a function that takes a section, key, and value.  Write the section, key and value to a new file.

 

 

How do i add same distance / incress max_edit or max_leafs from Half-Life's Limit? If i create my one awesome engine with large distance example -/+ 49152. -/+ means z, x and y with - and + looks like my picture:

Based on the picture you provided, you appear to be talking about the 'move widget.'  That is usually handled by the renderer and is drawn into a viewport.  Correct me if this is not what you were talking about.

 

 

Is it possible for large limit of game engine like you want build same bigger enlarge map. If we are using high-level computer or laptop than it is allowed or forbidden?

Enabling/limiting parts of a game/engine is different for each component at hand.  An example of this is an OpenGL based renderer.  OpenGL extensions are commonly used, however, not all extensions are supported by all video cards.  Usually a check function to created to determine if an extension is present.  If it is, return true and enable it, else skip over it.

 

Map compiling is one of those ambiguous questions, but the gist of it is this. The map compiler opens up the map and compiles it -- "simple as that".  It is never that simple, but again, depends on your games needs.  I have worked on projects where the editor stores the raw map file in a folder and then come compile time, the whole folder is taken in and compiled. How all of this is done and the resulting file (and how it is loaded/saved/run/etc is dependent on design).  In that project, our compiler simply created an obfuscated zip file.  The map file was packed in the root of the zip, with sub folders containing game data and map scripting.

 

   ObfuscatedZip
         - > MapFile

         - > MapBaseScriptFile
         - > MapTextures
                  --> rockwall.png
                  --> grasslayer01.png
         - > MapAudio
         - > Etc

Our map file format stored a reference to a base script file that our editor wrote to.  When the map loaded, it would read the script file and grab the resources

 

Hopefully this clears up some of your questions.


Edited by ByteTroll, 25 August 2013 - 09:48 PM.

▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬
I see the future in 1's and 0's
▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS