Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. Awoken

    Link It Up! | It's Released!

    I finished the rest of it. Great little game! p.s, next time just let me know to try a little harder
  3. JTippetts

    hex grid

    Since this has veered quite off topic, and since phil has decided not to make a hex game, I'm going to lock this. phil, if you have further questions please remember what you have been told before, about how to ask your questions.
  4. JohnnyCode

    Weird lighting when translating object

    Games are in general case GPU bound in stead of CPU bound, so performing per vertex matrix transformation of normal instead of a single CPU transformation of light to bring it to same space is not the "General route" as you appointed?
  5. Rutin

    GC : Explosive Balls (game state)

    Wow very cool! I like how your movement adapts to the terrain changes. Great work!
  6. phil67rpg

    hex grid

    yes you are
  7. GoliathForge

    hex grid

    I'm special today it appears.
  8. phil67rpg

    hex grid

    wow you got two downvotes goliath
  9. GoliathForge

    GC : Explosive Balls (game state)

    I'm going to skip a blog week and just throw up a video progress. This week was character/animation controller. Nice to start thinking about the action bits. Thanks for playing.
  10. Today
  11. Alexander Villagran

    Open-Source C# RPG

    Sounds like a very interesting project. I like to use Unity for the 2D graphics, and it sounds like fun.
  12. Yesterday
  13. GoliathForge

    hex grid

    Make (it) how ever you wish. Just make it yours. Go forth and create.
  14. Hello, I have been implementing CSM and applying some of the methods found on the Internet for stabilizing the cascades to fix shadow shimmering. While implementing the algorithm, I followed both Microsoft SDK code (link to SDK) and MJP's version (here) (which I found quite clear and great). While the general algorithm works okay I have found out an issue which I'm not exactly sure if it's my fault or if it works as intended. My camera has a FOV of 60º and is divided in three different frustas, each one of them covering a percentage of the whole camera frustum and giving shadows for a given area. For each one of these frustas I compute a Bounding Sphere that contains the corners of it and is centered in the middle point of the frusta. The code works ok and I get a bounding sphere that covers the frusta completely. The issue is that such bounding spheres seem to be so big that they completely overlap each other most of the time and, while fov or depth changes for each of the frustas make the overlap bigger or smaller, they still overlap by more than a half most of the time. This makes the quality of the shadows for the bigger frustas to not be too great as the amount of unused space is quite big. While googling for a solution I also found this blog from The Witness creators in which they detailed their approach and had a similar issue. Nonetheless, I would like to see If somebody knows if there may be something wrong with my approach and how to fix it if possible. Below I attach some captures of the problem and the code for the BS computation. Captures: https://imgur.com/a/FhGBwvW The code for the computation of the BS can be found below (I decided to skip the code that gets the frustums corners in WS but I'm quite sure it's working okay as I can see the points being in their position in my render): // This code is repeated for each cascade. // Calculate the centroid of the view frustum slice. // cascade_frustas_corners contains all the corners of all the frustas the camera is divided in. // Their positions are already in WS. Vector3 frustumCenter; for (unsigned int j = 0; j < 8; ++j) frustumCenter = frustumCenter + cascade_frustas_corners[cascadeIdx * 8 + j]; frustumCenter *= 1.0f / 8.0f; // Calculate the radius of a bounding sphere surrounding the frustum corners. float sphereRadius = 0.0f; for (unsigned int j = 0; j < 8; ++j) { float dist = (cascade_frustas_corners[cascadeIdx * 8 + j] - frustumCenter).Length(); sphereRadius = std::max(sphereRadius, dist); } // Store the radius for this frusta. sphere_radius_frustas[cascadeIdx] = std::ceil(sphereRadius * 16.0f) / 16.0f; Hopefully somebody can shine some light on my issue. Thank you very much.
  15. Microsoft has released PIX 1904.23 with a preview of the new Timing Capture implementation and improvements to DXIL shader debugging and pixtool. You can download the new release here. Highlights from this release include: Preview of a new implementation of Timing Captures (see below) HLSL variables are now available during DXIL shader debugging New pixtool features: Use “take-capture –winml” to capture a WinML workload Use “take-capture –frames=5” to capture multiple frames Run “pixtool –help take-capture” for more details Information in timing capture’s Resources & Heaps view can now be copied to the clipboard Format is tab separated and can be pasted directly into Excel WinPixRemoteMonitor now has a UI ARM64 support Get all the details from the PIX blog.
  16. Microsoft has released PIX 1904.23 with a preview of the new Timing Capture implementation and improvements to DXIL shader debugging and pixtool. You can download the new release here. Highlights from this release include: Preview of a new implementation of Timing Captures (see below) HLSL variables are now available during DXIL shader debugging New pixtool features: Use “take-capture –winml” to capture a WinML workload Use “take-capture –frames=5” to capture multiple frames Run “pixtool –help take-capture” for more details Information in timing capture’s Resources & Heaps view can now be copied to the clipboard Format is tab separated and can be pasted directly into Excel WinPixRemoteMonitor now has a UI ARM64 support Get all the details from the PIX blog. View full story
  17. phil67rpg

    hex grid

    well I am unsure of how to proceed further? should I give up?
  18. FFA702

    Large Tilemap Storage

    I currently have a 100x100 tilemap with 2 layers (one for the tiles and one for the characters) I can draw at once with absolutely 0 performance issues. I think I can push 1000x1000 no issues (at this point they become individual pixels so wtv), modern rendering pipelines are really hard to bottleneck and a 60x30 array is trivial.
  19. Hi, I have a small annoying problem with my draw loop where the zoom function results in very noticeable jerking motion of all the rendered sprites. Here is the whole method and the lerp function : protected override void Draw(GameTime gameTime) { int adjustedZoomLevel = 60 + ZoomLevel; // DRAW THE DYNAMIC OBJECTS Color spriteColor; if (UI.DisplayUI.isFocused == false) { spriteColor = Color.White; } else { spriteColor = Color.Gray; } GraphicsDevice.Clear(Color.Green); point vP = new point((graphics.PreferredBackBufferWidth/ adjustedZoomLevel), ((graphics.PreferredBackBufferHeight / adjustedZoomLevel))); point vPo2 = new point(((graphics.PreferredBackBufferWidth) / ((adjustedZoomLevel) * 2) ) , (((graphics.PreferredBackBufferHeight) / ((adjustedZoomLevel) * 2)) )); point lastViewPort = GameZod.GameZod.Game.lastCamera - vPo2; point viewPort = GameZod.GameZod.Game.Camera - vPo2; spriteBatch.Begin(samplerState: SamplerState.PointClamp); for (int x = 0; x < vP.x; x++) { for (int y = 0; y < vP.y; y++) { point pos = new point((x + viewPort.x), (y + viewPort.y)); if (pos.x < GameZod.GameZod.Game.map.size & pos.y < GameZod.GameZod.Game.map.size & pos.x > 0 & pos.y > 0) if (GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y] != null) { spriteBatch.Draw( GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y].texture, new Rectangle( ((int)( lerp( (GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y].position.x) * adjustedZoomLevel, (GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y].lastPosition.x) * adjustedZoomLevel, gameTimeElapsed / 500f) - lerp( viewPort.x * adjustedZoomLevel, lastViewPort.x * adjustedZoomLevel, gameTimeElapsed / 500f) ) ) , ((int)( lerp( (GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y].position.y) * adjustedZoomLevel, (GameZod.GameZod.Game.map.Dobjects[pos.x, pos.y].lastPosition.y) * adjustedZoomLevel, gameTimeElapsed / 500f) - lerp( viewPort.y * adjustedZoomLevel, lastViewPort.y * adjustedZoomLevel, gameTimeElapsed / 500f) ) ), (int)adjustedZoomLevel, (int)adjustedZoomLevel), new Rectangle(0, 0, 30, 30), spriteColor); } } } //END DYNAMIC OBJECTS //INTERFACE BEGIN for (int i = UI.DisplayUI.UIDisplayList.Count - 1; i >= 0; i--) { if (UI.DisplayUI.isFocused == true & i == 0) { UI.DisplayUI.UIDisplayList[i].draw(spriteBatch, Color.White); } else { UI.DisplayUI.UIDisplayList[i].draw(spriteBatch, Color.Gray); } } spriteBatch.Draw(UI.DisplayUI.MouseTexture, new Rectangle(mouseState.X, mouseState.Y, 20, 20), new Rectangle(0, 0, 30, 30), Color.White); spriteBatch.End(); base.Draw(gameTime); } float lerp(float p1, float po, float t) { return (1 - t) * po + t * p1; } and the arguments for the Draw function is : (Texture, Destination rectangle, Origin Rectangle, Color); this is done with MonoGame (XNA) The zoomlevel is changed in increment of +-1. I really think the problem is contained in this method, everything is perfectly fine, but zooming shifts the position of the screen to the upper right and then clamps back to the lower right, ever shifting up until it clamp back down again. What I've done : Ruled out the fact that it's tile based and may shift everytime new tiles enter the frame Tried to calculate the delta between the last zoom and the current zoom in terms of the rectangle's position, then subtracting it from the position Isolate the problem to a particular function 'center' the coordinate system more accurately to the center of the screen; this has no effect on the issue I really hope it's just something really obvious I missed, spent 6h on this and made 0 progress.
  20. 1024, Those are great points. a light breeze, That's a fair point about levels. It doesn't just have to be levels though. It could also be weapons, spells, consumable items, etc... DavinCreed, That's an interesting idea. I like the idea of there being a dynamic "range" of difficulty that follows the player. The game allows the player sit on the high end or low end depending on their strength.
  21. It seems like we are seeing the same questions showing up in multiple places. We want you to get the best support possible and understanding the best places to ask your questions will help meet that goal. Support requests can be generally broken into three distinct categories: How do I use Corona? I’m having an account related issue. Letting people know about cool things you’re using Corona for. There are several support channels available for you: The Community Forums Emailing support@coronalabs.com The Community Slack Social Media like Facebook, Twitter, Stack Overflow, Reddit, etc. Private messages on all of the above channels Which should I use? If you have account related questions, or a plugin license issue or anything where we need something private (an email address, credit card or we need to reset your password) then emailing support@coronalabs.com is the proper choice. This helps keep your information safe. If you have any questions about the product and in particular if code needs to be shared to help answer your question, you should always use the forums. While forums may seem SO 2000’s, they provide you with some very important features that not only benefit you, but also benefit the community: You have access to developers from around the world to get your answers. You will usually get answers faster than waiting for the Corona Staff to be online. The forums are a great knowledge base because it’s searchable. You can search the forums (or use Google since it indexes the forum posts) for your question before you ask and get an answer right away. If your question can’t be found, then ask. Once answered, other developers when they have your question can find your answer. This concept is so important, that we specifically discourage 1 on 1 messages to support. Many questions relate to how to do things like make a character jump or spawn monsters in an RPG. These questions are best answered by people who are using the product, not building the product. We are great at answering questions about how a particular API works, but when it comes to game mechanics, our community developers are the best! It should be noted that the first time you post to the forums, it will be held until our staff can review it to make sure it’s not spam. It make take several hours before the staff can review the new posts and approve them. Once your first post is approved, other posts will show up instantly. If you have an awesome game or tool that the community will probably enjoy, let them know everywhere, except to support. Post it on Slack, Twitter, Facebook, Reddit’s /r/gamedev and /r/CoronaSDK. It won’t do much good to email it to support@coronalabs.com or on any private channels, since we will see it on the other channels. Just a couple of other side notes. If you have a confirmed bug, hopefully after trying to solve the issue in the Forums, please use the “Report a bug” link at the top of the Forums page. If you see an issue with our documentation, there is a Report an Issue link at the bottom of the page. Please do not use these to ask for support or help. Use them only for confirmed problems. View the full article
  22. Embassy of Time

    When code just isn't enough...

    Basically, a game of "good samaritan", but on a strategy level. Gain points for doing good things, helping others, etc., but even more points for coordinating such things in a given area and getting more to get involved / making it easier to get involved and get results. Kind of "Pay it forward" meets "The game", to pick two ancient movies Does that make any sense?
  23. The thing most people seem to find surprising is the ratio of costs for successful projects. Development tends to be about 1/3 of the cost, marketing is about 1/3 of the cost, preproduction and post-production support are both about 1/6 of the cost. This holds at many scales. If you're doing a hobby project for a few years, with roughly the equivalent of $100K in your own private time, to be a success you should plan on paying out $100K in a careful marketing campaign, and expect to provide another $50K in your own private time to support the player and patch the game. Hopefully you also invested the enormous time required before developing the game to ensure there is actually a market for the game, and it will have the ability to recover the costs you invested. Similarly, if you've got $5M on development, expect $5M on marketing, $2.5M tinkering and experimenting and doing market research before development takes off in earnest, and another $2.5M supporting players, issuing patches, etc.
  24. One major difference is that games can potentially have enormous uptimes. A player may leave a game running for days or weeks on end, suspended in the background. Unlike other documents where only a few items are loaded, games can load gigabytes of material in a short time, cycling through levels and worlds in rapid order. Memory fragmentation is less of an issue now on machines with so many gigabytes available, but can still happen. Basically what happens is that over time there are little gaps between memory allocations, so while you have a large amount of memory free in aggregate, none of the little gaps is large enough to hold the resource you're trying to allocate space for. Also as mentioned, memory allocation and cleanup takes time. Allocating from the OS is slow for many reasons. One is that the global pools need time to properly interlock with every process on the computer, since potentially some other thread somewhere will allocate at the same time. Another is that memory must be set to 0 for security purposes, and if nothing is available allocation can stall while zeros are written. A carefully written memory manager used in a game can handle those situations. The same thing with releasing, memory systems can be written in a way where destructors and other cleanup code is never called. An apt analogy is to not take out the trash if you're going to demolish a building. Generally these are tasks only needed for major commercial endeavors. Few hobby developers will ever reach the point where they need their own, although many will implement them for their own reasons.
  25. _WeirdCat_

    Weird lighting when translating object

    Theres nothing much to say given first code in vs you multiple normals by model matrix which is bad, either rename it to rotation matrix and pass it as another uniform or stop. You do not.translate normals. THE END.
  1. Load more activity
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!