Group: PQ Staff Member
Posts: 124
Member No.: 29
Joined: 8-June 07
Here I will be making progress reports on the programming of the engine. So here's the first:
Marduk Engine Update Now we've got splash screens, logos, and transition effects. And there are multiple maps too! Everything is loaded on demand, making the memory footprint under 12 megabytes, unlike previous versions where the engine would take up nearly 20 mb of memory. Have a look.
Group: PQ Staff Member
Posts: 124
Member No.: 29
Joined: 8-June 07
SEX!!!!
Ok, now that i have your attention. I've put up a new engine version. Some issues have been solved, but not all. it has been suggested that i implement an interrupt handler or something to make the game run smoothly on all platforms, however, that comes in the optimising stage. please have a look!
Group: PQ Staff Member
Posts: 124
Member No.: 29
Joined: 8-June 07
Marduk Progress Report - December 2007:
I have made a monumental decision...
I AM SCRAPPING THE FOLLOWING CONCEPTS:
PRNG tiles are gone - I'll stick with the RPG Maker tile sets
I am scraping the pseudo-3D battle system! Allegro can't do hardware-accelerated 3D, and I believe if I try to learn OpenGL and merge it into the engine, it will never be finished. So it'll be a simple side-on battle engine.
I am throwing out my *EXPLETIVE*-ing crappy scripting system, and going to implement Lua.
You don't like it? Then you're services are welcome to push those ideas through; except the third. That scripting system is more gone than the Voyager Spacecraft!
You know why I'm getting rid of it? Simply this comparison:
If scripting languages were trucks, mine would be a plastic tricycle, and lua would be a huge monster truck with a roaring engine and no muffler!
If I go with lua, I'll be able to throw out two more modules that are making me cry. Those are my logo and effects modules. It is such a goddamn pain managing those programs, so I'm getting rid of them.
The logo code is gone simply cuz i hate it. The transition effects code is gone because of this:
CODE
// this is ANOTHER logic headache. don't forget water to wash it down
ret = CurrentMap->ProcessMap( EngineTime ); if( FAILED( ret ) ) return ret;
}
}
That's what my current engine takes to do a fade out of the main menu, and do a circle into the map. You can understand now why I hate it. It's cluttering up my code, its full of bugs, and I generally hate it.
I want to be able to call a single command, that says "do this effect here", halts the engine processes until its done, then says "change the map", then says "do this effect here", then allow engine processes to resume.
So I'm going to use lua scripts for the effects, which are given a time value and a pointer to the screen, halt user input, do the effect, let the engine do the processing, then do another effect into the next scene.
And the good thing is that lua allows me to compile it into bytecodes, which i can load from a datafile, so i don't have to have it hard-coded and if theres nothing wrong with the engine, but a bug in the script, i can redo it, and not recompile the whole pissing thing.
Furthermore, I can totally redefine the event engine using lua. By doing a mandatory design outline of event programs, i can make the event code far simpler simply by calling a single command.
For example:
CODE
// npc script 1
///////////////////////////////////// // TODO: Put global variables here // /////////////////////////////////////
int OnMapStart( ... ) {
//////////////////////////////////////////// // TODO: What do I do when the map starts // ////////////////////////////////////////////
}
int OnPlayerContact( ... ) {
/////////////////////////////////////////////////// // TODO: What do I do if the player runs into me // ///////////////////////////////////////////////////
}
int OnKeyPress( ... ) {
///////////////////////////////////////////////////////// // TODO: What do I do if the player hits a key near me // /////////////////////////////////////////////////////////
}
This way, an event can have far more control over its own actions. Also helps me a lot with the loading code and execution of event actions, which at the moment is extremely buggy and painstakingly irritiating, such that I can't remember how I wrote it nor the logic behind it. So i'm just going to throw out the whole goddamn thing, and replace it with lua, which is far more flexible, the way I like it.
That, and when I get the Battle Engine running, I'll be able to make enemies have a similar ability. By defining their entire being through scripts, i'll be able to create them to react dynamically to battle situations. I won't go that far with all badguys, but the bosses will have fairly complex behaviours, especially the final ones.
I'm going to clear up this forum and place a new set of boards, for the suggestion of items, monsters, etc, etc, and also side-quests. I'll archive the current suggestion board, as i'm no longer taking ideas for the story nor characters, except hidden characters. Those would be cool. Also, concept art as well. Now the concept art board will be open to all who can draw and would like to give an idea.
Group: Admin
Posts: 769
Member No.: 2
Joined: 5-October 06
Link is valid, but it seems that the website (from the link) does not accept Invisionfree as HTTP User-Agent and/or referrer (it redirects you back to invisionfree/this forum). You should use copy-paste method
Group: PQ Staff Member
Posts: 124
Member No.: 29
Joined: 8-June 07
ANNOUCING:
One: I am going away for the next month, and i won't have many chances to post anything or do any programming. I saying this so that you know i'm still around, just not able to post.
Two: I'm going to do a reformat and reinstall of my hard drive when i get back from holidays, so don't expect anything for a while still.
Group: PQ Staff Member
Posts: 124
Member No.: 29
Joined: 8-June 07
Hey.
Due to my absolute fed-up-edness with these bloody runtime errors, I've started another rewrite, throwing out all the functionality for which there already exist libraries for, like the dialog code. I'm also redoing the map class, and rethinking how I do the tiles. I've also rewritten the basic frame work of the engine with a message pipeline, which allows me to determine precisely where an error occured by displaying unique debug information about the class ID and name, and function in which the error occured.
There isn't an upload as of yet, as I am still testing some things. Once that's done, I'll just simply import some old code (like the sprite, event, and script classes) and write the player and map pipeline.
Good news though, I've got two (maybe three) artists for the game, and two assistant programmers to lend a hand. So the engine might be finished sooner rather than later.