Announcement

Collapse
No announcement yet.

Real Flash Quake

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

  • I have floor, ceil, round every damn var from original s/t lightmap values clean out to the values being dumped in the shader and this is the best garbage out of all the garbage it has created. "floor/ceil coords" is too abstract man. I have wasted so much time on this. You don't have to be more clear but, I'm going back to my faux filter while I work on something else so I don't have to look at this mess. I have run out of values to modify.

    I don't know if this matters but, I am not using blocklights. I have atlases for each texture batch. All UVs are created against the entire atlas. All vars dealing with UVs aside from the UVs themself are already whole numbers. I obviously am not going to floor/ceil UVs... I did try removing floating points past the first one, that didn't work either.

    *past the first one = to only the hundreths and then I tried thousandths place

    Last edited by MadGypsy; 05-01-2016, 10:07 PM.
    http://www.nextgenquake.com

    Comment


    • @learning AS3

      awesome dude! much appreciated.

      A couple of beginner questions real quick if you don't mind...to my understanding, Actionscript3 is the langauge used for Flash (which handles web-based apps) and AIR (native apps), correct?

      So could this langauge produce a standalone executable? What exactly is the function of Adobe AIR? From the website, it states that Adobe AIR allows you to package your AS3 code into games/apps for windows and mac and what not. Not entirely certain what that entails. I guess what I'm really asking here, is when you fire up a game engine, that could be written in any number of languages, what translates this code to the hardware? I would guess that AIR does this for AS3 based executables. At the end of the day, all code becomes 0s and 1s to the hardware.

      Would I be correct in assuming AS3 is similar to C in some regards? Looks like there are some similarities here.

      Hope I don't sound too stupid. Lol. QC game logic is the extent of my programming knowledge (or at least worth speaking of, I've dicked around with a few other things like CSS and HTML recently, but QC is the only "language" I could sit down from scratch and do something with it...I've never dug much deeper into the internals of code and how it corresponds to hardware).

      @difference in AS3 / Away3D tutorial:

      you're not shitting. Damn.
      'Replacement Player Models' Project

      Comment


      • @A couple of beginner questions real quick if you don't mind...to my understanding, Actionscript3 is the langauge used for Flash (which handles web-based apps) and AIR (native apps), correct?

        Correct, however these are the same language. AIR adds some classes that allow you to access the operating system. Or maybe more correctly would be to say the filesystem.

        @So could this langauge produce a standalone executable?

        Yes, for pretty much any platform but, there is a catch. It is not truly a standalone. In other words it doesn't just spit out an exe. It bundles the entire AIR vm into the package and accompanying it is an executable. To see what I mean download my engine and look at the file structure.

        @AS3 similar to C

        No not really. You could definitely port C to AS3 but the way you handle many things would be quite different. There are many syntactical differences between AS3 and C. And some C language constructs are simply not available in AS3. BUT, those things are available in HaXE which is very similar to AS3.

        @Hope I don't sound too stupid.

        Cmon, man. We all have to start somewhere.

        C hello world
        Code:
        #include<stdio.h>
        
        main()
        {
            printf("Hello World");
        }
        AS3 Hello World
        Code:
        package 
        {
        	import flash.display.Sprite;
        	
        	public class Main extends Sprite
        	{
        		public function Main():void
        		{
        			trace("Hello World");
        		}
        	}
        	
        }
        In C standard in out is imported in order to utilize printf. Also the script is not wrapped in a package or a class (at least not in this example)

        in AS3 trace is TopLevel (ie always available) but the main class has to extend a Display Object (Sprite) in order for there to be a Stage. So, Sprite needs to be imported for us to use it. ALL AS3 classes are wrapped in a package. Whatever you name the class is what you have to name the class constructor. A constructor is a function that will automatically run when the class is instantiated. In this case the stage is doing the instantiation so it's not obvious but, anywhere past this one point instantiations happen like someVar:Type = new Type(). Consider that the stage is doing something like self:Main = new Main(); where the first :Main is saying stage is of type Main and the = new Main() is calling it's constructor.

        I may be going too far with this but the purpose of package{} becomes clearer when you start writing more classes. Lets say I had the following relative url from my source folder items/colored/Block.as . The base structure for that class would look like this

        Code:
        package items.colored
        {
        	public class Block
        	{
        		public function Block():void
        		{
        			
        		}
        	}
        }
        see the purpose of package? It's basically just the location of the file. Another thing to note is that whatever you name the class is what you have to name the file. You do not have to have a class constructor but, that's getting into all kinds of concepts beyond just a simple "heads up". Mostly dealing with public static functions. Where you don't actually ever instantiate the class but instead import it and use it directly. In other words you don't create vars off the class. no:SomeClass = new SomeClass() but instead someVar = SomeClass.someInnerFunction()
        Last edited by MadGypsy; 05-02-2016, 02:22 AM.
        http://www.nextgenquake.com

        Comment


        • Ah, ok. That sheds a little bit of light. Thanks bro. What's the biggest advantage of utilizing AS3? I think I read in an earlier post that you don't anticipate this becoming obsolete in the near future...

          Damn computer doesn't wanna download the link...let me try on my PC tomorrow, on my Mac now. I gotta get my ass in bed though. Working swing shift now.
          'Replacement Player Models' Project

          Comment


          • @What's the biggest advantage of utilizing AS3

            Well, the biggest advantage for me is that I know the language inside out and it has the ability to be ported to numerous platforms without making any major changes to my source. For me to port to android all I had to do was add an event listener for when the app was sent to the background and allow touch events. One little extra function in my Main Document Class. For me to port to flash all I had to do was remove one AIR specific listener and switch it with a listener for when the stage has been initialized. Technically If I wanted to spend a bit of time merging build scripts I could turn it all into one big project with nothing but 2 of 3 functions commented out at any time. Or if I didn't want to have to switch what is commented out every time I build. I could just make 3 different Main document classes (1 for each build) and depending on which build I want to do I just right-click the appropriate class in the file tree and assign it as the document class. In flash, Main document classes don't have to actually be called main. As a matter of fact mine are never called main. I name my main document class after the App.

            As far as any other advantage to making things with AS3 goes... I'm not sure there are any. There are probably a lot of reasons to not use AS3 but, then you have to consider how those reasons apply to you, your knowledge/skills and how much time/work/research it would take for you to do it a different way. I mean, I guess I could do all of this in python but, I'm not sure that's any better than flash. Python is also a high level language. For me to do this in C(any) would set me so incredibly far back that I would be an old man before I ever finished this. My ultimate goal is to eventually have a pure Haxe version. By pure I mean, no OpenFL, no Away3D, none of that. I have much to learn before I attempt that. By building this in a language that I know and understand well, when it comes time for me to attempt to port it, I will be porting already working concepts instead of trying to write it in another language AND figure out the concepts as well.

            PS> I want to apologize about the other day. I had no business telling you all that stuff. I'm dealing with a bunch of stuff and your post hit a nerve with me. I'm not even sure why, it just did. It doesn't even matter why it did. I just want you to know that I'm not proud of myself and I'm actually a bit embarrassed. Like Baker, I don't delete my stupid shit, but that doesn't necessarily mean that I agree with everything I said and I definitely don't agree with how I said it. Sorry again. I think I know enough about you to be right when I say I'm sure you were zero percent phased. Doesn't matter. I was still wrong to say that stuff. I couldn't blame you if you thought less of me because of it. I need to keep my ass out of any thread that has a heavy subject. I'm too grrr blah blah blah. If it is any consolation at all, just know I said that shit cause I actually care. Even though it didn't sound very caring.
            Last edited by MadGypsy; 05-05-2016, 11:07 AM.
            http://www.nextgenquake.com

            Comment


            • @AS3

              Sweet, thanks for the info man. It may not seem like it, but just answering simple shit like that really helps. I appreciate the depth of your answers. I start logging different areas of coding in general that I want to explore by reading this, if that makes sense.

              Any progress on your lightmapping?

              @other post

              No worries at all man, water under the bridge. And I'm gonna try to do the same as far as staying away from the 'heavy subject' threads...I get a little trigger happy myself and sometimes I don't word my thoughts all that well.

              And you're damn straight it didn't phase me haha. I don't buddy up with guys that I can't slog it out with, shake hands, and move on. I can't stand finicky personalities that I have to tip-toe around, and that definitely doesn't include you. We're solid bro.
              'Replacement Player Models' Project

              Comment


              • @lightmaps - nope. haven't even touched it since my last post about it. I spent over a day trying to figure out what floor/ceil coordinates means. I went through every single var related to lightmaps and didn't even come close to getting the proper results. When I go back, I'm just going to add 1 or 2 to the s and t for allocation, border the lightmap sample and force the UVs to the center. I should have just done that from the f'n beginning.

                @AS3

                The best way to learn a language is to program in it. If you like, I can send you a PM that explains how to get the environment set up and even send you some base project that does more than hello world but, a hell of a lot less than my engine. I'm not sure what that example would be ATM but I could figure out something that gives you an example of common types and how to manipulate the stage. I'll comment the snot out of it so there is absolutely no way you will have even a microscopic amount of confusion. We'll call it "Hello Basically Useless Mini-App".

                @the rest - I think that's why we have always gotten along so well. We're both a bit hardcore but, not daft or unreasonable. Like, we both probably have what it takes to be in a biker gang until it comes to beating the shit out of someone for no other reason but personal gain. Maybe not the best example but, all the elements are there.
                Last edited by MadGypsy; 05-05-2016, 11:19 AM.
                http://www.nextgenquake.com

                Comment


                • Here is the starter kit:

                  download this bundle

                  1) install the dotnet exe (this is necessary for FD to run)
                  2) install jre6 (this is necessary for the flex compiler)
                  3) install flash develop (don't start it yet. If it starts itself kill it)

                  4) add jre6 to the END of your PATH (instructions if you don't know how to access your PATH variables) In my example image mine is not at the end but it is AFTER my other java install.

                  while you are at it. Add it to JAVA_HOME as well. If you don't see a JAVA_HOME variable in the list, create it. This may not be necessary but, this part is always finicky so I like to pound it into dust right off the top. Unfortunately you may even need to do another step. Running more than one Java is always a pain in the ass. Let's just leave it at this and if you have problems I'll hunt down the info for the other step for you.

                  5) start flash develop. If you installed it as standalone you may need to right click and run it as administrator. You'll know cause flash develop will start but it will keep throwing the same error over and over no matter how many times you click OK. Maybe just run it as admin no matter what. If you do get the never ending error you will have to kill FD in the task manager.

                  6) select tools/install software from the menu and check the 3 things I have checked in the below image. This will not only download the selections but install them and everything. No guesswork for this part.



                  7) once everything is installed go to project/new project select AS3 Project. DO NOT AT THIS TIME SELECT ANY OTHER PROJECT. Other projects require editing of certain build files. Learn how to walk before you run. I make some seriously undocumented customizations to my build files that I can explain at a later time. Not to mention that if I remember correctly you have to download the android sdk to make mobile apps. I may be wrong because flashdevelop may come with adt. I simply cannot remember. I haven't had to do a fresh install in years.

                  at the top of the editor you will see a blue play button to the left of the debug/release dropdown. Click it (alternately you can press cntrl+enter). If you get an all white screen and no errors. You are ready. You'll get an all white screen with nothing because the default project doesn't have anything in it yet. You are just making sure that the flex compiler isn't complaining that it has no clue where java is. Which out of this whole process is the only part that is a pain in the ass. The only problem you may have for this entire thing is going to be java related and exactly the problem of it not finding it (or trying to use the wrong one. It HAS to be jre6). If you want to go independent on this issue (assuming you have it) there are numerous posts on the internet with people having this problem. You can probably figure it out with a google search. That's all I'm gonna do if you have me do it.

                  You will DEFINITELY know if there are errors. The output panel will have red text in it describing the exact problem. Copy it and paste it in google. Sometimes the output panel overscrolls it's info appearing like there is no output. Scroll it up there is ALWAYS some kind of output. Even if it's just a trace of the build commands used and "Build Succeeded"
                  Last edited by MadGypsy; 05-05-2016, 01:18 PM.
                  http://www.nextgenquake.com

                  Comment


                  • I have officially moved my entire project away from any form of quake tech. I use netradiant to lay the basic foundation for the map, export it as a wavefront obj and use blender to detail the map. I do not have any examples at this time but, I will soon enough. I have some work to do on my website but, when I have completed it I will be using my site to blog/tutorialize all of my work. There are numerous reasons why I made all these decisions.

                    In regards to completely dumping BSP:

                    1) I have spent like 3 months trying to get BSP to render properly. That's ridiculous. I do not regret it though because, these experiences have taught me a lot about my API and working with model data in general.

                    2) BSP's are chopped into way too many completely unnecessary polygons.

                    3) Simply too much bullshit. I understand a lot of this stuff was necessary 20 years ago but, they aren't necessary today. About the only sense it makes to use BSP, at all, is the built in collision information but there are other methods to handle this. I don't really need a PVS if my maps have 80%ish less polys to begin with. And even if I did need a PVS my API has methods to achieve this built in. It's even called BSPTree.

                    4) I want to work within formats and methods that I can simply google the answers for. I don't like working within situations where I'm spending the majority of my time trying to decipher my help or having to rely on people that at any time can decide to simply stop helping. I'm trying to build a game engine so I can make games. I don't have time to spend weeks on some little ill explained detail. I absolutely appreciate all the help I have been given but, I cannot work fast enough this way.

                    As far as using my site from this point on goes

                    1) I had a free year and did very little with it. I have officially paid for another year and I don't like to waste my money

                    2) I want more control regarding how I present my information

                    3) I program in basically all of the most common web languages and even know how to do things like make wordpress my bitch. It's time in my life to take all of that education and do something substantial with it. Not to mention that regarding my goals I was going to have to do this anyway.

                    I have a hell of a lot of work to do and I feel very very behind on everything. Ive wiped the slate clean. I have exactly one responsibility in this world... go to work a few days a week for a chunk of hours. Beyond that my time is completely free to pound the ever loving shit out of this.

                    All of my decisions are good ones. I will be able to provide a much better product in a much better way. Stay tuned. I'll stop in here from time to time to see what's going on and to redirect you to my progress.
                    Last edited by MadGypsy; 05-08-2016, 10:22 PM.
                    http://www.nextgenquake.com

                    Comment


                    • Some thoughts. You may not like all of them, but they may (or may not) be useful.
                      Originally posted by MadGypsy View Post
                      I don't like working within situations where I'm spending the majority of my time trying to decipher my help or having to rely on people that at any time can decide to simply stop helping.
                      You voluntarily created a very awkward scenario of not using the source code as a guide. So you had to bang head against every bump possible, reinventing the wheel, without any benefit of the existing source code or how the existing source code avoided those bumps.

                      I understand you have difficulty understanding C code, it can be difficult to read. And it does help for others to provide an overview of what is going on. However, it also created an unneeded dependency on other people, where just doing a quick search against the source code would have provided the answer in some cases.

                      But you never did forward scouting of terrain, which skimming the source code could have provided a blue print. This resulted in discovering every well-known problem as painful surprise.
                      Originally posted by MadGypsy View Post
                      ...
                      I don't claim to know your goals, you are very determined. With your determination, I suspect if you actually develop a blueprint of where you are going and how you will get there --- and if you actually plan ahead --- I suspect you will go far because you have the determination.

                      However, as a third party, I've seen you several times be magnetically attracted to tar pits. Several times, I've even pointed out a tar pit and then you are magnetically attracted it anyway.

                      If you plan to prove the world wrong, maybe you should choose a platform that is going somewhere awesome (Unity, Unreal or something else that runs everywhere including HTML5 and has good tools and --- unlike Flash -- a platform that has a future).

                      /One opinion, I'm often wrong about these kinds of things. Any experience, the best thing is understanding what you would do differently, and this is just my take, right or wrong.
                      Last edited by Baker; 05-09-2016, 04:37 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


                      • Actually, that was a very good post. You are only semi-correct about not using a quake source though. My engine actually has some things ported straight from the source (allocBlock comes to mind but is not the only thing). In other cases my platform pushes me to solve things another way. One example would be that you were telling me not to use shaders but to use a filter for linear, where my platform does not do it that way.

                        I am an AS3 programmer. It's not going anywhere... And even if it did I would change all my Number to Float, uint to UInt, etc. and switch to HaXe which can port it all to C++/HTML5/JS/more for me.

                        read this

                        Unity is already an engine. I cannot build an engine out of an engine. If using someone elses engine was a desire of mine I'd probably use FTE and if spike ever makes a javascript engine, I WILL use it.
                        Last edited by MadGypsy; 05-09-2016, 07:34 AM.
                        http://www.nextgenquake.com

                        Comment


                        • regarding one tarpit (assumption... not sure if this is what you meant)

                          If you are referring to when I was creating entire facemaps, I am aware that nobody realized what I was doing. Of course I know that repeat textures are infinitely smaller than painting a unique texture for every face in the map. However, by painting a unique texture for every face in the map with the lightmap painted as well, I was able to see in a better way why I was having so much trouble merging all these unnecessary faces into one. I never had any intention of using that method in the actual game. I was working on a method to get rid of all the fluff data. I didn't care that MH is a mega genius and if it was possible he would have figured it out. I hadn't attempted it yet. I don't give up on things just cause someone else decided it isn't possible. I'm super smart too. I'm still not convinced that it's not possible. It's simply not worth the time when you can completely eliminate the problem by not using BSP in the first place.
                          http://www.nextgenquake.com

                          Comment


                          • Originally posted by MadGypsy View Post
                            and if spike ever makes a javascript engine, I WILL use it.
                            Check my sig.
                            Some Game Thing

                            Comment


                            • I've seen your sig before and looked at the source. Do you have some instructions on how to use it and a source that isn't minimized? Do you have a source that doesn't entail using View Source and downloading the files individually? What file formats does it expect/support? Do I have to write the game code in JS? What does it degrade to on browsers that don't support HTML5?
                              http://www.nextgenquake.com

                              Comment


                              • Basically, If your engine supports the games I intend to make, I will use it to degrade to from flash on my site. I will also make it very clear to the user that my site is degrading to your engine. I'll support you in every way that I can. Even to the point of a "switch to JS engine" link directly under my flash engine with a transition that makes it very clear that the user is no longer using my engine. The only real question is whether your engine supports .obj worlds and .md5 models. If you have an unminified source I can force it to support my game code.

                                ----- Unrelated but I meant to post about this yesterday

                                I was reading the away3d object parser and I realized why their own examples run like ass for their "kitchen sink" demos. They are doing the same stupid shit I was with building up multiple SubGeometries within a Geometry instance. I read it in disbelief thinking "Am I missing something? Did the creators of this engine really do what this looks like?" The bottom line is yes they did. Pushing subgeometries into a geometry instance within a loop doesn't leave a lot of room for misunderstanding. It actually doesn't leave any. I'll spin my own obj parser. That is a possibly the most simple format to parse. Not to mention that I need to convert anyway. I'm not using text files for my models. My BSPUtility will become an .obj utility that spits out an AMF3 byte file of already optimized and ready data. Just like I did for BSP.

                                I also noticed that .obj does not reuse (v's) vertices. One box triangulated has 24 v's. I'll kill that with a weld and use the new data in the amf3 object. So my "utitlity chain" will be something like

                                Parse Obj to subgeo -> Weld -> read new data -> Create ComSubGeo -> Get final buffer -> store in AMf3

                                from the engine end simply:
                                MyMapbject = AMF3Data.readObject();
                                for(everything in MyMap) Type as ComSubGeo
                                basically.

                                Of course I will have to store the indices separately and keep a numVerts/3 for the vertex buffer length of each ComSubGeo.

                                See baker? I actually do have a plan. I also have both you and spike to thank for spanking my brain into submission on most of these concepts. I also have not forgotten or backtracked on ANYTHING I have said regarding rewarding you guys. Everything in time. Nobody is starving, right?

                                As far as lightmaps go... not even going to use them. With a heavily optimized world and fullbright textures I should be able to get away with realtime lights that are actually realtime shadows. If not, I will simply cram all of a textures associated geometry into one UV image space and bake something like a lightmap atlas. I'm just not sure where the I'm going to get the secondary UV's from but I'll figure it out.
                                Last edited by MadGypsy; 05-09-2016, 03:39 PM.
                                http://www.nextgenquake.com

                                Comment

                                Working...
                                X