Announcement

Collapse
No announcement yet.

What's Going On

Collapse

There are currently 30 users online. 3 members and 27 guests.

Most users ever online was 1,083 at 05:38 AM on 2016-11-18.

Client progress

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

  • I usually use this
    https://github.com/thetarkus/WebMCam/releases
    but since this forum doesn't support webms
    http://blog.bahraniapps.com/gifcam/

    though I dunno if they're good for practical use because both of them are a bit jittery. Great tools otherwise. Very simple, good quality, good number of settings to tweak.
    Codr likes this.
    Originally posted by antago
    Dude I would rip your fucking head off, you really think you're tough talking nasty and taking low blows--and I would feast on your fucking heart & love it. How does it feel? I'd scalp you alive and destroy your name in the pages of history like I'm doing now. I am here to write history, not cry like a little bitch and I didn't do it to myself.

    So by all means, come with me out seas off borders and see what I do to you. Better yet, accept the curse from God you've just begged for--and now your life will go to shit.

    Comment


    • Thanks for the gif creator suggestions. I'll try them out when I'm ready for a demonstration.

      Z-ordering has been updated and with as perfect a result as I could hope for in a technically 3D environment. I've had some logical issues to fight through with the window and how to handle child controls in general, but I believe those have been resolved now. Maximizing has been implemented. Minimizing should be fairly simple with the framework for everything now in place. I would expect it to be done in a few days, depending on what else I end up doing off of my computer. I've been sick the last few weeks and basically stuck inside, so that kind of led to this development. I'm almost entirely over it now, though.

      Something I've been thinking about is whether or not the UI is actually important enough to be spending time on this early in development. Initially my thought process was "Well, it's needed to log in and connect to a server, right?", but that could be handled in a less convenient way for a while. So I may decide to forego the UI soon in favor of all the other more exciting visual stuff that everyone wants to see. (Levels, characters, networking, animations, etc.) Those were on my list next after the UI anyway.

      Comment


      • I did decide to forego the UI for now, as mentioned in my last post. This shouldn't be a surprise, given the other thread I made to gather information about level details. I've been working out how to efficiently combine the concepts of multiple tilesets and multiple layers when it comes to rendering the tiles themselves. It currently doesn't fit into the way the renderer is designed. Once I've gotten the details ironed out and implemented, I'll post a screenshot or gif of it.

        The level format, at least for storing tile data and all of the layers, has been planned out. It's not going to be particularly simple for someone to extract useful information from, but I'm not exactly concerned with the ease of making third-party tools. The tile data will still ultimately be stored using ASCII characters so that levels can be edited as plain text without breaking tile data.

        Comment


        • Just to show that I'm actually doing something. The level format has been planned out, for tiles at least. I updated the Graal NW converter to match. A scheme for rendering has been devised and I was able to produce something visual. Layers are being worked on now.

          It's kind of disturbing that there are 8192 triangles being rendered to produce this. I may end up having to approach it differently in the end, but we'll see. There are tradeoffs to every method.

          image_4107.png
          The Mollusk and Chicken like this.

          Comment


          • 8192 triangles?
            A friend experienced lag with the ~6000 triangles on my sine wave page. (I know, it's really inefficient). (Maybe he was using the whole screen so that'd be ~ 11 000 triangles)
            Ok, he did have a game opened but he also has a GeForce 970.
            Not sure if this is relevant.

            My sine wave page is actually 3 layers of 1 pixel wide lines that are polygons (so 2 triangles each, but you know that). On a 1000 pixel wide browser page, it's 3000 polygons so 6000 triangles.
            That's WebGL btw, so it's supposed to be using the graphics card directly.
            Last edited by 2ndwolf; 2018-01-08, 02:27 AM.

            Comment


            • Originally posted by 2ndwolf View Post
              8192 triangles?
              A friend experienced lag with the ~6000 triangles on my sine wave page. (I know, it's really inefficient). (Maybe he was using the whole screen so that'd be ~ 11 000 triangles)
              Ok, he did have a game opened but he also has a GeForce 970.
              Not sure if this is relevant.

              My sine wave page is actually 3 layers of 1 pixel wide lines that are polygons (so 2 triangles each, but you know that). On a 1000 pixel wide browser page, it's 3000 polygons so 6000 triangles.
              That's WebGL btw, so it's supposed to be using the graphics card directly.
              There are a lot of different factors, but I'd say the biggest one is the fact that you have calculations being done every frame for animation. Sine calculations at that, which generally aren't inexpensive. Then there's the script interpretation and conversion on top of that. The OpenGL (presumably) implementation may not be designed to efficiently handle that particular type of rendering scenario either, whereas I can fully tailor the renderer to suit my needs.
              2ndwolf likes this.

              Comment


              • Yes, it's an OpenGL implementation. You're probably right, that's a pretty expensive loop now I'm reading it.
                Code:
                function mainLoop(deltaTime) {
                  if (gnagna % 1 == 0) {
                
                    amplitude = Math.sin(gnagna / 50); //Math.sin(amplitude + deltaTime) * 4;
                
                    for(var e in groups[sineGroup1.intName]["Members"]) {
                      groups[sineGroup1.intName]["Members"][e].initY = 100 * Math.sin(groups[sineGroup1.intName]["Members"][e].initX * deltaTime) + startingHeight;
                    }
                
                    for(var j in groups[sineGroup2.intName]["Members"]) {
                      groups[sineGroup2.intName]["Members"][j].initY = 100 * Math.sin(groups[sineGroup2.intName]["Members"][j].initX * deltaTime + gnagna * .0125) + startingHeight;
                
                    }
                
                    for(var k in groups[sineGroup3.intName]["Members"]) {
                      groups[sineGroup3.intName]["Members"][k].initY = 100 * amplitude * Math.sin(groups[sineGroup3.intName]["Members"][k].initX * deltaTime - gnagna * .05) + startingHeight;
                
                    }
                
                  }
                
                  gnagna++;
                  webActive = 1;
                }
                Last edited by 2ndwolf; 2018-01-08, 03:26 AM.

                Comment


                • Here's some more advanced tile rendering. Given the difficulty of customizing the tile data right now due to no editor, I opted for something a little less exciting visually, but that would still show off what's going on.

                  This is the same level rendered with 3 different tilesets and 2 layers. The red strip is the second layer, which as you can see is alpha blended. This is from a 32-bit PNG file.

                  Some features to note:
                  • Tilesets don't have to be a fixed size. They can be up to 256x256 tiles in size (4096x4096 pixels) or any multiple of 16 pixels. They don't have to be square.
                  • Multiple tilesets can be used in a single layer. That's the case in the screenshot below. The bottom layer is using the updated Graal tileset and the original Zelda tileset.
                  • Up to 8 tilesets can be defined.
                  • Up to 8 total layers (including the bottom one) can be used.
                  • The top 7 layers can be alpha blended.
                  • Tiles do not have to be specified for any particular position on any layer. This includes the bottom layer. This means there could be missing tiles, in which case the blue in the screenshot below would show in that spot. This could potentially be used in the future for interesting effects by changing the base rendering color under the tileset via script.


                  The alpha blending of that strip hit the frame rate pretty hard, so I'm suspecting that will have to be redesigned later. I'm not entirely sure if any redesign options would even reduce that frame rate hit, though, so perhaps not. Alpha blending is just intensive.

                  Next is to plan out how to handle displaying of multiple levels and add functionality for scrolling the levels around the display area.

                  image_4108.png
                  Last edited by Codr; 2018-01-09, 05:01 AM.
                  Onijustin, tricxta and 5 others like this.

                  Comment


                  • Awesome, I like the bottom layer with holes idea. Will certainly try that once I can.
                    Codr likes this.

                    Comment


                    • Originally posted by Codr View Post
                      Tilesets don't have to be a fixed size. They can be up to 256x256 tiles in size (4096x4096 pixels) or any multiple of 16 pixels. They don't have to be square.
                      Multiple tilesets can be used in a single layer. That's the case in the screenshot below. The bottom layer is using the updated Graal tileset and the original Zelda tileset.
                      Up to 8 tilesets can be defined.
                      Up to 8 total layers (including the bottom one) can be used.
                      The top 7 layers can be alpha blended.
                      Tiles do not have to be specified for any particular position on any layer. This includes the bottom layer. This means there could be missing tiles, in which case the blue in the screenshot below would show in that spot. This could potentially be used in the future for interesting effects by changing the base rendering color under the tileset via script.
                      Fucking amazing. I like it.
                      Codr likes this.
                      Originally posted by antago
                      Dude I would rip your fucking head off, you really think you're tough talking nasty and taking low blows--and I would feast on your fucking heart & love it. How does it feel? I'd scalp you alive and destroy your name in the pages of history like I'm doing now. I am here to write history, not cry like a little bitch and I didn't do it to myself.

                      So by all means, come with me out seas off borders and see what I do to you. Better yet, accept the curse from God you've just begged for--and now your life will go to shit.

                      Comment


                      • Good job, so much so that I feel like I can put my java engine to rest now and hinge my hopes off this.


                        Comment


                        • Originally posted by tricxta View Post
                          Good job, so much so that I feel like I can put my java engine to rest now and hinge my hopes off this.
                          LOL, it's funny what some screenshots can do. There is still a LOT of work to be done. So much so that it's overwhelming and I have to do everything I can to ignore it. Don't forget my tendencies to not work on it for long periods of time, too.

                          Comment


                          • Originally posted by tricxta View Post
                            Good job, so much so that I feel like I can put my java engine to rest now and hinge my hopes off this.
                            Keep working on it. When both of them are ready, we'll give them knives and they'll fight in a crudely made arena to determine the victor
                            Chicken, Onijustin and 2 others like this.
                            Originally posted by antago
                            Dude I would rip your fucking head off, you really think you're tough talking nasty and taking low blows--and I would feast on your fucking heart & love it. How does it feel? I'd scalp you alive and destroy your name in the pages of history like I'm doing now. I am here to write history, not cry like a little bitch and I didn't do it to myself.

                            So by all means, come with me out seas off borders and see what I do to you. Better yet, accept the curse from God you've just begged for--and now your life will go to shit.

                            Comment


                            • I'm still working on the multiple level display. Map loading is done, but that was barely anything anyway. It's hard to find time to work on the project between work, exercise, and other daily tasks. We're supposed to get snow this weekend, so I probably won't be going anywhere. Hopefully I can get the level code completed during that time.
                              Dylan likes this.

                              Comment


                              • Ok, so I can display multiple levels at this point, but it's not in a dynamic way that allows navigation across a map yet. It would have been to that point, except rendering multiple levels exposed a significant performance flaw in the way this is being rendered currently. I've spent most of my development time this weekend researching and trying different methods. This is still ongoing. Getting this right is critical, as it will be the biggest impact to performance by far for the rendering aspect of the engine.
                                2ndwolf, Dylan and 2 others like this.

                                Comment

                                Working...
                                X