Jump to content
  • Advertisement

Steven Ford

  • Content Count

  • Joined

  • Last visited

Community Reputation

138 Neutral

About Steven Ford

  • Rank

Personal Information

Recent Profile Visitors

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

  1. Steven Ford


    Ah ok, never used it myself. Just raw Win32 calls - maybe that's why I've been able to overcome my initial dislike of UWP as it is somewhat nicer than what I've been used to 😉
  2. @JoeJ agreed - SIMD (or even SIMT on the GPU) is not a panacea for performing excess work, it can merely reduce the elapsed time of doing the same volume of work compared to standard sequential code. I guess my point is more around the case that depending on use-case it's possible to reduce the extra overhead at runtime of using matrices (as you say, there'll be more calculations to be done) so that the majority of at least my use-cases, I prefer to maintain a single code path and it doesn't cause me any actual problems.
  3. Steven Ford


    @matt77hias - I may be missing something, but my understanding was that C++/winrt enabled a developer to write the windows interaction code in a much cleaner fashion - i.e. you never worry about a handle again, it's all wrapped in a nice class (which does all of the handle interactions etc.). I'm guessing that, almost by definition, there must be wrappers (winrt objects are effectively wrappers around handles at least in my understanding) for calling standard Win32 functionality. For pure simplicity's sake, I'd use it over something which requires language extensions. To use it, it's just a nuget package and then it all just magically works. I'm using the templates suggested in this Forum Post. Specifically, look at @trojanfoe's post about the video to read. I'm not exactly a fan of UWP, but I was sold after doing so, and now I've got my game running on UWP (and hence X1) rather than just Win32.
  4. Thanks squire; looks to be trivial to enable it [support] and removing it seems to cause more hassle than it's worth so might as well leave it in. Doesn't cost me much.
  5. True, it's up to the maintainer of the codebase to decide whether or not it's worth it. For me personally, the choice would be to go for the conceptually simple case (i.e. one way of consuming any transformation, with helper methods to create appropriate representations of simpler statements) with then an optimised matrix multiplier. GPUs are already set up to do so, and one can write a CPU version using intrinsics (to get 4 floats processed at a time) so that the excess calculations performed at a fixed cost, but in parallel). Only if this didn't show the necessary performance, or it complicated other code would I allow for multiple code paths.
  6. Further to all of the very valid points up above, even if you had a use-case which could be expressed in a different way, by always using matrices to do these operations then you have a single code path and hence your code-base will be simpler to maintain. The fact that you can then combine 55 operations together to form a single matrix and then apply that matrix to many thousand of objects is then icing on the cake!
  7. Steven Ford

    Semi-complete Newbie

    For me, the answer would depend on both where you're starting from, what motivates you to learn and where you want to end up. As others have said, the majority of low level coding in games is in C++ for performance reasons (typically complete control of memory allocations). However, within gaming, there are multiple layers of coding: The game engine itself (presumably C++) Scripts to control the behaviour of game objects (take your pick here, Lua, Unity uses c# I believe etc.) Tooling - personally, I use C# here If you're a complete newbie who doesn't know how to code, then TBH I'd start by learning to code in general, i.e. the application of logic using the medium of code. That can be anything from doing hacker rank challenges, to teaching yourself simple ways to get buttons on screen using WinForms etc. This doesn't have to be a long project, just get yourself used to coding anything*. Personally, if I was starting now, I'd pick either c# or python. Both of them come with easy to find dev environments (Visual Studio is free etc.) and there are lots of tutorials and the like available. Both of these will shield you from having to worry too much about memory allocation / deallocation patterns which you would then pick up on your next step (if you wanted to) of C++. Given that you're not a complete newbie, then I'd be inclined to suggest either: Use Unity and hence C# to control your game objects Use the below mentioned UWP approach and write a game using C#. Subsequently porting the code to C++ can be a step 2 if you need to / want to. Certainly for me, going from an event driven view of the world (WinForms / server programming in C#) to a polling based approach (of having to do something 60 times a second and checking whether something else has happened) was a bigger change than the actual language. Point #1 is probably also more applicable if you're looking at more commercial options I'd guess, unless you desire to be a low level programmer within the team. Note for games, if you're writing for the Xbox 1, then, under the creators collection program, you can write a UWP application in C# and have it run on the console. Clearly this won't give as much control as the C++ layer would, whether or not that's relevant would depend on your game. As mentioned previously by @Fulcrum.013, if you're dead set on never dropping a frame at 60fps, then get used to C++, if it's a card game or something with simpler requirements, then you'll almost certainly get away with C#. As for me, I started back in the day with Basic then, C and ARM assembler (1990s) before moving to Java and then to C#. For game creation, C and assembler were kings back in the day. MS introduced XNA which was exciting as I could write a game in the same language I used in my day job (which inspired me to create a game again). MS then realised that with DX10+ that the model they were using wasn't going to work with being able to drive the GPUs fast enough and so they've invested heavily in getting people to use C++ again. Note that the modern versions of C++ are so much easier to use that using it actually isn't that bad (I've certainly removed my hatred of it, but I still prefer C# for everything else in my stack). Hope this helps Steve *My thinking here is that once you understand coding, different languages add / remove portions - especially memory management which can be tricky at first!
  8. Hi all, having gotten the game virtually ready for release (development used a Win32 wrapper as easier), I now need to create a UWP version of the app for release on the X1 (Creators Collection). My initial expectation would be to have the UWP version solely available for the Xbox 1 and to get the game released on Steam for the PC. Given that the MS store allows the game to be released on both X1 / PC, I'm thinking that if I can get the UWP version to function on the PC then I might as well do it to widen the possible audience. I currently allow a user to play with either a game pad or a keyboard and show various settings related to the keyboard input. For the UWP version, I've added a flag which is permanently set to false in the UWP version to say whether to show the keyboard feature. Obviously this approach isn't ideal if I do want to allow the UWP version to run on the PC. So the questions are... 1. How does one detect that the app is running on a device without a keyboard / an X1 (this presumes that they're the same question, but I don't think that that's true for reasons in #3)? 2. If you were an X1 player and you saw the option to view the keyboard settings would this be irritating or would you simply not care? 3. Given that one can plug in a keyboard to an X1 and it appears to work (at least in 'Dev Home'), would you expect to go with the simple option and just allow them? Assuming that this was to be allowed, is there a message that I can subscribe to to say that the keyboard is now attached or is it a question of simply polling (assuming that I went for the approach of not showing keyboard options unless one was attached). Any thoughts? Thanks Steve
  9. Steven Ford

    Sound editor for developers (Really newbie question)

    Thanks @waipowrectdeapr1976. I used Audacity to modify (and record one) the sounds that I need. The main takeaways that I have from this project: 1. The hard part of game programming isn't the programming 2. Don't leave the graphics / audio until after the coding is complete - things can and should be done in parallel 3. Get 3rd parties to do the sound and graphics rather than using programmer art So I guess the project hasn't been a complete disaster 😉
  10. @WFP Thanks! I now get the colours that I expect. Now I just have to remove all the excessive brightness that I'd added to compensate 🙂
  11. Steven Ford

    Sound editor for developers (Really newbie question)

    Thanks @nsmadsen, I've downloaded Audacity and it does precisely what I needed. Thanks @DerekB, that does look very powerful, but it's overkill for what I need right now.
  12. Hi all, I've got a rather bizarre problem. For my 2D game, I'm using a level designer to create a map, and then I have some C# processing code which takes all of the tiles, does the necessary / appropriate overlays to reduce duplicates and then creates a sprite sheet containing unique entries. I do this by creating a new image, getting a graphics object to it and then drawing the tile images as appropriate. The output of this process is the below (1.png). When I run this through texconv.exe to create the .dds file that I will actually import into my application it's significantly darker and it's not clear why. 1 (post processing).png is the result of having loaded 1.DDS into paint.net and then saving the file down to disc as a png file. The call that I'm using to do the conversion is: texconv.exe -nologo myDir\1.png -o myDir -pmalpha -f R8G8B8A8_UNORM This is the same instruction that I'm issuing to process all of my other images. Some of which suffer from this problem, some of which don't. Note that I used https://www.aconvert.com/image/png-to-dds/ to try to do the conversion and it came back with the DDS at the right level of colouration (see attached - Tempcblwx-185xy.dds) This is driving me crazy with frustration... Will someone please put me out of my misery? Thanks Steve 1.DDS Tempcblwx-185xy.dds
  13. Steven Ford

    Sound editor for developers (Really newbie question)

    @BitsNPiecesMusic thanks. I'll check it out.
  14. Hi guys, apologies if this sounds like the most stupid question yet asked on the board. I'm a developer who needs to make some sounds for a game (think lasers, pops, clicks etc.). I've got the majority of them already from freesound.org (any other recommendations for suitable sites) but I need to make some adjustments to them (they're .wav files) - think volume levels / clipping some of them. I don't need to do anything more advanced than that (maybe import a .mp3 file and export as a .wav file). Suggestions? I'm PC based FWIW Thanks Steve
  15. Thanks Everyone; I'll check out the MSDN docs for Makeappx. In the meantime, for development purposes, I've resorted to using folder explorer and copying over the necessary files to my application's directory. @Endurion - Yes, without additional permissions, you can only access the application's directory / sub-directories. The main reason for not adopting your suggestion of adding files to the VS solution is that that would kill the rest of my workflow (the files that go into my package are the results of processing other files and so aren't suitable for being checked in artificially etc.) @trojanfoe - as I understand, yes. Effectively you always have free access to files in your application's directory / sub-directories and can optionally be granted permission to other directories subject to declaring access rights accordingly. As to whether it's a viable target platform? The main advantage is being able to get everything running on an XBOX One / in the MS store (for PC / others) etc. The main disadvantage (at least for me) is that it's different to everything that I've ever used before (I've always been a developer, and not the person who's packaged apps for release which may well cloud my feelings)
  • 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!