Jump to content
    1. Past hour
    2. glararan

      Device lost

      Ok so problem was in QVulkanWindow implementation of Qt framework. Because I was unable to activate debug callback I wrote my own implementation which works.
    3. Today
    4. LorenzoGatti

      Graphics and Art Style

      Regarding the purpose of this space, think about people: the old version shows a much higher time and money budget for gardening (those flowers don't grow themselves) while the revised version shows a rather lower effort (neat but plain). Whose courtyard is it? Who is the gardener? Design advice: Brick textures are still too repetitive the round table (?) in the middle is too large for its space, put more pavement around it (and compensate it with more grass around the walls, particularly in the corners by the flowering trees) The columns are extremely inappropriate. If you insist about them, they should end below the balcony; arches or pillars would probably look better.
    5. on any location in the Source Code like in my example?
    6. #include does exactly that - copies the source code out of the requested file and pastes it at that location.
    7. For standalone games, gamejolt.com or itch.io are great. I’ve been using gamejolt, and I highly recommend it.
    8. LorenzoGatti

      Improve Property System

      Post code to let us understand what you are talking about. To begin with, what it is that you are calling a "property" or a "setting", what the corresponding classes do (if they are slow, they are nontrivial), and what is "editor mode" .
    9. Which the compiler then composes? Like in PHP? #include <stdio.h> require `inc_struct_declarations.c`; require `inc_functions.c`; int main() { require `inc_var_declarations.c`; require `inc_keyb_events.c`; require `inc_game_logic.c`; require `inc_gfx_output.c`; return 0; }
    10. Maybe you should find a publisher. If your game is great they share with you their know-how for a percentage of revenue. Great Google strategy for visibility in long-term is very important too. I mean for keywords related to your game. For example "strategy online football game". Marketing and active community is key to success. Facebook Ads. Contest with prizes, Facebook Ads, collecting feedback - everything from this is expensive but without it will be very hard. I do not know how it works but I know that also good relations with Google Play and iOS Store are very important. I am sure that mobile game devs are positioning their games in stores. The hard topic at all.
    11. Hi everybody, Me, Xylvan, announces Xilvan Design are building 3D games. Since 1993, our kindly official gaming related pages. (please click on each links, download games & bookmark the pages): Soul of Sphere Platinum v4.37. Age of Dreams:Abyss of Atlantis v1.5. Lights of Dreams IV: Far Above the Clouds v9.27. Candy World II: Another Golden Bones v9.47. Candy Racing Cup: The Lillians Rallies v3.01. Candy World Adventures IV: The Mirages of Starfield v7.57. Candy to the Rescue IV: The Scepter of Thunders v7.17. Candy in Space III: A dog to the Space v5.47. Candy's Space Adventures: The Messages from the Lillians v17.47. Candy's Space Mysteries II: New Mission on the earth-likes Planets v7.47 New Xilvan Design Websites. Xilvan Design's Youtube Channel. Friendly, Alexandre L., Xilvan Design.
    12. Gnollrunner

      OOP is dead, long live OOP

      I think there is a difference between a bug, one for which the cause is understood and "unexplained behavior". I used that combination of words intentionally. IMHO leaving the latter in your code is asking for trouble. I've seen people bitten by this many times. If I don't understand why something is happening I go find out. I have even had occasions where I seemingly fixed something but didn't understand why my change had fixed the problem. In that case I will go put the bug back in and trace it until I understand why it occurred, and if my change really did fix it or if it simply masked some manifestation of the bug. I'm a firm believer in understanding your code as much as possible. I don't like to tell someone how to do their job, but on the other hand if they are asking for my help, I refuse to waste my time chasing a possible ghost. If someone can't fix their own code and need me to help them, then I'm in command. If they don't like it, they can find someone else to help them, however in reality I've never had any push-back on that as people tend to appreciate when you are spending your time helping them.
    13. Hodgman

      OOP is dead, long live OOP

      I'm getting my indie game ready to exhibit at PAX at the end of October, so any free would-be-blog-writing-time is probably going to get eaten up by shader-code-polishing instead until then
    14. frob

      FXML and CSS in JavaFX

      They are independent. FXML is a markup language used for JavaFX. Since you are trying to build a GUI in JavaFX you'll probably to use it. FXML describes what UI elements like labels and text boxes should appear on the screen, and where they belong. FXML allow you to change the layout without recompiling the code. You can design the application to manually place the elements in code if you prefer. You can define your dialog boxes and window layouts by hand although it is much faster using IDEs that have tools to let you position your UI elements easily using FXML files. CSS is a style tool for web pages. It is often abused in corporate environments because marketers and artists refuse to accept that CSS is often overridden by users and script blockers, and can be modified or completely ignored by web browsers and user. JavaFX allows you to include styles from CSS so that your application can have a visual style that matches your web pages. Mostly it was added to make marketers happy for consistent branding, and they are a thorn in the side of developers forced to use them.
    15. jbadams

      Free Images?

      Have you had a look at the "free art assets" topic pinned in this forum? It has links to some good options.
    16. Rutin

      How to start for newbie?

      I probably should've posted some good C# resources! My apologies! Thanks for posting the Unity link @babaliaris I learned C# simply off of references as I come from C++, but these are the resources I would strongly suggest looking into: C# Book: C# 7.0 in a Nutshell - http://shop.oreilly.com/product/0636920083634.do MSDN: https://docs.microsoft.com/en-us/dotnet/csharp/ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/ https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/ https://docs.microsoft.com/en-us/dotnet/csharp/quick-starts/ I hope this helps!
    17. RidiculousName

      Free Images?

      Could someone point me to a website with free images I could legally use in a game? I would like to choose completely free-to-use images just in case I may want to earn money from the game somehow (very small chance, I know).
    18. Yesterday
    19. L. Spiro

      Creating a language - Static Libraries

      You do some work when creating the .EXE, as you have to build your import and export tables, but that is all done via your own custom routines if it is your own custom language and compiler. Once you have a .EXE your work is done. Windows will use the offset table to write the correct function addresses into the correct locations in your code (or commonly a simple array of function addresses will be updated) based off your import table. This is not your run-time task. There is no black magic on your side. L. Spiro
    20. babaliaris

      How to start for newbie?

      First of all you must know at least the basics of programming. Then your best option like @Rutin said, is to start with unity and c# . Unity is great and has amazing tutorials and support for you to learn. You just need to be a little familiar with object oriented programming and you are good to go! A very dissent video series for c#: The New Boston C# Series (Of course it's always better to buy a good book to read. Books are always better for learning). You can find some books here. To start learning with unity visit this page and you are good to go! Don't forget to navigate more on the unity web site, they have awesome stuff to teach you! I think this is the easiest way to start with game development.
    21. Iris_Technologies

      Creating a language - Static Libraries

      I thinked about the fact that adding a procedure to the import table of a .exe could be the answer. But i didn't think on it pretty well. So, you are telling me basically that, if i add the demangled function name and the base RVA, which i could extract from the .dll without needing to relocate, on the import table, when the .exe is loaded into memory, the RVA of the imported functions will be relocated by the OS loader and i don't need to do any black magic?
    22. Distance Fields explains an O(n) algorithm that calculates 2D distance fields by operating on rows and treating samples as overlapping quadratic parabolas shows ideas to visualize distance fields, generate tiling noise and some use-cases of distance field functions wayback-archive 2018 XDC - Khronos slides from XDC (X.Org Developer’s Conference) Vulkan timeline semaphores allow increasing a 64-bit value on signal and wait on “greater than” a target value unified system for CPU and GPU waits look at how to implement them in the drivers many more talks about OS-level graphic topics wayback-archive Mesh Shader - Implicit Subdivision on the GPU compute shader based adaptive GPU tessellation technique using Mesh Shaders on Turing up to ~25% rendering time reduction at high tesselation rates Introduction to Real-Time Ray Tracing with Vulkan explains the Vulkan ray-tracing extension contains an overview of the ray tracing pipeline, the new shader types and how to interact with the API shows how to generate the acceleration structure, update and compact it as required wayback-archive Deep Compositing and Reprojection explains the mathematical foundation behind deep composition that allows compositing of volumetric effects such as fog wayback-archive Rendering the Moana Island Scene Part 2: A production scene from a hobby renderer walkthrough of the steps required to render the Moana scene in the authors custom path tracer uses a binning scheme on rays combined with on-demand geometry loading to be able to render the scene on a 32 GB RAM machine wayback-archive Project: SDL render batching discusses a change to the SDL render back-end that will batch CPU rendering commands to reduce the number of draw calls required this will improve performance significantly wayback-archive Gfx-hal Tutorial part 2: Vertex buffers next part of the series on gfx-hal usage (low-level graphics API for Rust) adds support for loading and using vertex buffers wayback-archive Ripples For Days explains a water ripple system implementation that uses a top-down projection of ripples onto the water surface in a separate rendering pass wayback-archive distance functions updated SDF function for a capped cone, round cone, and an ellipsoid wayback-archive If you are enjoying the series and getting value from it, please consider supporting this blog. Support this blog Read more
    23. For longer-running games i recommend a new server/gameworld every five years. Regarding your question, i don't know exactlyhow the unlock-system works right now, but just locking items for purchase(and not usage) should fix the problem.
    24. Hello! I'm trying to understand how to load models with Assimp. Well learning how to use this library isn't that hard, the thing is how to use the data. From what I understand so far, each model consists of several meshes which you can render individually in order to get the final result (the model). Also from what assimp says: One mesh uses only a single material everywhere - if parts of the model use a different material, this part is moved to a separate mesh at the same node The only thing that confuses me is how to create the shader that will use these data to draw a mesh. Lets say I have all the information about a mesh like this: class Meshe { std::vector<Texture> diffuse_textures; std::vector<Texture> specular_textures; std::vector<Vertex> vertices; std::vector<unsigned int> indices; } And lets make the simplest shaders: Vertex Shader: #version 330 core layout(location = 0) in vec3 aPos; layout(location = 1) in vec3 aNormal; layout(location = 2) in vec2 aTexCoord; uniform vec3 model; uniform vec3 view; uniform vec3 projection; out vec2 TextureCoordinate; out vec3 Normals; void main() { gl_Position = projection * view * model * vec4(aPos, 1.0f); TextureCoordinate = aTexCoord Normals = normalize(mat3(transpose(inverse(model))) * aNormal); } Fragment Shader: #version 330 core out vec4 Output; in vec2 TextureCoordinate; in vec3 Normals; uniform sampler2D diffuse; uniform sampler2D specular; void main() { Output = texture(diffuse, TextureCoordinate); } Will this work? I mean, assimp says that each mesh has only one material that covers it, but that material how many diffuse and specular textures can it have? Does it makes sense for a material to have more than one diffuse or more that one specular textures? If each material has only two textures, one for the diffuse and one for the specular then its easy, i'm using the specular texture on the lighting calculations and the diffuse on the actual output. But what happens if the textures are more? How am i defining them on the fragment shader without knowing the actual number? Also how do i use them?
    25. Rutin

      How to start for newbie?

      If you're wanting to pickup 3D game development then a very good option would be learning C# and Unity.
    26. Welcome! You have a few options. You can either build on your Python with PyGame: https://www.pygame.org/news You can look into GameMaker Studio 2 which has drag and drop, but slowly get into their scripting language which is c styled 'GML': https://www.yoyogames.com/gamemaker Beyond that, there is always C# and Unity if you're up to it. I would suggest PyGame or GameMaker Studio 2 using GML. Once you get some 2D games done, look into Unity if you want to jump into 3D.
    27. Rutin

      What's a frog TODO?

      Looking forward to your progress!
    28. L. Spiro

      Creating a language - Static Libraries

      I don’t see the problem. If your binaries are meant to run on Windows (regardless of the language that compiled them) then you typically will end up with a standard .EXE which will be loaded and set to run like any other. This means you will necessarily be linking to the standard Windows libraries and the offsets will be fixed during run-time by Windows after loading your file. Even if you have some other plan and you don’t want to call the Windows provided GetProcAddress(), implementing it manually is fairly easy. Also note that the addresses of the most crucial Windows API functions are static across all executables of a platform (x86 or x64), so parsing just enough to get at those functions is even more trivial, but again I am not sure of the necessity. If you plan to run on Windows then you will make a .EXE file and all the work is done. L. Spiro
    29. alvaro

      Quaternions, how does ki = j?

      You still haven't given me the list of axioms you are starting with, and without that I can't even start to help you.
    30. Greetings fellow citizens of the underground, this is Subtyrannya, a dystopian merchant simulator with lovecraftian vibes, mystery and a whole lot of secrets for you to discover. You play as a lone merchant with his vehicle, driving trough the apocalyptic underground on the search for wealth, knowledge and one or two other things. Artist needed I am in need of a 2D - Artist who can produce isometric landscapes and locations or who can make basic portraits and sprites of objects. Almost all of the game will play out below ground, so expect to draw a lot of caves and rocks. Nativ english speaking Playtester needed As my Game is mostly described in text, I am in dire need of a english speaking playtester, that I can send all my documents to go trough once or twice to look for grammar, spelling and weird sentences. I am currently a month into developement and working on a short demo, which I update about every week. Feel free to take a look at it, on its itchio-page: https://korbohned.itch.io/subtyrannia If you are interested in making something for the fun of it, (Not sure if there will be anything sold in the end), feel free to hit me up. Just add me on discord: KorbohneD#9014
    31. supermikhail

      Help choosing an engine

      I actually got back into libGDX trying to follow challenge videos by a guy on Youtube, who was working in Processing. I'm not sure why. Maybe I was more afraid of learning new frameworks than now. Or I wanted to work in something more gamedev-oriented. The point is, I don't think I had many translation problems. Which is another argument for the position that it's not the platform but what you do with it.
    32. Greedy Goblin

      State Changes

      Games usually (if not always) require some way to manage state changes... and I'm sure most of you (if not all of you) know far more about State Machines than I do. And I'm certain that I could learn a heck of lot from reading up about the subject to build a state machine that works beautifully and makes my code look amazing etc etc. Pfft.. never mind all that... I'm building this game 'off the cuff' as it were, making it up as I go along and following the principle of 'I build what I need when I need it and only insofar that it adequately fulfils the requirements at that time'. I don't try to plan ahead (not in any granular sense anyway), I'm not building a reusable one-size-fits-all game engine, I'm not trying to make the code beautfiul, or win any awards or even make any money from the darn thing. It just needs to perform well enough for what I want it to do. So my immediate requirement is that I have a way to manage the player switching from walking to running to whatever. If I can use it elsewhere for other things then great... and I'll be honest, I do like reusable code so I tend to naturally sway toward that. What I'm trying to avoid is getting myself stuck in a rut, spending weeks/months deliberating over the smallest details because it's got to be 'perfect' and then realising I've still got 99.5% of the game to build! Quick and dirty is OK in my world. I often approach things from a top-down perspective. This boils down to: 'How do I want to instruct the computer to do x, y or z?' So for this particular requirement, how do I want to instruct the game that the player can change from walking to running and running to walking, or walking/running to falling (assuming I make that a player state - which I do), but not from sleeping to running for example? Hell, I don't even know all the states that I want yet, but these are the ones I have a feel for so far: Walking Running Skiiing Driving Falling Drowning Sleeping Eating Introducing 'When' I thought it might be nice to be able to write something like this in my player setup: // Configure valid player state transitions When( this.playerState ).changes().from( PLAYER_STATES.WALKING ).to( PLAYER_STATES.RUNNING ).then( function () { } ); When( this.playerState ).changes().from( PLAYER_STATES.RUNNING ).to( PLAYER_STATES.WALKING ).then( function () { } ); When( this.playerState ).changes().from( PLAYER_STATES.WALKING ).to( PLAYER_STATES.SKIING ).then( function () { } ); When( this.playerState ).changes().from( PLAYER_STATES.SKIING ).to( PLAYER_STATES.WALKING ).then( function () { } ); When( this.playerState ).changes().from( PLAYER_STATES.WALKING, PLAYER_STATES.RUNNING, PLAYER_STATES.SKIING ).to( PLAYER_STATES.FALLING ).then( function () { } ); There's probably a library for something like this out there, but heck, where's the fun in that?! So I create a new 'Stateful' object that represents a state (in this case the playerState) and it's allowed transitions and a 'When' function so I can write the code exactly as above: const Stateful = function () { } Stateful.isStateful = function ( obj ) { return obj.constructor && obj.constructor.name === Stateful.name; } Stateful.areEqual = function ( v1, v2 ) { return v1.equals ? v1.equals( v2 ) : v1 == v2; } Stateful.prototype = { constructor: Stateful, set: function ( v ) { let newState = typeof ( v ) === "function" ? new v() : v; for ( let i = 0; i < this.transitions.length; i++ ) { let transition = this.transitions[i]; if ( transition && typeof ( transition.callback ) === "function" ) { let fromMatch = Stateful.areEqual( transition.vFrom, this ); let toMatch = Stateful.areEqual( transition.vTo, newState ); if ( fromMatch && toMatch ) { // We can only change to the new state if a valid transition exists. this.previousState = Object.assign( Object.create( {} ), this ); Object.assign( this, newState ); transition.callback( this.previousState, this ); } } } }, transitions: Object.create( Object.assign( Array.prototype, { from: function ( vFrom ) { this.vFrom = typeof ( vFrom ) === "function" ? new vFrom() : vFrom; return this; }, to: function ( vTo ) { this.vTo = typeof ( vTo ) === "function" ? new vTo() : vTo; return this; }, remove: function ( fn ) { this.vFrom = this.vFrom === undefined ? { equals: function () { return true; } } : this.vFrom; this.vTo = this.vTo === undefined ? { equals: function () { return true; } } : this.vTo; for ( let i = 0; i < this.length; i++ ) { let transition = this[i]; let fromMatch = Stateful.areEqual( this.vFrom, transition.vFrom ); let toMatch = Stateful.areEqual( this.vTo, transition.vTo ); let fnMatch = fn === undefined ? true : transition.callback == fn; if ( fromMatch && toMatch & fnMatch ) { delete this[i]; } } } } ) ) } function When( statefulObj ) { if ( !Stateful.isStateful( statefulObj ) ) { throw "Argument must be a Stateful object"; } return { changes: function () { return { from: function ( ...vFrom ) { this.vFrom = vFrom; return this; }, to: function ( ...vTo ) { this.vTo = vTo; return this; }, then: function ( fn ) { if ( typeof ( fn ) === "function" ) { this.vFrom = this.vFrom === undefined ? [true] : this.vFrom; this.vTo = this.vTo === undefined ? [true] : this.vTo; for ( let i = 0; i < this.vFrom.length; i++ ) { for ( let j = 0; j < this.vTo.length; j++ ) { statefulObj.transitions.push( { vFrom: typeof ( this.vFrom[i] ) === "function" ? new this.vFrom[i]() : this.vFrom[i], vTo: typeof ( this.vTo[j] ) === "function" ? new this.vTo[j]() : this.vTo[j], callback: fn } ); } } } else { throw "Supplied argument must be a function"; } } }; } } } I drop the aforementioned 'When' statements into my Player setup and remove the old 'If' statements that were previously controlling changes between walking and running and insert the new playerState.set() calls where appropriate. e.g. "run": ( pc, keyup ) => { if ( keyup ) { _this.player.playerState.set( PLAYER_STATES.WALKING ); } else { _this.player.playerState.set( PLAYER_STATES.RUNNING ); } } And it seems to work! (Yes I was actually surprised by that) 😂 TheBerg-StateChanges.mp4 p.s. I've switched to using Bandicam for screen capture as it seems far superior to what I was using previously.
    33. Schlick fresnel should work fine for the clear coat surface of a car. The clear coat basically acts like a layer of clear plastic/glass over the paint, so the same rules apply. Perhaps your light source isn't bright enough? You should also make sure that your specular terms are properly balanced with your diffuse terms. For instance if you omit the 1 / Pi in the Lambertian diffuse BRDF, then your specular will always look too dim (since your diffuse will be too bright).
    34. Ok I will post the code, my computer is slowly doing updates.
    35. Septopus

      A simple language game

      Well, that sounds like a tough/interesting/exciting position to be in. I wish you the best of luck in your next steps. Try to take all my ramblings in the context of your proposed game project, I don't like to be the one giving out life advice. Nobody want's to get that from me. hahaha
    36. After a bit of thinking I found some way, similar to what you mention. This will require some more care on script programmer's side. I added a "cleanup" interface which gets called when I want the object to be destroyed (both C++ & script side, but I can only guarantee C++ side goes away, and script side may be kept alive a little longer). This means I can release all references there instead of counting on destructor or scoped release. So I just do: void cleanup() { @transform = null; @mesh = null; } and because both Transform and Mesh are C++ registered classes, they're released as soon as their refcount reaches 0 and no GC is involved. This is more demanding than just relying on destructor but as you pointed out, there is no way to force destruction of object without risking dangerous side effects. So this is probably the only way I can do this, when the destruction of used resources matters (and it does, I want them gone when I say "this object is destroyed from world").
    37. AnarchoYeasty

      OOP is dead, long live OOP

      Ugh this is great! Thank you! I've recently been "promoted" to Software Architect at work (web dev) and as part of that I've been diving into proper coding techniques so I can clean up the mess that we've been building for a few years. I stumbled upon this article despite not being an actual game dev (but have always wanted to, just never figured out the proper way to do things). Between this blog post and reading gameprogrammingpatterns I finally have had the "A-ha!" moment where things start to make sense! Any idea when the next parts of the series are going to be happening? I keep checking back every day hoping (unrealistically) that you have posted more knowledge to share
    38. Jeaciaz

      Help choosing an engine

      Yeah, there isn't a WYSIWYG editor. Not that I'm going to use one, either - maybe for UI it would be neat, but my game isn't going to implement a proper moving camera(maybe some screenshakes, but that's it). Have you tried Processing? It's generally designed for such things as experimenting with data or visualizing something as fast as possible afaik. And, well, yeah, hopefully I can make it work with my architecture in mind
    39. Have you read http://gameprogrammingpatterns.com/ ? From listening to that author talk and reading his book, as well as reading Hodgmans excellent article, the solution appears to be to use a wide hierarchy and not a deep one, and to decouple components that don't make sense to be tightly coupled. (In short, as Hodgman points out, this is proper oop) The author of that book gave a talk on twitch you can view here https://www.twitch.tv/videos/319209508?t=30m32s talking about how he designs his rougelike using some basic patterns (all discussed in the book, which is free) to help keep things decoupled and strutctured. >Is it commonplace to simply keep refactoring? Yes! Uncle Bob (Robert Martin) tells us that our code should be refactored constantly. If you leave code stale, and not update it's structure and patterns as it grows, you will always end up with a giant plate of spaghetti. Every time. He likens software development to writing an essay in college. You don't write a first draft and turn it in, no you go through multiple drafts refining it until it is ready. I see no reason why we shouldn't do the same in Game Development. If you haven't read his book Clean Code I highly recommend it.
    40. supermikhail

      A simple language game

      Well, to be completely brutally honest, I'm quitting my current job. It has nothing to do with this idea, or with my really non-existent game-dev entrepreneur aspiration. But I've still tried to size it up in some way. And my conclusion is that there's no way this project or anything similar can contribute to my continued survival in any foreseeable future... So. Yeah. I do in general agree with the attitude of continuously trying things out for fun. I used to consider myself the auteur type destined to work 10 years in obscurity on my dream game... and maybe that works for some people, but in the end I personally can't have one thing that I do define me.
    41. Max Power

      solving x*V1 + y*V2 = V3

      Np, I appreciate it! Looks almost good now Well, thanks for the advice. First I'm gonna see how it looks, then I may look into that.
    42. jorgander

      BSP split plane determination

      With some help I've been able to work through the math part and am implementing it now. Apparently there is a another way to determine the global maximum of quadratic form mathematical functions, and the one I have now is a quadratic. The details are in this mathematica stackexhange post I created. If it works it will be quite significant, as it means that except for the loop to build the constant values, the time to determine split planes is constant regardless of the number of points. But there are potential problems with any solution: For the constant (summation) values and ensuing math, I am using the {{long double}} data type. I don't think this will overflow for any practical uses of the implementation (it would have to mean billions or trillions of points, I am guessing), but I suppose it is possible. If I ever am able to combine the 3rd heuristic function, it might change the form of the function from quadratic and I would have to revisit the math part. To answer your questions: Yes, the the end use is visualization of animated weather data over a set of parameters. For example, rainfall between now and 7 days from now, for a particular geographic region, etc. Again, the idea is that if I can render weather data at one point in time fast enough (say, less than a second), animating over time will be feasible. It won't run at the FPS of video games, but fast enough to look pretty. As the data structure will be pushed up to GPU memory and used by a pixel shader, the calculation will be per-pixel which will create images/animation at the appropriate resolution for the screen it's running on. To compose images/animation for other resolutions, the implementation could be modified to instead use a compute shader, which is not that different and in fact it's what I though of first - instead of writing to the frame buffer, we would instead write to a texture. Simple enough.
    43. Awoken

      What's a frog TODO?

      I like your idea for a Frogger game. To me it seems very novel, I'm inspired.
    44. Quat

      DX12 + WPF : Still no way ?

      I can't comment about DX12 since I haven't tried/done it, but you might be able to use https://docs.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-11-on-12 Regarding the WindowsFormHost, in my experience, this is the way to go if you can live without overlaying WPF elements on top of your 3D viewport. I've had bad performance experience with D3DImage interop, as you are tied to the WPF rendering/update system.
    45. I'm trying to model a polished material with mirror like properties (shiny new body of car). My specular reflections use fresnel schlick approximation but I noticed the reflections were kind of dim. After investigating I see why: Suppose I have a flat quad and the view ray strikes the surface normal N at 45 degree angle, and the reflection vector R intersects a light source with light vector L. With classical specular function, we would do some formula like dot(L,R)^m and the above configuration would give a maximum specular contribution. This result gives me what I would expect. But with fresnel schlick, we look at (1-dot(R, N))^5 = (1-.707)^5 which will be small number, thus resulting in the dim specular. Of course this makes sense for what we intuitively expect fresnel to do (increase reflection at glancing angles and more refraction/diffuse when looking head on), and it works well for things like water/glass, but it does not seem to be working well for modeling the shiny car. However, my understanding of PBR is that everything should use fresnel. Is there a flaw in my understanding? If it helps, I'm using fresnel F0=(0.04, 0.04, 0.04) which real-time rendering suggest for plastic/glass.
    46. Septopus

      A simple language game

      Without trying something new, you will never achieve the experience level that will allow you to produce something that is worth buying, not trying to be harsh, but that's what's up. I spent the first 20 years of my programming hobby approaching things exactly like you seem to be doing now. It helped me produce exactly ZERO saleable softwares/games in that time.. All I cared about going into each project was how much money I thought it could make me. I don't think I even made it half way through most of those projects. I had NO interest in the final product itself. I feel like you may be severely limiting your own potential here. If all you are trying to do is make some money, go get a day job. It WILL pay off faster. What's all the risk you keep talking about here? Are you trying to start a business with somebody or something, you can't start a business without an actual product.. And without some risk, there's rarely any gain. Sounds cliche, but it's still truth. If you're just worried about failing your own goals, then well, that happens. Especially with this "business".. You just have to take the lessons you learned from trying NEW things and apply them to something better. I try to think about my game projects as mere milestones towards the one that finally goes where I never expected it could. Even though I'm actively trying to make them into something fun and enjoyable to play. Fun and enjoyable sells itself. It takes WAY less "work" when you enjoy debugging and playing it too. Sorry for the ramble, but I hope you take something good from it.
    47. supermikhail

      Help choosing an engine

      Good luck. It's fine, but here's some possible caveats, to spare you some pain further down the road. Unless I've missed something vital, it has no WYSIWYG level editor, like you get with Unity. Well, there's Overlap2D, but use at your own risk, it's buggy. Even though it's by far aimed at 2d, there's a lot of things you have to do through 3d... Well, you've noticed that. ...I'd love to know how you're getting on with it. I've pretty much delegated it to physics experiments and other procedural challenges. I'd love to discover that it's more robust than that.
    48. JoeJ

      solving x*V1 + y*V2 = V3

      So, your idea is to constrain cloth particels with a max distance constraint to the closest position on triangle in rest pose, and also to the outside of the triangle plane if i get you right. I think i've tried something similar too, and it did not work well. I ended up with using capsules at each skin vertex aligned to the vertex normal. The capsules are scaled along the normal, so the round part gets more flat to approximate skin curvature better. And the capsules go deep into the skin, so penetrations can be resolved more robustly. This works very well, even for very tight cloth, but i also allowed to slide over neighboring vertices. Performance was good. However, maybe you could use a sphere instead the plane constraint. Should be much better already, faster than my approach and maybe good enough.
    49. Septopus

      Jittering in game

      Well, it's either related to movement or positioning, without seeing the code for either of those, we can't really make any more guesses.
    50. JoeJ

      solving x*V1 + y*V2 = V3

      Ok - sorry, but my snippets did not agree upon conventions. Here is one way to fix it: inline vec ToBarycentricCoords3D (vec a, vec b, vec c, vec p) { vec v0 = b - a, v1 = c - a, v2 = p - a; float d00 = v0.Dot(v0); float d01 = v0.Dot(v1); float d11 = v1.Dot(v1); float d20 = v2.Dot(v0); float d21 = v2.Dot(v1); float denom = d00 * d11 - d01 * d01; vec bc; //bc[0] = (d11 * d20 - d01 * d21) / denom; //bc[1] = (d00 * d21 - d01 * d20) / denom; //bc[2] = (1.0f - bc[0] - bc[1]); bc[1] = (d11 * d20 - d01 * d21) / denom; bc[2] = (d00 * d21 - d01 * d20) / denom; bc[0] = 1.0f - bc[1] - bc[2]; return bc; } inline vec FromBarycentricCoords (vec a, vec b, vec c, vec bc) { return bc[0] * (a - c) + bc[1] * (b - c) + c; } I'll need to check why my stuff worked anyways... Sorry again!
  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!