1. Past hour
2. ## Appropriate questions to ask in interview

Hi guys, I'm a little nervous about this interview that I'm about to go for next week, and I'm planning questions to ask to the employer. I'm not sure if those questions are spot on or offensive? While watching how the game works online, I came up with a few questions: I can see that drawing a line from ship to landing spot was done using a line renderer component, but did you also use a Navigation component to make the ships follow the line to the landing spot? I've also noticed that the line drawn gradually changes to their respective colors. Is there some error checking that happens during that time frame to make sure the color of the ship matches the color of the landing spot? I'm applying for LootKit Studios interview, and they have this game already established for the PC called Cosmic Control. They are looking for an Unity developer. I'm trying to ask questions regarding how their game works. Would it back fire on me in some way or does it show that I'm interested in the project?
3. ## What happened to the rasterization stage? I can't even draw a triangle!

= {} doesn't give you defaults. You probably want CD3DX12_<state object type>(D3D12_DEFAULT) from d3dx12.h. Not sure if that's the problem, but it's the first thing that jumped out to me.
4. ## Special Effects For Games

Unique Toon Projectiles Vol.1 - Showcase Cartoon projectiles are awesome! Had a blast creating this package, check it out! WebGL Demo Asset Store Patreon Enjoy & Thank you!
5. Today
6. ## Question about making meshes for spritesheets

Er, actually, I misunderstood slightly. Listen to Zakwayda

9. ## Orchestral/Cinematic Music Composition (looking for feedback)

https://www.youtube.com/watch?v=28K0oF-xZvU Song Title: "Alchemy" Composed and produced by EL PRASO 2019 Graphics: The Alchemist in Search of the Philosopher's Stone, by Joseph Wright, 1771 ________ #orchestral #instrumental #elpraso
10. ## Question about making meshes for spritesheets

This may be in part a repeat of what Irusan said (I'm not sure). Assuming I'm understanding your question correctly (which I may not be), you don't need to rely on eyeballing to get the results you want. You can compute exact dimensions (e.g. for mesh data or transform scaling) by computing the aspect ratio of the source graphic and creating quads with the same aspect ratio (your mention of dividing width by height hints at this). That may seem obvious I suppose, so apologies if I'm misunderstanding the question. There are various ways you could do it. You could use multiple meshes, as you mentioned. That could result in multiple small meshes and an increase in the number of draw calls, but that might not be an issue, depending on the circumstances. Another approach that's fairly common (as far as I know at least) is dynamic batching with streamed mesh data.
11. ## My first OST | Feedback please

Thx so much!) Maybe later i add some new track.

16. ## how do i make 2d pixel games from scratch

I think you can learn C# and OpenGL together. For example you can learn how "for" statement works. You can draw 100 squares instead of writing 100 numbers in the console. OpenGL is just API. I highly recommend to download my example GUI WinForms + OpenGL 3.1 and port examples from this book to C# OpenGL: 2013 - 07 - WebGL Programming Guide - K. Matsuda, R. Lea. Source Code: https://sites.google.com/site/webglbook/ It is excellent book for beginners. Authors explain basics of computer graphics very good. I do not know a book where shaders was explained so good.

21. ## Creating skybox from 6 Resources

Cool, now I understand. So baking reflection probe is basically just rendering it in 6 directions and just save it back on your HDD for further use, right? By the way I've sticked with Texassemble as you adviced and it works great. That's sufficient for my needs and as I'm using it through system("...") in my C++ code it works great. However I have problem with creating diffuse irradiance map. As reference I am using https://learnopengl.com/PBR/IBL/Diffuse-irradiance and https://github.com/TheEvilBanana/PhysicallyBasedRendering/blob/master/Game.cpp#L490. My map convolution looks not as it is supposed. I have black dot on every face. I use 2048x2048 which I render to 256x256 Texture2D and save each face which I then assemble. Below debug image. Up is +Y, Down is -Y, Middle is from the left -X, -Z, +X, +Z. What can I do to fix it? Also it looks like I am rendering same face twice somehow because +(plus) faces looks same like their -(minus) faces. Render to texture method: Vertex shader: Pixel shader:
22. ## The Fire of Ardor - Dungeon Challenge

Looks fantastic from the video, awesome effort, you've made the best part of a lot of games from the late 90s in such a short time!! :) Can't wait to try it.
23. ## Dungeon Crawler Challenge

Quest for the Ban Hammer Entry for Dungeon Crawler Challenge Objective Explore the Lounge basement for the Ban Hammer and return with it to the Lounge. Snail enemies rush the player throwing him into the air potentially knocking him into the water to his death. Use crystals to light your way and mark areas that you have explored. Objective is described by conversing with character in the Lounge level. Controls: Arrow Keys - Move Q - Jump W - Attack (only effective with weapon) Number keys - Interact / Pick up item I - Inventory D - Drop Esc - Menu / Pause Stationary Obstacles Darkness Water Items Various weapons (Ban Hammer, Long Sword, and Club give best range or effectiveness while Dagger has the lowest). Backpack (equip to carry multiple items) Light Crystals (3 kinds with different levels of illumination) Glasses (Illuminate the entire play area when equipped) Various clothing that is just decorative. A few miscellaneous objects placed in levels for decoration. Pixels (credit item drop from enemies with no way to spend or use) Gamedev.net Reference / Easter Egg GD.net logo used on sign to return to Lounge level. Some subtle content references. Known Bugs / Issues The Equipment / Inventory interface is a little quirky. Attempts to equip a weapon that's already in the PC's hand has been known to cause a crash. Drops by enemies are leaving a solid, invisible, collidable space. This space can be jumped over. Occasional crash that is difficult to reproduce which seems related to the collidable space left from enemy drops. Debug functionality needs to be disabled. Dagger and Short Sword weapons are very difficult to fight with. Not a bug as much as a design issue. Can only hold one item in hands at a time leaving no way to make use of a light and weapon at the same time. Backpack can be used to carry other stuff.
24. ## Dungeon Crawler Challenge - Update 6

Quest for the Ban Hammer Entry for Dungeon Crawler Challenge Objective Explore the Lounge basement for the Ban Hammer and return with it to the Lounge. Snail enemies rush the player throwing him into the air potentially knocking him into the water to his death. Use crystals to light your way and mark areas that you have explored. Objective is described by conversing with character in the Lounge level. Controls: Arrow Keys - Move Q - Jump W - Attack (only effective with weapon) Number keys - Interact / Pick up item I - Inventory D - Drop Esc - Menu / Pause Stationary Obstacles Darkness Water Items Various weapons (Ban Hammer, Long Sword, and Club give best range or effectiveness while Dagger has the lowest). Backpack (equip to carry multiple items) Light Crystals (3 kinds with different levels of illumination) Glasses (Illuminate the entire play area when equipped) Various clothing that is just decorative. A few miscellaneous objects placed in levels for decoration. Pixels (credit item drop from enemies with no way to spend or use) Gamedev.net Reference / Easter Egg GD.net logo used on sign to return to Lounge level. Some subtle content references. Known Bugs / Issues The Equipment / Inventory interface is a little quirky. Attempts to equip a weapon that's already in the PC's hand has been known to cause a crash. Drops by enemies are leaving a solid, invisible, collidable space. This space can be jumped over. Occasional crash that is difficult to reproduce which seems related to the collidable space left from enemy drops. Debug functionality needs to be disabled. Dagger and Short Sword weapons are very difficult to fight with. Not a bug as much as a design issue. Can only hold one item in hands at a time leaving no way to make use of a light and weapon at the same time. Backpack can be used to carry other stuff.
25. ## Quest for the Ban Hammer - Dungeon Challenge

My submission for the challenge. Pretty sure there's a number of issues I haven't yet found and there's a lot that needs improvement but the game is playable and winnable. Quest for the Ban Hammer Objective Explore the Lounge basement for the Ban Hammer and return with it to the Lounge. Snail enemies rush the player throwing him into the air potentially knocking him into the water to his death. Use crystals to light your way and mark areas that you have explored. Objective is described by conversing with character in the Lounge level. Controls: Arrow Keys - Move Q - Jump W - Attack (only effective with weapon) Number keys - Interact / Pick up item I - Inventory D - Drop Esc - Menu / Pause Stationary Obstacles Darkness Water Items Various weapons (Ban Hammer, Long Sword, and Club give best range or effectiveness while Dagger has the lowest). Backpack (equip to carry multiple items) Light Crystals (3 kinds with different levels of illumination) Glasses (Illuminate the entire play area when equipped) Various clothing that is just decorative. A few miscellaneous objects placed in levels for decoration. Pixels (credit item drop from enemies with no way to spend or use) Gamedev.net Reference / Easter Egg GD.net logo used on sign to return to Lounge level. Some subtle content references. Known Bugs / Issues The Equipment / Inventory interface is a little quirky. Attempts to equip a weapon that's already in the PC's hand has been known to cause a crash. Drops by enemies are leaving a solid, invisible, collidable space. This space can be jumped over. Occasional crash that is difficult to reproduce which seems related to the collidable space left from enemy drops. Debug functionality needs to be disabled. Dagger and Short Sword weapons are very difficult to fight with. Not a bug as much as a design issue. Can only hold one item in hands at a time leaving no way to make use of a light and weapon at the same time. Backpack can be used to carry other stuff.
26. ## c# console snake game

I ran your project but I do not see the snake head which moves to the right. I see three problems in your code: You need to call drawing from the Form1_Paint() method You do not call the Invalidate() method in the timer1_Tick() method You have too big offset for the snake head: Rectangle rect_green = new Rectangle(340 + x, 280 + y, 10, 10); Rectangle rect_black = new Rectangle(330 + x, 280 + y, 10, 10); Default size of windows is 300x300. I solved these problems: using System; using System.Drawing; using System.Windows.Forms; namespace SnakeByPhil_WinFormsGDI { public partial class Form1 : Form { public Form1() { InitializeComponent(); CenterToScreen(); } int x = 0, y = 0; private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); SolidBrush greenBrush = new SolidBrush(Color.Green); SolidBrush blackBrush = new SolidBrush(Color.Black); Rectangle rect_green = new Rectangle(20 + x, 20 + y, 10, 10); Rectangle rect_black = new Rectangle(10 + x, 20 + y, 10, 10); g.FillRectangle(greenBrush, rect_green); g.FillRectangle(blackBrush, rect_black); greenBrush.Dispose(); g.Dispose(); } private void timer1_Tick(object sender, EventArgs e) { if (x >= 340) { x = 340; } x += 5; if (MouseButtons == MouseButtons.Left) { } Invalidate(); } } }
27. ## DoF in Graphics Gems from CryENGINE 3 (Siggraph 2013)

Ok in this case there should probably be some maximum COC radius during the first pass to avoid that the bokeh's "dot pattern" (slide 38, left image) drifts too much apart for the 3x3 sampling in the second pass. Have not seen any max radius being mentioned in the slides, though. Thanks! I will take a look at this paper! So k is basically chosen based on half res dimensions and this max COC radius. I see. In this case the implementation is straightforward. I was a bit afraid there is another "diploma thesis" behind their "custom bilateral filter" ;-) Yeah you're so right, a LOT of room for interpretation. If I find out more I will definitely share it here. Yeah, just want to understand everything as detailed as possible and really appreciate the discussion. I am not here to deny somebody knowledge or skill. Thanks!

29. ## c# console snake game

I don't think there's a problem using the console. I think it's an interesting challenge. Plus also haven't you already written the GDI one? ed: ok after a quick look, it doesn't seem that much fun. It's just too slow without some advanced console IO.
30. ## Question about making meshes for spritesheets

You need to scale your quads to the actual pixel size of your screen. 1x1 in render space is not necessarily square on your screen.
31. ## I study these books for GameDev

Updated 2/16/2019 Behaviour-Driven Development: 2014 - 10 - BDD in Action: Behavior-driven development for the whole software lifecycle - John Ferguson Smart. Source Code: https://www.manning.com/books/bdd-in-action Test-Driven Development: 2013 - 12 - The Art of Unit Testing: with examples in C# - 2nd Edition - Roy Osherove. Source Code: https://github.com/royosherove/aout2 Writing Games: 2010 - 06 - C# Game Programming: For Serious Game Creation. Source Code: 9781435455566.zip (121 MB) 2015 - 09 - Build your own 2D Game Engine and Create Great Web Games Using HTML5, JavaScript, and WebGL by Kelvin Sung, Jebediah Pavleas, Fernando Arnez, and Jason Pace. Source Code: https://github.com/apress/build-your-own-2d-game-engine 2017 - 10 - Pro HTML5 Games - 2nd Edition - A.R. Shankar. Source Code: https://github.com/apress/pro-html5-games-17 2018 - 04 - Unity in Action - 2nd Edition - J. Hocking. Source Code: https://www.manning.com/books/unity-in-action-second-edition Computer graphics: 2013 - 07 - WebGL Programming Guide - K. Matsuda, R. Lea. Source Code: https://sites.google.com/site/webglbook/ 2013 - 06 - Computer Graphics Principles and Practice - 3rd Edition - John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley. Source Code: http://cgpp.net/about.xml Multiplayer: 2015 - 05 - Multiplayer Game Development with HTML5 - Rodrigo Silveira. Source Code: https://www.packtpub.com/code_download/21527 2015 - 10 - Multiplayer Game Programming - &nbsp;Josh Glazer, Sanjay Madhav. Source Code: https://github.com/MultiplayerBook/MultiplayerBook

34. ## Rewarding the player's efforts: The stock room

Just make sure you give 'me' your top fan an exclusive rewards room.
35. ## Rewarding the player's efforts: The stock room

Simple enough feature, but I'm sure the rewards will be popular with players. Interesting reading how you got it working with a gamepad!
36. ## Music composer and producer looking for feedback.

Thanks so much for the feedback, Alec! I'll definitely keep what you've said in mind.
37. ## c# console snake game

well I have decided to take observers advice and work on a winform gdi+ snake game. I am able to make the snake head to move to the right in the screen. here is my code so far, I am just starting on my project. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void Form1_Paint(object sender, PaintEventArgs e) { } int x = 0, y = 0; private void timer1_Tick(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); SolidBrush greenBrush = new SolidBrush(Color.Green); SolidBrush blackBrush = new SolidBrush(Color.Black); Rectangle rect_green = new Rectangle(340 + x, 280 + y, 10, 10); Rectangle rect_black = new Rectangle(330 + x, 280 + y, 10, 10); g.FillRectangle(greenBrush, rect_green); g.FillRectangle(blackBrush, rect_black); if (x >= 340) { x = 340; } x += 5; greenBrush.Dispose(); g.Dispose(); if (MouseButtons == MouseButtons.Left) { } } private void Form1_MouseDown(object sender, MouseEventArgs e) { } } }
38. ## GameDev - Dungeon Crawler Challenge - Part 4 (RIP)

That's a shame I really liked your take on the prior games you've done. Hopefully next challenge we can all finish. I had way too many things come up which made it hard to stick to a steady schedule, and I'm sure we all cannot devote 8 hours a day.
39. ## Mr Boom's Firework Factory

Mr Boom's Firework Factory is a fast paced puzzle game written in Unreal Engine 4 with a combination of Blueprints and C++. Through many levels of mayhem, you'll discover the secret behind the firework factory. This game is approaching the point where a complete vertical slice can be submitted to various distributors such as steam. I welcome contributors, please note that this is a hobby project and there is at yet no agreement as to profit sharing etc.
40. ## Rewarding the player's efforts: The stock room

41. Yesterday
42. ## Music composer and producer looking for feedback.

Great stuff, I'm glad you're going to become a part of our small community, Chase! Like you said, I enjoyed the amount of variety in your songs. There was a new experience in each one. Here are some of my notes: - I think the aspect you should work on most is dynamics. Control the volume automation and velocity of each instrument over time in the song and your songs will go from okay to professional. - Try expanding the stereo width by adjusting panning. Songs like "Vertigo" and "Onward" are too mono for me. Take a look at a random song you like and see which instruments are panned where. Using panning creates excitement in the listener's ear. In conclusion, you should make an effort to create as much stereo width as possible. - Your piano tracks such as "I Opened My Eyes" and "The Edge" seemed to be drawn in a piano roll. I recommend recording your self playing to get a human performance. Even if you are not a great piano player, you can also adjust things later. I think my favorite is "Snowdrop". You presented your message without letting too much stuff get in the way. I wish you good fortune on your path to become a composer!
43. ## Creating skybox from 6 Resources

That's the typical approach for generating reflection probes: render in 6 directions, each time rendering to a single face of the cubemap as the render target. It's not strictly necessary to create a cubemap in the end, it's just the most convenient format since there's dedicated hardware support.

45. ## Axis Aligned Rectangle Collision Handling

Yes that's correct, I am calculating a Minimum Translation Vector and using it to move the objects out of collision so that they are resting against one another. What I would like to know is if the way in which I calculate this displacement vector is valid. As part of this calculation I look at each objects position to determine the direction of displacement. Is comparing positions like this a valid way of calculating the MTV or is it a flawed approach?
46. ## DX11 (Video inside) Weird transparency issue with procedurally generated mesh

I'm having a weird issue with what appears to be transparency, but I'm not sure exactly what's causing it. Parts of the mesh get hidden by other parts of the mesh that are supposed to be behind it, however it only happens at certain camera angles. Here is a brief video of that happening. The towers get hidden by the floor at certain angles of the camera. Here is some code from the rasterizer states and the mesh generation. D3D10_RASTERIZER_DESC rasterizerState; rasterizerState.CullMode = D3D10_CULL_BACK; rasterizerState.FillMode = D3D10_FILL_SOLID; rasterizerState.FrontCounterClockwise = false; //.... D3D10_BLEND_DESC BlendState; ZeroMemory(&BlendState, sizeof(D3D10_BLEND_DESC)); BlendState.BlendEnable[0] = TRUE; BlendState.SrcBlend = D3D10_BLEND_SRC_ALPHA; BlendState.DestBlend = D3D10_BLEND_INV_SRC_ALPHA; BlendState.BlendOp = D3D10_BLEND_OP_ADD; BlendState.SrcBlendAlpha = D3D10_BLEND_ZERO; BlendState.DestBlendAlpha = D3D10_BLEND_ZERO; BlendState.BlendOpAlpha = D3D10_BLEND_OP_ADD; BlendState.RenderTargetWriteMask[0] = D3D10_COLOR_WRITE_ENABLE_ALL; struct MeshVertex { XMFLOAT3 pos; XMFLOAT2 uv; }; //allocate space for the mesh MeshVertex* floorMesh = new MeshVertex[bmpWidth*bmpHeight]; //load the height map texture SoftwareBitmap::Bitmap heightMap(pathToHeightmap); int bmpHeight = heightMap.GetHeight(); int bmpWidth = heightMap.GetWidth(); //set vertecies in a grid and trasnfer height data to vertex's y value UCHAR* source_mem = (UCHAR*)heightMap.GetData(); for (int xdim = 0; xdim < bmpWidth; xdim++) { for (int zdim = 0; zdim < bmpHeight; zdim++) { float height = source_mem[xdim + zdim*heightMap.GetPitch()]; float color = (height)/ 255.0f; floorMesh[xdim + zdim*bmpWidth] = { XMFLOAT3((float)xdim, height , (float)zdim), XMFLOAT2(float(xdim)/ bmpWidth, float(zdim)/ bmpHeight)}; } } Any ideas why this might be happening?

48. ## The Fire of Ardor - Post Mortem (Dungeon Crawler Challenge))

Hi, thanks for your reply. I recorded a video of the game (full playthrough, so spoilers ahead -- you'll probably notice that I know the dungeon layout...) and uploaded it to Youtube: The Windows version will have to wait...
49. ## Axis Aligned Rectangle Collision Handling

I see. There are some interesting considerations here, but since it's off topic, I'll just mention that if you want or need to pool vector objects, you could possibly make them static members of the 'Rectangle' class, or perhaps even implement a general-purpose pooling system (which might be preferable if you find yourself creating temporary vectors often). In any case, unless I'm missing something (which I may be), there's probably no need for them to be instance members. h8CplusplusGuru's response may include all the info you need, but regarding the rest of your post, it's not a given that you need to take velocity into account. It really just depends on the circumstances. In some contexts, a discrete test may be adequate. The only thing I'll mention with respect to tunneling (and you may have already thought of this) is that considering object dimensions and speed isn't necessarily sufficient; you may also need to ensure there's an upper bound on time deltas. Although I could be misinterpreting your code, it looks like you're essentially implementing a 'minimum penetration' algorithm, which is a valid way of resolving intersections, generally speaking. As discussed earlier, with this approach you can get 'wrong' results that are different than what a continuous test would return, but whether that's an issue or not is context-dependent (see earlier in the thread for some discussion on this).
50. ## My first OST | Feedback please

Hello! Thank you very much. I am very glad to see your feedback. If you have any ideas how to do it better, I would like to hear it. I could give you a project and if you have some time, I would work with you. I understand that you probably don't have a time, but just 5 minutes and I would be very grateful)
51. ## Axis Aligned Rectangle Collision Handling

Here is the algo I used on a platformer recently. I am unsure if the following line is 100% correct as I haven't done as much testing as I'd like however it all seems to work just fine. Note that this only considers that the player has a velocity, not both objects. I haven't considered two velocities yet, though maybe this could be a starting point for you. if (xD < yD && xDV.y() ){} //unsure if this is the correct way to determine outcome The complete routine is as follows: void collisionCallback(btCollisionObject* obj1, btCollisionObject* obj2) { CollisionPhysics::CollisionObject* objA = static_cast<CollisionPhysics::CollisionObject*>(obj1->getUserPointer()); CollisionPhysics::CollisionObject* objB = static_cast<CollisionPhysics::CollisionObject*>(obj2->getUserPointer()); if (objB->getCollisionID() == COLLISION_IDS::ID_PLATFORM) std::swap(objA, objB); if (objA->getCollisionID() == COLLISION_IDS::ID_PLATFORM) { if (objB->getCollisionID() == COLLISION_IDS::ID_PLAYER) { //a collision between these two objects has occured //platform collides with player, uncollide player; GameObject* player = dynamic_cast<GameObject*>(objB); PlatformObject* platform = dynamic_cast<PlatformObject*>(objA); btBox2dShape* playerBox = dynamic_cast<btBox2dShape*>(player->getCollisionObject()->getCollisionShape()); btVector3 playerHalf = playerBox->getHalfExtentsWithoutMargin(); btBox2dShape* platformBox = dynamic_cast<btBox2dShape*>(platform->getCollisionObject()->getCollisionShape()); btVector3 platformHalfNoMargin = platformBox->getHalfExtentsWithoutMargin(); btVector3 platOrigin = platform->getTransform().getOrigin(); btVector3 playerOrigin = player->getTransform().getOrigin(); // determine what quadrant the player object is in compared to the platform btScalar polarityX = 1; btScalar polarityY = 1; btVector3 playerVel = player->getVelocity(); btVector3 platformQuadrantPoint(0, 0, 0); if (playerVel.y() > 0) { //going up platformQuadrantPoint.setY( platOrigin.y() - platformHalfNoMargin.y() ); polarityY = 1; } else {//going down platformQuadrantPoint.setY( platOrigin.y() + platformHalfNoMargin.y() ); polarityY = -1; } if (playerVel.x() > 0) { platformQuadrantPoint.setX( platOrigin.x() - platformHalfNoMargin.x() ); polarityX = 1; } else { platformQuadrantPoint.setX( platOrigin.x() + platformHalfNoMargin.x() ); polarityX = -1; } //now get both possible outcomes and then determine which one is correct btVector3 theoreticalPositionY, theoreticalPositionX; btVector3 playerPrevOrigin = playerOrigin - playerVel; //come up with y-edge position //we know the desired y-coord: btScalar y = platformQuadrantPoint.y() - polarityY * playerHalf.y(); btScalar m = 0; if (playerVel.x() != 0) m = (playerVel.y() / playerVel.x()); btScalar x = 0; if (playerVel.x() != 0 && m) x = (y - playerPrevOrigin.y()) / m + playerPrevOrigin.x(); else x = playerOrigin.x(); theoreticalPositionY = btVector3(x, y, 0); //now come up with x-edge position //we know the desired x-coord: x = platformQuadrantPoint.x() - polarityX * playerHalf.x(); if (playerVel.y() != 0 && m) y = m * (x - playerPrevOrigin.x()) + playerPrevOrigin.y(); else y = playerPrevOrigin.y(); theoreticalPositionX = btVector3(x, y, 0); btScalar deCollide = 0.5f; //get distance to each theorypoint, the furthest btVector3 xDV = (theoreticalPositionX ) - playerPrevOrigin; btVector3 yDV = (theoreticalPositionY ) - playerPrevOrigin; btScalar xD = xDV.length(); btScalar yD = yDV.length(); btVector3 finalPosition; if (xD < yD && xDV.y() ) { finalPosition = theoreticalPositionX - btVector3(polarityX* deCollide, 0, 0); player->stopX(); } else { finalPosition = theoreticalPositionY - btVector3(0, polarityY * deCollide, 0); if (polarityY > 0) { player->startFalling(); } else { player->stopFalling(); } player->stopY(); } btTransform trans; trans.setIdentity(); trans.setOrigin(finalPosition); player->setTransform(trans); } } } Let me know if this is useful and you have any questions or come up with a two-velocity method.
52. ## My first OST | Feedback please

Hey, Thanks for sharing this for feedback! Some ideas: - Your trombone crescendo patch gets pretty tiresome after a while. I'd change that much sooner as you're giving the listener about a solid minute of having that repeat over and over. - Your piece lacks a defined melody. Instead it's a several segmented grooves or ideas. Until about 2:08. And now that same issue you had with the trombone crescendo repetition is now happening with your violin patch. - I think you can transition from segment to segment in a bit better method and manner. There's some good ideas but you just have to be careful not to make these so repetitive that they begin to annoy your player/listener. Also in your mix I'm not hearing a cohesive sound. Some instruments are pretty dry while others have a lot of reverb on them and this destroys the sense of space and environment of the actual recording itself. Finally, this track wouldn't work "as-is" if you wanted it to loop. I'd work on that a bit more. To me it feels like you could split these track up a bit more into smaller themes and really spend some time developing them. I hope that helps! Thanks, Nate
53. ## Axis Aligned Rectangle Collision Handling

Yes, these variables are member variables so that I do not instantiate new vectors each time the resolveCollision() function is called, which may be many times per frame. It is for performance reasons. I do not understand what you mean about the need to take velocity into account. Would you please expand on that? Yes that's right I do handle collisions discretely, they are resolved after the collisions have already occurred. In terms of potential object tunneling this is not a problem for me as if it does occur I will adjust the objects dimensions and speed so that it does not. Is my approach to resolving collisions flawed or is it acceptable? I'm not sure if it is a problem but I have a feeling that taking the objects positions into account to determine the direction of displacement out of collision is wrong somehow or a bad way of doing it. It works of course but is it "proper"?

• ### GameDev Challenges

Open Group  ·  86 members

• ### For Beginners

Public Group  ·  1 member

• ### Unreal Engine Users

Open Group  ·  4 members

• ### Optimization Strategy

Open Group  ·  1 member

• ### Publishing and Monetization

Open Group  ·  1 member

1. 1
Rutin
24
2. 2
3. 3
4. 4
5. 5

• ### Member Statistics

• Total Members
253926
• Most Online
6110