Lupine | I'm Developing a 3D Game Engine!
Tags: opensource, gamedev, programming, cpp
Published: 2022-03-06 19:29:27

GITHUB : https://github.com/fkkarakurt/Lupine


-------------------------------

Hello everyone,

For a long time, I have been trying to produce content about questions and contribute to open source. Especially the [article](For a long time, I have been trying to produce content about questions and contribute to open source. Especially the article I wrote on games and graphics received much more appreciation and attention than I expected, thank you for that.) I wrote on games and graphics received much more appreciation and attention than I expected, thank you for that.

I love game development and graphics calculations a lot. Ever since I developed my first 2D arcade game, I always asked myself "I wonder if I can develop a game engine one day?".

And I think that day has come.

I'm trying to develop a game engine called **Lupine**. This is really a much more laborious and challenging process than I expected. I've been working on this for about 6 months. Finally, something started to emerge.

My `build` operation on a Debian 64-bit operating system was successful and I saw that my game engine was ready.

There was so much missing. I am still trying to fix these shortcomings. I'm trying to share it in my github repo when I solve the errors in the codes.

You can follow this repo [here](https://github.com/fkkarakurt/Lupine).

## What difficulties did I experience?

As I went deeper into mathematics, such as linear algebra and matrix, determinant, which I use especially in graphic rendering, I choked on numbers and formulas. 

I knew that I would be sleepless at night and would really devote a large part of my budget to coffee expenses, but these calculations were not at all what I expected. I have reviewed many open source graphics libraries. I didn't really understand some of their codes of repos and some were really old libraries. So I decided to do most of the math calculations myself.

While this was a difficult process in itself, I had to take many more steps to complete the project. I think I've read more technical documentation for this than I've ever read in my life.

In particular, there were many moments when my motivation and enthusiasm were lost. I tried to delete the project many times. After each debug, the errors and warnings bothered me. I was looking for many answers from forum sites from the early 2000s that I couldn't find on Stackoverflow and it was never working. It takes a lot of effort to read the codes one by one and find the errors and think about what the problem might be. I even deleted the project completely once. After about 1 hour I took it out of the recycle bin again and for over 10 hours I found the problem just by looking at the monitor.

I guess only those who have lived it know this.

Sound libraries, Scripting and API, documentation, visual editor window, GUI, bug tests, FPS settings, rendering, operating system compatibility, 3D matrix calculations... There were many things I had to prepare.

## What Did I Learn?

The biggest lesson I learned was this: **If you don't really like computers and coding, you can't really, really succeed at this job.**

Trust the power of open source and helpful people. **Read as much code as you write code.** Algorithms created by humans and the techniques they use can give great clues.

I think the most difficult issue in this project was the following: "**Create New Folder**". Yeah I'm really not kidding. When you create a new folder and look at a blank page, you really don't know where to start.

To minimize this, use paper and pencil. At least I find that easier. **I really don't use those modern RGB colorful keyboards and mouses. The biggest equipment I use is paper, pencil and a calculator that I use in engineering faculty**. After planning here, I start to write code by thinking about the libraries I will use and the algorithms I have set up in my head.

## What Happens Next?

I will continue with this motivation and try to make the game engine ready for use. I am ambitious for this and I hope I can be successful. At least my closest goal is for the `build` to be successful. I am ready for the optimization errors that will occur afterwards. (I hope not be. But I get really low fps in my tests on linux.)


--------------------

I will put the necessary links below and at the top of the article. If you follow the project and give stars, I would be very, very happy. That would be a great motivation.



GITHUB : https://github.com/fkkarakurt/Lupine