Forum

The Visual Barrier into the Engine

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

The Visual Barrier into the Engine

Postby Baker » Wed Mar 23, 2011 12:28 pm

To some extent it is a bit harder to get a visual picture of what is going on inside the engine with the state of things.

I mean after you get into engine modification for a while, it becomes far less of a mystery. But part of me wonders if the learning curve couldn't be sped up.

1. Server side entities ... yeah the edicts command exists, but it is a bit clumsy.
2. Client side entities ... same deal
3. What textures, models, sounds and sprites are loaded. Their properties. The FitzQuake dumptextures is one of the coolest things that was part of FitzQuake 0.85 in my opinion.
4. With developer 1, I guess you get a blurry picture of the loading state. I do like how more recent DarkPlaces displays the models loading.
5. A picture of the incoming and outgoing network traffic. DarkPlaces has some stuff like developer 10000 that enables those things.
6. Developer messages. And I still am not quite sure how to handle this well. You can either get too many, too few.
7. Cvars and commands. Most modern engines handle this a heck of a lot better with better completion.
8. The engine state and settings. All those globals (in at least GLQuake there are WAY more globals than actually used).

Either way, for most of the above I'm playing around with ways to display those.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Mexicouger » Wed Mar 23, 2011 1:21 pm

I just wonder where the engine starts. I did a search for the main function that is the kick-start of most code, and couldn't find it in kurok. If I could find that function, I can kind of see what leads to what and see how it all spreads out.

I think if you repeatedly do tutorials and you lust to learn, You will absorb it more than you think.
Personally, I do side projects to 'experiment' new coding techniques I obtain. I mean DOS apps that is. I also took about a week and learned quite a few things about OpenGL(Helps alot with PSPGU).

Look, learn, do.
User avatar
Mexicouger
 
Posts: 514
Joined: Sat May 01, 2010 10:12 pm

Postby leileilol » Wed Mar 23, 2011 1:28 pm

sys_*.c
i should not be here
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Postby Baker » Wed Mar 23, 2011 1:44 pm

leileilol wrote:sys_*.c


^^ that. On the desktop platforms.

On the PSP, it is main.cpp

http://bladebattles.com/kurok/SVN/psp/main.cpp

Code: Select all
nt main(int argc, char *argv[])
{
/*
#ifdef SLIM_MODEL

   SceUID mod = pspSdkLoadStartModule("dvemgr.prx", PSP_MEMORY_PARTITION_KERNEL);
   if (mod < 0)
      Sys_Error ("Couldn't load dvemgr.prx, error %08X", mod);

//   vramExtender();
   pspDveMgrSetVideoOut(0, 0x1d2, 720, 480, 1, 15, 0);
#endif
*/
   // Set up the callback thread.
   setUpCallbackThread();

   // Disable floating point exceptions.
   // If this isn't done, Quake crashes from (presumably) divide by zero
   // operations.
   disableFloatingPointExceptions();

   // Allocate the heap.
   std::vector<unsigned char>   heap(heapSize, 0);


Also Host_Init is very important ...
http://bladebattles.com/kurok/SVN/host.c

Code: Select all
void Host_Init (quakeparms_t *parms)
{
   scr_disabled_for_loading = true;

.
.
.

   Memory_Init (parms->membase, parms->memsize);
   Cbuf_Init ();
   Cmd_Init ();
   V_Init ();
   Chase_Init ();
   Host_InitVCR (parms);
   COM_Init (parms->basedir);
   Host_InitLocal ();
   W_LoadWadFile ("gfx.wad");
   Key_Init ();
   Con_Init ();
   M_Init ();
   PR_Init ();
   Mod_Init ();
   NET_Init ();
   SV_Init ();
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am


Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest