Announcement

Collapse
No announcement yet.

Real Flash Quake

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

  • #76
    Yeah, I'm getting to collision. The one thing about this project is it encompasses many of my interests so, I can switch what I'm doing but, I'm still working on my engine.

    You can sort of walk around. I have an actually pretty nice "no clip" style camera. That's how I get all these different angles for my screenshots. I know that's not what you mean though.

    @head games

    It's whatever. Regardless of what drives me, the point is to stay driven. I wasn't claiming you were the entire force behind my efforts but, you contributed. Spike giving me information was also a contribution to my drive. Actually, to some degree it would be true to say that his interest drove me in a way that made me feel like failing was simply not an option. Not because he could help me to death but, because failure would have been embarrassing.

    I still have a long way to go.


    I still have some bad shadows but, those crates are rotated 15 degrees and the texture hasn't moved.
    Last edited by MadGypsy; 02-23-2016, 02:07 AM.
    http://www.nextgenquake.com

    Comment


    • #77
      @other people have made some renderers

      I found an Away3D project that couldn't get more than one lightmap to display and there is a project called Paperquake. However, PaperQuake does not work (at least anymore). I know what I'm doing and I could not get it to work. The PaperQuake project had some good starter kit code though and I borrowed from 2 methods. I didn't even bother to look at the source for the other. Other than that, I believe I am the only person with a "fully" working BSP parser. Of course "fully" just means my maps display pretty close to correct. I have searched and searched. I could only find those 2. There are a few q3bsp parsers but even those are questionable. One parses everything but the entities and was written for Away3D from like 5 years ago. Another doesn't have lightmaps (or anything else) and sloppily tells all faces to be both sides.

      That's another one of the things that drives me. According to extensive search, I believe I may be the only guy making this happen. Nothing else works to the degree mine does or in some cases at all. One thing I am almost damn positive of... I am the only one of those guys developing the engine off of his own map(s).



      y'all know imgur compresses images and my renderer is actually noticeably better than I can show you with imgur pics. Think of my renderer being more png quality.
      Last edited by MadGypsy; 02-23-2016, 03:14 AM.
      http://www.nextgenquake.com

      Comment


      • #78
        Well, water is transparent, I guess that's a start.



        gonna work on animating the UVs next

        @If you merely made a map viewer that you could walk around the map with, say, the arrow keys, that would be something incredible by itself

        As my buddy Sam used to say "Listen to me now and hear me well." I am building a fully functional game engine, period. I don't care if I get .01 FPS when I'm done cause, once I understand everything that I need to do, I can drag it to whatever language I want. Even ones that I don't even know. However, my flash engine is not going to get .01 FPS. If you have a great computer you will top out at 120 FPS and generally sit right around there too. If your computer is average you can expect about 50 to 60 FPS. NO matter what your case you can simply make the window a little smaller and add an FPS jump.

        I'm not fucking with you. I'm trying to break your conditioning that if "just something" then "that's good enough". There is nothing that is good enough except a completely functioning game engine. That's what I'm going to build and no manner of limitations or exceptions is going to stop me. I do not share the "well at least I...." mentality. Again, I am not fucking with you. I'm stating this with the same vigor I have in me to make this really happen. I know I am building something awesome it will simply have some limits that need to be respected.

        Really, I'm still just trying to get you on my team, bro. Maybe seriously stressing to you that there is not a single challenge that I will not overcome will get you talking more along the lines of it just being a success period. In other words, change "...if you could just... at least..." to "...when you finish... you should..." and we'll be on the same page.

        I'm using a full featured, mature engine API and bullet physics, both of which were specifically designed for AS3. My engine is going to do plenty. I'm using the cadillac of posibilities for my environment.

        *whereas bullet wasn't initially designed for AS3, some genius made it an ANE (adobe native extension) and some other genius contoured it to the engine API I'm using (Away3D). Since ANE's are really just adobe passing compiled C(type) along, the physics engine will run basically as fast as the native version. ANE is basically just an "other language" plugin. That's why flash quake runs as good as winquake. Cause it's winquake. I believe I got Bhou Zou to make flash proquake. I paid him like 300 yuan , or whatever $50 is.
        Last edited by MadGypsy; 02-23-2016, 05:10 PM.
        http://www.nextgenquake.com

        Comment


        • #79


          optimising is fun.

          and for people who like looking at models: models
          each one individually animated, albeit procedurally by c code.

          I've been trying to figure out the vulkan api recently... its kinda annoying how many things are not automatically handled. its not that its hard, its more that there's a LOT of code, which makes typos easy. I counted about 14 different steps in order to get textures working - and that doesn't include mipmaps.
          I mourn for the lack of a glGenerateMipmap....



          anyway, your lightmap issue is probably something along the lines of you aligning the lightmap to the min vertex position, rather than extending it to the min 16*16 grid.
          remember that the lightmaps are aligned to texels rather than verticies, on account of software rendering's aligned 16*16 grid thing (so lightmaps don't move around in smaller mips).
          so the lightmap coord for the 'lowest' vertex is not always 0,0, but somewhere between 0 and 1 luxels.
          Some Game Thing

          Comment


          • #80
            @spike - what am I doing wrong.

            My render tick calls leafsManager. The cam position is put in but, as x,z,y because flash z is quake y. I even tried x,-z,y cause technically that is the real transposition. Leafs are certainly disappearing but, not the ones I want to. The "first" in resetLeafs is just something I can make true the first time it is run so it makes all leafs invisible initially. This is the entire "vis" code for my engine.

            There is also something I don't understand about "head nodes". For instance model_t[0/*world*/].nodeX. What am I getting when I get node0? Apparently it is the index of a node but what is special about this node that it is the master of figuring out what leaf you are in?

            http://www.nextgenquake.com

            Comment


            • #81
              Unraveling The Mysteries:

              Have you (non developers) ever wondered how sky works? Well, I have an answer (by observation). Notice that the sky is the only brush that has been left intact by the compiler. It would seem to me that you split the texture in half, apply the half with no black to the top face of the brush then take the other half, alpha mask the black and apply it to the bottom of the brush. If I am wrong, (doubtful) it doesn't seem like there is any other reason to leave the entire brush and even flip the top face. This would make uv animation much easier since these textures move independently.



              This angle shows a little better how the bottom of the brush was cut to seal the BSP but the top was left completely intact.


              Here's the real trick though. How do I determine what part of that brush I am applying things to? That isn't a question I am asking for answers to. I will figure that out on my own.

              note: I am still stuck on vis. My code is functionally identical to quake specs but, the room I'm in starts disappearing when I walk around it. There are other mostly opposite symptoms as well. Unfortunately, making things opposite to counter it does not fix anything. It makes it worse.

              I wish BSP had some way better specs. The current specs are written poorly and compel more questions than they answer. I believe I am going to rewrite those specs when I feel like I have unraveled them in their entirety. Somebody needs to do it.

              Edit: Even though it is completely dead at work it is impossible to work on this here. I cannot focus for 5 seconds in this building, regarding this. Sucks, cause I could be getting things done. I specifically brought my lil travel laptop cause I knew we would be dead and all I really did was add more shit to lug around in my backpack.
              Last edited by MadGypsy; 02-24-2016, 08:08 PM.
              http://www.nextgenquake.com

              Comment


              • #82
                Should you ever decide to examine these things inside a Quake engine while running it (which is, of course, an implementation of the specs):

                This: FitzQuake 0.85 that compiles with no alterations (Direct link). You open the .sln in Visual Studio, click compile and run and it does.

                Is essentially FitzQuake 0.85 except it compiles out of the box using MS Visual Studio 2008 C++ (Download .iso | SP1 Patch Download)

                (Visual Studio later than 2008 is bloaty and sluggish and exactly the same kind of crap thinking that produced Windows 8 and Windows 10.)
                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


                • #83
                  niiiiice! Good links and hell yeah! +rep

                  my phone hates the js on this site. I couldn't see what I was typing in the rep message block. Hopefully it came out "thanks - gyp"..

                  edit: If it's c++ I can compile in flashDevelop .
                  Last edited by MadGypsy; 02-24-2016, 10:07 PM.
                  http://www.nextgenquake.com

                  Comment


                  • #84
                    Awesome! I already had codeblocks installed and completely setup with GCC. I double-clicked the codeblocks project, clicked the gear and...



                    Who cares about 2 warnings...great job! That was super easy.

                    edit:
                    And it works too? Daaaaang, how you gonna make errythang like it work n' stuff? Well, I guess my work is done. I said I was gonna build an engine and I just built fitrzquake. It's been nice knowing y'all.
                    Last edited by MadGypsy; 02-24-2016, 10:53 PM.
                    http://www.nextgenquake.com

                    Comment


                    • #85
                      Longer term, if you want to examine what is going inside on then Visual Studio C++ is what you should end up using.

                      Visual Studio's search is faster (CTRL-SHIFT-F) and in run-time has better browsing of variables including globals and can view things CodeBlocks can't (CodeBlocks can't view global variables --- annoying -- and half the time can't display all the variable information you would want, which is aggravating).

                      Which is what you said you want to check out.

                      (Visual C++ also has edit and continue. You can make minor code changes after breaking and then continue execution. So you, for instance, set a break point in a function like rendering the map, have the execution stop at certain line, maybe you have it print something to the console each time, edit that and continue. CodeBlocks can't do anything like that.)

                      /CodeBlocks is a neat IDE and I do like the small size of the setup. But on a capability basis, unfortunately, it isn't as good as Visual C++. Which is a shame, but there are reasons for that well beyond their control (Microsoft makes a better compiler than anyone else).

                      Oh yeah --- certain kinds of crashes --- CodeBlocks just says "received a signal" (and expects you do stack tracing and such) while Visual Studio will show you what happened and where.
                      Last edited by Baker; 02-24-2016, 11:23 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


                      • #86
                        Hah, you are of a mind ahead of mine. You mean I should change YOUR source to learn what to do in mine. OK. I'm game.

                        You broke the lock, bro. You gave me something that I can successfully compile. 50 rep++

                        You have worked on a fairly insane amount of Quake engines. I know you didn't build them all, but still.
                        Last edited by MadGypsy; 02-24-2016, 11:36 PM.
                        http://www.nextgenquake.com

                        Comment


                        • #87
                          It's not my source code:

                          Fitzquake

                          I just cleaned it up a little, patched a couple of things and created a CodeBlocks and Visual Studio C++ 2008 project file for it a few years ago

                          [if you read the date, it was January 2011 --- time flies. Quakespasm and Mark V are both based on FitzQuake 0.85, there are very few differences between FitzQuake 0.85 and Quakespasm].

                          Add: You know Func_Msgboard. FitzQuake was created by the individual that runs Func_Msgboard. http://celephais.net/cv/
                          Last edited by Baker; 02-25-2016, 12:12 AM.
                          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


                          • #88
                            @YOUR code - I just meant the code you provided. The stress of YOUR was to hilight the one word in the sentence that needed to change for us to be on the same page. ie.... vs MY code.

                            Navigation optimizations:
                            What class(es) define leaf visibility & sky/water textures? I'm not budging from this part til I get it working properly.

                            @/CodeBlocks is a neat IDE and I do like the small size of the setup. But on a capability basis, unfortunately, it isn't as good as Visual C++. Which is a shame, but there are reasons for that well beyond their control (Microsoft makes a better compiler than anyone else).

                            Heh. In flash world the opposite seems true. I'd take flashDevelop over flashBuilder(Adobe) any day. flashBuilder is really good but it has that Adobe mentality that some things should be hidden from the user for simplicity. Gimme the guts! It also has some stupid ways of doing things. For instance you have to navigate a bunch of menus to add to your src and then hand type the path. In flashDevelop I either right click a folder in my doc tree and select "add to source path" or right click an swc and select "add to library". My doc tree is always open so this is very fast. FlashBuilder supports AS3 and FLEX and that is all. flashDevelop supports a hell of a lot more than that (as3/flex/haxe/c++/html/js/css/loom/php/python/...) and they are broken down to base projects that are "ready to go" (AIR Mobile, AIR projector, AS3, .... all this



                            Really all that stuff is pretty much the same thing (structure wise). What selecting one of those does is contour a solution that has the absolutely bare essentials already included and filled out. It also might add a little bit of script to your Main class. For instance, in mobile, you should handle when your app is sent to the background so, if you choose a mobile project that event is already in your script. It's blank waiting for you to make it specific but, it's there none-the-less.

                            My favorite thing about this editor is it's install. Check SDK, Check standalone player, click download, restart flashDevelop, choose a project type, program stuff. Of course you only have to do this once. Alternately you can just select everything and click download. Then you are ready for any project. I actually have everything installed. When I upgraded fD I guess it didn't stick a lil chit somewhere telling it I already have these.


                            Supposedly there is a mini built in server as well but I've never tried to use it. I have an apache server running already.
                            Last edited by MadGypsy; 02-25-2016, 12:43 PM.
                            http://www.nextgenquake.com

                            Comment


                            • #89
                              bspfile.h

                              #define CONTENTS_EMPTY -1
                              #define CONTENTS_SOLID -2
                              #define CONTENTS_WATER -3
                              #define CONTENTS_SLIME -4
                              #define CONTENTS_LAVA -5
                              #define CONTENTS_SKY -6
                              #define CONTENTS_ORIGIN -7 // removed at csg time
                              #define CONTENTS_CLIP -8 // changed to contents_solid
                              Find the text CONTENTS_WATER in the source. And CONTENTS_SKY, etc.

                              In maps, liquid textures ("warp textures") start with * and sky textures begin with "sky".

                              Visibility: I personally don't know how the internals of it work.
                              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


                              • #90
                                That's the problem. If I understood how leaves relate to the vislist it would be a joke getting it to work. I have 65 leaves and 600 vislist entries. Due to RLE I could probably add my way to 65leafs*65vis ....


                                meh, too hard to phone type my current thoughts...
                                http://www.nextgenquake.com

                                Comment

                                Working...
                                X