In search of advice and guidance for going back on gamedev

Started by
5 comments, last by Alberth 7 years, 2 months ago

Hello everybody !

After a long time of hesitations, trying and experimentations, I finally decided where to go for my choice of tools and set my next goal.

- C++11/14 will be my language of choice.

Mostly because I want to know it better, I only have a good level with C (it's just my prefered language, so I spent years on it) and Java (because of work obligation), but the C++ immenseness resist me for now, that's a good reason to learn it more deeply. I have both last Stroustrup books and Internet as guide, if they work as good as the K&R worked for me in C I can only improve in it \o/

- OpenGL 3.3+ will be my choice for the graphics part, because even if it's not so simple to use compared to SDL or SFML, but I just find it more appealing and love the possibilities it offer for 2D, 3D, lightning and just in general. Even if I admit that I am far from good with it since I only learned OpenGL 1.0 at University and just fiddle with the modern version on my spare time. I am sad I didn't have book on it, but docs.gl and the official references page look good for a start. But I am open for all kind of documentation and tutorals that you can share with me!

- OpenGL will be wrapped with GLFW + GL3W (and GLM?) to manage the windows, and I think Freetype will be added to manage the 2D text printing on the game UI, that or a bitmap font, I am still hesitating, what are your suggestions for this?

- OpenAL with libsndfile will take care of the sounds and music since I almost made a small audio engine with them, that may not be too difficult to adapt my old code in a class and use it almost as is.

And I think that's all, since I plan to only work with 2D for now I don't really feel the need to search for a physics engine other than a small handmade one.

For the coding and compilation itself I will stay with my usual Notepad++/MSYS64 (g++ 6.3) on Windows 7

Using a complete IDE may be an improvement, but I am so used to this set that I seem to don't find any that please me or is as quick to load/use than a text editor (even if I admit that having one that give me auto-completion based on the files I include may just be great to have... But that wish come from my use of Java/Eclipse at work, maybe should I try C++/Eclipse one day? But I find it slow...)

What do you think of this setup? Is it correct for you? Or do you think I forget something?

With all of that, my goal is to learn and work with the tools as much as I can until the next Ludum Dare arrive and apply to it. That leave me something like 5 weeks to learn how to use and merge everything into some simples games (maybe using the journal to list what is done and need to be learn/done is an idea?). But it's been so long since I have not worked on anything that I am a little lost with all of this around me. And I wanted to ask you if you may be have some advices, directions, guides, tutorials, really anything to guide me from nothing to my goal? Knowing that the biggest threat for me reaching it is the time since I have only 1 or 2h/day and the weekends available to work on that project.

Thanks for you time and advices! I hope my text is not too bad, english is not really my native language

Advertisement

It's a big step from C to C++, but you have Java OO experience, so you will not come totally unprepared. On the other hand, C++ is different, so maybe you need to unlearn a few bad Java habits when programming C++ :)

For 2D, SFML or SDL should suffice, but it sounds like you have made a conscious decision there to go with opengl. 3.3 should be fine (as is c++11 or newer).

I recently learned opengl from learnopengl.com, which I found very good.

It will show you GLFW, shaders, and opengl, that glm is a c++ template library for vector math, and how to draw text in opengl, and a lot more.

As for editors and compilers, maybe the free visual studio is something you may want to try one day, but in general, use what you like best. Typing speed is not a very interesting problem in programming (thinking speed is much more dominant), using tools that you like has more impact, I think.

5 weeks sounds very short with only a few hours on working days. However, if you aim for having fun only, you cannot really fail :)

5 weeks sounds very short with only a few hours on working days. However, if you aim for having fun only, you cannot really fail

I would agree that this is a bit of a short timetable, but if you are having fun and possible posting about areas you get trapped in you can make it work.

Developer with a bit of Kickstarter and business experience.

YouTube Channel: Hostile Viking Studio
Twitter: @Precursors_Dawn

If you're developing on the windows platform then Visual Studio is well worth looking in to. If load times are the only thing holding you back, rest assured you'll easily get that time back when it comes to debugging your code.

5 weeks sounds very short with only a few hours on working days. However, if you aim for having fun only, you cannot really fail :)

I would agree that this is a bit of a short timetable, but if you are having fun and possible posting about areas you get trapped in you can make it work.

Thanks! Having fun is the basics for everything I work on! I am not worried about that part ^_^

But I admit that the 5 week part is a little short, but it's not my first project with all theses tools (except Freetype that I only know by name and function), so it's not completly a blind try, that's why I believe on at least a small success with that attempt. And my goal is "only" to be ready for the Ludum Dare, with my speciality (globally 50% of the 4 games I have done and 100% of the released one, even if it was just other Ludum Dare games) being working on and making (or trying to) roguelikes game, just having a screen that can display Freetype/Bitmap fonts, color and move them is a win for me because I will have enough to make something of it. Sound isn't even included in the success condition, but I expect to be able to do more than that!

As for editors and compilers, maybe the free visual studio is something you may want to try one day, but in general, use what you like best. Typing speed is not a very interesting problem in programming (thinking speed is much more dominant), using tools that you like has more impact, I think.



If you're developing on the windows platform then Visual Studio is well worth looking in to. If load times are the only thing holding you back, rest assured you'll easily get that time back when it comes to debugging your code.

I work mostly under windows, but sometime switch to a linux environment, at least to try compiling it since I want portable game if possible, that's the reason why I never really use visual studio, but with Visual Studio Code emerging and being portable I imagine at least this one can be an option. While setting up a fresh and clean environment for this project today i have tried some coding under Eclipse for C/C++, it was not that bad and slow as I recalled it, I almost liked using it with it's autocompletion feature for included class/libraries or member function (honestly, the only feature that may be able to make me quit Notepad++ for one), I am just sad I didn't succeeded to make it work for basic types or non class / namespaced functions.

For this week-end I think I will give a try to VS:Code and maybe again Code::Block if they provide that feature the way I want it and use easily my setup of MinGW. And work on a base code for at least initialize and release everything properly. And maybe display a window if the first part goes well.

What can I say after already 3 day and one week-end of trying... C++ is not as easy to handle as I imagined it with my background! The next weeks promise to be full of fun!

I expected to have at least all initialization writted and operational (GLFW+GL3W in a class, lbsndfile/OpenAL in another) before the end of the week-end, but it's more difficult that I imagined, globally that work, but my current problem is to set GLFW and it's callback functions in my Display object. I understand that the function need to be static to be able to be registred, But it seem i'm not able to write that correctly for now. But at least I can continue by keeping them out of the class for now. I can always improve the code later.

It's a lot of new stuff, and all far from trivial. My tactic in such a case is to reduce the amount of "new". I limited myself to a small subset of new things, and work in that until I am familiar with it. Then I take the next batch of "new", and extend what I can work with. Repeat until running out of new things.

This topic is closed to new replies.

Advertisement