Jump to content
Kam

Application for programming

Recommended Posts

Hi all folks,

I have been following your project for some time, now that I have some time I'd like to get into it and start to collaborate. I have done several projects on Unity and Unreal, and I am looking to do some engine C++ programming to learn more about engine programming for the portfolio and just because the project Rocks!!

I've already downloaded the code and compiled it succesfully, I also have checked on track some of the task available but I am kinda lost on the flow of the engine and how is all built up. I guess that is a matter of getting into the code with a cup of coffee and start figuring it out but would be nice to have some help when the situation arise.

I hope that we get along and learn a lot from each other.

Thanks all.

  • Like 4

Share this post


Link to post
Share on other sites

Hi @Kam, welcome to the forum!

Actually you don't have to make an application for programming. There is a wiki page https://trac.wildfiregames.com/wiki/GettingStartedProgrammers to start. I suppose you already have seen it.

Our engine has a popular single loop based architecture. You can follow it in the main.cpp, it looks like:

while (gameIsRunning)
{
	cleanupProfiler();

	// Common stuff
	tryStepLoadSomethingIfPresent();
	processEvents();
	processNetwork();
	updateGUI();
	updateGameState(); // Including simulation

	// Rendering stuff
	prepareForRendering();

	findAllVisibleActorsForSun();
	renderSceneToShadowMap();

	findAllVisibleActorsForCamera();
	renderSceneToScreenBuffer();

	doPostProcessingIfEnabled();

	renderGUI();

	swapBufferToRealScreen();

	// End of the frame
	recordProfiler();
}

 

  • Like 3

Share this post


Link to post
Share on other sites

Hello,

Thanks for the reply, I know there is no need to apply for programming but I wanted to introduce myself here :P.

I already saw the starter list task and I was investigating about the engine a bit before taking one. Thanks for pointing me where to start to follow the execution, I'll get hands on and take one task a soon as I know a bit about the architecture.

  • Like 1

Share this post


Link to post
Share on other sites

Welcome Kam! The page Vlad listed contains a lot of useful information, and I encourage you to hang around on IRC if you have questions :)

Share this post


Link to post
Share on other sites

Hi again it seems that I am gonna need a bit more help, I have been looking for the method @vladislavbelov told me and can't seem to find it. In main.cpp the method that more resembles to it is "frame( )" but is a lot different. Besides, I have been looking at the engine code and for some tickets to get started and there are several that I can't get what is getting asked for. For example there are some that need patching but there are design Issues on how to do it (this https://trac.wildfiregames.com/ticket/4224 and this for example https://trac.wildfiregames.com/ticket/3696), so doesn't get clear on how the designers want that to be patched (what behaviour should be the correct one). Besides I was interested in this ticket (https://trac.wildfiregames.com/ticket/5210) as I can find the class which is referred but when I have opened it, it doesn't seem to be any debug breakpoints to what the tickets makes reference.

I am a bit lost and would appreciate if you could guide me a bit.

Share this post


Link to post
Share on other sites
3 hours ago, Kam said:

Hi again it seems that I am gonna need a bit more help, I have been looking for the method @vladislavbelov told me and can't seem to find it. In main.cpp the method that more resembles to it is "frame( )" but is a lot different.

I told you about architecture in general, not a certain function. You're right, start point is the frame function. But a lot of details are hidden behind functions inside the frame.

3 hours ago, Kam said:

Besides, I have been looking at the engine code and for some tickets to get started and there are several that I can't get what is getting asked for. For example there are some that need patching but there are design Issues on how to do it (this https://trac.wildfiregames.com/ticket/4224 and this for example https://trac.wildfiregames.com/ticket/3696), so doesn't get clear on how the designers want that to be patched (what behaviour should be the correct one). Besides I was interested in this ticket (https://trac.wildfiregames.com/ticket/5210) as I can find the class which is referred but when I have opened it, it doesn't seem to be any debug breakpoints to what the tickets makes reference.

The first ticket doesn't look like the C++ part changes. I'm not sure about the second one. But the third one is definitely about C++. It doesn't have breakpoints in a usual understanding. It has assertions (ENSURE), that could be breakpoints for some implementations/configurations. So in this task you need to replace some relevant ENSURE to LOGERROR (not all): https://trac.wildfiregames.com/browser/ps/trunk/source/network/NetServer.cpp.

  • Like 1

Share this post


Link to post
Share on other sites

Oh, makes much sense now :P

Thanks for the answers, I guess I can continue myself now. I'll get back if I have another doubt.

Edited by Kam

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×