Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. Give it a try (it is a pretty casual game) and if you have some friends on the same wifi network, feel free to try the multiplayer out! (inspired by Ultimate Chicken Horse's multiplayer, if you've ever played that one). https://play.google.com/store/apps/details?id=com.hestermanholdings.Dash4 Seize the crown and beat your friends to the finish line in this fast-paced multiplayer game!
  3. Hey, I've updated my shaders to uses Shader Model 2.0, with ps_2_0 and vs_2_0, works good only on PC's where was possible to use Shader Model 3.0. The problem its the shaders its already compiled for SM 2.0, but it doesnt works on PC's with obsolete hardware config. That PC's supports SM 2.0, so I dont know the shaders isn't working. Looks the crash is caused on DrawIndexedPrimitive, but this function never returns something different from S_OK. This way I can't check any log or something like that. Im compiling shaders like: technique Mesh { pass P0 { VertexShader = compile vs_2_0 MeshVS(); PixelShader = compile ps_2_0 MeshPS(); } } Initialization logs where have that crashing problem: 16/04/2019 23:18:13 - (INF) Direct3D 9 Interface Created 16/04/2019 23:18:13 - (ERR) Your graphics hardware doest not support 32 bit Dynamic Texture [8876086A] 16/04/2019 23:18:13 - (INF) FPU Preserve 16/04/2019 23:18:13 - (INF) Vertex Processing: Software 16/04/2019 23:18:13 - (INF) Device Created! 16/04/2019 23:18:13 - (INF) Multi Sample: 0 0 16/04/2019 23:18:13 - (INF) Resolution: 800x600 16/04/2019 23:18:13 - (INF) Window Mode 16/04/2019 23:18:13 - (INF) Color Depth: 32BPP 16/04/2019 23:18:13 - (INF) @ Device Capabilities 16/04/2019 23:18:13 - (INF) Vertex Shader Version: 0.0 16/04/2019 23:18:13 - (INF) Pixel Shader Version: 2.0 16/04/2019 23:18:13 - (INF) Max Vertex Blend Matrices: 0 16/04/2019 23:18:13 - (INF) Max Vertex Blend Matrix Index: 0 16/04/2019 23:18:13 - (INF) Max Primitive Count: 65535 16/04/2019 23:18:13 - (INF) Max Vertex Index: 65534 16/04/2019 23:18:13 - (INF) Max Streams: 16 16/04/2019 23:18:13 - (INF) Max Streams Stride: 255 16/04/2019 23:18:13 - (INF) Max Vertex Shader Constant Registers: 0 16/04/2019 23:18:13 - (INF) Max VShader Instructions Executed: 0 16/04/2019 23:18:13 - (INF) Max PShader Instructions Executed: 96 16/04/2019 23:18:13 - (INF) Max Vertex Shader 30 Instruction Slots: 0 16/04/2019 23:18:13 - (INF) Max Pixel Shader 30 Instruction Slots: 0 16/04/2019 23:18:13 - (INF) Max Simultaneous Textures: 8 16/04/2019 23:18:13 - (INF) Max Texture Blend Stages: 8 16/04/2019 23:18:13 - (INF) Max Texture Width: 2048 16/04/2019 23:18:13 - (INF) Max Texture Height: 2048 16/04/2019 23:18:13 - (INF) Max Volume Extent: 256 16/04/2019 23:18:13 - (INF) Max Texture Repeat: 8192 16/04/2019 23:18:13 - (INF) Max Texture Aspect Ratio: 2048 16/04/2019 23:18:13 - (INF) Max Anisotropy: 4 16/04/2019 23:18:13 - (INF) Max Active Lights: 0 16/04/2019 23:18:13 - (INF) Max User Clip Planes: 0 16/04/2019 23:18:13 - (INF) Max Point Size: 256.000000 16/04/2019 23:18:13 - (INF) Max Npatch Tesselation Level: 0.000000 16/04/2019 23:18:13 - (INF) Num Simultaneous RTs: 1 16/04/2019 23:18:13 - (INF) Using Textures Non Pow2 Conditional: Yes 16/04/2019 23:18:13 - (INF) Using Textures Pow2: Yes 16/04/2019 23:18:13 - (INF) Supports HW Skinning: No 16/04/2019 23:18:13 - (INF) Software Skinning My initialization logs (where shader with sm2 works perfectly): 22/04/2019 14:45:21 - (INF) Direct3D 9 Interface Created 22/04/2019 14:45:21 - (INF) FPU Preserve 22/04/2019 14:45:21 - (INF) Vertex Processing: Hardware 22/04/2019 14:45:21 - (INF) Pure Device 22/04/2019 14:45:21 - (INF) Device Created! 22/04/2019 14:45:21 - (INF) Multi Sample: 0 0 22/04/2019 14:45:21 - (INF) Resolution: 1024x768 22/04/2019 14:45:21 - (INF) Window Mode 22/04/2019 14:45:21 - (INF) Color Depth: 32BPP 22/04/2019 14:45:21 - (INF) 32 bit Back Buffer 22/04/2019 14:45:21 - (INF) @ Device Capabilities 22/04/2019 14:45:21 - (INF) Vertex Shader Version: 3.0 22/04/2019 14:45:21 - (INF) Pixel Shader Version: 3.0 22/04/2019 14:45:21 - (INF) Max Vertex Blend Matrices: 4 22/04/2019 14:45:21 - (INF) Max Vertex Blend Matrix Index: 0 22/04/2019 14:45:21 - (INF) Max Primitive Count: 16777215 22/04/2019 14:45:21 - (INF) Max Vertex Index: 16777215 22/04/2019 14:45:21 - (INF) Max Streams: 16 22/04/2019 14:45:21 - (INF) Max Streams Stride: 255 22/04/2019 14:45:21 - (INF) Max Vertex Shader Constant Registers: 256 22/04/2019 14:45:21 - (INF) Max VShader Instructions Executed: 65535 22/04/2019 14:45:21 - (INF) Max PShader Instructions Executed: 65535 22/04/2019 14:45:21 - (INF) Max Vertex Shader 30 Instruction Slots: 4096 22/04/2019 14:45:21 - (INF) Max Pixel Shader 30 Instruction Slots: 4096 22/04/2019 14:45:21 - (INF) Max Simultaneous Textures: 8 22/04/2019 14:45:21 - (INF) Max Texture Blend Stages: 8 22/04/2019 14:45:21 - (INF) Max Texture Width: 16384 22/04/2019 14:45:22 - (INF) Max Texture Height: 16384 22/04/2019 14:45:22 - (INF) Max Volume Extent: 2048 22/04/2019 14:45:22 - (INF) Max Texture Repeat: 8192 22/04/2019 14:45:22 - (INF) Max Texture Aspect Ratio: 16384 22/04/2019 14:45:22 - (INF) Max Anisotropy: 16 22/04/2019 14:45:22 - (INF) Max Active Lights: 8 22/04/2019 14:45:22 - (INF) Max User Clip Planes: 8 22/04/2019 14:45:22 - (INF) Max Point Size: 8192.000000 22/04/2019 14:45:22 - (INF) Max Npatch Tesselation Level: 0.000000 22/04/2019 14:45:22 - (INF) Num Simultaneous RTs: 4 22/04/2019 14:45:22 - (INF) Using Textures Non Pow2 Conditional: No 22/04/2019 14:45:22 - (INF) Using Textures Pow2: No 22/04/2019 14:45:22 - (INF) Supports HW Skinning: Yes 22/04/2019 14:45:22 - (INF) Hardware Skinning Does anyone know what might be happening? Thanks.
  4. In the glossy shader I think there's a part that pseudorandomly perturbs the reflection vector so that it's not a perfect mirror reflection. How does one go about perturbing the reflection vector to get good visuals? Is there a formula?
  5. phil67rpg

    hex grid

    is this too hard of a question
  6. E.g. something a player does causes the object to delete itself. Why does everyone think it has something to do with threading? Because of how you wrote "no way to check if the returned pointer is valid" and "could be deleted at any point". In a single threaded environment, "deleted at any point", should not be true, and you should be able to guarantee a returned pointer is safe. Entity *target = map->get_nearest_enemy(this->faction(), this->position()); // target should be valid, and there should be no way for it to become unexpected invalid, within this code block if (target->type()->valid_assassination_target()) { target->kill(); // Now, maybe the pointer is invalid } The "something a player does causes the object to delete itself" can't happen in the middle of that block if it is only single threaded, and so the raw pointer can be used safely, keeping it over a longer duration of course has other considerations. The advantage of using a unique ID / "handle" there, is because of memory reuse you can't safely validator a pointer at a later time. But being able to store an ID between frames you can, and then you can retrieve it again later safely. Entity *target = map->get_entity_by_id(target_id) if (target != nullptr) { // target still valid, raw pointer is safe as before } else { // target is gone target_id = INVALID_ENTITY_ID; // fairly easy to have some sentinel value that acts like a null pointer } In a more complex environment, you could turn that into your own custom smart pointer, I did that previous as an optimisation on "get_entity_by_id" in a design where I stored things in std::vector like arrays and compacted them (meaning objects could move memory address to keep an efficient memory layout, although that was part of an ECS design, so "Entity*" like OOP didn't exist at all)
  7. Today
  8. I still think it's crazy that some Battletech fans still haven't heard of this game. It blows my mind! The game isn't a direct table-top port, but it's definitely faithful to the table-top experience. I wrote up a guide that's pretty useful for learning the game's mechanics. Feel free to check it out. https://steamcommunity.com/sharedfiles/filedetails/?id=1365402907 - Eck
  9. piflx

    7 UX Lessons From The Trenches

    Thanks! I learned something.
  10. Hi everybody, Since 2004, Xilvan Design building 2D & 3D games in Blitz3D, we are now showing to you our kindly official gaming related pages. - The Xilvan Design Website - (please click on each links, download games & bookmark the pages): Lights of Dreams IV: Far Above the Clouds v12.07. Candy World II: Another Golden Bones v17.57. Candy Racing Cup: The Lillians Rallies v5.07. Candy World Adventures IV: The Mirages of Starfield v9.37. Candy to the Rescue IV: The Scepter of Thunders v11.57. Candy's Space Adventures: The Messages from the Lillians v22.75. Candy's Space Mysteries II: New Mission on the earth-likes Planets v12.75. -"Lately, I fixed the colors of the ambient lights, adjusted the starlight coming from Galaxies, now the dogs may Walk, Run, Jump, Fly together, Grab bones, Pastries, Golden Bones, Hearts, Crystals, attack with freesbies." -"Now, it will be possible to edit all the levels of the game in Candy World Adventures IV v9.37. All 28 levels and 8 more in the future." -"I Want to continue Candy Racing Cup: The Lillians Rallies. I want to add more circuits, characters & cars." -"In the near future, I'm up to create a whole new Spatial Mode in Lights of Dreams V. New Space travel possibilities will be available before 2020 in our games." Once more, here is my YouTube Channel, where we are showing Candy's & Lights of Dreams series. Each games is free to play for the moment! - My Youtube Channel - Hope you'll like our games, downloads & watching our videos! We also refreshed the screenies, now they are up to date! Friendly, Xylvan, Xilvan Design.
  11. Tomas Arce has released LIONant Properties, an open source C++ 17 Property / Reflection system useful for games and other applications. The project is intended for developers to have a default system to use for C++ properties. Read the documentation here. The code is MIT Licensed and includes recent imgui integration. Learn more at https://gitlab.com/LIONant/properties.
  12. Tomas Arce has released LIONant Properties, an open source C++ 17 Property / Reflection system useful for games and other applications. The project is intended for developers to have a default system to use for C++ properties. Read the documentation here. The code is MIT Licensed and includes recent imgui integration. Learn more at https://gitlab.com/LIONant/properties. View full story
  13. Robert Vanderaarde has released an open source tool built to create texture atlases that support pixel padding. Written in C#, the tool is useful for using a texture atlas in terrain generation. The reason the padding is necessary is that when you create mip maps for the textures, without the padding there is often bleeding on the texture atlas. The open source tool is available on Github at https://github.com/robertvanderaarde/TextureAtlasPadder. View full story
  14. Robert Vanderaarde has released an open source tool built to create texture atlases that support pixel padding. Written in C#, the tool is useful for using a texture atlas in terrain generation. The reason the padding is necessary is that when you create mip maps for the textures, without the padding there is often bleeding on the texture atlas. The open source tool is available on Github at https://github.com/robertvanderaarde/TextureAtlasPadder.
  15. A new version of CTAA is available for Unity on the Unity Asset Store. For sale at half the normal price, CTAA is designed to help Unity developers achieve next-generation off-line cinematic render quality results in realtime. CTAA reduces aliasing from specular highlights and bright pixels, especially when using post effects such as Bloom or Depth of Field including Aliasing on alpha tested edges. Temporally, new pixel data is gathered from the past and extrapolated to future frames for final re-construction based on velocity information. Performance is approximately equivalent to standard FXAA. Watch the video and click here to learn more. View full story
  16. A new version of CTAA is available for Unity on the Unity Asset Store. For sale at half the normal price, CTAA is designed to help Unity developers achieve next-generation off-line cinematic render quality results in realtime. CTAA reduces aliasing from specular highlights and bright pixels, especially when using post effects such as Bloom or Depth of Field including Aliasing on alpha tested edges. Temporally, new pixel data is gathered from the past and extrapolated to future frames for final re-construction based on velocity information. Performance is approximately equivalent to standard FXAA. Watch the video and click here to learn more.
  17. I'm not a fan of handles as it doesn't play well with oop. I would prefer going the pointer route. So you are saying shared and weak ptr's are ok when needed. And I should use raw ptr when possible? I've worked on projects that use handles and others that use smart pointers. Both could work, I just prefer handles, it's more explicit and safe to me. Otherwise, in the pointer-case, I'd use raw pointer for situation where I just need to read/write from it, where I do not need to remember which specific object I'm working with (which is 99% of that cases). and this is done to avoid needless ref count increments. With handle is more or less the same thing, you remember the handle only when you want to keep track of specific object otherwise you obtain a pointer to it for read/write and that's all.
  18. Gnollrunner

    Game Engine API, smart pointers or not?

    No problem. Good luck with your project!!!!
  19. Tim Leijten

    Game Engine API, smart pointers or not?

    Okay, sorry. I didn't realize.
  20. Gnollrunner

    Game Engine API, smart pointers or not?

    Here's the thing ..... It wasn't clear you were going to actually save the pointer outside of the API in some object. I was thinking you would get the pointer, use it for something and be done with it. In the later scenario the only way it would change is because of another thread. If you are going to save it, yet also want it to be able to be invalidated, then yes, you need something like a weak pointer.
  21. Tim Leijten

    Game Engine API, smart pointers or not?

    No no. I wasn't trying to be mean. It's just something I notice in general, both here and on reddit, people expect that if something changes it must be another thread. Which I find interesting.
  22. Gnollrunner

    Vulkan? OpenGL? What........?

    Mostly graphics, animation, physics..... what have you. I can work around what's missing. I'm just trying to get out of writing everything myself. While this may be true, I do need it and other apps that have needed it like Start Citizen and Dual Universe are using custom or pricey engines that support it. I need to be able to go from orbit to the surface and messing around with all sorts of offsets to handle this makes things more complex. One issue is seams that appear in between chunks if things don't match up perfectly. Yes not for those things but for large terrain it's highly desirable. I support more than 1 precision now for many things. My matrix and quarternion classes are templates. Yes I do this now. Everyone that has to support large terrain does this and that probably won't change. However keeping track of things on the CPU and server side is sill much easier and faster with 64bits. CPU double precision is not particularly slow as it is on GPUs.
  23. LorenzoGatti

    Large Tilemap Storage

    You can tile an infinite plane with rectangular chunks and load them on demand: implement rendering of the part of a chunk that intersects the current screen viewport (clipping, at most, part of the tiles along two adjacent sides). If a chunk is the same size as the screen, at most 4 chunks in a rectangular tiling have a visible portion: draw their visible portions. With smaller chunks you'd have more overhead (and 1800 tiles represent a small tilemap, there's no reason to go lower resolution), while with larger chunks the worst case of 4 chunks would be the same. Meanwhile, load or generate procedurally in another thread or in pauses adjacent chunks within a certain distance from the viewport, and discard chunks outside another (bigger) distance from the viewport. In the simplest case, you can keep the whole map in memory (in chunks) and "load" chunks implicitly into cache memory upon access. Note that with a simple 2D array layout the cache only needs to contain 4 chunks at a time, with 25% utilization at worst, rather than a very sparse portion of very large arrays)
  24. I've got a single vertex buffer and an index buffer for a cube in Directx9. I now want to generate a LPD3DXMESH object from them, so that I can manage mouse picking and other stuff with the cube model. How can I achieve this? Here's the code of my vertex and index buffers: CUSTOMVERTEX vertices[] = { { -3.0f, 3.0f, -3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { 3.0f, 3.0f, -3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { -3.0f, -3.0f, -3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { 3.0f, -3.0f, -3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { -3.0f, 3.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { 3.0f, 3.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { -3.0f, -3.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 0), }, { 3.0f, -3.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 0), }, }; d3ddev->CreateVertexBuffer(8 * sizeof(CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &vertex_buffer, NULL); VOID* pVoid; vertex_buffer->Lock(0, 0, (void**)&pVoid, 0); memcpy(pVoid, vertices, sizeof(vertices)); vertex_buffer->Unlock(); short indices[] = { 0, 1, 2, 2, 1, 3, 4, 0, 6, 6, 0, 2, 7, 5, 6, 6, 5, 4, 3, 1, 7, 7, 1, 5, 4, 5, 0, 0, 5, 1, 3, 7, 2, 2, 7, 6, }; d3ddev->CreateIndexBuffer(36 * sizeof(short), 0, D3DFMT_INDEX16, D3DPOOL_MANAGED, &index_buffer, NULL); index_buffer->Lock(0, 0, (void**)&pVoid, 0); memcpy(pVoid, indices, sizeof(indices)); index_buffer->Unlock();
  25. Gnollrunner

    Game Engine API, smart pointers or not?

    It wasn't clear to us that you were going to save the pointer, go off and do something else and then come back later and expect it to be intact. So now it's a little more clear.
  26. Tim Leijten

    Game Engine API, smart pointers or not?

    Thanks for your reply! I agree weak_ptr is the best choice. Just wasn't sure. This is my first game engine and I don't have much experience with C++ yet, so I don't want to make it too hard for myself. I might do my own reference counting at some point, but not yet.(I don't even have an idea how I would do that.)
  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!