• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

Graphics Programming in C/C++

Status
Not open for further replies.

Deleted member 219079

D

Deleted member 219079

I'm looking for a good GUI development solution. I've done one project using Win32 API in C, it seems a bit clunky, I don't know. Would like to hear any recommendations.

I'm interested in: text editors, text parsers, 2d games, multiple scene projects (i.e. not just one dialog), quickly done dialogs (don't want to waste time on front end). And my platform and target platform will be Windows (vast majority of consumers is on Windows and I don't really have time to be a rebel).

As the time of writing this I'm downloading Qt as that seems to be modern and supported. However there must be other solutions out there.


ot: I remember when I was 12, I made lulz program that generated fake BSOD, timed system shutdown box, fake system warning message, motherboard beep sound, after given amount of time had passed, in Visual Basic (drag and drop haha). And now, I have no idea how to do any of that :/
 

Deleted member 219079

D

Deleted member 219079

GUI programming is always clunky. No matter what you do you are either going to end up hard-programming the UI or resorting to writing XML or other such data files.
Alright, I didn't know it's like this still in 2016.. I will just create my next project with Win32 API as well.
I tested Qt, more bloated than Visual Studio. Also I don't think their code is optimized for Windows since they promote cross platform that much.

Unreal Engine 4 has probably the most advanced form of graphical programming I've ever seen. It's almost equivalent to the C++ code it gets translated to.
Can't think of anything else other than bad tools made for Android, or GameMaker.
Seems like I have to pay for that. But certainly looks nice.
 

Deleted member 219079

D

Deleted member 219079

It is free, they just want a part of your earnings if you earn +10.000$ as far as I remember.
Okay... I really like this in it:
Code:
void MyActor::Tick( float DeltaTime ) {
    Super::Tick( DeltaTime );
    ...
}

And all those other events as well. Since I don't like creating a framework at all.

I will take a shot at this one OpenGL tutorial, then try Unreal Engine.
 

Deleted member 219079

D

Deleted member 219079

I realize that the game will be a huge project and I will really have to enjoy working with the framework solution I choose..

Does anyone know the options for Java? I would prefer going through all the options.
 

Deleted member 219079

D

Deleted member 219079

I have 8 months before my student life ends. 8 months to either create a WC3 mod that I don't do scheisse with, or to get experience with something that will actually help me in life.

Yes, I want to create an engine myself. Something that gives visual result so my casual friends appreciate it as well.
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
Well... it wil take some time to get any proper results.
I am working on my ow engine for various reasons and I must say that it is not as simple as it seems.
The framework isnt that hard, but having a proper API is a terror already.

Ofcourse, you learn more than you expect, but as I said, it will take time... and dedication.
 

Deleted member 219079

D

Deleted member 219079

There is no mention of commercial use here: License - LWJGL

So does this mean they want no money whatsoever?
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
That is true, LWJGL uses the OpenGL library... in which case, you can use that one too.
The point is that LWJGL has got an implementation and "better" API built around it.
One bad thing about LWJGL is that 2.9 is missing some functionalities like multi threaded support but 3.0 is missing other stuff like the math lib (which is present in 2.9).
 

Deleted member 219079

D

Deleted member 219079

That not-ambitious-at-all-best-game-engine-ever is on halt, I want to do some smaller applications to feel good of myself (also wish to learn assembly first, I have separate thread for that).

I wish to create a graphical demonstration of a genetic algorithm, if anyone of you have good learning material I'm all ears.

I will be using SDL2 as it seems like a two-piece jigsaw.
 

Deleted member 219079

D

Deleted member 219079

Why would I use Vulkan? The ecosystem is immature and I've read that eventually OpenGL releases will work on top of Vulkan anyway. Besides you would just end up writing framework that OpenGL would give to you.

I see Vulkan as a marketing gimmick; initially called next generation OpenGL initiative, but they want to attract customers and get free media attention with the new name.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,202
Why would I use Vulkan?
Allows for higher performance than OpenGL does. Better multi-threading, lighter weight driver calls, better GPU pipelining and utilization are all advantages that Vulcan has over OpenGL. Many new GPU features will only be available with Vulcan.
The ecosystem is immature and I've read that eventually OpenGL releases will work on top of Vulkan anyway.
OpenGL will work on top of Vulcan the same way D3D9 still works on top of D3D12. The APIs are completely different but the systems still have backwards compatibility. That said D3D12 allows for much higher performance than either D3D11 or D3D9 did on compatible hardware and like wise Vulcan will do the same over OpenGL. Since Vulcan and D3D12 are the current graphic technologies their knowledge is worth more as far as employability goes than legacy technologies.

If you want maximum audience target then OpenGL is the way to go though as practically everything can run it. OpenGL ES is probably even better since it is used by mobile devices as well as supported by desktops.

Besides you would just end up writing framework that OpenGL would give to you.
OpenGL gives you no framework. Vulkan gives you a different API than OpenGL, one that is slightly lower level but ultimately feature overlaps. The advantage is that you can get GPUs to do things that higher level APIs do not allow with less CPU time as the CPU has less to manage.

I see Vulkan as a marketing gimmick; initially called next generation OpenGL initiative, but they want to attract customers and get free media attention with the new name.
Vulkan is basically the OpenGL equivalent to D3D12. D3D12 is based on features used by AMD's Mantel API and aimed to be more general purpose (supported by NVidia, Intel and other graphic manufactures). Mantel, D3D12 and soon Vulkan are all current generation graphics APIs. All PS4, XB1 and future Windows 10 games will use at least 1 of them.
 

Deleted member 219079

D

Deleted member 219079

You're saying the OpenGL using Vulkan is destined to be noticeably slower? That's the only scenario I would use Vulkan, if OpenGL is doomed to be slow forever.

I read article yesterday and it read that OpenGL gives you framework Vulkan lacks. Guess it was wrong use of term.

If SDL equivalent for Vulkan is some day made, I will maybe start using it. Now it's too early.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,202
You're saying the OpenGL using Vulkan is destined to be noticeably slower? That's the only scenario I would use Vulkan, if OpenGL is doomed to be slow forever.
It is doomed to be slow forever. The API design is inherently slower than Vulcan, D3D12 and Mantel. The reason it is being called Vulcan rather than an OpenGL revision is because the API has practically nothing in common, similar to D3D12 and D3D11.

I read article yesterday and it read that OpenGL gives you framework Vulkan lacks. Guess it was wrong use of term.
It does a lot of the state management for you in the form of complex state objects or static states. This means that the driver calls are complex so slow. Vulcan is lower level meaning you are responsible for managing the state but the driver calls are light weight and one can do low level state tricks not possible with OpenGL.
 

Deleted member 219079

D

Deleted member 219079

Then let's say I use Vulkan, what would I use beside it?

You suggested SDL which works well with OpenGL, but what is good with Vulkan?

I'm targeting 64-bit Windows.
 
Learning to use vulkan/openGL for side projects can be enlightening, but I wouldn't recommend using it directly if you're going to make a game. They're very low level and it will be super arduous to do certain tasks that would otherwise take a few minutes in Unity/Unreal Engine.

Both Unity and Unreal already have devs who are making the most of those APIs, and you get portability to boot.

It can be tempting to get to the bare-bones of code so you understand how everything works, but from past experience--it is easy to get lost/overwhelmed. It would be akin to starting wc3 modding and jumping straight into plain vanilla JASS. It is doable, but probably more time consuming and frustrating than necessary.
 

Deleted member 219079

D

Deleted member 219079

so you understand how everything works
Yes!

I want to learn how computer works by practice. Already using C has been AMAZING journey to the world of memory usage. Graphics implementation is also intriguing in that regard as well.

Also I'm planning on specializing in computer science, so it's beneficial in that way as well.

I will take a look in UE later this year (I've already tried it), I'm busy with learning assembly and graphics / reading LOTR / real life atm.
 

Deleted member 219079

D

Deleted member 219079

Vulkan is not available for my GTX 460.

I think I can simulate the low level development of Vulkan by using this. Can I use this for commercial products? And I'm not really seeing tutorials for it, I'm using the documentation they provide on that page.

Edit: Well :D that's not what I'm looking for, after taking a look at what it actually does... I wonder where I can find the NVIDIA driver API?
 
Last edited by a moderator:
Status
Not open for further replies.
Top