Development Pipeline in C

After more than a year of learning about Linux and using Fedora GNOME desktop since last fall, I am happy about the growth in my understanding. I have wanted to learn C and develop simple games to help make it funner. C is just how I think - functional and procedural strengths.
In the middle 1980s, I made a few games with Basic and later COBOL. I sure miss the days when code was implemented directly to screen as the standard!!
Eventually, I will learn how to create crossplatform GUI with GTK, I am sure. For now, I want to make GUIs while using only C language and little or no libraries. Once I understand how to do this, I will use my GUI to learn C and port to different OS with executables. For now, I do not want my applications to depend on libraries which must be checked and downloaded into the OS before they would run. PURE C, baby! :point_up:

What is it you want to program? If you want to do games, few games use GTK. It can be useful for an editor or casual game but other games tend to avoid the GUI toolkits. As for doing GUIs without a library, I recommend SDL2. I think you will find it is really difficult to do a GUI without any libraries. SDL2 gives you a graphic surface and inputs.

I am a beginner in C. It is extremely time consuming to find tutorials for beginner level IN ANYTHING. I mean updated tutorials.
Plenty of tutorials which are out of date for Ubuntu, Mint, and Windows OS. Few tutorials for GNOME / Fedora for beginners ON ANY ISSUE. Finding such help for SDL has been impossible for me after spending many hours looking for help.
I spend 80% of my time looking for HELP! I do not need another semester long technology to learn, given how hard it is to find beginner level instructions.

I will give you an example of what I am saying. Recently I find tutorials by 3 different authors. The windows which they implement look exactly as I want: simple functionality and a short block of code. The author gives no contextual information such as 1) What is the development platform? 2) What is the exact window library being called? 3) Is such window library implemented crossplatform? 4) What is the code editor or IDE you are using? (in some cases, this is useful to know)
I want to make applications in C without the end user having to download and install needed libraries, because GAMERS lose attention easily. For example, a game was recommended to me, but upon downloading and installing, it took 25 minutes! Even 5 minutes waiting for downloading and installing libraries is far too much for a very simple game. Some people have suspicions about a game having to install things in order to run it. I myself have security concerns as a developer

By the way, I have been looking into header-only coding to see if some of the burden of implementing a GUI can be eased by using this technique. I do not mind spending a few weeks writing my own GUI if header-only is a simple and crossplatform solution.

Without telling us what tutorial you were trying to follow I can’t help with any problems you might have had. Searching for “sdl2 tutorial” found this site. It seems pretty reasonable. The instructions for installing SDL2 for linux doesn’t cover Fedora but that is easy to solve. Run:

sudo dnf install SDL2-devel

That will install the development files for SDL2 and the library to run programs using it.

I understand you want minimal dependencies to make it easy to compile. I appreciate that but most people would prefer to just get a binary to play. For crossplatform support, look at the mingw32 and mingw64 packages. These packages allow you to compile windows binaries in Fedora. I used this to build Anagramarama for windows. @mattdm was writing an article for Fedora Magazine about doing that but it is currently stalled. If you are using libraries available under mingw32/mingw64 it is really easy to build a windows version. I’d recommend sticking to those more established libraries for that reason. For OpenAlchemist I converted it from ClanLib to SDL2, SDL2_image, SDL2_mixer, expat, and libzip. It might seem like a lot of libraries but they are available on all linux distros and mingw allows me to make a windows build.

Building on windows can be easier now with vcpkg but I still finding building under linux better.

Edit: There is a free game development forum if you want to talk to more game developers.

1 Like

For the sake of productivity, I am trying to assemble a development framework which I can keep long term. Another month or so of research into the crossplatform GUI issue and I will make my decision. Trying to do everything in Linux, Open Source, and in C

Builder / Meson / Ninja / Raylib / IMGui is my tentative development set for now. I do not mind a little CPP work on GUI, as long as the game code underneath is C.

My challenge is creating a flow. I have no idea at this point how to connect these things. There is a lot of reading, tutorials, and trial-and-error coming in the next weeks or months. Few people seem to be using Builder and Meson for game development, but it should be very productive. If I ever decide to create a huge game or game engine, productivity and quick build times will be established.