Project Agamemnon Omega-Class Destroyer (Babylon 5)

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Just wanted to drop in and give an update. I have not had any further opportunity to work on the Agamemnon lately. Long work days, as we continue implementation of a new ERP system at my company, have left me not even wanting to look at a computer when I get home, let alone on the weekends (other than a little minecraft once in a while). That's not to say I don't want to work on this project. Nothing could be further from the truth. I just need some time in the evenings away from coding after staring at SQL and VBScript all day long.

Work will resume, eventually. I have a lot of ideas, things that I want to do better than on the Cortez. Regardless, if anyone wants to add/contribute in the meantime, the github repository is there.

Regards,
n122vu
 

XeroZohar

New member
Joined
Jan 31, 2012
Messages
15
Reaction score
0
Points
0
Just wanted to drop in and give an update. I have not had any further opportunity to work on the Agamemnon lately. Long work days, as we continue implementation of a new ERP system at my company, have left me not even wanting to look at a computer when I get home, let alone on the weekends (other than a little minecraft once in a while). That's not to say I don't want to work on this project. Nothing could be further from the truth. I just need some time in the evenings away from coding after staring at SQL and VBScript all day long.

Work will resume, eventually. I have a lot of ideas, things that I want to do better than on the Cortez. Regardless, if anyone wants to add/contribute in the meantime, the github repository is there.

Regards,
n122vu

Don't worry about it. I'm sure we've all been there at one time or another. Just get to it when the spirit (of Valen?) moves you. :cheers:
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
As posted in the screenshot thread, work on the project has resumed. Continuing to work on visual improvements at this point, focusing on reworking the normal maps and adjusting specular settings in the materials. Will post a few screenshots later of my progress.

Plans are to wrap up these improvements today or tomorrow then turn my attention back to coding the 2D panel. A virtual cockpit is planned for a future release but will not be part of the first version I upload to OH.

---------- Post added at 09:53 PM ---------- Previous post was at 06:38 AM ----------

As promised, a couple images of the progress on the visual improvement of the Agamemnon.

Here, a mostly-full-length shot of the Agamemnon shows the improvement of the normal maps and the specular reflection properties of the various hull materials.
picture.php


Compare this to a similar shot from when normal maps were first added to the project:
picture.php


Here is a close-up of a portion of the rear hull. I'm pleased with how much better this looks. I don't have a comparison shot for this one, but trust me, I probably didn't do a close-up for a reason.
picture.php
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
After many busy months, I will soon have time to resume work on my Orbiter addon projects. Having said that, I have made the decision at this time to officially suspend work on the Agamemnon. With the upcoming release of OrbiterSound 4.0, I feel it would be best to go back and update the EAS Cortez to be compatible, and to also take better advantage of some of the features available in the D3D9 & D3D11 clients for that vessel.

There are just so many ideas I had for that ship that I honestly feel like I released it in an unfinished state. Plus, some of the new sound features available in OS4.0 will allow me to realize some of those ideas to an even greater degree than I originally hoped.

As a side note, if anyone would like to continue to work on the Agamemnon while I suspend my work, just let me know. The source code is available, and I can provide my updated meshes & textures. I am not asking for someone to hand it off to. I still want to finish and release this one. I just want to make it clear that if someone else wanted to run with it, I'd have no problems releasing my work to them.

Regards,
n122vu
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
So, nearly 7 years later, I'm picking this back up. I still have the code, but unfortunately the mesh work I did may be lost, so I'll have to re-familiarize myself with the tools and methods I used, or newer/better alternatives.

The good news is, I've managed to get the DLL compiled in VS2017 for Orbiter 2016, minus OrbiterSound and UMMU. Unfortunately, the centrifuge section isn't animating, mainly because clbkConsumeBufferedKey isn't firing. I'm still troubleshooting, but at this point I'm stumped. Here's the code:

Code:
int Agamemnon::clbkConsumeBufferedKey (DWORD key, bool down, char *kstate)
{
		if (!down) return 0; // only process keydown events	

		//Start/Stop the gravity wheel
		if(key==OAPI_KEY_K&&!KEYMOD_SHIFT(kstate)&&!KEYMOD_CONTROL(kstate))
		{

			if (gravwheel_run == 0)
			{
				gravwheel_run = 1;
				return 1;
			}

			if (gravwheel_run == 1)
			{
				gravwheel_run = 0;
				return 1;
			}			
		}
	
	return 0;
}

Since this code isn't firing, gravwheel_run never gets set to 1.

Pretty much identical to what the Cortez used (which I'll also be bringing up to 2016 compatibility shortly).
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Something must be amiss with the property pages for VS2017 I downloaded off the hangar. I configured them just as in the YouTube video, however the compiler is creating additional libraries and objects alongside the dll. I believe this is what is causing the issue. Any idea which setting in the property sheets controls this? Can't seem to find it, and Google is of no help so far.
 
Last edited:

asbjos

tuanibrO
Addon Developer
Joined
Jun 22, 2011
Messages
696
Reaction score
259
Points
78
Location
This place called "home".
I'm no C++ pro, so don't know how it does return's, but this seems a bit dangerous:
Code:
if (gravwheel_run == 0)
{
	gravwheel_run = 1;
	return 1;
}

if (gravwheel_run == 1)
{
	gravwheel_run = 0;
	return 1;
}
It should be an if-else statement instead. Or possibly an elseif.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,564
Reaction score
2,298
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I'm no C++ pro, so don't know how it does return's, but this seems a bit dangerous:
Code:
if (gravwheel_run == 0)
{
    gravwheel_run = 1;
    return 1;
}

if (gravwheel_run == 1)
{
    gravwheel_run = 0;
    return 1;
}
It should be an if-else statement instead. Or possibly an elseif.

On the side of maintainability you are right, this is a case for an if-else statement.

But its otherwise perfectly fine code. It leaves the current function instantly, everything after the return is unreachable code. But if gravwheel_run is not correctly initialized or in a value other than 1 or 0, it would never return in those statements.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
gravwheel_run is initialized to zero. And I've confirmed its value using the debug string.

The clbkConsumeBufferedKey always returns zero unless the key press conditions are met. Although you're correct, in this situation it should be an if, elseif statement. I'm not sure why this worked in the past, or where I got the idea to code it this way. I'll try correcting that this evening, although I'm not sure it will make a difference since it doesn't appear to even be making it to this code.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Changing the if statement to an if/else if/else statement had no effect on the issue of the gravwheel_run value not changing. The problem is that clbkConsumeBufferedKey simply is not working at all. Even putting a debug string at the beginning yielded no results.

I still think it's related to the code being compiled into external libraries instead of all in the dll. Building in either debug or release configuration results in the following files in the Modules directory:

Agamemnon.dll
Agamemnon.exp
Agamemnon.lib

I do not recall seeing these files in older builds using older versions of VS. Any ideas?
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,564
Reaction score
2,298
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
The Agamemnon.lib library could be just an interface library. Not needed for Orbiter. You can disable or ignore it.

RTTI would be one candidate. Not sure if the clbkConsumeBufferedKey has the correct signature, I would need to check when I am back in Wolfsburg.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Trying to come back to this, but running into issues getting Visual Studio 2019 to even compile the dll. Will post updates as I have them, if I'm able to get the project up and moving in VS again.

I'd started with lots of motivation over the weekend, but the compiler issues zapped that pretty quickly.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,564
Reaction score
2,298
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Trying to come back to this, but running into issues getting Visual Studio 2019 to even compile the dll. Will post updates as I have them, if I'm able to get the project up and moving in VS again.

I'd started with lots of motivation over the weekend, but the compiler issues zapped that pretty quickly.

If you need any help, just ask, you know I am an old Babylon 5 fan. (Including playing Babylon 5 wars tabletop shortly before Warner revoked the license.)
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
So, funny story. I just fired up the exact same installation of Orbiter 2016 on my laptop, started the scenario, hit K, and nothing happened. Then I thought, "What if the camera is focused on the vessel, but it isn't the vessel of focus for input?"

Sure enough, I clicked Ship, highlighted Agamemnon, clicked Apply, then pressed K and presto, the centrifuge section began to accelerate until it rotated at its appropriate speed. ?‍♂️

Now I just need to get the meshes with the specular reflections, along with the normal map textures, onto this laptop so I can get a proper working DLL for Orbiter 2016 released.
 

Luke Reichelt

Active member
Joined
Oct 29, 2012
Messages
263
Reaction score
67
Points
43
Location
Manitoba
At some point, I would like to see you or someone else do a Hyperion-class heavy cruiser or Nova-class dreadnought, and hopefully finish what stevecast started with regards to the various Babylon 5 vessels, as he disappeared from the Orbiter scene before completing his project, leaving numerous vessels like the aforementioned as well as most Minbari vessels and pretty much all Shadow vessels without a functional version for Orbiter. Most of the meshes he used are by bcelestia and can easily be found on the Celestia Motherlode: http://www.celestiamotherlode.net/catalog/fic_babylon5.html
 
Last edited:

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
Honestly I'd love to bring all of my visions for the B5 vessels to life in Orbiter, but time, life etc. At the very least I'd like to bring the Agamemnon and Cortez into 2016 compatibility, and finish the Maintenance Fury. On the wish list after that: I'd like to figure out how to implement the Starfury launch system & bring those in too, as well as a proper dll version of the Kestrel shuttles, with VC, retracting gear, etc. I commend stevecast for his work; he and his son were cranking out vessels left and right for a while. The cargo pod was one of them I had on my list, and I was delighted to see them release it.

I also used to have down time at work between projects where I could fill it in with personal things, but that hasn't been the case for a couple years, and I don't see that luxury coming back any time soon unfortunately.

I haven't given up on Orbiter Development at all, just waiting for the right time to jump back in. Hopefully soon.
 

Luke Reichelt

Active member
Joined
Oct 29, 2012
Messages
263
Reaction score
67
Points
43
Location
Manitoba
Honestly I'd love to bring all of my visions for the B5 vessels to life in Orbiter, but time, life etc. At the very least I'd like to bring the Agamemnon and Cortez into 2016 compatibility, and finish the Maintenance Fury. On the wish list after that: I'd like to figure out how to implement the Starfury launch system & bring those in too, as well as a proper dll version of the Kestrel shuttles, with VC, retracting gear, etc. I commend stevecast for his work; he and his son were cranking out vessels left and right for a while. The cargo pod was one of them I had on my list, and I was delighted to see them release it.

I also used to have down time at work between projects where I could fill it in with personal things, but that hasn't been the case for a couple years, and I don't see that luxury coming back any time soon unfortunately.

I haven't given up on Orbiter Development at all, just waiting for the right time to jump back in. Hopefully soon.
Actually, Buck Rogers and myself are currently working on exactly that.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,196
Reaction score
51
Points
73
Location
KDCY
There may be hope for implementing Starfury storage and launchers in the Agamemnon some time in the future:



It seems I also need to update the code for the rotating section since I now have a canon source that says it takes 30 seconds for one full rotation. Shiny.
 
Last edited:
Top