Virus Effect (2D Platformer RPG Shooter)

You could show us your source code, it might be more efficient to help you. darkprophet found a big bug in TUER when I explained to him how I had used VBOs. I hope we can help you. I think it is a network problem, I can analyse the trace I get in the java console. You should use a cache, load the data once for all for example.

Hmm maybe I’ll try it later then, unfortunately I tend to have a lot of things open (I do have eclipse and another java application running a large amount of the time?) but I don’t really want to close them if I can help it. So more likely I’ll just find another computer later, actually.

No idea really why that would be necessary though? Unless you somehow made your threads so low priority that they just… stopped? Could you try affecting the priority on them? (honestly I don’t really know what I’m talking about though, I’ve never seen an issue like this before).

Glhf?

I can’t put up all the source code, some has network passwords and stuff. I don’t believe it has to do with the thread, I think I just use up too much of something. All the newer model computers I test the game on work fine, but on some older ones it has the initial freeze, unless everything else is closed.

I’ll start looking into cache code.

Still haven’t able to get this game working yet on windows.
It’s stuck at

[quote]Loading Maps/Training.data map.
[/quote]
I have all my windows closed.

ok man …

game has many new updates and it should work for everyone now, go check it out ! :wink:

Yes the error is fixed. The problem was that if the elasped time got high enough the game would freeze due to one of the oldest methods I had. So it only occured in computers that were slow, or the network was to slow connecting to the MySQL database.

But anyways its fixed! ;D Thanks for everyones’ help. There are a couple of new things, and I would love to hear from those who haven’t tried it yet.

I’m currently working on a map editor for my map maker to make maps, its almost done. After that i’m gonna work on the Shop where you will be able to purchase weapons, player upgrades, and gun mods using credx.

Nice works well on this linux computer. Ill test it on my home computer(windows) later.

[quote=“Corvinex,post:43,topic:31797”]
If your intention is to keep strings secret, you’ve already failed. It’s extremely simple to find strings in java. It’s almost as simple to decompile .class files into .java files.

I don’t mean to be rude, I just want you to make sure you don’t have any sensitive information in there.

Well tested on my computer, but it wasn’t as smooth play, though it was still getting 70 fps and only using 80% cpu.

Thanks for testing.

Is there a way to make it more secure, or putting sensitive information somewhere else? All those are method names, can you see actual variables?

Oh yes. It’s all there, in the constant pool. To make it even easier for myself, I downloaded jad and decompiled the file called TestShooter.class.

Here’s a short sample, with the password censored for your sanity:

    public TestShooter()
    {
        speed = 10;
        prevTime = System.currentTimeMillis();
        elapsedTime = 0.0F;
        prevSec = 0;
        fps = 0;
        frameCount = 0;
        mouseX = 0;
        mouseY = 0;
        scrollX = 0;
        scrollY = 0;
        scrollXchange = 0;
        itemLibrary = new ItemLibrary();
        enemyLibrary = new EnemyLibrary();
        entities = new LinkedList();
        projectiles = new LinkedList();
        effects = new LinkedList();
        items = new LinkedList();
        enemies = new LinkedList();
        debug = false;
        incX = 10D;
        incY = 5D;
        shakeX = 0;
        shakeY = 0;
        rangeX = 10;
        rangeY = 10;
        curShake = 0;
        small = new Font("Copperplate Gothic Light", 1, 10);
        regular = new Font("Copperplate Gothic Light", 1, 12);
        bigger = new Font("Copperplate Gothic Light", 1, 18);
        title = new Font("Copperplate Gothic Light", 1, 22);
        screen = 0;
        prevScreen = 0;
        changeScreen = false;
        gameFlag = true;
        ran = new Random();
        teleportTime = 0;
        maxTeleport = 2000;
        halfTeleportDone = false;
        deathTime = 0;
        maxDeath = 2000;
        tk = Toolkit.getDefaultToolkit();
        imageLoader = new ImageLoader(new MediaTracker(this), tk);
        imageLibrary = new ImageLibrary(imageLoader);
        map = new Map(600, 400, imageLoader);
        antiGravityExplosion = new Audio("Sounds/antiGravityExplosion.wav");
        explosion = new Audio("Sounds/explosion1.wav");
        teleport = new Audio("Sounds/enemyExplode.wav");
        bubbles = new Audio("Sounds/bubbles.wav");
        equip = new Audio("Sounds/pickUp.wav");
        enemyDying = new Audio("Sounds/enemyDying.wav");
        enemyAttack = new Audio("Sounds/enemyAttack.wav");
        zombieAttack = new Audio("Sounds/zombieAttack.wav");
        zombieDying = new Audio("Sounds/zombieDying.wav");
        healthBoost = new Audio("Sounds/healthBoost.wav");
        armorBoost = new Audio("Sounds/armorBoost.wav");
        credxDie = new Audio("Sounds/credxDie.wav");
        credxBoost = new Audio("Sounds/credxBoost.wav");
        buttonCount = 3;
        menuChoice = -1;
        menu_image = (new Image[] {
            imageLoader.loadImage("Images/training.gif"), imageLoader.loadImage("Images/playGame.gif"), imageLoader.loadImage("Images/mapEditor.gif")
        });
        menu_image_highlight = (new Image[] {
            imageLoader.loadImage("Images/trainingH.gif"), imageLoader.loadImage("Images/playGameH.gif"), imageLoader.loadImage("Images/mapEditorH.gif")
        });
        username = "";
        userId = "";
        userName = "Corvine_admin";
        password = "<password>";
        url = "jdbc:mysql://mysql27.ixwebhosting.com/Corvine_ProjectX";
        conn = null;
        scrollSpeed = 0.8F;
        loadEntities = false;
        play = false;
        episodeChoice = -1;
        crossHair = tk.createCustomCursor(imageLoader.loadImage("Images/crosshair.gif"), new Point(15, 15), "crosshair");
        titleImage = imageLoader.loadImage("Images/Title.gif");
    }

Your giving anyone who can download this code full access to your database, or at least as much access as the Corvine_admin has. That’s very bad, and I suggest you change that password immediately.

One more secure solution is to make an servlet that runs on the same server as the applet runs from, and have that servlet do all the database communication. Note that you should absolutely not run raw sql commands from the user/client, nor should you ever insert raw strings into sql commands.

Never, ever trust any code that you give to someone else, no matter how compiled or obfuscated it is. If the game client knows it, the user in control of the client knows it. If the game client can do it, so can the user.

[edit:]
Also, that’s not a very secure password. :wink:

1.6.0_10 in FF3, worked ok.

Though for a time, the sound screwed up with the repulsor gun thingy. (each time I fired, the sfx would play twice).

Also, serious slowdown when exploding lots of boxes.

Reminds me of my name-sake :slight_smile: Abuse

Yeah the delay when blowing up the boxes gave me an idea for bullet time, but later on I will add an option for the amount of particle effects.

Wow, I have never heard of that game, and its published by Bungie. Great minds think alike :slight_smile:

Thanks for the info, I knew there would be security issues, thats why I had that crappy password. But I guess I will have to do the servlet thing, so I took down the play game buton. Is there any good tutorial for servlets that you guys know of?

I finished the map editor for my map maker, so we should have new maps by friday. It will include a new enemy and new tiles. I’ll figure out how people will play them until I get the servlet going.

Hey everyone, big update. Check it out at www.shotside.com

I fixed the save games a different way. My webhost does not support Java Servlets so I had to go a different route. Anyways they work now, and thanks to that the download size is smaller.

Tell me what you guys think.

I really like it a lot more than the last time I played it. Unfortunately, I discovered a small bug: if you die (which is remarkably and annoyingly easy in the water section because you end up with a crappy gun (the gravity one, which is very difficult to get the hang of, by the way, and its name is deceptive, should be knockback gun or something) and too many boxes to shoot. Anyway when you restart training everything that you did before is saved, including the gravity gun being picked up, so you can no longer get through that room. :-\

Yeah, I noticed that. I couldn’t decide what to do, but I guess I’ll reset everything like it was before. You should really try the actual game. It is a lot more interesting.

I’m working on saving stuff in rooms next, all you do is drop it and it will be there when you get back. And possibly a chat system, server system, mutiplayer. Most likely the city will be the hangout spot where everyone meets up.

Thanks for testing.

You’re very unlikely to get people who are willing to try out your game when it’s at this stage if you’re requiring some sort of log in. I’m not really interested in doing that, for one.

Well I made an account so I could play, and your difficulty curve is maddening. Levels 1 and 2 are trivial cake walks and then level 3 is practically impossible and incredibly irritating. If I had a shotgun or machine gun in level 3 it would be possible, but when you get 1 credit per enemy and any decent weapon costs at least 475, well that’s what we call a bad difficulty curve. You simply can’t kill all the blob spawners and blobs in level 3 with a shitty old handgun. Not to mention that the spawners have an unfair amount of HP and can also beat the bejeezus out of you, and if you run out the room oftentimes when you try to run back in a bug immediately forces you out again, so if you were lucky to make good progress you’re screwed anyway and have to restart the level.

So my advice: tone down the power of the slime spawners (make them stationary, make it so they can’t fight back, and give them less HP), and/or drastically decrease the difficulty of zone 3 or increase the money you get beforehand. Also recharging your life every time you die / restart a level is a good idea.

Thanks for the suggestions, I need to start testing as a new player instead of with my own saves.

I lowered some prices and decreased the amount of spawners in some levels. I haven’t had time myself to beat the new levels, they were done by the map maker.

I’ll try to balance everything a little more with suggestions.