Graphics Programming Advice

Pages: 12
Hello all, I come here to post for recommendations from you guys as to what I should do. Here is the situation..

I understand pretty much all the basics of C++.

Now I want to move from the command line to something Graphical.
I have Frank D. Luna's book on DirectX11. Was a pain to get the demo running as I had visual studio 2012...Anybody who has this combination, book and IDE, know how frustrating that was.(rebuilding the Effects.lib..) Anyway..

So DirectX seems a pain in the ass. There are so many things involved with initializing the device.

Am I skipping any steps be jumping from command line c++ to directX.

Should I learn an easier API like Allegro or SDL before learning DirectX.

Will learning Allegro make DirectX easier to learn when I get up to it...

I don't want to try to start running before I walk...know what I mean..?

I feel like Frank D Luna leaves out some details on what some of the functions actually do in the code.
Last edited on
Should I learn an easier API like Allegro or SDL before learning DirectX.

I think so, although SFML is the most popular 2D graphics library around here ( and it's in C++, not C, and is well done ).

When you move on to 3D graphics, you can easily use either SFML or SDL just to set up your window and handle user input, and do your rendering with OpenGL directly. Not sure about DirectX integration with these libraries.

Also, most game makers now days use pre-made engines like Unity rather than using OpenGL or DirectX directly. With all the different platforms and devices people use now days, there are very good reasons to make your code as cross platform as possible with as little extra effort as possible.

Last edited on
Thanks for your response. As much as I am interested in making actual games i am also really interested in making my own game engine even though it would be crappy..Just to be able to do it interests me. I would like to help create a game engine for a game company...that would be my dream job so to speak..


Im really tired lol -_-
Last edited on
Also, most game makers now days use pre-made engines like Unity rather than using OpenGL or DirectX directly.

+1 htirwin. The only thing that I dislike about Unity is that it natively only supports two languages which are poor facsimiles of better established, better documented and better implemented languages. It's understandable why they did it that way, how else were they going to tie into every web browser out there so easily? ActiveX shows you what happens when you try to cater to too large an audience of developers.

@ OP: If your ultimate goal is to create your own game engine then you should still develop some experience with the ones that are out there now. Even if all you do is follow some basic tutorials, it would take you a few days at the most and this will at least show you how they organized their workflow and how they tie things together. Then you can decide what you like about their design and what you want to change.
Last edited on
closed account (10X9216C)
There is also UE4, which is the far superior choice in every way imaginable to Unity. For $20 you also get full access to source code.

https://www.unrealengine.com/what-is-unreal-engine-4
+1 htirwin. The only thing that I dislike about Unity is that it natively only supports two languages which are poor facsimiles of better established, better documented and better implemented languages.
There are 3 languages it supports. C#, javascript(unity script), and boo(similar to python).

There is also UE4, which is the far superior choice in every way imaginable to Unity.
I think that is a bit one sided and depends on what you are making. Anyways unity you don't have to pay any royalties and is meant for smaller teams with the free version though you can get the paid version if you are going to make more than 100k profit IIRC.
Am I skipping any steps be jumping from command line c++ to directX.


Well you're skipping GUI programming, which, IMO, is the next step from console programs.
I don't think there is a linear way to learn things. I know nothing about GUI development but I can easily setup a GLX/WGL context in a window.
Last edited on
closed account (10X9216C)
I think that is a bit one sided and depends on what you are making. Anyways unity you don't have to pay any royalties and is meant for smaller teams with the free version though you can get the paid version if you are going to make more than 100k profit IIRC.

I wasn't talking about costs, even still 5% is a small price to pay for what you are getting. If you are that picky and don't want the entire source to an engine, you could always go for Cry engine which offers something similar but have no royalties. There isn't any need to use unity anymore really.
Has Cry Engine added a web-player feature that they forgot to tell anyone about? Because otherwise that is why people use Unity. It may seem like a niche market to you but it happens to be one of the largest niches out there. Yes, Unreal is one of the top modeling engines on the market. But you know what? That's been the case for nearly twenty years. The reasons that people don't adopt it now are the same reasons that they didn't adopt it back then, because for most of us this is a hobby.
closed account (10X9216C)
People use Unity for the soul purpose that you can play it in a web player only on windows and mac os x? What lol. What difference does it make if you play it in a webplayer or not. With the exception if you want to play your "hobby" game for iOS or android you have to fork over $4500 (pro + android + ios packages). Plenty of people are adopting UE4, idk what makes you think otherwise.
The only thing Unity had going for it was it's price point, that's not the case anymore. Back then you couldn't get access to UE3 without forking over huge chunks of cash, you had to use UDK which still took 25% of your profit, which is a huge hunk in comparison to 5%. I am a hobby game developer and i still wouldn't touch Unity with a 10 foot pole. I've never heard a more bullshit reason to use a less proficient tool in my life.

http://martiancraft.com/blog/2014/08/an-unreal-decision/
What lol...

http://www.kongregate.com/
What lol...

http://www.newgrounds.com/
What lol...

http://armorgames.com/

Yes, I can see how you think that web browser games are dead. Also how having a product that interfaces with an ubiquitously excepted web player is completely useless for people who might wish to circulate their game through established channels. Don't let me stop you from pretending that iOS and Android are the target markets for every product in development; after all when has there ever been a shooter or an RTS that didn't play like complete garbage on a cell phone? After all they provide you with the perfect interface for it don't they? That's what all cell phones have always been designed to do, isn't it? No one plays games on their PC anymore surely.
No one plays games on their PC anymore surely.


I know you're being facetious, but,

http://www.pcgamer.com/2014/09/12/there-are-711-million-pc-gamers-in-the-world-today-says-intel/
I play games almost solely on my Linux box.
closed account (10X9216C)
Yes, I can see how you think that web browser games are dead. Also how having a product that interfaces with an ubiquitously excepted web player is completely useless for people who might wish to circulate their game through established channels. After all they provide you with the perfect interface for it don't they?

I don't think they are dead, i think they are redundant, you are only limiting yourself by playing in a web browser. The only thing it eliminates is the download process, you can't tell me you are that lazy you don't want to click two buttons? In any case cry engine may not support "web browser" games but UE4 does. I also believe it supports linux since it uses HTML5 and not some shifty plugin.

https://www.unrealengine.com/html5/

But y'know, keep dreaming.

Don't let me stop you from pretending that iOS and Android are the target markets for every product in development; after all when has there ever been a shooter or an RTS that didn't play like complete garbage on a cell phone?

I never said they were target for every product, i just don't like how just about the second to only open platform out there (gameboy, psp, ps vita, ps1, ps2, ps3, ps4, xbox, xbox one, xbox 360, iOS, atari, nintendo, super nintendo, n64, wii, wii U, nds, 3ds, etc, are all closed platform [you throw $$$ and you still can't develop for it]). So when i buy my $1000 phone and i can't develop for it, or no one else can, that just doesn't settle with me. Unity throwing that $1500 chains over someone that might want to develop for it is what i really don't like. Though iOS isn't that bad, you only need to pay a $100/year (iirc) but still idiotic in comparison to android (you only pay $100 to publish to store, not to run on your device).

There are plenty of games out there that don't play like garbage on mobile, with the release of nvidia's k1 it is bringing full OpenGL and Directx support to mobile. Only expect it to get better and better.

https://www.youtube.com/watch?v=PY37w7wxLFE

That's what all cell phones have always been designed to do, isn't it? No one plays games on their PC anymore surely.

If you had to pay $1500 to launch for PC i would have mentioned it but it doesn't so i can't really mention that can i? PC is number 1 in openness, even in Unity. You are really missing your marks aren't you, i only game on PC. I don't like where every other market is going so i am not even going to participate in it anymore. I got a Xbox One as a gift, i simply returned it.




... i think they are redundant, you are only limiting yourself by playing in a web browser.

This is an interesting argument. Or at the very least it's an original one. I've seen this said about off-line consoles and many times about about off-line PC's. But never the other way around.

The only thing it eliminates is the download process, you can't tell me you are that lazy you don't want to click two buttons?

Me? No, however I believe my target audience feels otherwise.

Unity throwing that $1500 chains over someone that might want to develop for it is what i really don't like.

I can see what you're saying here, but I don't plan on selling anything that I would make. I grew up playing sites like Newgrounds and I would be happy to contribute something other then some flash crap. The most I could ever see myself doing is maybe making a "freemium" title, otherwise that profit cap is just too far away for me to realistically care about.

There are plenty of games out there that don't play like garbage on mobile,

I'm talking about the interface, not the frame-rate or graphics. You can't have a good RTS without hot keys and\or Macros and you can't play a shooter without either a dual analog or a mouse+ keyboard combo. No cellphone in the mainstream market provides any of these.
closed account (10X9216C)
This is an interesting argument. Or at the very least it's an original one. I've seen this said about off-line consoles and many times about about off-line PC's. But never the other way around.

There is a perfectly good reason to use an offline console, there are a lot of great single player games on consoles and you need a subscription fee to play online for consoles which serve no purpose to improving or maintaining the service. Just cause your playing it in a web browser, doesn't mean your connected to the internet. You can download the .unityweb file, create some .html file that references the file and play the game locally in a web browser, all while being offline. For defending something so vigorously you really have no idea of it's inner workings do you.

Me? No, however I believe my target audience feels otherwise.

Kids playing games at schools? Yah i guess. You could probably put the games on a usb stick, which is what i did with flash files.

I'm talking about the interface, not the frame-rate or graphics. You can't have a good RTS without hot keys and\or Macros and you can't play a shooter without either a dual analog or a mouse+ keyboard combo. No cellphone in the mainstream market provides any of these.

You can easily pick up a bluetooth controller that every cellphone on the market can use. Tbh you can't play a shooter without a mouse, all console shooters have aimbots built-in to compensate for this.
Well no shit you can't play a decent RTS without a keyboard and mouse. That is why RTS is dominate only on PC, i really don't know what you are trying to prove with that point. In any case, android actually does have mouse and keyboard support. It is based off linux after all. So you could theoretically do a decent RTS on android, there just probably isn't a market for it. You might as well just get a laptop instead of carrying a mouse and keyboard around with your tablet.
For defending something so vigorously you really have no idea of it's inner workings do you.

Even if you assume that I didn't know what I was talking about, it wouldn't matter. You're doing a fantastic job of highlighting the flexibility of Unity for me. Another way to look at this may be that you're catching up with the conversation.

Kids playing games at schools? Yah i guess.

Yes, I know it's trite but they are the ones with the disposable time and, if it comes up, the most disposable income as well. Who else would I tailor my game for, people like you and me? When we're not at work and\or school, with the family or sleeping; we're pouring our time into our own projects. Why would I put all of this work in for the whole 10 minutes of polite evaluation and feedback that people like us might provide? I would want my game to be enjoyed for at least the amount play time it is designed it for.

... i really don't know what you are trying to prove with that point.

Apparently nothing that you don't already know. If profit is your goal then by all means aim from the mobile phones I hope it works out for you. Some out of touch or too busy Mommy, Daddy, Aunt or Uncle will always buy little billy an itunes gift card as a filler for what ever occasion and if you're app is the flavor of the month then that's money in your pocket. That particular bubble has a few more years on it and you should ride that baby until it pops, just don't get caught holding the bag in the end. For me the interface that most users have access to is simply inadequate for what I would like to build. So the extra platform support that UE4 provides for these devices does not add any benefit for me and so will not go toward justifying the extra overhead cost.
closed account (10X9216C)
Even if you assume that I didn't know what I was talking about, it wouldn't matter. You're doing a fantastic job of highlighting the flexibility of Unity for me. Another way to look at this may be that you're catching up with the conversation.

I was enlightening you of how Unity's web player worked, how web works in general (just cause it's in a web browser doesn't make it "online"), as you clearly didn't and still evidently don't know how it works, you'd rather just troll.

Yes, I know it's trite but they are the ones with the disposable time and, if it comes up, the most disposable income as well. Who else would I tailor my game for, people like you and me? When we're not at work and\or school, with the family or sleeping; we're pouring our time into our own projects. Why would I put all of this work in for the whole 10 minutes of polite evaluation and feedback that people like us might provide? I would want my game to be enjoyed for at least the amount play time it is designed it for.

I still find the time to play, don't speak for all of us. It takes a lot more time to design and build a game than it does to play it. Just cause i played transistor, as an example, for 20 hours, where as it took them years to develop, doesn't make it any less of an enjoyable game.

Apparently nothing that you don't already know. If profit is your goal then by all means aim from the mobile phones I hope it works out for you. Some out of touch or too busy Mommy, Daddy, Aunt or Uncle will always buy little billy an itunes gift card as a filler for what ever occasion and if you're app is the flavor of the month then that's money in your pocket. That particular bubble has a few more years on it and you should ride that baby until it pops, just don't get caught holding the bag in the end. For me the interface that most users have access to is simply inadequate for what I would like to build. So the extra platform support that UE4 provides for these devices does not add any benefit for me and so will not go toward justifying the extra overhead cost.

UE4 offers wayyyy more than Unity, not just better platform support, even your precious web browser is better supported in UE4. You're just making up excuses now not to use it, cause you know the statement that started this whole argument is true. If you want to use Unity for sentimental reasons, that's fine, but don't go making stuff up cause you can't use that argument in a rational conversation.
Last edited on
You're just making up excuses now not to use it, cause you know the statement that started this whole argument is true. you're a cheap bastard and you don't want to pay $20 a month

FTFY. After that change in verbiage I can verify that the above statement is accurate.
Pages: 12