The Visual Barrier into the Engine
Moderator: InsideQC Admins
4 posts
• Page 1 of 1
The Visual Barrier into the Engine
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.
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?
Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
-

Baker - Posts: 3666
- Joined: Tue Mar 14, 2006 5:15 am
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.
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.
-

Mexicouger - Posts: 514
- Joined: Sat May 01, 2010 10:12 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?
Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
-

Baker - Posts: 3666
- Joined: Tue Mar 14, 2006 5:15 am
4 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest