Jump to content
    1. Past hour
    2. Fulcrum.013

      Semi-complete Newbie

      While i has study at school i has mind that Pascal is better that ever can exists. On my first university day i sow a C++ and shortly found that it able to make same by 5 times less code and also able to do things that pascal just can not. Same with C#. For example stack temporary data, multiple inheritance and templates give abilities to make tricks that alow to solve very complexive tasks by tiny code. Just some simple tasks better to do using tools that yuo know better. But it not works with more complexive tasks. Tools for it have to be selected for task specific realities, but not by "developer better know other tool" reason.
    3. Kylotan

      Semi-complete Newbie

      Okay, speaking as a Moderator, this discussion has been seriously derailed. Please keep subjective opinions on languages and engines out of this thread, and any similar threads, as they don't relate to the original post or the original poster's situation.
    4. Fulcrum.013

      Semi-complete Newbie

      AAA game != a good game. Most of it is one other River Rider clone with advanced models but boring gameplay .
    5. NikiTo

      Semi-complete Newbie

      sure that! I was ok with C# because it was only two players playing against each other. It was for a project in school. I had no time to provide play-vs-computer option, but i planed to link for that to some 3rd party chess engine. I would not even try to code a chess engine myself, no no no, not so much fan of the chess game. After losing years with ASM, i learned the hard way: "always use the easiest codding language that fits for the task!"
    6. swiftcoder

      Semi-complete Newbie

      This is a generalisation that does not hold in practice. Professionals use the best tool for the job, taking into account cost, speed of development, compatibility with target platforms, etc. Unity comes out on top of this equation quite often (particularly for games targeting mobile platforms). Unreal comes out on top even more often for PC and console titles, with a significant number of AAA games in the last few years being shipped on the same engine available to you, for free. Yes, those teams likely customised Unreal Engine more than you can afford to as a solo developer, but the fact remains they chose a "free" engine for AAA titles.
    7. Fulcrum.013

      Semi-complete Newbie

      Now try do same on C++ and compare. Is your game have chess AI or it just 2 players game? Just from point where you need any (ever simpliest) chess AI you will found that C++ better option for it. Really i has made a basic AI that has solve chess tasks (find a mate in given number of moves) in couple hours on older C++ as homework by theory of games at 1997. And it was enought fast on Pentium 133 with 16MB of RAM. I gues C# AI never be made on comparable time and be same efficient. Becouse it unable to use stack for temporary data.
    8. NikiTo

      Semi-complete Newbie

      I made once a Chess game over skype in C#. For games like this, it is better to choice baby C#, The moment you are forced to use unmanaged code in C#, i think C# is not a good match anymore. Microsoft says managed languages are not suitable for multimedia and 3D APIs. That's why they provide them in C++.
    9. Fulcrum.013

      Semi-complete Newbie

      Of cource. So good developer that want to make a good game/gaming engine will select a tool that better fit task meeds. Obviuosly managed languages and free engines is not fit needs of serious development. So good developers just usualy select/make other tools that fit all needs.
    10. JoeJ

      Semi-complete Newbie

      I've heard it is very hard to replace PhysX in both UE and Unity and i don't know any game which did so. (One main reason for me to not consider them, so if anyone knows better pls let me know...)
    11. Fulcrum.013

      Semi-complete Newbie

      It really not a 2005. We have a support of patches for curved surfaces since DX11 hardware (2009) that make ability to have continuos LOD. Is any of free engines support patch models or patch colliders? So it just outdated. Other example - instancing. Complete hardware support exists since DX11 while partial GPU techniques kown since DX9. It has been added to Unity at later 2017. So it delayed at least for 8 years. And so on. Unreal engine of cource much better than Unity but have similar whitespaces. For example complete absence of IK system and ever basic proportional navigation algos that can be described as linked blocks that makes much robust and simplier way to implementation of stearing and aimin then blueprints. and so on.
    12. Rutin

      Semi-complete Newbie

      I don't use Unity myself, but you're not forced to use their server by any means and can find an alternative solution if you're unable to make your own. I also don't agree with the statement about: "Really engeenes that good for serious development nobody will give for free or sold for 100." ... So what about Unreal as they don't charge you a dime to use their engine until a certain income level has been met, or if you want to customize the engine. If anyone claims Unreal isn't a 'really good engine', then I really cannot take the rest of your claims with any seriousness. There are a lot of great games on Unity and unfortunately the reason why you see so many 'bad' games is because many new developers are using it, and it appeals to more an entry level audience. That doesn't mean if a seasoned development team picked up Unity their game would look and play like garbage.... This is far from the truth. Unity has it's problems, but no engine in existence can magically make a game good if the development team isn't putting out quality work. Heck, I've seen better games make with GameMaker Studio than some Unreal projects displayed on indie forums. Debating on if a game is considered "real" based on the engine or language used is ridiculous. Languages and engines are tools for development. If the developer makes a good game nobody buying the game even cares what fancy tools were used... Gamers want good games to play, they don't research all the development tools used before buying. Unity and C# are perfectly fine, and I'm saying this as someone who normally uses C++ and custom engines... I was even using C# when XNA was popular and made several games... So I'm not sure what your actual experience is in game programming, or how you validate what is considered a "real game", but Unity is a great choice for C# developers.
    13. Fulcrum.013

      Semi-complete Newbie

      I mean add-to-hierarhy-and-forget оbject managment technique. It good for calculator but it not good for ingame objects. Its quantity on scene has growth many times in comparsion with win95 games. Uniti dont have ever cylindric colliders. It have spheres capsules OOBB and mesh colliders same as PhysX. Also no one of it engines uses a collision prediction mechanisms that mach more efficient than collision detection and interpenetration elemenation.
    14. Today
    15. Oberon_Command

      Semi-complete Newbie

      The Unreal engine would like a word with you. More generally, even AAA developers are moving away from rolling their own tech. It simply costs too much to keep up with the latest advances in graphics and hardware technology with their own developers and artists/designers have become used to Unity and Unreal's workflows, so rolling your own tech would probably just mean duplicating what Unreal provides, anyway. Tons of indies (who ship actual games) use even Unity because rolling their own engine costs too much. And most games require very basic physics. Small games often don't even need more than basic rigidbody dynamics and axis-aligned bounding box collisions. For stuff more complicated than that there's Havok and PhysX and Bullet, and if I'm not mistaken, both Unreal and Unity have integrated those. What you're saying here was true, at one point - maybe like... 5-10 years ago - but the times have changed. It's not 2005 anymore. Are you running your code on machines that would run Win95? Windows 95 required a single-core, 20Mhz processor and 4MB of RAM. My several years old laptop has an 8-core, 2.4Ghz CPU and 12288MB of RAM. For many apps, the productivity gains of working in a managed language often outstrip the (miniscule) performance losses. I suspect most of the overhead is due to the GUI libraries and not C#, anyway. Yeah, no. Where are you getting this from? There's a huge single-player market out there. Bioware's RPGs like the Mass Effect and Dragon Age series come to mind. The Witcher was also very popular. And that's just in the West... Where do you live that single players are going so far out of fashion as to be non-existent? What do you mean by this? Do you mean scene graphs? I was under the impression that those had fallen out of favor in the game industry in the last few years. Or are you just talking about RAII?
    16. GWDev

      Metal without Mac

      This depends on where someone is working. Macs are not as common (for developers) in some regions as they are in the US.
    17. Fulcrum.013

      Semi-complete Newbie

      Really managed languages not ready to implement a self-managed hierarhies of objects so not good for any serious development. Main reason - if you can not control wich object needed and weech not needed/can not work any more by specific task field rules you can not control anything without huge head pain and tons of unnessesary garbage code. For most of tasks objects lifetime determined by specific to object field rules, not by count of active refs. So real garbage is refs to not needed oblects that still active. So it require mechanism that clean its refs automatically that managed GC makes to hard to implement. By other world managed languages "solve" problems that newer exists making a huge set of hard to solve problems as cost of solution. Really GC can not protect from memory leaks, even more it hide a leaks making it more hard to detect. For example situation with ref that placed to long-life array. It have to be nulled manually to destroy object that conceptually is same as to call a delete operator manually. So managed languages have no any advantages over native and have huge sets of disadvsntages that make it useless for any complexive software. Usual appilation of managed evangielists to usage of a weak refs where it needed is a death sintence to a managed GC becouse proper usage of weak refs able to handle cyclic refs without GC mechanism.
    18. Lactose

      Semi-complete Newbie

      (Emphasis added). False. Lots of good, real, succesful and completed games have been developed using managed languages. You are trying to dismiss managed languages for all games ever, which is going too far.
    19. Fulcrum.013

      Semi-complete Newbie

      Managed languages is not ready for any complexive software. Microsoft has developt C# as replacement of VBA for internal purposes. It abilities limited by tiny one form utilites like calculator and etc. Just for tiny apps where is no sense to involve qualified software engeneers to devlopment. But it costs a huge overheads. For example Win10 calculator made by C# use more RAM than Win95 has require to installation on HDD and use more threads then have buttons, while have same functionality that Win95 calculator. and so on. In close future we wil have to kinds of games - multiplayer games and no games
    20. JoeJ

      Semi-complete Newbie

      Maybe we could agree upon GC, stl, scripts etc being 'mostly good enough' for non performance critical game play code, but too slow for physics simulation or likewise. There was a time when those things had being considered a no go for game dev in general, which implies we do waste performance and energy if we use them on more powerful current hardware of today. Is it more productive, or just lazy / incompetent to code more and more parts or even full games this way? Not sure myself, but it's good some people still point out it's inefficiency.
    21. Lactose

      Semi-complete Newbie

      Again, this is still the No True Scotsman fallacy. A game can be "a real game" without needing to support 200 players per server, 5000+ clients in an MMORPG or 100k clients in a MOBA. There are other "real games" than MMOs and MOBAs. Unity/C# and managed languages might not be the best choice for all kinds of games, especially games with fairly extreme requirements end-to-end, but Unity/C# and managed languages are perfectly fine for most "real games" most game developers will ever work on. Especially if in the situation where you are able to choose your own tech stack like this.
    22. This is one of the reasons that heavily inheritance-based OO techniques have fallen out of favour among a crosssection of game developers. A popular alternate approach is to go "component based", and replace your UseableItem hierarchy with a single class. That class then contains a set of components that implement all the required behaviours... HealthPotion = UsableItem(sprite: "red_bottle.png", sound_effect: "drinkme.wav", on_use: [AddHealth(health: 100)]) InvulnerabilityPotion = UsableItem(sprite: "yellow_bottle.png", sound_effect: "drinkme.wav", on_use: [SetInvulnerable(seconds: 5)]) PowerUp = UsableItem(sprite: "mushroom.png", sound_effect: "levelup.wav", on_use: [MakeBig()])
    23. Fulcrum.013

      Semi-complete Newbie

      Just look to docs. Ever in pro version it can not handle over 200 players per server. It just to slow for serious games that can have 5000+ clients on location for MMORG or 100k clients per server on MOBA. Also look at docs. It architecture not ready to complexive game mechanics. Rendering engine implements news of rendering technologies with 7-10 years delays. And so on. Really engeenes that good for serious development nobody will give for free or sold for 100. In case it sold it usualy sold together with company that made it.
    24. Gnollrunner

      Semi-complete Newbie

      I have a lot of the same pet peeves about managed languages and I mostly use C++ for everything that isn't scripted, however I think a lot depends on what you are doing. If you are using a library that does the heavy lifting in C++ already, then a managed language might be acceptable. However if you are writing something that takes a lot of CPU and/or allocates and deallocates a lot of small objects then I think C++ is probably a better choice. Also I hate mixing languages if I don't have to. So if I have to write a a lot of code in C++ anyway I might as well write the whole thing in C++ and avoid that headache Then again Minecraft was written in Java and it's been wildly successful so it's really hard to make the argument you should never use a managed language.
    25. Lactose

      Semi-complete Newbie

      No true Scotsman fallacy. Real games are produced in Unity. This is not hard to prove; I already did so in my previous post.
    26. Fulcrum.013

      Semi-complete Newbie

      Uniti is just a ugly primitive tool that ever can not handle basic phisic lows so good for school-boys approaches only, not for real games production.
    27. Lactose

      Semi-complete Newbie

      Then you have a different view of what's acceptable than most other people. Managed languages like C# can be used to make games just fine, e.g. in Unity. They have been made to make games just fine. For example the absolutely gorgeous and amazing Ori and the Blind Forest.
    28. Fulcrum.013

      Semi-complete Newbie

      Yes. Managed and GC is not acceptable for realtime becouse have unpredicable time of GC and JIT operations and also not able to place a temparary data on stack so uses massive heap reallocations were it not needed.. Also automatic GC limit abilities of automatic objects lifetime managment so it better way to have a memory leaks. Really GC able to collect automatically only garbadge that language core shit to heap. In case language core not used heap without direct programmer command it just no need a GC. Also GC under hood limit prograamer in garbage collection mechanisms to primitive one that can not be ajusted to specific tasks realities. For example it makes a huge headpain with self deletion of objects and so on. Really semi-automatic strategy that works on 2-way pointers and weak owning an processng lists many tmes much robust, flexble and reliable than managed languages GC. Really languages wth GC not capable ever to create a good desktop gui framework becouse not allow to complete control a objects lifetame.
    29. Bolt-Action Gaming

      This Week in Game-Guru - 09/17/18

      For the record-it's not my site, FWIW. With respect to the drama, it was primarily because in a very small community like one for Game-Guru when you have a free content creator who has a significant volume of content like the user in question and he has that situation where he yanks literally everything in something that amounts to a license spat - it caused a pretty big ripple. Given that the blog is about Game-Guru updates, tools, and community news - of which the latter fit into.
    30. Scouting Ninja

      Quaternion, why divide angle by 2?

      A quaternion is a 4D object. So we use it to calculate a 4D rotation that looks good in 3D but is the inverse in 4D. The dividing corrects it in the forth dimension. It's easier to understand when you visually see it. Think of what happens to a 2D rotation, when viewed from the side: See from the side it looks like the same rotation. If a person in 1D viewed a 2D rotation they would only see the ball move up and down, never seeing the rotation. The same thing happens to us when we view a 4D rotation, we can only see the 3D part and the result looks like the same rotation, but in the forth dimension the two rotations are not the same and so mathematically they are not the same. So by dividing theta by 2 we convert the 4D rotation, back into the rotation we want it to be, to agree with our 3D view of it. I was lucky and found a video that shows the 3D rotation of a quaternion. It looks well made. It even uses projection to help visualize the rotation.
    31. @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.
    32. But no, GPUs are not set up this way. a.xyz + b.xyz is less instructions than a.xyzw + b.xyzw. Former is 3 adds, latter is 4 adds. GPU SIMD only means to execute 32 or 64 of those adds in parallel (but still 3 or 4 times in order within each thread). There is no native float3 or float4 type anymore, and no instructions for those types either. I don't think the opening question is about GPUs, but this seems a persistent misbelief so i point it out again. It is also one more argument for multiple specialized data structures vs. mat4x4 for everything.
    33. Steven Ford

      C++/WinRT

      @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.
    34. mike44

      Metal without Mac

      I triple boot Ubuntu/win10/osx. Only booting osx for recompiling and testing. I wouldn't recommend a Mac. They're expensive, slow and soldered.
    35. 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.
    36. 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.
    37. Mussi

      Quaternion, why divide angle by 2?

      You can sort of find an explanation here.
    38. Well, if you have a special case where you really only need to make translations, then you can just add the translation vector to the position vector of you objects. A pure translation matrix has a lot of zeros (and ones) in it and transforming by such a matrix leads to lots of unnecessary zero*something (one*something) multiplications. If this is what you were asking. I can imagine a class responsible for managing some specific objects (that can only be translated) that doesn't deal with matrices but just vectors. Such a class would not have to be able to handle layered transformations of different kinds. And layering translations is always just adding the vectors together.
    39. How to reinvent virtual dispatch using C++? There are many ways, all of them wrong. Perhaps you should just simplify instead. Have an Item class. Store objects of the Item class in your inventory. Give items properties, such as `is_wearable` and `melee_damage`. Use them as appropriate. RInse and repeat.
    40. Bregma

      Overengeneering Modularity

      Of course, rewriting is an opportunity to learn from experience and make things better in many ways. Just be aware of second system syndrome. Don't worry too much though, your third attempt is usually that much better again.
    41. We have an engine based on Direct3D11 that uses ID3D11Device::CreateTexture2D to create its textures passing in whatever format we read from the dds file header. We also have a previous version of our engine that uses the DX9 fixed function bump map feature for bump maps. This feature takes bump map textures in U8V8 format as input but it also takes textures in DXT5 and A8R8G8B8 and converts them into U8V8 using D3DXCreateTextureFromFileInMemoryEx in d3dx9). Our current D3D11 engine handles the U8V8 textures just fine (I think it feeds it to CreateTexture2D as DXGI_FORMAT_R8G8_TYPELESS) and has some shader code that emulates the fixed function bump map feature without problems. But now we want to add support for the DXT5 and A8R8G8B8 bump maps. Does anyone know where I can find code for Direct3D11 (or just plain code with no dependence on specific graphics APIs) that can convert the DXT5 or A8R8G8B8 texture data into U8V8 data in the same way as D3DXCreateTextureFromFileInMemoryEx and the other D3DX9 functions would do? (Someone out there must have written some code to convert between different texture formats I am sure, I just can't find it)
    42. stealth1997

      Video game soundtrack

      Hi, how can I propose my music as soundtrack for a video game? Thank you
    43. kristiang

      Hero Fantasy Pack Vol 1

      Here's a preview of the upcoming volume 2:
    44. BitsNPiecesMusic

      Some DAW Questions

      Thank you, everyone! I did look a little into Reaper and Cubase over the weekend. Both look pretty cool. I may have to start getting some trial versions going to see what suits my needs!
    45. LorenzoGatti

      Power plant types in sci fi empire builder

      Find meaningful power plant varieties, don't put them in the game only for "realism". Given the obvious baseline of "whatever power plant type is appropriate for a planet and its resources", making the player decide what power plant to build, or even explicitly giving details of what the actual power plant types are, should bring some value to the game: There could be important "side effects" beyond energy. For example, a fission power plant can produce weapon-grade plutonium in addition to energy, which matters a lot if nukes are an important weapon, geothermal plants can make cold planets habitable, and exotic ultra-tech power plants could be high performance but easy to blow up. There can be ties to the story and world settings. For example there could be a choice between mundane power plants and advanced alien technology-based power plants that perform much better, can be obtained as a favor from a certain faction, and can be remotely disabled by the aliens in case you cease to be their friend. There can be a thematic relevance; for example, fission and fusion power plants, with their opportunity for radiation and accidents, are appropriate (excluding other less dangerous types) if the game is about mitigation of widespread radiation and contamination from nuclear weapons, radioactive materials, space phenomena etc.
    46. since our game is p2p, one vs one game, we are planning to implement our game in a peer to peer manner wherein there is no central game server but instead the users will just host it on his phone and the challenger will just connect to his him thru sockets. There will be a central database to handle stats, authentication, etc. (implemented thru firebase). more or less looks like this So here are the flow in a nutshell. 1. when user logs in to the game, his IP address will be logged in the firebase database. 2. the user is presented with a list of users online to challenge. when use clicks on a player, the user issues a challenge. when the challenged player accepts the challenge, the user connects to him directly. Now, my issue. This works if both or all users are in the same network since their IP will be unique, but if say for example, we are playing across internet, there is a chance that 1 or two users will have the same IP (when using public IP) when two players are in the same network (ex: office wifi) Situation 1: both user1 and user2 uses mobile data, both of them has public IP (no issue) Situation 2: user1 uses mobile data, user2 uses office wifi, user2 shared the same public IP to his officemate. user1 and user2 play against each other with no issue, but what happen if, say user3 who shares the same wifi with user2 also wants to connect and challenge somebody in the game, he uses the same IP address therefore there is an issue if we somebody needs to connect to that IP address since two users share the same public IP. Also, to help the discussion we are using native (linux) sockets in C++ in both iOS and Android. Any tips on how to handle this? How does applications working with peer to peer handle this?
    47. Hi, I dabbled in CG during the Discreet days with 3dsmax and such, but I was never a programmer and I'm pretty out of my depth these days and thought a game dev forum would be a good place to start looking for some help given how far 3d graphics and performance have come. I was wondering if anyone could point me in the right direction regarding a project I'm working on. The gist of what I'm trying to do is take input data from a file, use that data to deform some already-built geometry (imagine I have all the vertex position data in a file), and then render a single frame of this geometry with appropriate lighting etc. It's really not for a game and it's supposed to be an automated process that can be run at any given time, over and over, often many instances running at the same time.I know I could manually do this in something like 3dsmax, but it needs to be a hands-off, command-line sort of thing. I also don't need any sort of photorealistic rendering or complex effects. In fact, I already have it rendering in a somewhat automated way using Apple's Scenekit, but I need this to run on a server, not an iPhone. A further note -- I'm looking for someone who could build/set-up something like this! (freelance) Any suggestions or input you could provide would be a great help, and if I posted this in the wrong forum, please feel free to move it! Heck, if there is a better community in general for this sort of thing, that would be great to know too. Thanks!
    48. 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!
    49. Thank you all for the replies. I wanted to wait a little before i reply, because i wanted to check out some of the stuff you suggested. I think Phaser or Unity would be a good way to chose for myself, but from what i have seen so far (i watched some tutorials and read in other forums about pros and cons), i slightly tend to Unity. I also stumbled over Godot, which is open source, has a MIT license and is set up especially for creating 2d games. The drawback is, there aren't that many tutorials and premade framesets available as e.g. for Unity and it uses it's own language (which is said, is relatively easy to learn). Maybe someone of you worked with Godot before and has some thoughts on that engine? @ Ianuarius, thank you for the links, i have a better idea now what C# can do now, but it's hard for me to imagine how exactly it is used to solve specific issues in my game. But that i will found out if i should start to learn C#. Sadly i wasn't able to open the pdf, since a facebook account is needed and i quitted social media (and Red Bull^^) years ago.
    50. 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!
    51. My experience is the exact opposite: Using built in matrix types results in slower execution and higher register usage. All current GPUs are scalar - there is no matrix or vector acceleration. For me it works better to do matrix math myself using dot products, and doing only the necessary operations of course. Also, mostly quaternions are faster for rotations even if they do more ALU. Quat + vector for translation is faster than matrix4, etc... worth to try out. Don't trust stuff just because it's built in into shading language.
    52. Daniel Peterson

      GJK warm starting

      Hi, I'm experimenting with GJK and I have a question about warm starting by reusing the simplex from the previous time step. Is this safe and straight forward to do? Will the GJK algorithm converge even if the vertices of the simplex are no longer extreme points of the CSO? Are there any other things to consider? Thanks!
  • 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!