Announcement

Collapse
No announcement yet.

Become a Quake Modder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #2
    This advertises the use of Worldcraft? Be aware that the map files Worldcraft produces are incompatible with standard Quake map files and that it also uses Half-Life wad format instead of Quake wad format.

    Why suggest so strongly the use of specific software? IMO that is a weakness. Not every software is for everyone.

    There is a lot more to it and there is a lot more software you can use to create maps, textures, wad files, pak files, models and code, so this tutorial seems to oversimplify and advertise specific software and a specific way to do things too much.

    In game development, the right way is the way that works for you. The right pipeline is the one that you produce the best results with. A fundamental skill of a game developer is the ability to adapt and learn new tools, and transfer your knowledge.

    So here is my four-sentence extension of this tutorial, backed by a couple years of game development, and it goes like:

    "Use what works for you. If something doesn't work, dump it."

    "Try and learn new tools whenever possible; aim at being versatile. Mappers should have a working knowledge of coding, drawing, and modeling as well."

    "Find out where the knowledgeable people are, and ask the heck out of them."

    "Don't be an island. Find others to work together with."
    Scout's Journey
    Rune of Earth Magic

    Comment


    • #3
      This advertises the use of Worldcraft? Be aware that the map files Worldcraft produces are incompatible with standard Quake map files and that it also uses Half-Life wad format instead of Quake wad format.
      It's perfectly compatible cause the package includes the quake adapter. I've been using this to make Quake maps for over a year and they always work. There is also a wad to hlwad converter in the worldcraft install. You only have to use the hlwad while building the map.

      Why suggest so strongly the use of specific software? IMO that is a weakness. Not every software is for everyone.
      I didn't suggest anything. I compiled all the stuff I use and released it in a way that noobies could easily implement. The idea isn't to turn someone into a definitive master in 3 paragraphs, it's to give someone a place to start that WILL and DOES work.

      In game development, the right way is the way that works for you. The right pipeline is the one that you produce the best results with. A fundamental skill of a game developer is the ability to adapt and learn new tools, and transfer your knowledge.
      I couldn't agree more. However, you can't be versatile if you don't even start. This is a good starting spot for new modders. Plus, I already had all the information/tutorials available for the way that I posted. You are welcome to make a thread like mine that compiles an alternate way.

      My thread is 100% perfect to get someone going quickly and introduce them to Quake modding. Stop being so critical and negative bro. There are always other ways to do things, but you always have to start with SOME way. Should I have posted 100 different alternatives so potential new modders would see it and immediately be lost? The idea is to give someone a path to start on not throw a multi-fork in the road with signs pointing in every direction.

      If someone uses Worldcraft and epically fails, that spark will already be in them and it will promote them to seek out (ex) QuArK. If they start coding but hate Notepad++, that desire will already be instilled and they are going to seek out a new text-editor...on and on and on.

      If you really want to "help", bring some more stuff to the table that builds on top of the groundwork I laid. Your post attempts to cancel mine out and potentially dissuade people from even starting. How is that helping the Quake community gain new modders?

      NOTE to new modders: whereas GB is correct about a lot of things, the way I posted to mod quake is not wrong. If it is wrong then I must have been dreaming for the last year+, cause everything I have ever made with those tools works fine. Don't be discouraged, download some stuff and check it out. I spent a lot of time trying to make sure that YOU wont have to spend a lot of time looking for answers. Also, since I am very familiar with the tools I posted, I am always available to help you out if you get stuck with something.

      Gypsy
      Last edited by MadGypsy; 03-01-2012, 10:02 PM.
      http://www.nextgenquake.com

      Comment


      • #4
        I just believe there is no drop-in readymade way to become a Quake modder, and while your attempt is honourable and might help people, the other part also needed to be said.

        I'll keep out of your thread then.
        Scout's Journey
        Rune of Earth Magic

        Comment


        • #5
          Why keep out of my thread? I'm not "kicking you out" (lol). You could probably add a lot of useful information and help me make this even better. BUT, you can do that without acting like this is useless. There may not be a "drop in the bucket ready-made" way to become a quake modder, but this way WILL allow people to do just about anything they want. All the tools are here to do anything except models and model textures. They aren't the ONLY tools, but they are legitimate ones.

          For real man, write up an alternative compilation. It took me hours to write all of this and compile everything in a way that gives people thorough information and modding tools, all in one place. It would be fantastic if you spent hours doing the same with an alternative method. Post it right here so people don't have to look all over the place to find the info. I don't use an alternative method cause, the method I posted works great for me. So, if an alternative method is going to be submitted, it will have to be submitted by someone that is familiar with an alternative method. But, I would expect that that alternative method is thorough. Tools that work from one end to the other, links to good tutorials, instructions that are formatted to where people don't have to follow a million steps to do one thing and packages that include lots of resources.

          QuakeOne has lots and lots of files, as well as lots and lots of scattered-all-over tutorials. But I think this is the first thread on here, where someone said "Here is what you need" and organized it all together into a "developer package". The only reason I stayed away from models and model textures is because that one subject is more involved than my entire post.

          There is no way for me to say download this one file and read this little tutorial and you can make/add an armature to/unwrap/uv map/texture and bake a model. Too involved for a "Here is what you need" type of thread.
          Last edited by MadGypsy; 03-01-2012, 10:28 PM.
          http://www.nextgenquake.com

          Comment


          • #6
            There is no wrong way to start modding Quake. Doing it is the important first step. Then you learn more ...
            Last edited by Baker; 03-01-2012, 10:39 PM.
            Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

            So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

            Comment


            • #7
              What is an FGD and how do I use it?

              What is an FGD and how do I use it?

              Whereas I can't tell you what FGD stands for. It could stand for Friendly Green Dildo for all I know. It doesn't matter what it means as long as you know what it does. Inside progs.dat is the code for all of quakes entities (like monsters, triggers, lights, etc). When you open Worldcraft and choose the entity brush, you will notice that you are presented with a list of entities to choose from. All of the entities in that list are defined in the FGD. If you erased an entity's definition it will no longer appear in the list. A little ahead of myself but, if you erase a BaseClass from the FGD, the properties for every entity in the list that uses that base class will be broken.

              When you select a specific entity you are then presented with a list of properties for that entity. Those properties can be found in the FGD as the definition for that particular entity.

              Let's consider something. Say you used the FGD for the Rogue Mission Pack but you were using the progs.dat from regular Quake. You will have definitions like weapon_lava_nailgun, item_shield etc but none of these codes are in the reg. Quake progs.dat so it wont work. All of those definitions have to have an identical function somewhere in the progs.dat. So, if you use the Rogue.fgd (as an example) you need to use the Rogue progs.dat - and so on for every mission pack respectively.

              Where do I put an FGD?

              You can put an FGD wherever you want. I put all my FGDs in the entity-defs folder that comes with Worldcraft. To use an FGD, click tools/options. You will be presented with the options panel. Click the Game Configurations tab. Where it says Game Data Files, select whatever is in the box and click remove, then click add and navigate to the FGD that you want to use.



              When can I use more than one FGD?

              If you have made a mod to a progs.dat that can be defined as an entity and wanted to use it in your map, you would have to make a definition for it in an FGD. You can either add your definitions to whatever FGD you are already using or you could make a separate FGD that only contains your definitions and use it in tandem with your main FGD. The main reason you only use one FGD at a time is you can only use one progs.dat at a time. So using the Hipnotic and Rogue FGD at the same time is useless, unless you are awesome and you have mixed all of rogue and hipnotic together and managed to compile it with no mistakes and errors. (good luck with that)

              How do I mod an FGD?

              Well unless you have made a mod in a progs.dat, there is nothing for you to mod. All the definitions are set up to include all of their possibilities, so adding a definition won't add any functionality it will just add another property in the list. However, even if you checked that new property, it wont actually work. I'm trying to keep this for beginners so I am not going to go into how to mod an FGD in this post. There are a lot of possibilities and this subject should be an entire tutorial.

              Final

              If all you are doing is making maps, you don't have to worry about anything aside from making sure you are using the right FGD for the progs.dat you are making a map for. In Worldcraft and resources all the FGDs are named after the mission pack they go to. So, there really is no way to mess up.

              If you are modding code and you need to make an FGD for your mods, you will either have to search the internet for some instructions (I found none), wait til I write the tutorial or simply open an FGD in a text editor and take a good look at how it is put together. If you are far enough along that you are making your own mods, you should be able to figure out the FGD code pretty damn easy (I did and I'm not even a notable QC modder)

              Gypsy
              Last edited by MadGypsy; 06-25-2012, 11:51 PM.
              http://www.nextgenquake.com

              Comment


              • #8
                How do I set up Worldcraft?

                How do I set-up Worldcraft

                There are quite a few things you can do to set up Worldcraft, but I am going to get you going with the bare minimum. There is nothing wrong with the bare minimum, but there are some things that you can add that make it a little better.

                For a bare minimum set-up you only need to worry about 2 tabs. Click tools/options and select the Game Configurations tab.

                1) make sure you are using the correct FGD
                2) skip all the drop down boxes (there isn't anything that (you can/is worth a) change here). It says half-life map type but it's a lie. If you installed the Quake adapter it will save Quake version maps (as a matter of fact you CANT save a halflife map now). However it will use halflife wad format (.hlwad). This is also no big deal. The wads have already been converted for you when you installed the Quake adapter and it is only used like that in Worldcraft. Once you use the compiled map, the textures are stored in the bsp in the proper format
                3) make sure that Game Executable, Mod & Game directories all point to the root Quake folder that you are using to make maps for.
                4) RMF Directory can point anywhere you want but keep in mind that this is where your Worldcraft projects will be saved.

                Now we will focus on the next tab Build Programs

                1) for Game Executable point it at the .exe for whatever you use to run quake
                2) for the last field point it at your ID1/Maps folder. This is where your compiled maps will be saved. Make sure you have an ID1/Maps FOLDER. A Maps folder inside a .PAK or .pk3 doesn't count. Actually if you have Maps folder inside a pak or pk3 file - delete it. This way you don't have to worry about your Quake engine trying to guess what folder to use. This is your development environment, you don't need any Quake maps if you are making your own. I strip my dev environment to barebones quake. No mods or fancy shit. You don't have to do this. I do it because I want things to load fast. Sometimes you might need to test something over and over after a few tweaks. Waiting for high res textures to load is just a waste of time.

                About all the compile tools (blue block in the below image): This is where you can upgrade your map compiling. Lots of newer vis, bsp, etc compilers have been made. If you want to mess around in this area you can click here and find some alternatives. I can't tell you what is best cause - a) I don't know what is best and B) It depends on what you want to do/how many processors you have. I downloaded every compiler I could find and kept switching them out and compiling the same map over and over to see how they differ. The ones I chose seemed to give me the most output info when I compiled but I honestly can't remember which ones I chose cause some of them have identical names. All I can tell you is to either experiment or just don't worry about it. However, the old vis is crap, I'd at least find a better vis.

                Last edited by MadGypsy; 06-25-2012, 11:53 PM.
                http://www.nextgenquake.com

                Comment


                • #9
                  Gypsy, like I told you in Pm once - you ought to make some videos and post on you tube.....probably would be interesting.

                  While everyones preferences are not exactly our bag per say, sometimes you can still benefit from the sharing.

                  Comment


                  • #10
                    Good post. What's with the compile warnings?

                    Comment


                    • #11
                      Good post. What's with the compile warnings?
                      There are always warnings when you compile QC (even original sources). As long as you don't have any errors you should be fine. Somebody like GoldenBoy could probably explain better as to why there are warnings.

                      you ought to make some videos and post on you tube
                      Uploading videos sucks up too much of my bandwidth. I wish they would get cable out here so I could have unlimited high-speed, instead of this stupid dongle.
                      Last edited by MadGypsy; 03-02-2012, 12:40 PM.
                      http://www.nextgenquake.com

                      Comment


                      • #12
                        Originally posted by MadGypsy View Post
                        There are always warnings when you compile QC (even original sources). As long as you don't have any errors you should be fine. Somebody like GoldenBoy could probably explain better as to why there are warnings.



                        Uploading videos sucks up too much of my bandwidth. I wish they would get cable out here so I could have unlimited high-speed, instead of this stupid dongle.
                        Can you explain the syntax for declaring an object and method calls?

                        Comment


                        • #13
                          Understanding Neo Texture Edit

                          Part 1

                          This isn't going to be a full blown tutorial. You can consider this an overview of a NeoTextureEdit workflow. However, by the time I am done you should know enough to start exploring the program and experimenting with your own texture graph.

                          Everything that i explain here will be based on the image below. Some things to remember along this overview is that:

                          a) right clicking the grid presents you with a list of all the different nodes you have to select from
                          b) Selecting one of the nodes in the list will add it to the grid
                          c) When I mash words together like PatternPerlinNoise it is referring to something you need to click in the list (of the same name)
                          d) When I write a name separated or as a single word with capitalized first letters like Perlin Noise or Brick I am referring to an actual node
                          e) For the most part I will be working from the top of the node chain down
                          f) Every time you select a node, the properties panel for that node appears on the right of the screen



                          1) first I added PatternBrick to the grid. I then selected the Brick node and adjusted its properties until the pattern looked the way that I wanted. I am not going to describe every property, mainly because I didn't even know what they did. I learned by clicking/sliding them. You should too.

                          2) I added PatternPerlinNoise to the grid. I don't believe I set any values for this, cause it looks like the default noise to me. This pattern when combined with the Brick node pattern, will give me the foundation wor the wavyness of my textures surface

                          3) I added FilterEmboss to the grid and then plugged Brick and Perlin Noise into it. I then selected Emboss and amplified its strength in the properties menu that appears on the right. By doing this you can already see the areas of the pattern that will have depth

                          4) I then added FilterColorize. This node is being used to dampen the color of the texture, but it has another function that I will get into in part 2 of this overview

                          5) I then added a PatternPerlinNoise and made major adjustments to the Perlin Noise node properties. I wanted a very "static" texture so I could amplify the roughness of my texture.

                          6) I then added FilterMask and plugged Colorize, Perlin Noise and Emboss into it. I can't really explain why I used Mask. It had 3 inputs and I had 3 things that I wanted to smoosh together. Other than that, I don't have any idea what it does.

                          7) My final step was to add FilterNormalMap and plug Mask into it.

                          Part 2

                          If you notice some of my nodes have a little letter tag on them. These represent what channel you are using on the cube. There are 4 channels.

                          D - Displacemnt (I use this as my actual texture)
                          S - Specular (this determines how shiny your texture will be. In my colorize node I made it really dark so my "cinder block" texture will be very dull)
                          N - Normal map
                          H - Height Map (this determines the depth of your texture based on white being raised up and black being pushed down. All the inbetween greys are relative to how close to white or black they are)

                          In order to assign a node to one of the four channels simply right click it and select OpenGL and then select the channel you desire from the drop down list. In order to save any of the individual node textures, right click it and select Export Image.

                          Well that's pretty much it. I hope this Overview has clarified a basic workflow for NTE and sets you on the path of making your own textures. As you can see, you don't even have to know what everything is/does (I don't). You just have to mess around until you get the results that you want. The possibilities with this program are pretty extensive. The image above is only my 3rd attempt at a texture and there is no documentation for this program. I got those results by just clicking and sliding things, being curious.

                          Enjoy,
                          Gypsy
                          Last edited by MadGypsy; 03-03-2012, 10:42 PM.
                          http://www.nextgenquake.com

                          Comment


                          • #14
                            Can you explain the syntax for declaring an object and method calls?
                            Yes, but I can't explain it better than the QC manual that I included with the dev kit download. Here is a brief overview though

                            First off, there are no objects (that I know of) in Quake. When I say this I am referring to the fact that there is no:

                            Code:
                            var player:Object = new Object();
                            player =   
                            {
                                health:100,
                                startPosX:0,
                                startPosY:0,
                                startPosZ:0
                            }
                            So, in my opinion this means that Quake has no Objects. What quake does have is Entity. From what I can gather typing something as an Entity does nothing but allow it to accept field types and arbitrarily attach it to any given thing in quake that is visible (more on field types below). This is evidenced by the fact that "self", "other" etc can refer to just about anything at any given time. The trick is finding the scope, so you know what it is "currently" referring to. I guess an Entity is an Object in a dot syntax sort of way, but there is no way to declare an Entity and then form a list of it's properties using a structured Object notation.

                            Methods

                            methods are written like this

                            Code:
                            return_type (arguments) function_name =
                            {
                                //code
                                return var_of_return_type;
                            };
                            more definitive example:
                            Code:
                            float (float b) func_retarded =
                            {
                                local float a, c;
                                a = 10;
                                c = a+b;
                                return c;
                            };
                            
                            void () func_stupid =
                            {
                                local float b;
                                b = func_retarded(9);
                            };
                            notice that I defined func_retarded BEFORE I used it in func_stupid. and I typed var b in the func_retarded interface. However you don't have to fully define one method before using it in another BUT YOU DO have to at least type and declare it.

                            Code:
                            float (float b) func_retarded;
                            
                            void () func_stupid =
                            {
                                local float b;
                                b = func_retarded(9);
                            };
                            
                            float (float b) func_retarded =
                            {
                                local float a, c;
                                a = 10;
                                c = a+b;
                                return c;
                            };
                            hmmm, I hope I did that last example right. Don't consider it biblical. I know you can simply declare it first, but something tells me I screwed up somewhere though. Maybe it just looks strange to me because when you use that way it is generally because the actual full method is in another class that gets declared further down in progs.src

                            The types are as follows

                            float_____.(ex 16)
                            void______(nothing)
                            entity____.(ex self)
                            vector____(ex '32 32 0') -single quotes
                            string____.(ex "I am a string") - double quotes

                            if you want to declare a type as a child of an entity (field types) you have to declare it with the dot operator. So, if you see (ex .float power) you automatically know that that "power" belongs to an entity (ex) player.power (is) entity.float

                            ex:
                            Code:
                            .float awesomeness;  //notice the type is declared with a dot
                            
                            void () some_func =
                            {
                                if(self.awesomeness)
                                {
                                   bprint ("Self has awesomeness");
                                }
                            };
                            Of course, this assumes that somewhere before "some_func" you actually set self.awesomeness to something, or at least made it possible to be set, according to some condition or another.

                            Aside
                            The compiler that I included extends the coding possibilities of QC. For loops, switch/case statements, arrays and more. You might want to take a look at this page to see how your options have been extended with the compiler I provided you.

                            Hope this helps and I didn't forget something. I'm not an official QC modder by any means, but it wont stop me from trying to help people. If I make a mistake, some real modders will call me a big idiot and hopefully correct me, I'll edit my mistake and we will all learn something.

                            Gypsy
                            Last edited by MadGypsy; 03-03-2012, 12:34 AM.
                            http://www.nextgenquake.com

                            Comment


                            • #15
                              Creating Custom Wads for use in Worldcraft

                              I have been messing around with making maps that use 100% custom textures. I came up with a decent workflow that gets the job done and I figured I would post it here.

                              Custom Wadding

                              First off you need to make some textures. Scroll up 2 posts if you need some help on how to do this. However, that program is still being developed so it only saves in .png format. I wanted all my textures/normals/gloss maps to be in .tga format. I also wanted to be able to convert tons of textures in just a few clicks. I did a little search and found this batch conversion tool. It is legitimate freeware.

                              1) make a bunch of textures, maybe spend a whole day making textures. Make sure you add _gloss to your specular maps and _norm to your normal maps (ex brick.png , brick_gloss.png, brick_norm.png).

                              2) Once you have a nice little collection of textures, start up your image conversion tool and open the settings dialog. Set output format to targa, do whatever you want with the resize options. Set your output directory to ...\ID1\Textures

                              3) Now what you want to do is go into your Worldcraft install folder and open TexMex. Click file/new and then file/import. navigate to your ID1/textures folder and use control+left click to select all the main texture files (ie not _gloss, _norm). Then save it all in WAD2 format, in your Worldcraft\textures directory and close TexMex.

                              4) Navigate to your Worldcraft\textures directory and double-click all-wads-to-hlwad.exe. This will convert your wad to the .hlwad format that worldcraft uses. If you have already converted a .wad of the same name, you have to delete the .hlwad before you convert. Otherwise the conversion tool will assume it already did the conversion.

                              5) open Worldcraft and navigate to tools/options/textures [tab] and click Add WAD. Navigate to your custom .hlwad and press apply. Now your custom textures will be available in the texture browser.

                              Notes

                              I seem to get better results when I output my textures from NeoTextureEdit at 256x256 and in the image conversion tool settings, under resize options, I select exact size and set the width/height to 128x128. This seems to make the texture a little sharper.

                              You also have to consider that any map you make with these textures will have to be released with your custom textures (_norm, _gloss, _bump). I also believe that this naming convention only works with DP, but don't quote me on that.


                              Gypsy
                              Last edited by MadGypsy; 03-03-2012, 09:48 PM.
                              http://www.nextgenquake.com

                              Comment

                              Working...
                              X