Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / A few questions regarding DarkGDK.NET

Author
Message
PostalCOW
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: San Diego
Posted: 29th Sep 2007 20:05
kBessa will probably know most of these.

First, how do you deploy your .NET GDK apps? I made a little demo I wanted to show to some friends that lets the player move a sphere around a terrain and use the mousewheel to roll the camera in and out of 1st and 3rd person modes. It doesn't work on windows Vista (it tries to run it as a 64 bit application) and installing it is a bit of a pain (the .net 2.0, the direct x then the darkgdk helper) is there an easy way to make something automatically install that stuff?

second the DOS style window that opens when you run the app. Is there a way to get rid of that? People keep clicking it on my app and mistakenly closing the main window in the process.

Requirements for life: Food-Water-Video Games!
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 29th Sep 2007 21:09 Edited at: 29th Sep 2007 21:11
PostalCOW,

In answer to your first question, there are still some issues with running DarkGDL.NET applications under Vista. This is still going to be sorted out soon, so sorry for the problems.

Installation of the toolkit can be simplified in two ways. If you have Visual Studio Professional, you should create a Setup Project and use your EXE to obtain prerequisite dependencies. You will need to use the DirectX Redist and the DGDKSetup.exe as part of the Custom Actions editor, but the setup project can call these two exes for you. Just make sure that DX is installed first before calling DGDKSetup. Also, because this is using the BootStrapper system, part of VS Pro, it will automatically install the .NET 2.0 framework for you as well.

If you're using the Express version, then I'm afraid your only alternative is to use something like InstallShield or Inno Setup. Either way, you will still need to ensure that DX, .NET 2.0 and the DGDKSetup installer are part of your application's setup program.

The reason why that DOS window is appearing, is because your project is of type Console. Recreate your project as a Windows Forms Application, and delete the default Form from your project solution, and create a Main.VB module. Implement a Sub Main() entry point and adjust your project properties to make this the calling function when your app starts. This will then stop that console window from appearing.

Paul.

[EDIT] typos

jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 1st Oct 2007 18:04
For the record - I think the DarkGDK C++ version is easier to deploy. DirectX is really the only Prerequisite for an end user. You also do not need the license verify thing - which to me is rather sorry - there has to be a better way! (Take it easy people - just an opinion)

APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 1st Oct 2007 22:21
jason, The reason the Authentication check is there, is to prevent people from using the COM component without a proper License to use the software. Unfortunately there is no other way around this.

Paul.

jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 1st Oct 2007 23:53
I understand - I just have my reservations about it being the only way. I believe the COM object could be passed "A Key" programmatically and could refuse to work if not instantiated properly and the key did not equate.

I used to work for a computer firm whose sole purpose in life was COM licensing for VB apps. We had multiple types of licensing schemas - some internet based - where there was post-install web/software registration - and others where encrypted text keys not only unlocked the software but also controlled various software features - not unlike how DBPro could be registered - but futher steps were required to made Advanced Terrain work. That kind of situation - yet one licensing scheme.

I code .Net a lot at my current job - and I feel confident I could pull off some pretty effective protection in a months time - complete generation - registration (manual and web based - where a web site can produce keys) in a months time with a fairly lightweight "sheild" to prevent people trying to get around it.

I would also complete obfusiate the code due to the nature of the .NET CLR thing.

APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 2nd Oct 2007 01:52
Jason, Although I've replied to your email ( no problem btw ), I thought I'd explain something about the Authentication process. If a key as you've suggested is used, it can't be a symetric key in anyway at all. The reason is that any .NET executable can be decompiled using the Decompiler tool that comes with the .NET framework. Only way to avoid this would be to use an Obfuscator which scrambles strings and such within the EXE.

A majority of people will not by design, obfuscate their code. If they're using Visual Studio Professional or higher, then we have the Community Dotfuscator, but it doesn't scramble strings. Buying a commercial obfuscator usually supports String scrambling, but we all know that a majority of DGDK.NET users, are using the Express versions of the development tools.

Now, my only solution to this dilemma, was to implement a separate more sophisticated Private Public key encryption system. Alot more difficult to crack, but it's basically worked as a solution for preventing unauthorised used of the COM component.

Hope this clears some of the frustration about the Authentication process.

Cheers

Paul.

Login to post a reply

Server time is: 2024-11-19 16:21:58
Your offset time is: 2024-11-19 16:21:58