Advertisement

C code games & tool development

Started by February 18, 2022 07:07 PM
55 comments, last by jatamron 2 years, 9 months ago

I have been learning C.

The plan is to make 2D & 2 ½D games with as much C code, Open Source libraries, Open Source development software / tools, and cross-platform as I can. I have worked in the game dev industry as an art asset creator, so I want my games to be art oriented, including my own sounds.

My problem with C libraries for GUI is the very old (like 30 years old) looking GUIs which they produce. I am looking at Raylib and figuring out a way to integrate IMGui. Perhaps coding some C++ for a nice looking GUI is inevitable for me.

I am also looking at CMake, mingw32 / 64, and some header-only coding for the purpose of making it easier to deliver cross-platform games.

Any comments or suggestions would be appreciated.

All hail C, Alfather of the Codes

Do you have a question?

Since you solicited suggestions, I suggest you look into newer art for the UI kits. Typically it is the art style, not the code, that makes it look old.

Also, there is no harm in mixing tools used in assorted languages. Ultimately they all boil down to the same library interfaces, and the linker does not care if it came from C, C++, Fortran, Go, Rust, assembly, or others. Big games use a mix of languages, which ever is a good fit for the problems being solved.

Advertisement

C-Research said:
The plan is to make 2D & 2 ½D games

C-Research said:
My problem with C libraries for GUI is the very old

Games don't use GUIs. ED: OK, simple games and some casual games do.

HUDs/game menus can be put on seperate layers. freetype is a good lib for font rendering.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

My vision for game development is an interaction between gamer and game in “windows", like RPG in some ways, so the windows will have a lot of art assets. After looking at documentation and tutorials, I am having a difficult time in understanding how my content created in 2D & 3D editors (I use a lot of Blender, Wings3D, GIMP, and Inkscape) can be imported into a game using the existing C GUI (and windows) libraries. Even reading community forums, I have found little information on this.

Heavily coding-oriented developers of frameworks and tools seem to overlook the guys like me who are coders but are very deep into art creation. There is much information and involvement in pixel art and sprite oriented development, but not what I am seeking. By the way, I have 2D & 3D animation experience in the game dev industry, so I eventually want to include my skills in those areas after I assemble a development flow

All hail C, Alfather of the Codes

@fleabay I see that you wisely edited your comment about GUI. GUI is a general term for any graphical interface which connects the user with functionality of a game or other software / application, though sometimes a GUI is used to work with an ABI (GUI to API is much more common). The vast majority of game developers do not directly work in an ABI, but most use GUI connected API. An HUD is a graphical user interface by definition, though I am aware of the misunderstanding among developers. Having worked on HUD for flight simulations, I know.

It reminds me of the misunderstanding of game designer which is an occupation in game development or a subcategory under game development.

There are a lot of people using C GUI libraries for pixel and sprite games, but not other things so much. I have used 3ds Max, Blender, Wings3D, and a bunch of other 3D and 2D software. Many times I have had to search for tools to convert or to encode art assets to be used by frameworks, software, or libraries, but this particular issue with C GUI libraries and frameworks is proving to be very time consuming.

I would rather be coding and creating !

All hail C, Alfather of the Codes

Trying to urge this toward something we can help you, please go read this. You still haven't asked a question, asked for help, or given us much we can comment about.

I'm assuming since you're posting that you have issues you want help with resolving. If you're just posting to share, then say that.

C-Research said:
I am having a difficult time in understanding how my content created in 2D & 3D editors (I use a lot of Blender, Wings3D, GIMP, and Inkscape) can be imported into a game using the existing C GUI (and windows) libraries.

What specifically are you struggling with?

What have you tried? What did you do that isn't working, and how is it different from what you expect?

Advertisement

@frob I have not even had enough information to get started in putting together the software, tools, libraries. The information environment is so obscure, I do not even know what specific questions to ask.

The hundreds of hours of research surrounding my basic strategy has helped and I learned many things, but I still have no ability to begin working until I understand what I need specifically. Several times I spent weeks researching to only come to dead ends.

However, I feel that the breakthrough in my understanding is coming soon.

All hail C, Alfather of the Codes

My biggest problem is making game GUI (menu, etc.) which is written in C, OS cross-platform, and is compatible with any art assets which I want to include from any of the major art software. This includes animation.

A lot of framework and tool developers pigeon hole a guy into using the things which such people included in their framework ability.

Artists use the tools which best suit them. This is a HUGE conflict and struggle for the artist.

I do not have the money to spend on expensive line of softwares, a kind of commercial development chain.

I have the coding skills and the art skills BUT NOT THE INVESTMENT MONEY

All hail C, Alfather of the Codes

I use Assimp for obj/fbx files. Supports other formats.
https://github.com/assimp/assimp

SOIL for png files. Supports other formats.
https://github.com/paralin/soil

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

A lot of framework and tool developers pigeon hole a guy into using the things which such people included in their framework ability.

Artists use the tools which best suit them. This is a HUGE conflict and struggle for the artist.

Maybe what you want is to import Autodesk fbx, not glTF like rayLib already supports?
That's possible ofc., but never did it myself. Autodesk provides docs and code to help you with implementation, but afaik it's not easy for open source framework makers to offer support due to license.
Solid knowledge about typical math and data structures required, though.

Edit: I would try AssImp first, which is easy to use.

C-Research said:
My biggest problem is making game GUI (menu, etc.) which is written in C, OS cross-platform, and is compatible with any art assets which I want to include from any of the major art software. This includes animation.

You want a GUI to display the usual controls, but also images, models, even animated models?
I don't know a library which could do all this, and getting this right yourself will become surely a lot of work, including a path of failures.
I would propose you focus on rendering your game world and objects first (if needed for your game), then you can reuse related code to render GUI as well later.
ImGui won't cut it, but it should be enough for a working prototype. To me, making nice GUI sounds more like polishing work which should come after that.

This topic is closed to new replies.

Advertisement