Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411496 Posts in 69373 Topics- by 58428 Members - Latest Member: shelton786

April 25, 2024, 06:43:08 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsIzzy's Revenge
Pages: 1 2 3 [4]
Print
Author Topic: Izzy's Revenge  (Read 9819 times)
Indie4Fun
Level 0
***



View Profile WWW
« Reply #60 on: February 07, 2015, 05:43:24 AM »

Thanks for your support zorg! I'll post new updates soon.
Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #61 on: February 07, 2015, 09:56:46 AM »

We are rethinking the graphics of the game, using better constrast and a darker color set, closer to a comic style and to a dark vistorian city.

this is a WIP:




What do you think about it? do you prefeer this?

Thanks a lot!!
« Last Edit: February 08, 2015, 08:52:21 AM by Indie4Fun » Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #62 on: February 08, 2015, 09:14:49 AM »

Hi all! today we opened the Steam Greenlight page for the game. It is doing well so far. He have more positive votes than negative ones  Tongue Tongue.

Anyways, we read somewhere that what a game needs to be approved is to have a high amount of 'yes' votes so we will need to keep spreading the word.


please, vote us if you can!!  Wink Wink



Meahwhile, we keep creating more artwork, improving the campaign and trying to get coverage.
« Last Edit: February 08, 2015, 08:56:18 PM by Indie4Fun » Logged

Kickstarting Izzy's Revenge right now!!

jamesprimate
Level 10
*****


wave emoji


View Profile WWW
« Reply #63 on: February 08, 2015, 01:42:39 PM »

hey i clicked the link to vote for greenlight, but it gave me a "this page doesnt exist and may have been deleted by the author" message. Check it?
Logged

Indie4Fun
Level 0
***



View Profile WWW
« Reply #64 on: February 08, 2015, 08:58:09 PM »

OMG you were right! my bad u.u

fixed Tongue
Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #65 on: February 10, 2015, 11:45:27 AM »

Today we kept reworking the art style of other scenarios. Again, we are removing the old color palette and making the game look much more vivid:




Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #66 on: February 15, 2015, 10:02:38 AM »

Hi! today I wanted to rest a little bit from kickstarter and I went back to what I really love: programming.

Izzy's revenge was born on 2012 as a personal project, coded from 0 using java. A few months ago we decided that, although the custom-made engine was OK, using Unity will speed up the things. So, as a side project, I started porting the old code to Unity.

At my (paid) work, I'm a java programmer, so I used visual studio 2013 with resharper plugin for code dev inside unity. Most of the refactoring tools work quite well.

The overall experience with Unity is quite good. I've never used it a scripting SDK before. I already ported the custom-made physics and the Izzy animation manager without any major problem.

For making environment, I discovered Ferr2D terrain tool. It is a totally awesome tool!! It basically allows you to create and deform surfaces. It makes the development of 2D environments really easy.

http://ferrlib.com/page/Ferr2D_Terrain_Tool

Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #67 on: February 17, 2015, 12:01:36 PM »

On the previous implementation of the engine, all the game configuration was hardcoded into the game Lips Sealed. With the Unity port I want to make most of the game parameters configurable from external files, so I started to implement this.At long term this is a quite a good decission. Another person can adjust all parameters without any recompiling.

As a first attempt, I wanted to make all the weapons of the game configurable from an XML file.

This is my sample XML. Here, I define two weapons, with several fields including weapon damage and firing speed.

Code:
<?xml version="1.0"?>     
<Weaponry>      
    <Weapon>
        <weaponName>weapon1</weaponName>
        <damage>1</damage>
        <chargingSec>1</chargingSec>
<firingSec>1</firingSec>
<coolDownSec>1</coolDownSec>
<damageWidth>1</damageWidth>
<damageHeight>1</damageHeight>
<chaineable>true</chaineable>
    </Weapon>
    <Weapon>
        <weaponName>weapon2</weaponName>
        <damage>1</damage>
        <chargingSec>1</chargingSec>
<firingSec>1</firingSec>
<coolDownSec>1</coolDownSec>
<damageWidth>1</damageWidth>
<damageHeight>1</damageHeight>
<chaineable>true</chaineable>
    </Weapon>
</Weaponry>


Inside my code, I created the 'weapon' and 'weaponry' objectss:

Code:
 [DataContract(Name = "Weapon", Namespace = "")]
    public class Weapon
    {
        [DataMember] private Boolean chaineable;
        [DataMember] private float chargingSec;
        [DataMember] private float coolDownSec;
        [DataMember] private int damage;

        [DataMember] private float damageHeight;
        [DataMember] private float damageWidth;
        [DataMember] private float firingSec;
        [DataMember] private String weaponName;

...



Code:
    [KnownType(typeof (Weapon))]
    [CollectionDataContract(Name = "Weaponry", ItemName = "Weapon", Namespace = "")]
    public class Weaponry : List<Weapon>
    {
    }



Finally, to read the XML file and access to any weapon from its name, I created this static method:

Code:
    public class WeaponryDataBase
    {
        private static Weaponry weaponry;


        public static Weapon getWeapon(String name)
        {
            if (weaponry == null)
                initialize();

            foreach (Weapon weapon in weaponry)
            {
                if (weapon.WeaponName.Equals(name)) return weapon;
            }
            throw new Exception("Weapon " + name + " not found");
        }

        private static void initialize()
        {
            string fileName = Path.Combine(Path.GetDirectoryName(Application.dataPath), "Weaponry.xml");
            var dcs = new DataContractSerializer(typeof (Weaponry));
            var fs = new FileStream(fileName, FileMode.Open);
            XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());

            weaponry = (Weaponry) dcs.ReadObject(reader);
            reader.Close();
            fs.Close();
        }
    }

The method initializes the weaponry database, this means that it reads the file and  parse it to a list of 'weapon' objects.

This is great! Cheesy now I will be able to change any weapon parameters just by touching the config file. At the end this has been easier to make than I though.
Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #68 on: February 19, 2015, 11:58:49 AM »


Well, after two weeks of kickstarter campaign, we just decided to stop working on it. Reaching our objective seems impossible. We didn't got attention from any big media and at the end our campaign had really low visibility. We definitely did several things bad: lack of initial fanbase, lack of public demo for youtubers/journalists. Also, our game was not innovative enough for get any major attention.

It has been quite frustrating as we have spent many weeks preparing the campaign. It has been an interesting experience, but these last months have been too stressful for me.

What to do now?  It is not easy to decide.

I personally want to aim to a much smaller game. We already made some small arena levels to test the combat mechanics and the weapons/enemies balancing. I want to put this idea further: Use all the graphics assets we already have, move to unity and iterate with some ideas until we have some simple but nice mechanics that are fun.

On the *slightly* bright side, greenlight is doing fine, 'yes' votes win 'no' votes and, day after day we grow a little Tongue

I still really like this project, I definitely will not give up.
« Last Edit: February 19, 2015, 12:07:01 PM by Indie4Fun » Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #69 on: February 24, 2015, 11:05:34 AM »

Hi all! at the moment I have completely finihed my own 2D physics. Basically I calculate the collisions manually by using raycasting. Then, I apply all the appropiate speed and acceleration to the objects. The reason I avoided the built-in physics engine is because I don't want realistic movements. Also, I wanted to have total control of how characters behave in all events such as receiving damage or moving arround.

I made in the past a really simple and didactic 2D platformer with its own physics:


Just in case if anyone is interested, the source code is here:  https://bitbucket.org/Nesferjo/nanoplatformer

ATM I'm working on coding the damage. When a weapon is triggered, I will add a damage object into the scene, with a short lifetime. If the damage collides with a character, it will reduce its health.
Logged

Kickstarting Izzy's Revenge right now!!

Indie4Fun
Level 0
***



View Profile WWW
« Reply #70 on: February 28, 2015, 09:48:19 AM »

Hi all! I just deciced to free the source code of the unity port I'm making:


This code allows to anybody to use all the features I'm making. At the moment it provides (at least) a non realistic, simplified,  customizable 2D physics, automatic sprite animator logic based on the character status, simple but smooth camera movement script, ladder and line collisions that can be shown in the builder.

These last days, I have been working on the damage functionality. I created a DamageUtils class that instantiate 'damage' objects into the scene. When this damage collides with a character, the character will try to receive the damage:

Code:
 class IzzyDamageScript : MonoBehaviour
    {
        
        private Boolean areaDamage;
        private float timeStamp;
        private float lifetime;
        private IzzyControllerScript izzy;
        private DamageInfo _damageInfo;


        public void initialize(IzzyControllerScript izzy, DamageInfo damageInfo, bool areaDamage, float timeStamp, float lifetime)
        {
            this.izzy = izzy;
            this.areaDamage = areaDamage;
            this.timeStamp = timeStamp;
            this.lifetime = lifetime;
            this._damageInfo = damageInfo;
        }

        private void FixedUpdate()
        {

            CharacterControllerScript[] enemies = DamageCollisionUtils.detectAllCollisionsWithEnemies(_damageInfo.Bounds);

            bool applied = false;
            for (int i = 0; i < enemies.Length; i++)
            {
                applied |= enemies[i].receiveDamage(_damageInfo);
                if (!areaDamage && applied) break;
            }

            if (applied || Time.realtimeSinceStartup - timeStamp > lifetime)
            {
                Destroy(gameObject);
            }
        }


Damages also have a limited life time. It noone collide with it in a short period of time, it will autodestroy.

With this, my enemies  can start to receive damage from Izzy and vice-versa Wink
Logged

Kickstarting Izzy's Revenge right now!!

Pages: 1 2 3 [4]
Print
Jump to:  

Theme orange-lt created by panic