language advice (no flamers please)

Started by
18 comments, last by Wysardry 19 years, 5 months ago
Quote:Original post by overflowed_
If it's just a simple tile game, why not just use GDI? It's a lot slower than DirectX, but like you said, you don't need any crazy 3d acceleration.

Personally, I'd stick with Java if you have it nearly finished.


I never really considered just using the GDI directly. That is a thought though. I can't imagine that it would be that much slower, I'm sure that's what java uses for painting anyway, so it should be at most as slow as the java version. Maybe I will give a look into this too.

Thanks,
-- Rocky
Advertisement
Quote:Original post by rpulley123
Quote:Original post by certaintragedy
Well, I'm not trying to be a smart-ass here, but I personally wouldn't expect too many kids to try and crack an educational game. I would imagine most of your potential clients would be schools anyway. And I don't really see how writing it in Java is "giving it away for free." I agree with previous posters: your best bet is probably just to finish it up in Java.


You guys might be right, maybe I will just finish it up in java. I've already started doing it in C++ and the graphics part was a lot easier than I thought it may be so it wouldn't take too long, but I would then have to worry about which version of DirectX they have and whether or not their video card even supports DX 8.

-- Rocky
Since it's just a 2D game, you could use SDL, it supports most if not all video cards, it's easy to use, and it's small, so it wouldn't increase the executable size too much if you statically linked with it(and also, with SDL, you get about as much portablity as java). Also, if you continue doing it in Java, you could always use a code obfuscater to reduce the chances of someone getting anything useful from the decompiled code.
Quote:if you statically linked with it

SDL is licensed as LGPL, which forbids static linking (unless you distribute the source with the game). To comply with the license, user must be able to upgrade or replace the SDL library as he/she wishes, which is impossible with static linking and no code.
Quote:Original post by rpulley123
Quote:Original post by Manip
I am REALLY curious to find out why you want to protect the super-secret code in a kids game?


It's not that the code is super secret, its just that I don't want to make it so simple to crack when I try to sell the game. It's designed to help kids with math, and is playable for any age up to teens. We all know how much teens like to play hacker/cracker and get things for free. I know that I can't possibly protect the game from crackers but using java I'm practically just giving it away for free.


Kids who can reverse-engineer something for themselves probably don't need help with math, and kids who are lame script kiddies probably can't be interested in doing things right no matter what you do. :s

In any case, you can make things harder with an obfuscator... harder to figure out what variables to change when they've been automatically renamed a,b,c, etc.
Quote:Original post by Roboguy
Since it's just a 2D game, you could use SDL, it supports most if not all video cards, it's easy to use, and it's small, so it wouldn't increase the executable size too much if you statically linked with it(and also, with SDL, you get about as much portablity as java). Also, if you continue doing it in Java, you could always use a code obfuscater to reduce the chances of someone getting anything useful from the decompiled code.


Hey this looks like a very interesting library. I may convert my game to C++ just for a good project to learn SDL. Is this going to cause me any problems if I want to sell the game? I saw that someone mentioned that static linking is a no-no, but if I dynamic link, would it be as easy as just deploying it with a set of DLLs, and would I not have to distribute source or anything with it?

THanks,
-- Rocky
http://www.libsdl.org/license.php

The SDL library uses the LGPL. As long as your source was not written with a GPL/BSD license compiler, no, you wouldn't have to include the source. (Such as if you used Microsoft Visual Studio, Borland, Intel, etc compilers). However, you WOULD be required to provide the source code to the version of SDL you linked against, as shown in that license.

But if you used a LGPL compiler, yes, you would be required to provide your source code. Long story short, anything you make under an open-source style license generally has to be made available. Sometimes this even extends to images and other works; so if you're going commercial, you should be careful how you work with your licenses.

I myself am for opening everything up, but, not everyone agrees.
=========================Buildium. Codium. Fragium.http://www.aklabs.net/=========================
It is generally hard to reverse engeneer code. (harder, when optimized). I haven't tried java deompilation myself, tho.

Also, anti-cracking measures only do you good for so far. Eventually, if you keep making the game harder to crack, crackers will crack it for the challange. So your aim is to make it hard enough to crack, so that it takes a while, but easy enough, so that it is unrewarding.

Obfucators can come in handy, when trying to make your anti-anti-anti crack protection better. (if you have no idea how it works, it becomes harder to crack!).

From,
Nice coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
Quote:Original post by rpulley123
I never really considered just using the GDI directly. That is a thought though. I can't imagine that it would be that much slower, I'm sure that's what java uses for painting anyway,


On windows Java2D (and Swing) uses DirectDraw if available unless you tell it not to, in which case it might very well use GDI (I don't know). With Java 1.5 you can configure it to use Opengl instead.

Worrying about reverse engineering and anti-piracy measures is a waste of time. The best you could ever hope for (without ruining the user experience and pissing off your legitimate customers) is to prevent casual piracy. If hardcore pirates want your game they are going to get a free version of your game no matter what you do. A very large majority of your target market likely won't even know what reverse engineering means, much less how to do it.

As an indie developer, you need to maximize your time on what is important, and not waste it on things beyond your control. In this case, that means finish what you've started, market it, and move on to the next project. Rewriting it at this point would use up time better spent elsewhere, no matter how quickly you get it done.
Quote:Original post by Anonymous Poster
Quote:if you statically linked with it

SDL is licensed as LGPL, which forbids static linking (unless you distribute the source with the game). To comply with the license, user must be able to upgrade or replace the SDL library as he/she wishes, which is impossible with static linking and no code.


Please stop spreading this tidbit of misinformation. It is quite possible to do - distribute your object files that are compatable with an open source, free, or included compiler. This allows very static linking, with very LGPL-complying results, in a very closed-source environment.
Quote:Original post by rpulley123
Another option is C# of course. I guess with C#, I wouldn't need DirectX really, I could just paint the tiles as I do in java. My only problem with this is that I don't know how easy it would be to distribute and make sure that people have the latest .NET framework installed.

Anyway, if anyone could offer some advice on which road may be better for me that would be great. I would like this software to work on win98 and above. I've given up on trying to support win95 long ago.

As far as I know, the .NET framework is not available for Windows 95, 98, NT or ME, so your game wouldn't run on those operating systems if you used it.

You might want to consider using OpenGL and OpenAL, rather than DirectX, as that would make it easier to release your game on Linux and/or Mac platforms too.

This topic is closed to new replies.

Advertisement