Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 05 May 2011
Online Last Active Today, 02:03 PM

#5104760 Abstracting away DirectX, OpenGL, etc.

Posted by Radikalizm on 27 October 2013 - 07:44 AM

I think it's important at this stage to decide if supporting OpenGL in the future is something you actually want to do.


A lot of people start out with the idea of supporting OpenGL (or DirectX if they start out with OpenGL) at a later point in time in their rendering engines; this results in them trying to write an abstraction layer on top of their original graphics API which doesn't really do the underlying API any justice.


Designing a proper wrapper exposing the functionalities of both APIs to their fullest extent is HARD. It's going to require a complete understanding of both APIs, their designs and their quirks. Add to this that you'll have to design a system which will unify these sometimes completely different beasts into a single API without introducing too much overhead and without sacrificing functionality.


If you really do want to support both you could always check out some third party utility libraries for doing vector math and such, I'm sure there'll be plenty of those out there.


If support for multiple rendering APIs isn't an absolute must I just wouldn't worry about it and work with the tools provided by SharpDX; no need to put a lot of effort into something which eventually won't have that much of an impact on your end result (ie. your game)

#5104403 Deferred Rendering Questions

Posted by Radikalizm on 25 October 2013 - 11:38 AM

Deferred or immediate contexts have nothing to do with deferred rendering. Deferred contexts should be used when your application is designed to issue rendering commands from multiple threads.


A simple google search should provide you with tons of good deferred rendering tutorials and explanations, it's a pretty common beginner's subject :)

#5102930 Flat Projection matrix

Posted by Radikalizm on 20 October 2013 - 02:08 PM

You're probably looking for an orthogonal projection matrix to get that "flat" effect

#5102140 [Resource Request] Where can I learn how to implement 3D animated models into...

Posted by Radikalizm on 17 October 2013 - 08:37 AM

The terms you're looking for are "skinning", "forward kinematics" or "skeletal animation". There should be tons of tutorials available by using just a simple google search, but it's been a while since I researched the topic online.


A book I could recommend is "Computer animation - Algorithms and techniques" by Rick Parent, although it might be a bit overkill if you just want to do skeletal animation.

#5101021 How to create a physics engine

Posted by Radikalizm on 13 October 2013 - 08:20 AM

No thanks to the ones who were trying to discourage me.


Nobody here is trying to bring you down or anything, we're just trying to give you a realistic picture of what writing a physics engine is about. It's just a fact that if it's your goal to build a game anytime soon it's not a good idea to spend years trying to build a physics engine from scratch first, it's as simple as that.

#5100915 How to create a physics engine

Posted by Radikalizm on 12 October 2013 - 07:10 PM

Note: I'm going to assume this is about implementing a 3D physics engine. 

Additional disclaimer: I've never actually written a 3D physics engine, so I'm just summing up where I'd start off if I were to try and implement one. I have done 2D physics engines though.


First of all: Welcome to the forum!


Let's get down to business.


Is this going to be a physics engine you're actually going to use in a game, or is this a personal educational project?

If it's the first case I'd recommend against writing your own physics engine as there are a ton of excellent professional physics solutions available for use without cost. Examples of these would be Bullet or Nvidia Physx. Havok would also be an option as they have licensing options for low cost and low budget games.



If this is an educational project there are a couple of places where you could start, and I hope I can explain somewhat why it might not be the best idea to write a fully featured physics engine for a project you want to actually release. Full featured physics engines are massive projects which require quite a bit of expertise.


First of all you'll want to have a good grasp of at least classical mechanics and how the concepts found in classical mechanics would translate to actual real-time simulations (warning: this can be tricky). Maybe you should try to get your hands on some introductory textbooks on mechanics and study those until you grasp the concepts explained within to start out.


Second, you're going to have to make some decisions on what you want your physics engine to be able to do and what you'll want to use it for. Do you just require basic rigid body physics or do you want to implement some more advanced stuff like soft body physics as well? Do you want it to be able to hande massive amounts of varying bodies flying around everywhere? Do you want to support just simple shapes like boxes, spheres, etc. or do you want to support more complex bodies (meshes?) or even multiple constrained bodies (eg. ragdolls, hinged bodies, ball joints, pistons, etc)? Do you want to implement destruction like bodies being able to break or shatter? Try to write up a list of things you want to implement into this engine first before doing anything else.


Once you've taken these steps you'll probably have an idea of how to start out with writing something very primitive like moving a box around by applying a force on it for example.


From here on out you'll probably want some interaction between your entities, so you'll have to look into collision detection algorithms and methods of applying these algorithms as efficient as possible (read: acceleration structures).


When you've reached this point you'll probably want to come back and ask more specific questions about the features you'd like to implement (if you haven't figured out how to implement them on your own by then). As I said before, physics engines are massive projects so I couldn't sum up the process of implementing one in one forum posts (nor do I know any tutorials or books, sorry).


To be honest with you, even though I've been tempted to write one on some occasions I've personally always been quite intimidated by physics engines, even with a pretty good knowledge of the fundamental aspects of classical mechanics. 



Oh and by the way, your choice of graphics API (OpenGL, DirectX) doesn't really have anything to do with physics engines unless you plan on using your GPU to do some of the heavy lifting.

#5089202 Managers, which pattern should I use

Posted by Radikalizm on 26 August 2013 - 10:16 AM

In my humble opinion the term "manager" should immediately ring an alarm bell when it comes to designing your application. I'm not saying that you should never write classes which completely manage some system, but they have a tendency to turn into god classes pretty quick and that's something you want to avoid at all costs.


Cornstalks made a really good point on which systems to implement to handle your texture resources. A system which handles the loading of resources shouldn't be bothered with maintaining a resource's lifecycle or vice-versa. It just bloats the system and will turn it into an unmanageable wreck.


The same thing goes for input. You can receive input from many different devices, do you really want to put all of the logic behind receiving that input into one system? Will systems which require input (eg. character controllers) all have to depend on this one bloated system? That's just not a flexible design.

#5086124 Starting up! Where, what and how?

Posted by Radikalizm on 15 August 2013 - 08:31 AM

1. Is xna dead?  With this I understand that it's just not supported anymore and of course still will be working. But should I use time learning it as a noobie, if I in the long run want to publish something and have used all my time on a "dead horse"? What else should I use?


It is no longer being developed or updated by microsoft, but that doesn't take away that it's still a really stable and easy to use framework for developing games for Windows with. There is no support for developing Windows 8 metro apps with XNA though, but there is an open source implementation of XNA called MonoGame which does support this. XNA or its open source implementation is still a very viable option for doing game development, the fact that XNA itself is not being developed anymore shouldn't discourage you from using it.


2. Should I use months and years learning c# in and out before attempting game programming? Or rather learn along, with first easy games? ( any recommendations?)


I'd just say get comfortable with the language for attempting anything big. In the beginning this will mean programming some really simple applications and doing programming excercises to get familiar with the language syntax and the basic concepts of object-oriented programming, which is the paradigm C# was designed around. Simple games like pong or breakout can be part of this learning experience if you want, but you'll probably want to be somewhat comfortable with the language before attempting these.


How long it will take before you get to that stage of being comfortable with a language varies from person to person, and of course depends on how much time you actually spend programming.


3. Do you have any other tips for a guy who starts out from scratch?


Practice, practice, practice! The only way to learn how to program well is by actually spending a lot of time programming :)

#5085005 How to distribute a game made with DirectX 11

Posted by Radikalizm on 11 August 2013 - 01:40 PM

You'll always need to provide redistributable packages which install alongside your game to make sure your users have no issues with library dependencies. 

To give you an example: if you're programming in C++ using Visual Studio 2012 you'll need to provide the Visual C++ 2012 redistributable, which can be found on the microsoft website.


DirectX 11 should be installed by default on Windows 7, Windows 8, and properly updated Vista SP2 installations, so there's no need to provide a redistributable for that. I'm not sure if this also the case for DirectX 11.1 though.


In case your game depends on another piece of software which should be installed on a user's computer you'll probably want to provide an installer for that as well, if you are (legally) allowed to do so.

#5084548 What's your opinion on Game Makers?

Posted by Radikalizm on 09 August 2013 - 06:12 PM

Im not going to quote, but ill mention a few thing.

All the games I've played I know have.been coded. Minecraft was coded.

If you're a programmer, why would you use those tools?

If your a designer then work with someone on a game.

Does no one else think these tools are discouraging programming? This is why I dont like them. They make it seem like it's discouraged to fully code games.

I wrote a game in pure Java once: no API's, just everything in Java. I have to say, I had a LOT of fun making it.

I love coding. I spend at least 6 hours a day doing it.

At least someone else agrees that these tools limit you. You get more control if you code a game.

I usually use LibGDX and LÖVE for making games.

So really: if these tools exist, what's the point of coding one?


Please read over the replies people posted again, pretty much everything you ask has been answered.


If you take joy and pride in doing everything from the ground up all by yourself, then by all means go ahead and do so. If however you are working in a setting where lots of people of multiple disciplines have to work together and where you have to think of budget and time constraints it's often not a viable option to build everything from the ground up.


You mention using LibGDX, how is this any different from using any other tool? Why would it be ok in your eyes to use a library like LibGDX to program your games, but not OK to use a scripting language or "visual" language with the Unreal Engine, Unity or any other engine or framework? Why is it not OK to use some tool which has proven itself over and over again over the years? Why is it not OK to use a tool which is probably more performant and more bug-free than anything you could come up with on your own?


Aren't games meant to be all about the user experience? People playing your game don't care about how great of a programmer you are or how you wrote everything from scratch, all they care about is how fun your game is. Don't let the idea of "I'm too l33t of a programmer to use these tools" hinder your user's experiences.

#5084488 What's your opinion on Game Makers?

Posted by Radikalizm on 09 August 2013 - 03:16 PM

 If you're not going to make a super HD game, why would you not want to fully code a game? Is it due to people being lazy?


Would you really want to rewrite all of your boilerplate code over and over again for each game you make when the code you wrote for your previous game will still do the job perfectly for your new project? Most of these game creation tools are designed to let people actually focus on designing an actual game instead of having to worry about all the technical details, with each tool giving varying degrees of freedom. Not everyone who makes games or who wants to make games is a programmer you know.



I know some schools teach Scratch, which I thing is WRONG. It's not good to teach people how to use makers. You should be teaching code.


Tools like Scratch are meant to teach students the very basic concepts of programming without having to go into syntactical details of a language. Just throwing code at a student to teach the absolute basics of programming is not the best solution.

I have personally designed and implemented a scratch-like programming environment for programming robot simulations targeted at a teenage audience as an academic project at my university, and I can honestly say that the basic concepts of programming stick with new students much better if they can use them in an easy to learn environment with immediate results for even a short period of time. You wouldn't be able to accomplish something like this with regular programming languages in the same amount of time.




GameMaker, Scratch, and every other game maker(once again, other then UDK and Unreal Engine) should be shut down, along with the companies that develop them. People should not be using little code. They should be using FULL code. The fun part about coding is sitting at an IDE and typing for hours and hours on end. That's what makes programming fun. You should be forced to code. Yes, you can argue you are still "cheating" by letting the language get compiled into Assembly or Binary. You can argue that, but I'm not the one dragging and dropping boxes into a window and clicking on sprites to make a game. In my opinion, the companies should be shut down, along with their engines. I'm not against the people that use them, I'm against the companies that develop them.


This really sounds like you're just trolling.


Not everyone is a programmer nor does everyone experience or enjoy programming like you apparently do. Nobody should be forced to learn how to program just because they have the ambition to make a game.


If all of those companies providing middleware solutions for game development would be shut down as you suggested the gaming scene would be pretty bleak and a lot of some of your favorite game experiences would probably not exist. You can't honestly expect every huge game title to develop every piece of functionality in-house while there are so many high quality and vastly tested tools are out there to make the development process easier and cheaper.




I also have a few questions. I've seen a lot of people say that coding is dying. It will only be around for a few more years, then everyone will be using D&D programs to make programs. So, is coding dying? Is it pointless to code now? I don't believe it is, but I want to know what's going on here.


This is just silly...

#5082852 where can i find the vc++ 2010 exe file so i can pin it to start screen

Posted by Radikalizm on 03 August 2013 - 04:31 PM



i have the vc++ 2010 pinned on my task bar but i want to pin it to the start screen also.  i try to find it in:


C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin


but do not know what is the name of the program.  can someone give me the path of the directory and the name of the exe file that start vc++ 2010.




The executable can be found in "Microsoft Visual Studio 10.0\Common7\IDE" and is called devenv.exe

#5082838 fast memory manager

Posted by Radikalizm on 03 August 2013 - 03:41 PM



i want a fast memory allocation library or alogritm  that supports multithreading ( before it i try some library like as ned malloc and doug lea). are u know any other library or alogrithm ?


Is memory allocation actually causing a bottleneck in your code, or do you just want to drop in a different memory allocator for the sake of having one?

If memory allocation actually is causing performance problems you should first have a look at how you are allocating and freeing memory throughout your code.


Are you doing a lot of (small) allocations which get freed right afterwards?

Could you maybe remove some free store allocations in favor of stack allocations?

Is there a possibility of allocating a bunch of memory up front an re-using this pool of memory throughout your application?


Always try to look for solutions to your problems higher up before you try to mess with these lower level mechanics, you might be causing more problems than you're solving.

#5039573 PSP games in C++

Posted by Radikalizm on 05 March 2013 - 10:50 AM

"but you can use any language that compiles to the target architecture"
Do the devices only accept their assembly language?
If not, how high level can you go for the popular devices?


You have to remember that an assembly language is not the absolute lowest level you can reach, even assembly needs to be assembled into the platform's machine language in order to create an executable.


And you can go as high level as you want for any platform, as long as there's a compiler available which compiles down your high level code into those machine instructions.

#5037135 Want to learn programming...again

Posted by Radikalizm on 27 February 2013 - 07:25 AM

Thanks for the prompt responses. What's the main differences between C# and C++? 

learning c++ is better, i learned c++ and vb and I can recognize c# codes and even code or script with them without learning


Learning C++ isn't at all "better" than learning C#.


C# is a very powerful language with a huge amount of libraries available as NightCreature mentioned, and it is considered to be much more beginner friendly than C++ is.

Modern C++ (ie. C++11) is a vast improvement to 'old' C++ when it comes to usability, but it's still completely possible to do things horribly wrong in very spectacular ways without being given a clear reason why things went wrong. This is not a position you want to be in when getting (re-)acquainted with programming.


Focus on the essentials of the actual programming first, not on all of the additional things C++ makes you go through. C# is a very good language for this, and it has a bunch of game-related libraries you can jump into from day 1, although it definitely isn't the only choice available.