Virus Effect (2D Platformer RPG Shooter)

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.

Well if you’ve got time I recommend trying out level 3 after having only played through levels 1 and 2. It is very very difficult to even get past the third room (I haven’t done it). It seems like the level was designed for a much more powerful weapon, but you really can’t afford one unless you beat levels 1 and 2 twenty times.

Thanks for trying it out, my map maker is creating more maps to go in between episode 2 and 3. The current episode 3 will be moved to episode 5 or 6. Also I lowered some prices and reduced the death penalty to 15%. I’ll edit more if needed once the new episodes 3 & 4 are up.

So is your map maker a person or a program? If it’s a program, that’s really cool – just having a program built that’s smart enough to design levels of that complexity would be cool enough.

Oh Semir, yeah hes a program. I made the AI a little too hard apparently. :stuck_out_tongue:

I put up forums on Shot Side, hopefully there I can finally discuss Project X’s features, story/plot, and any suggestion with the community in detail. I’ll definetly throw up polls also, when I can’t decide on gameplay issues.

I’m going to work on weapon stats and upgrades for them next. With this added feature I will be able to balance everything out easier.

Well I spent a while grinding on level 2 until I could afford an AK and I decided you should probably up its damage a bit. As it stands, I actually prefer dual pistols because they are much more accurate and do a lot more damage. And you’ll end up reloading them less often. And what does leveling up do, exactly?

It seems to me in general that you should make all the weapons cheaper or up the money of everything, as well as decrease the time it takes to level up. A game like this really shouldn’t require grinding or anything like that in order to progress, at least not very much of it. You should feel the progression is very fast at first to get you interested, then much slower later on so you’re already vested in it. Like the AK could remain this powerful if you could acquire it by level 3 while only playing through levels 1 and 2 (which means it costs around 15 only!), either that or a level up. That way that as you’re getting to the last level you have gotten enough cash for the 2nd or 3rd best weapon, then you need to grind for the very special ones.

I increased the leveling up speed, and now you get full hp and full armor when you gain a level. You also get +5 max hp and +3 max armor. I have a test tomorrow so I can’t start weapon upgrades until after it. The weapon upgrades include stuff like +1 Damage, +1 Clip Size, +1 Reload Speed, etc. They will be available in a seperate store and they will also be randomly droped by certain enemies. This will hopefully make balancing a little easier. Each weapon will be unique with a maximum amount of slots per stat. There will also be different weapons of the same type with different max slots, so there will be rare handguns for instance, that can have huge damage capabilities, etc.

Can’t wait to implement, must study though.

Played it a bit. When you get used to the f—ing jumping bastard, it’s cool. First and second level is ok. Third is way to hard, but you already know that.

Those little green boxes that spawns the jumping blobs are very nasty. I would limit it to not spawn unless it has less than two children. Or cut down the spawn rate.

160 for an AK??? It should cost 40, at most. :slight_smile: That, or have the tougher enemies drop more money. Or both. And make the money stay a little while longer.

Why not have a “scared” mode on some of the monster. All of them just attack until they die.

Keep it up!

Thanks, these are great suggestions. I plan on updating different aspects of the AI after I work on backgrounds.

As for the gun prices, I lowered them again, and added Weapon Upgrades! These are the last thing needed to keep this game fun, once you jack up your gun.

There is also a new episode 3, the old one is now episode 4. This version is one to try out. :slight_smile:

I played the new level 3. Very hard, but beatable. I’m not sure if I could have done it without leveling up midway through though. You need to remove bad guys who are directly next to the door, because there is no way to avoid losing at least 30 to 50 life in that situation. Sometimes you’re completely surrounded and can’t move, losing up to 100 health. Just one enemy near the door is fine, but 3 is pretty annoying and just makes you lose life no matter how good you may be.

Also, the AK is a reasonable weapon after one upgrade, so I think it’s okay at its current level. One thing you should probably do though is allow you to holster your extra weapons somewhere near the weapon shop so you can swap out weapon choices depending upon the situation. I want a shot gun, but I think in terms of all purpose a pistol and an upgraded AK are better, but I would like the option at least without eliminating my old weapon. This seems especially necessary now that you allow weapon upgrades.

Looking great, though - it’s certainly fun already!