Announcement

Collapse
No announcement yet.

Trying to compile quake

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

  • #16
    @ - "And the fact you are trying to compile from the command line, suggests you have never coded in a real language before. There's nothing wrong with compiling from a command line, but that is what a user does --- not what a developer would do."

    It's really pretty dependant on language and platform. I could give numerous examples either way. Actually, one example might be the most powerful one. In HaXe, you can use either method and there are reasons why you may choose one or the other but, regardless of chosen HaXe port and regardless of what you use to start the compilation, haxe uses the command line for transpiling and compiling. Clicking "build" in my IDE is little more than a command line trigger, not unlike the build menu in radiant.

    HaXe ports to all C's and according to what I said above it compiles via command line... quite successfully. Considering HaXe will literally DL, install and configure msvc2010 for you, I assume command line compiling is little more than a way to compile without a whole nother IDE booting up every time you click build.

    -----

    On a side note, I have been very quiet about HaXe and my projects over the last couple months. I have very complex things in the works and eventually I will share them. Away3D got a complete overhaul and now it not only has a more platform considered 3D suite but it also has a vulkan renderer. I don't have any limitations. Before, I was stuck with the most low-ball opengl that would work on everything. This is no longer the case. All possibilities have been "unlocked". My completed engine will easily be as powerful as FTE from a rendering perspective and it is entirely up to me to make it as powerful in other ways. In other words, there is nothing stopping me beyond my own knowledge. The only thing I foresee a great lacking in at this point is my completely ZERO understanding/knowledge of networks. I can change that. I simply have a fuck load of reading to do eventually.
    Last edited by MadGypsy; 05-19-2017, 10:54 AM.
    http://www.nextgenquake.com

    Comment


    • #17
      darkplaces compiled! I expected much more problem that I got! Thanks to the guy who recomended msys2 to me, I was preparing to rewrite makefiles by hand.

      Next step will be trying to understand something in it, maybe I'll create a new thread for that.

      @MadGypsy
      Anything I can help with? Just say if you need something, don't expect too much though, I'm far from a pro.

      I don't really care about network that much, I'm more into single player games. Maybe it will become important, but much later, for me. The simplier - the better. I'm looking at game engine sources just to find examples of good programming, to not invent my own naming conventions and the like, and to find a good way to organize everything.

      I heard about HaXe before, when I was searching for a way to make swf files. Never really got into it though. So it can compile c code? It's probably not the prettiest one, is it?

      Comment


      • #18
        MadGypsy could explain to you how collision is difficult. He knows first hand

        He could also explain to you why he uses an IDE and why.

        /I leave you two alone.
        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


        • #19
          Well, I have an idea how collision of circle and line can be calculated, so collision of capsule and planes shouldn't be much more complicated.

          I'll try to get ide running, but it will be problematic. A good call graph, or something else representing control flow would be of more use.

          Comment


          • #20
            One thing you may have to give time to understand is Quake's brush/surface system. I avoid working on it, so I have only cursory knowledge which is incomplete.

            You may eventually learn how to detect if a noninfinite plane is intersecting another, but the planes are stored in a tree format (for the sake of optimizing) from the map's .bsp file. Here's a writeup about it: Quake Specs v3.4 I see a section on clip nodes which describes collision.

            I think player/monster collision is done in world.c starting with a function called "SV_Move".

            Comment


            • #21
              @baker

              If you really think I believe you program in notepad (can't even type a tab) then you are on crack. You use an IDE just like every other professional programmer.

              @vibok

              I always want help but, nobody around here programs in HaXe. Someone such as yourself may have interest but, you would have to overcome a sizable learning curve before you were any real help.

              @physics

              I get what bakers trying to say but, he is claiming that I know physics is hard based on a time period where I hadn't even attempted it yet. That time is over and physics wasn't all that hard. It's mostly a bunch of math formulas that you can find on like a billion sites. On top of that my skills are high enough to port it verbatim out of any engine to any of about 4 languages.

              *Verbatim - I mean this in a comparable/replacement sense.
              Last edited by MadGypsy; 05-20-2017, 08:39 AM.
              http://www.nextgenquake.com

              Comment


              • #22
                @not the prettiest one

                Well, it definitely doesn't look like a human wrote it. It's very "structured". It's better than it was though. Hxcpp package has been upgraded to death. A lot of optimizations have been made.
                http://www.nextgenquake.com

                Comment


                • #23
                  Compiling darkplaces on windows with msys2 and mingw.

                  I'd like to leave a few instructions about compiling darkplaces, before I forgot it. Maybe you'll want to compile it too? Maybe it'll be fun to explore, who knows, you probably wouldn't need much of programming knowledge.

                  Everything here isn't very precise, all feedback is welcome.

                  Darkplaces' source code looks simpliest out of all quake source ports, this is why I'm started from it (i tried only 3 currently:
                  * darkplaces which google likes,
                  * TFE which modders like (it includes client side quakec),
                  * and quakespasm which mappers like (it removed some limitations for maps and textures, which allowed to make bigger and better levels))
                  Having no folder structure equals simple to me for some reason.

                  So, go here https://icculus.org/twilight/darkplaces/download.html , and either download one of autobuilds (it will include source code), or download source from svn.

                  It includes project files for visual studio 2010 up to 2017, project file for codeblocks, and makefiles for windows, linux and bsd. I'm trying to delete all of it, except makefile for windows, maybe I'll upload version without all those later. If visual studio works for you, you may stop reading now, because I'll be using mingw and msys2.

                  Also I'll compile windows (winapi) version only, even though there is sdl version included. I want to learn raw winapi, and this seems like a good opportunity. If you want to compile sdl version, you'll just need to install a few extra packages with pacman and do "make sdl-release" instead of "make cl-release".

                  To install msys2 and mingw, go here MSYS2 homepage , download either 32 bit or 64 bit installer (it doesn't matter, you can install 32 bit compiler even with 64 bit msys2), and follow installation instructions.

                  After that, you'll need to install 32 bit mingw. Quake is a pretty old program, you'll have less problems if you'll compile the 32-bit version. I tried to do 64-bit version, there was some error as a result. So, to install 32-bit mingw, in start menu, open My Programs -> MSYS2 -> MSYS2 MinGW 32-bit, and type

                  pacman -S mingw-w64-i686-toolchain
                  pacman -S coreutils
                  pacman -S mingw-w64-i686-libjpeg-turbo

                  Look also at those pages if you'll need to install something else, hopefully you wouldn't:
                  https://github.com/msys2/msys2/wiki/Using-packages
                  https://github.com/msys2/msys2/wiki/Packages
                  https://www.archlinux.org/pacman/pacman.8.html
                  https://www.lifewire.com/using-the-p...anager-4018823

                  Before compiling darkplaces, you'll need to compile Open Dynamics Engine. You can read about it here Open Dynamics Engine - home , and you can get source code here https://bitbucket.org/odedevs/ode/ . Link to source code is wrong on official site, they probably can't update it for some reason. To actually download it, I used TortoiseHG. I hope you'll figure out how to use it.

                  To compile it, in ODE source directory, do:
                  pacman -S automake
                  ./bootstrap
                  ./configure --disable-demos
                  make
                  make install

                  Try reading instructions on official site if you're stuck.

                  Oh, and by the way. In msys2, to change current directory to something like C:\Users\Admin\darkplaces, you need to type "cd /c/Users/Admin/darkplaces". Yeah, it's weird like that, very linux-like. You can also print current working directory by typing "pwd".

                  Now you're ready to compile darkplaces. Just type "make cl-release" in the darkplaces directory, and it should work. You can also type "make help" or "make" to see what you can build, most of it isn't very useful though.

                  Comment


                  • #24
                    I'm playing with doxygen. Looks good, except it doesn't see some functions. For example, in world.c, World_Init() function, the problem is that World_Physics_Init() isn't clickable dispite both functions being in the same file. Doxygen just doesn't see the second function.

                    I suspect that problem is in preprocessor. Makefile sends defines to compiler, and doxygen knows nothing about them. Tomorrow I'll look what exactly is defined, and then either feed those defines into doxygen, or remove all #ifdef by hand.

                    I modified a few parameters in doxyfile, tell if you need those.

                    Comment


                    • #25
                      I just needed to set EXTRACT_STATIC to YES.

                      It needs like 4 times more space now, cleaning my hdd to get more space.

                      Comment

                      Working...
                      X