A View from the KISS CE Combat Zone

I feel your pain ashtonv, hang in there :slight_smile:

…having a long weekend at my disposal, I decided to buckle down and steep myself in the KISS CE code and implement the core enemy AI (as the video below demonstrates).  Enemies, according to their specific and unique stats, are now able to cast spells (Heal, Big Shock, and Small Fire) and use items in their bag based on various combat conditions.  Also, I coded in some movement for physical attacks so that that both enemies and friendlies move up to their chosen target, strike (to be visually accentuated later with an attack animation and special effect), and then return to their original field position.  Player items are now available for use in combat (Potion, Ultra Potion, and Neuro Tea for now) and a "turn disk" has been added so that it's easier to get a visual lock on who's turn it is (aside of the Turn/Round HUD) and which enemy is using nefarious magical attacks and healing.  The next step after adding a few more items and spells for general use will be to implement both the delivery and cleansing of Status Effects for both sides of the combat zone…



The video and the rest:



One by Four by Nine: KISS CE Core Enemy AI


Another phase of integration and improvement has ended!



The following video shows expanded Enemy AI (cranked up to nearly a boss fight level), Status Effects, and Recovery Bottle usage. The first two rounds look like this (in words):



ROUND #1

(Gold Witch (2): Big Shock -> All Friendlies)

Starman: Zap Bomb -> Blue Witch (0)

Stella: Poison Air -> Blue Witch(3)

Blue Witch (1): Physical Attack -> Starman

Blue Witch (0): Remedy -> Self

Blue Witch (3): Physical Attack -> Starman



ROUND #2

Gold Witch (2): Big Shock -> All Friendlies

Starman: Ultra Potion

Stella: Big Shock -> All Enemies : Blue Witch (3) is ko'd

Blue Witch (1): Physical Attack -> Starman

Blue Witch (0): Physical Attack -> Starman



ROUND #3



and beyond:

And here's the No Frills KISS CE Quick Demo!



The Demo only takes you through one session of combat, but each time you play you will face a group of enemies with varying capabilities and strengths.  Sometimes you will win easy, sometimes it will be a battle, and sometimes you will face certain destruction!



http://www.greatworkgames.com/testdistro/wtgs-dist.jnlp



Best played at 800x600 or 1024x768 resolution (those were the design sizes, but it should scale if you choose a larger size).  Since this is a no frills demo, your graphics window may hang in blackness for 5-10 seconds while the program charges up.  No sound is available on this round.  The demo should work on Windows XP/Vista, Linux, and MacOS. Java VM 1.6 or higher is required. Go to http://www.java.com and get it if you don't have it.



CONTROLS:



Arrow Keys: Menu Navigation

SPACE Bar: Select Menu Item

Esc: Cancel Action, Move Back One Menu, Exit Game from Game Over Screen

F-12: Exit Game From Anywhere



MENUS:



ACTION: Main Menu

-> ATTACK: Physically attack an enemy

-> CAST: Cast Magic


> Heal: Single, regain a small amount of HP for one player
> Super Heal: All, regain a small amount of HP for all players
> Small Fire: Single, damage enemy with fire based magic
> Big Shock: All, damage all enemies with lightning based magic
> Poison Air: Single, poison an enemy
-> USE: Use Item
> Potion: Single, regain 100 HP (you'll need this!)
> Ultra Potion: All, regain 100 HP for all party members
> Zap Bomb: Single, prevent an enemy from using magic
> Neuro Tea: Single, regain 50 MP for a party member
> Remedy: Single, recover from all status effects
> Sick Bomb: Not implemented
->TALK: Not Implemented Yet
-> GUARD: Not Implemented Yet
-> ESCAPE: Escape from Battle/End Game


Enjoy!!!

I was looking forward to testing this, but I'm getting an unsigned apllication error. this is the exception



JNLPException[category: Security Error : Exception: null : LaunchDesc:

<jnlp spec="1.0+" codebase="http://www.greatworkgames.com/testdistro/" href="http://www.greatworkgames.com/testdistro/wtgs-dist.jnlp">

  <information>

    <title>GWG WebStart KISS CE Test Distro</title>

    <vendor>Great Work Games</vendor>

    <homepage href="http://www.greatworkgames.com"/>

    <description>WebStart Demo</description>

    <description kind="short">WebStart Demo (short)</description>

    <offline-allowed/>

  </information>

  <security>

    <all-permissions/>

  </security>

  <update check="timeout" policy="always"/>

  <resources>

    <jar href="http://www.greatworkgames.com/testdistro/worldtwogs.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/gwg.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-awt.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-scene.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/lwjgl.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/lwjgl_util.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/lwjgl_util_applet.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jogl.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jorbis-0.0.17.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-audio.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-collada.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-editors.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-effects.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-font.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-gamestates.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-model.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-swt.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-terrain.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/jme-xml.jar" download="eager" main="false"/>

    <jar href="http://www.greatworkgames.com/testdistro/eval-0.4.jar" download="eager" main="false"/>

    <java version="1.6+"/>

    <nativelib href="http://www.greatworkgames.com/testdistro/windows-native.jar" download="eager" main="false"/>

  </resources>

  <application-desc main-class="worldtwo.WorldTwoGS"/>

</jnlp> ]

at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)

at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)

at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)

at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)

at com.sun.javaws.Launcher.launch(Unknown Source)

at com.sun.javaws.Main.launchApp(Unknown Source)

at com.sun.javaws.Main.continueInSecureThread(Unknown Source)

at com.sun.javaws.Main$1.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

















let me know if you need more info, i'll sort it out in the morning

Well… ARGH?!! 



I think I found the problem (a jar that is a part of the main app, but not the demo, was not signed). 



It works here… but then again it worked here before too, so…



Please try again ; - )

hehe thats cool, the poison air effect is nice.



Very nice work!

Really nice and dynamic. And with just a few models and art the game would look much better!



Congrats.

Good work and great to see a playable demo  :smiley:

Is java 1.6 really a requirement, and why?

Really like this. The effects are really nice too. Look forward to seeing more.



Wondering how you get the cam to move around to the side like that? I want to add a similar effect but to zoom in just above my players shoulder when I click a mouse button.

basixs said:

Is java 1.6 really a requirement, and why?


Well... because... that's the version I developed it with!  That's why!  I guess I can use 1.5 or 1.4 to make it more accessable, and I will look into that.... when I get back into jME world late next week.
Del said:

Really like this. The effects are really nice too. Look forward to seeing more.

Wondering how you get the cam to move around to the side like that? I want to add a similar effect but to zoom in just above my players shoulder when I click a mouse button.


The camera action is going to be cleaned up at some point after KISS CE is integrated into the main game -- over the next few months -- after the overworld and main quest gameplay is stabilized.  For now, I use a number of control points (nodes in world space) that I get locations from and feed those locs in various orders into a curve controller connected to the cam.  In the future, I will be keying camera control points based on locs and geometries based on player/enemy locations in order to give it a more personal feel.  This latter bit sounds like what you are looking at doing as well.  I just couldn't be bothered in the present with those problems as I was focusing more on gameplay (and some snazzy special effects) than anything else.

Sorry ashtonv, didn't mean to sound sharp (was still rubbing sleep out of my eyes); I was just curious if there was anything that required 1.6…



Nice work on this btw; I can't wait to play around with it, next time I boot into windows I will check it out (can't run 1.6 on OSX).

basixs said:

Sorry ashtonv, didn't mean to sound sharp (was still rubbing sleep out of my eyes); I was just curious if there was anything that required 1.6...

Nice work on this btw; I can't wait to play around with it, next time I boot into windows I will check it out (can't run 1.6 on OSX).


Not a problem, basixs.  I should have taken the OSX users into account before putting the distro together.  I'll fix this next week sometime.

Beyond this, I guess this is a good time to commit to using the highest common denominator Java version between OSes.