Future of CG version 0.4, you decide it!

All discussion about the Commander Genius project (a Keen interpreter + more).
Post Reply

What do you want to see in Commander Genius v0.4?

F1 Help screen would be nice
2
9%
Concentrate more on the compatibility of existing CK1-3 mods
4
18%
Your physics still suck. They still need more improvements.
6
27%
More audio controls, volume, mute, etc.
0
No votes
Commander Keen 4-6 support
7
32%
Ingame Menu, like Doom
1
5%
Improve the performance
0
No votes
Please support older OpenGL cards
0
No votes
Other, please tell us replying here...
0
No votes
First support Commander Keen Dreams
1
5%
More effects in CK1-3 like floating points number (Similar to Keen4-6 when collecting items)
0
No votes
Make the enemies of CK1-3 smarter
1
5%
 
Total votes: 22

gerstrong
Vorticon Elite
Posts: 1246
Joined: Wed Dec 31, 2008 14:44
Location: Frankfurt - Germany
Contact:

Future of CG version 0.4, you decide it!

Post by gerstrong »

As version 0.3 of Commander Genius has finally been released we are working to release version 0.4. Again, we want to know what we could improve or add for the next version.

Please vote!
User avatar
tulip
Flower Pot
Posts: 2520
Joined: Thu Aug 21, 2008 12:50
Location: Hamburg, Germany
Contact:

Post by tulip »

I once again voted for the seemingly easiest, and fastest-to-accomplish goal, the F1 screen.
Although we still need physics improvement. Playing mods on CG is still a lot harder than in the original.

Make enemies smarter sounds weird. Do we want to make them smarter than in the originals? But yes, I know there are some flaws with the monster behaviour in CG.
Image You crack me up little buddy!
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

I think you should do the (hopefully) simple stuff first, F1 Help screen!
What you really need, not what you think you ought to want.
Galaxieretter
Arachnut
Posts: 891
Joined: Thu Nov 01, 2007 2:35
Location: Lancaster PA
Contact:

Post by Galaxieretter »

Ok I know it's not on the list... and it's *really* out there...

But do you think it might be possible to expand CG to support other Commander Keen engine games such as Duke Nukem or Bio Menace?
User avatar
ZidaneA
Shikadi Master
Posts: 424
Joined: Fri Nov 02, 2007 22:17
Location: Stockholm, Sweden

Post by ZidaneA »

Levellass wrote:I think you should do the (hopefully) simple stuff first, F1 Help screen!
I think quite the opposite. I think that creating an exact copy of the physics from the original games comes first!
Image
User avatar
Deltamatic
Vorticon Elite
Posts: 1418
Joined: Sun Apr 26, 2009 12:55
Location: Shreveport, Louisiana

Post by Deltamatic »

Help screen is easy, but not critical. Mod compatibility would be awesome, but not critical. More audio controls and special effects would be neat, but not critical. 4-6 and Dreams we'll want eventually, but now we're concentrating on 1-3. An in-game menu... still not critical. Performance, old card support, improved AI--not critical.

Exact physics IS CRITICAL. Hence my vote.
User avatar
DaVince
lazy/busy Keener
Posts: 1476
Joined: Thu Nov 01, 2007 15:34
Location: Amsterdam, Netherlands
Contact:

Post by DaVince »

tulip wrote:Although we still need physics improvement. Playing mods on CG is still a lot harder than in the original.
About that... Hasn't anyone ever made any documents with useful calculations and formulae for this? I can't imagine nobody did, seeing as there are so many people who dive into the Keen executables to find and change stuff.

I voted better support for mods. Keen 4-6 should only be started on when Keen 1-3 AND mods work near-perfectly, I think.
Wow look at me I'm lurking
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

I take the viewpoint that the F1 screen will hopefully quickly get done, removing it from the list of tasks and allowing us to work on other things. Similarly, I think Keen 4-6 support should come last as it will take a long time and we haven't been able to perfect Keen 1-3 yet.
other Commander Keen engine games such as Duke Nukem or Bio Menace?
Bio Menace, yes, Dangerous Dave, yes, heck, even Shadow Knights... but Duke Nukum? Which game are you referring to that is supposedly related to Keen?
What you really need, not what you think you ought to want.
gerstrong
Vorticon Elite
Posts: 1246
Joined: Wed Dec 31, 2008 14:44
Location: Frankfurt - Germany
Contact:

Post by gerstrong »

About that... Hasn't anyone ever made any documents with useful calculations and formulae for this? I can't imagine nobody did, seeing as there are so many people who dive into the Keen executables to find and change stuff.
That is something I really would like to know. There happened to be an article at slashdot, where someone reverse engineered the source code of keen1. Unfortunenately, the link is broken and I don't know if someone still has this file.

http://slashdot.org/comments.pl?sid=361915&cid=21372451

I really would like to know, how the calculations are done, since CKP only bases on ideas of the forum and aprroximations which are pretty ugly.
other Commander Keen engine games such as Duke Nukem or Bio Menace?
The good thing is that some of them share the file format that other games do (At least the concepts of a sidescroller). However, I see it more as future music, because we still need to tie up the code even for Commander Keen 4-6 and separate the engines the way, they don't disturb each other.

I haven't had time to implement the help screen, as I'm still fixing issues with some mods. I have improved the story section using more C++ code and a new class which will also be used for the F1-help text.

I still have one Problem with the Help text. The Input howto is different in CG than in Commander Keen. F3 and F4 which are mentioned don't exist here anymore, as everything is setup in the menu. I'm thinking about just taking a small part of the original help text and fill the rest up with some own text about the CG itself.
User avatar
tulip
Flower Pot
Posts: 2520
Joined: Thu Aug 21, 2008 12:50
Location: Hamburg, Germany
Contact:

Post by tulip »

If you do so, remember that some mods use the helptext to describe certain changed conditions or new monsters in the mod. So the CG help should read from the original helptext file.
Image You crack me up little buddy!
User avatar
Roobar
Vorticon Elite
Posts: 3276
Joined: Tue Jan 08, 2008 16:12
Contact:

Post by Roobar »

What's up with this project? Not a single word for a long time here.
User avatar
tulip
Flower Pot
Posts: 2520
Joined: Thu Aug 21, 2008 12:50
Location: Hamburg, Germany
Contact:

Post by tulip »

The whole engine is redesigned at the moment, to be faster, easier to understand and to get rid of all the workarounds that were in the older version.
That takes a lot time, yes, and it's not done yet. But don't worry it's still being developed. You can check the clonekeenplus homepage, it also has it's forum, there you can see which issues are dicussed at the moment.
Image You crack me up little buddy!
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Post by lemm »


That is something I really would like to know. There happened to be an article at slashdot, where someone reverse engineered the source code of keen1. Unfortunenately, the link is broken and I don't know if someone still has this file.
http://files.commanderkeen.org/users/omp/keen1.c.txt

I'm keeping this file and adding comments to it as I go along.

The original is http://www.quantumg.net/keen1.c.txt, but I've added a fair number of annotations in my copy, which might be helpful.


handle_ctrl at $5A39, move_left_right at $2B9A, and draw_level at $4B69 would be good places to start looking. Unfortunately I haven't really looked at the timing of everything. I do know that for each loop, the game records what buttons you have pressed down for that loop as well as the loop prior to the current one.

Code: Select all

#define input.direction	0x7FCA
#define input.jump		0x7FCC
#define input.pogo		0x7FCE
#define input_old.direction		0x7FD0  // these three appear to be the input from the previous frame
#define input_old.jump		0x7FD2
#define input_old.pogo		0x7FD4

I do know that keen has a velocity_x located at 0x6EFA in data segment and what I would guess is if the left/right keys are pushed down, one of the "think" functions (try think_13 for starters) that keen uses would notice this and add whatever to his x velocity.

Code: Select all

	// seg000:391F (This is within think_13() )
		if (reg_bx <= 6) {
			// seg000:3924
			switch(reg_bx) {
				case 0:
				case 1:
				case 2:
					// seg000:392B
					PUSHI(2);
					EMU_CALL(a_move_left_right, 3932, think_13);
					reg_sp += 2;
So here, "2" is passed as a parameter to move_left_right....

Code: Select all

void move_left_right()
{
	PUSH(bp);
	MOV(bp, sp);
	PUSH(si);
	PUSH(di);

	reg_di = MEMW(reg_bp + 4);
	reg_si = 1;

	// seg000:2BD5
	while (reg_si <= MEMW(sprite_sync)) {
		// seg000:2BA7
		W_MEMW(sprite_copy.vel_x, MEMW(sprite_copy.vel_x) + reg_di);
		if ((short)MEMW(sprite_copy.vel_x) > 120) {
			// seg000:2BB2
			W_MEMW(sprite_copy.vel_x, 120);
		} else {
			// seg000:2BBA
			if ((short)MEMW(sprite_copy.vel_x) < -120) {
				// seg000:2BC1
				W_MEMW(sprite_copy.vel_x, -120);
			}
		}

		// seg000:2BC7
		if (reg_si != MEMW(sprite_sync)) {
			// seg000:2BCD
			reg_ax = MEMW(sprite_copy.vel_x);
			W_MEMW(sprite_copy.delta_x, MEMW(sprite_copy.delta_x) + reg_ax);
		}

		// seg000:2BD4
		reg_si++;
	}

	// seg000:2BDB
	POP(di);
	POP(si);
	POP(bp);
	RET;
}
Delta_x, which is the offset per frame in 256'ths of a pixel keeps getting vel_x added to it, until si which starts at 1, equals sprite sync...

And that's all I can tell you. Don't know how this sprite sync works though...
gerstrong
Vorticon Elite
Posts: 1246
Joined: Wed Dec 31, 2008 14:44
Location: Frankfurt - Germany
Contact:

Post by gerstrong »

That's really interesting. When I get the new physics ready, I'll take a look. This might be a good help for mods.
gerstrong
Vorticon Elite
Posts: 1246
Joined: Wed Dec 31, 2008 14:44
Location: Frankfurt - Germany
Contact:

Post by gerstrong »

Sorry for the delay guys. As I can say, the engine is redesigned and will take a bit of time now.

The next version will something very special... :-)
Post Reply