Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

1203 Excellent

About Finalspace

  • Rank
    Advanced Member

Personal Information


  • Github
  • Steam

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Finalspace

    What's is the best story game you've played?

    I am 4 years away from 40 and never heard of this But looks very old indeed.
  2. I tested your sound file and i had the issue when playing it with the BASS audio library, which i have no idea what backend they are using. Maybe they use XAudio as well and for some reason, that wave file of yours will break XAudio? But everything else had no issues whatsoever. I also tested several configurations, including my platform abstraction library (FPL), which just uses pure directsound and there was no issue at: https://github.com/f1nalspace/final_game_tech/tree/develop/demos/FPL_Audio (If you want to try that demo out, just pass the full path to the wave file as argument to the executable - after you have compiled it) -> I recommend cloning the repo, so you have all the header files you need. I tested it with a sample rate of 44100 Hz, the formats (S16, S32, F32) and one or two channels. All backends, WASAPI, DirectSound, even WinMM had no sound issue with that configuration at all - and i tested it with a really crap bluetooth audio headset with integrated audio output device O_o Can you please verify that: https://github.com/f1nalspace/final_game_tech/tree/develop/demos/FPL_Audio and https://github.com/f1nalspace/final_game_tech/tree/develop/demos/FPL_MiniAL works or not? I changed the mini_al sample to use DirectSound first and WASAPI second. If nothing of that works, i would recommend creating a very small C/C++ project which just loads your wave file, parses it and plays it back using XAudio - including source, so we may can help you better?
  3. Maybe it uses the wrong or different audio device? Or some wrong format conversions ? Default settings are not always the best! Does the wave file play properly with mini_al.h ? (Mini-al supports WASAPI, which XAudio is based on).
  4. Finalspace

    What's is the best story game you've played?

    I played so many games in my life, but there only two exceptionally games which i can clearly mention and recommend here: Life is Strange I bought LIS as a total random buy on steam many many years ago and it was my very first game of this kind of movie-game genre. Normally i play more action adventures or hardcore jump & run games, but this game for some reason got me... I had no idea what this game was all about, as there was no hype at that time. I simply bought it, installed it and played it and was blown away by it. It was one of such games you start playing and cant stop until you finish it. Really glad that i had not to work on that week then. Really i loved everything about this game, the story, the graphics, the gameplay, even the menu and lastly that great Soundtrack. I dont listen to slower kind of music normally, but this soundtrack man - i really loved it. So what is this game all about? Its that kind of game where your actions and decisions may change the fate of others. Normally such decisisions cannot be reverted, but in Life in Strange you can actually revert it - at least to some extent. But doing so, comes with a a price. That price is so intense and emotional and LIS lets you feel it. So i literaly cried for hours after i finished this game. Of course i bought the soundtrack and the PS4 retail version as well - for no other reason as to lend it to my friends. Beyond Two Souls In 2016, i found a trailer by accident while listening to movie/game soundtracks, while lying sick in bed. That trailer was so fascinating, as it looked similar to Life is Strange, but more darker. So i bought it for PS4, directly on the PSN store for ~40 Euros, which is really expensive for a download-only game. I installed it, started it and that menu... that music... i instantly liked it. After watching the intro, i knew this was the game i was waiting for all those decades. This game is similar to Life is Strange, but is so much darker and intense -> LIS in comparisons feels like a kindergarten. In Beyond Two Souls you cannot revert your decisions. Every decision you made, change the future - whether in a bad, neutral or in a good way. The core elements of that game are horror, violence, mystery and a ton of action. Its like playing a movie, but actually changing the movie - while sitting in a roller coaster. It has an extraordinary emotional soundtrack, very good visuals with good capture of character feelings and a really good story with multiple endings. Of course i bought the soundtrack and the PS4 retail version as well - for no other reason as to lend it to my friends. But its not for everyone -> Some people dont like it, because it is not really a game - but rather a interactive movie. For me its the best game i ever have played, so i bought the soundtrack and the retail version as well - for no other reason as to lend it to my friends. And yes i shed a lot of tears for that game as well.
  5. Finalspace

    SetPixelFormat fails on Nvidia cards

    Damn it, i posted a full fletched text here, but now its gone 😞 Here is the short one: - stencil bits are missing! - use DescribePixelFormat() first and then use SetPixelFormat() See the following code, which works on all my machines: fplClearStruct(&pfd); pfd.nSize = sizeof(pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 32; pfd.cDepthBits = 24; pfd.cAlphaBits = 8; pfd.cStencilBits = 8; pfd.iLayerType = PFD_MAIN_PLANE; int pixelFormat = wapi->gdi.ChoosePixelFormat(deviceContext, &pfd); if(!pixelFormat) { FPL_ERROR(FPL__MODULE_VIDEO_OPENGL, "Failed choosing RGBA Legacy Pixelformat for Color/Depth/Alpha (%d,%d,%d) and DC '%x'", pfd.cColorBits, pfd.cDepthBits, pfd.cAlphaBits, deviceContext); return false; } wapi->gdi.DescribePixelFormat(deviceContext, pixelFormat, sizeof(pfd), &pfd); if(!wapi->gdi.SetPixelFormat(deviceContext, pixelFormat, &pfd)) { FPL_ERROR(FPL__MODULE_VIDEO_OPENGL, "Failed setting RGBA Pixelformat '%d' for Color/Depth/Alpha (%d,%d,%d and DC '%x')", pixelFormat, pfd.cColorBits, pfd.cDepthBits, pfd.cAlphaBits, deviceContext); return false; }
  6. I did a ton of tilebased stuff in the past, so i can share my ideas how i implemented them. So here we go: In a few of my game prototypes i used one texture tile sheet for each style. The outside of such sheets had a one pixel transparent space/border around the entire image and one pixel transparent border around each tile, so that every tile inside has two pixels of space between. This border/space gets really important when you use them in your shaders, like for example doing color corrections, doing blending etc. Without border you may get bleeding or other weird artifacts Also the tile sheet should be a power of two dimension, like for example 256x512 or 256x256 or 512x512, etc. This makes the computing of the UV´s much easier. For environment tiles i used at least 5 layers - each layer had a fixed tile size of 32x32. The first layer was a background layer used for filling background tiles, like gras, sky, etc. The second layer was another background layer used for more detailed backgrounds, like floors, trees, window, flowers, signs, etc. The next two layers was used for solid tiles only, meaning that it had some sort of collision/boundary. Each tile had a reference to a geometrical collision shape (rectangle, circle, polygon, etc). If you need pixel perfect collision, i highly recommend reading the "Sonic Physics Guide". If you need physics in your game, you should convert your solid tiles into connected line segments - making it very robust and fast for physics system such as Box2D. But computing these line segments from solid tiles are nasty and not that easy, but i did that in the past and released a public domain library: https://github.com/f1nalspace/final_game_tech/blob/master/demos/FTT_TileTracingDemo/ftt_tiletracingdemo.cpp https://github.com/f1nalspace/final_game_tech/blob/master/final_tiletrace.hpp The last layer was used for entities placed on tile boundaries, such as start-positions, savepoints, enemies, traps, liquid, etc. If you dont have much experience with programming, i highly recommend using the "TileD" editor which is super easy to use, with a fine and simple file format. Of course if you want, you can always write a editor yourself. Its not that hard and the only thing you need to know how to convert your mouse coordinates inside tile coordinates and vice versa + a sort of camera movement to navigate through your worlds. Of course if you use unity 3d or unreal engine, you should use their built-in tile editor ;) Now regarding rendering. Start of simple and draw each tile in the slowest possible way - make it functional first. You will see that you can draw thousands of tiles, without doing any kind of optimizations. These days, most graphics card can handle that. The only thing i would recommend to optimize are to only show the tiles visible on the screen and skip the tile which are outside. The order of drawing is back-to-front, so you draw the background layers first, then the solid layers and then the entities. Later on you may consider creating a batched sprite render, so you can render all tiles with just a couple of draw calls. Its as simple as a defining a vertex buffer, push vertices on for each tile and then issue a draw call for one tilesheet. So thats a rough idea how i implemented tile based stuff successfully. If you have more questions, feel free to ask.
  7. Finalspace

    Forza Horizon 4

    What do you think about the new Forza Horizon 4 game? I recently bought it for my Windows PC (Ultimate version) and its just awesome! I was never so addicted to any racing game before. The soundtrack is absolutely great, especially the opener from "ODESZA - A moment apart" which just blazed me away, even though i normally prefer much faster and harder music! I guess i needed softer music for a change of pace? Also the graphics looks really good - especially when in "Fall" season mode. I can play it at high detail on my GTX 1060 on my 8086k HDPC without any stutter. So far i hadn´t a single crash since i started playing it, so either i have good hardware or are just lucky (This game has normally a ton of technical issues since launch...). FH3 which i played before on my old system was crashing a lot... My current favorite cars are the Porsche Panamera Turbo tuned to +600KW and the Golf R tuned to +700KW. Both can be handled very well and are not bad for drifting as well. But choosing another car is hard, because there are so many of them.
  8. Finalspace

    Writing subjects in present and past is hard

    Thats neat. Thanks for the tip.
  9. Finalspace

    Writing subjects in present and past is hard

    Really i have no idea why i did that, but hey its still used in a production tool i made, used to deploy updates to our applications. But this tool is used by developers only, so even when something would be wrong about the messages being written - nobody except me would notice it Ah wait, i know why i did it: I was tired of writing "Copy A to B" vs "Copied A to B successfully" vs "Failed to copy A to B" all the time. So i ended up writing that "thing". This saved me a few words of typing. Also this had the advantage to use it for other operations as well, like "Initialize", "Create", "Make", "Destroy", etc.
  10. Finalspace

    Demo Reels for programmers.

    The first time i ever heard of a demo-reel. This is much better than my video-showcase of ~60 minutes Also you can show off your video-editing skills this way. Awesome, i think i will may make one for my next job application. )
  11. Staying motivated at times when i dont have time to make my game is the hardest thing for me. As a matter of fact its the reason why i never completed making a single game in my entire life and are now left with a ton of prototypes.
  12. Finalspace

    C++ compiled EXE not running

    A few ideas to find this problem (CRT Linking/Runtime issue?): 1.) Check for errors https://wiki.libsdl.org/SDL_GetError 2.) Switch from static linking to dynamic linking for SDL You may already use that. 3.) Load SDL dynamically Remove and linking for SDL, provide function prototypes for every SDL function you use and load it dynamically (LoadLibraryA or dlopen) 4.) Fully include the SDL source code (All .c files) without any linking This sounds like its a ridiculous idea and it is indeed, but with this method you most likely can reproduce the problem on both sides after that. Also this has the advantage that you can fully debug it, so you see exactly where it is crashing. In the past i successfully used that method for Box2D and a insane huge crypto library, but it may not work for SDL due to fact SDL relies heavy on makefiles for building 😞 But you can try it. So when you want to go this route, you simply build up a simple script/tool which produces all the #include <sdl/whatever.c> for every C file (Order should not matter). After that you write a libsdl.c and a libsdl.h file which looks like this (Without any code sections): // libsdl.h file: #include <SDL/include/sdl.h> // libsdl.c file: #include "libsdl.h" // Manual code generated from the "SDL/src" folder in order of the OS file traversing api #include <SDL/src/SDL.c> #include <SDL/src/atomic/SDL_atomic.c> #include <SDL/src/atomic/SDL_spinlock.c> // ... #include <SDL/src/SDL.c> // ... Include both files in your IDE project and replace any SDL include in your app to "libsdl.h" only. Also do not worry about the number of source files you have to include, because SDL has guarded all the platform specific stuff - so you wont compile ALSA audio driver on Win32 for example.
  13. I am in search for a realtime algorythm to build fracture parts from a oriented box in 2D with respect of the impact point and the impact velocity, for building-up a exploding rock started as a box-shape. What techniques are there which are or can be easy translated to 2D?
  14. This is how i done it successful in the past. A system should have some sort of list of component types it requires + a list of optional component types it may need. A system contains a list of entities which always passes those type requirements. This list of entities are automatic populated as soon as a component is added/removed to/from a entity. When the system runs, it just iterate over that list, gets it components it needs, does the data transformation and its done. This way the system just updates the entities it cares and doesent care about anything else. But for heavy mathy stuff, this is not efficient. You always want to process just the data you care and nothing else. For that a data-oriented approach may be better, see the following video for a much better explanation: https://youtu.be/rX0ItVEVjHc?t=1941 Meaning that copy the data over to small designated structs, process them and then copy they back may be faster than operating on the components directly. Also this implementation is not suitable for scenarios where you do tons of component add/remove operations while the game is running. If you have something like that, you need a different approach.
  15. Finalspace

    How i failed the tower defense GD competition

    Thanks! Its my first time critizing myself in a blog like this so i had no idea how this will go. Yeah, writing a editor for such small projects are just overkill - especially if you dont have time for that. But using a existing one which is not suitable for your game is much worse - like in my case. i think it would have been better when i have written it myself - especially because i have a dozens in the past already and i know how this things are implemented. I always have the requirement to write everything myself, not using any engine or thirdparty library. I dont mind fighting against technical issues. Also i normally dont have technical issues, because i already did all those stuff a lot in the past, so i know how it works. The two issues i had was a typo and a too small sized font atlas - thats it. Everything else was just wrong decision making... But maybe i try to make the project with unreal, just to see if this would be a different.
  • 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!