Imperii

Grif said:

Didn't think about file encoding, so the .sh file you included ended up in Dos format, making it pretty useless for linux.

Fix is easy enough, but just to sure everything will be fine next time, I've included a new .sh file (had to rename it to .txt to be able to attach it)

Incidentally, did you change some of the aliens? Some (green) ones seem to be split when being hit and the new and smaller ones walk through walls. Is this as intended? Never noticed it before.


Can always run dos2unix on the file from the command line ;)
Grif said:

Didn't think about file encoding, so the .sh file you included ended up in Dos format, making it pretty useless for linux.

Fix is easy enough, but just to sure everything will be fine next time, I've included a new .sh file (had to rename it to .txt to be able to attach it)

Incidentally, did you change some of the aliens? Some (green) ones seem to be split when being hit and the new and smaller ones walk through walls. Is this as intended? Never noticed it before.


Okey, I have added the one you sent me now. And also fixed that little bug you noticed ;)

Very nice, one of the very best examples I have seen using JME…



An addictive game too …

got it working and spent around an hour playing it, got up to level 7 wave…

absolutely loved it…

well done…

great game…

ncomp said:

got it working and spent around an hour playing it, got up to level 7 wave...
absolutely loved it...
well done...
great game...


Cool :)

You're all more than welcome to suggest changes and fixes. For example:

Any turret that is useless of overpowered?
A boring wave type?
Suggestions for improved graphics?
Interesting game play ideas/changes?

Do power cells do anything ???

yeah i found them to be a bit pointless…

then again i was getting swamped by around 40 nasty buggers at the time…

my only suggestions would be to maybe increase the size of the zoom out…

also the config dialog only appears once…i wanted to change resolution and screen mode but wasn't able to…

Was interested in how you calculated the weapons damage and speed over cost, was where i left off when i last worked on my project many moons ago…





What i found was that the sniper came out top on level 5 with a cost per damage/second of 5.785. level six is more expensive at 6075Second was a rocket tower level 6 with a cost per damage/second of 9.62



The gattling gun at level one was 10.8 or level 6 at 11.6 for worst damage, 5.27 for best - didnt seem worth it

All rockets at level being 43.2, Nova at level 3 is 36 ( however this can get mutliple units at a time )

Looks like power is not used.



Do any of the monsters have special resistances?

Do power cells do anything


Yes, they increase the strength of the towers within it's range by the percentage indicated. But yes, it's hard to see so I will try to add something that shows that they are connected to the turrets nearby. Maybe a beam or something..

Was interested in how you calculated the weapons damage and speed over cost, was where i left off when i last worked on my project many moons ago...


I had a problem finding a good way to calculate it. Currently I calculate for each level a value for (damage/second)/(invested gold in this turret). This value should increase for each upgrade level (to making it more profitable to upgrade instead of just building new towers). Turrets that are harder to use (for example sniper) are allowed to have higher value for each level than others.

Do any of the monsters have special resistances?


Not yet, I'm thinking about adding some kind of resistance. Maybe some of these:
- Resistance for explosions
- Resistance for freezing
- Resistance for low damage hits

this is very addictive the one thing though, why no mouse scroll, it slows me down when I have to reach for the keyboard “kinda handicapped :frowning: :)” to explore the map StrategicHandler has very smooth mouse scroll did you take look at it…

mcbeth said:

this is very addictive the one thing though, why no mouse scroll, it slows me down when I have to reach for the keyboard "kinda handicapped :( :)" to explore the map StrategicHandler has very smooth mouse scroll did you take look at it........................


You should be able to zoom with the scroll wheel on your mouse. And rightclick and drag to move around the camera. I removed the "scrolling at border" because when I started, I didn't want to capture the mouse in the window. But I might add it back again.
Haladria said:

mcbeth said:

this is very addictive the one thing though, why no mouse scroll, it slows me down when I have to reach for the keyboard "kinda handicapped :( :)" to explore the map StrategicHandler has very smooth mouse scroll did you take look at it........................


You should be able to zoom with the scroll wheel on your mouse. And rightclick and drag to move around the camera. I removed the "scrolling at border" because when I started, I didn't want to capture the mouse in the window. But I might add it back again.


thanks for the heads up man and again great game, haven't been to beat it though, a more continuous resource earning system might good too, and maybe allow the enemy attack the wall and weapons instead of preventing complete barricade.

I’ve now created a simple webpage from which you can download a new version of the game. It has some minor bug fixes and some assets improved. But I still don’t have the sound completed, except that I think this game is pretty much completed. :slight_smile:



The homepage: www.gamerendering.com/Imperii

finally figured out that the key to the game is buying time :smiley: the "BIG" ones very very "HARD" they can run a maze of heavIly upgraded weapons and only loose a few IF ANY

Yes, without delaying monsters, it would be impossible to win!

probably a noob question, but, what do you use to draw the towers range? that is, the green line around it when you select it

I simply use a line. Check the line class in jme.



import java.nio.FloatBuffer;
import java.util.ArrayList;

import com.jme.bounding.BoundingBox;
import com.jme.math.FastMath;
import com.jme.math.Vector3f;
import com.jme.renderer.ColorRGBA;
import com.jme.scene.Line;
import com.jme.scene.Node;
import com.jme.util.geom.BufferUtils;

public final class RangeCircle extends Line
{
   private static final int LINE_WIDTH = 4;
   private static final float HEIGHT_ABOVE_GROUND_PLANE = 0.002f;
   
   public RangeCircle()
   {
      this(ColorRGBA.green);
   }
   
   public RangeCircle(ColorRGBA colorRGBA)
   {
      ArrayList<Vector3f> vertices = new ArrayList<Vector3f>();
      ArrayList<ColorRGBA> colors = new ArrayList<ColorRGBA>();
      
      setModelBound(new BoundingBox());
      
      setLineWidth(LINE_WIDTH);
      setMode(Line.Mode.Segments);
      
      // create the circle
      for(int i= 0; i < 128; ++i)
      {
         vertices.add(new Vector3f(FastMath.cos(((float)i/128.0f)*FastMath.TWO_PI), HEIGHT_ABOVE_GROUND_PLANE, FastMath.sin(((float)i/128.0f)*FastMath.TWO_PI)));
         vertices.add(new Vector3f(FastMath.cos(((float)(i+1.0f)/128.0f)*FastMath.TWO_PI), HEIGHT_ABOVE_GROUND_PLANE, FastMath.sin(((float)(i+1.0f)/128.0f)*FastMath.TWO_PI)));
         colors.add(colorRGBA);
         colors.add(colorRGBA);
      }
      
      // close the circle
      vertices.add(new Vector3f(FastMath.cos(((float)128.0f/128.0f)*FastMath.TWO_PI), HEIGHT_ABOVE_GROUND_PLANE, FastMath.sin(((float)128.0f/128.0f)*FastMath.TWO_PI)));
      vertices.add(new Vector3f(FastMath.cos(((float)0.0f/128.0f)*FastMath.TWO_PI), HEIGHT_ABOVE_GROUND_PLANE, FastMath.sin(((float)0.0f/128.0f)*FastMath.TWO_PI)));
      colors.add(colorRGBA);
      colors.add(colorRGBA);
      
      FloatBuffer vertexBuffer = BufferUtils.createFloatBuffer(vertices.toArray(new Vector3f[0]));
      vertexBuffer.rewind();
      setVertexBuffer(vertexBuffer );
      generateIndices();
      
       FloatBuffer colorBuffer = BufferUtils.createFloatBuffer(colors.toArray(new ColorRGBA[0]));
      colorBuffer.rewind();
      setColorBuffer(colorBuffer);

      updateModelBound();
      updateRenderState();
   }

   public void setRangeRadius(float radius)
   {
      setLocalScale(radius);
//      updateGeometricState(0, true);
      updateModelBound();
   }
   
   public void setVisible(boolean visible)
   {
      if(visible)
         setCullHint(CullHint.Never);
      else
         setCullHint(CullHint.Always);
   }
}

Haladria said:

I simply use a line. Check the line class in jme.


...



I didn't know you could do that with line, thanks

Update: I won two categories, Java FX and Best Execution! :slight_smile:



www.gameawards.se

Congratulations!! Its great to see java (and jME) getting some recognition in the game industry.