Beta Zero Chronicle

Status
Not open for further replies.

Evanski

Raccoon Lord
Forum Staff
Moderator
spr_title.png
I want to bring back the Idea that games are meant to be enjoyed and are for fun.
No lootboxes, No DLC thats actually the rest of the game, No pay to win
just a fun waste you time enjoyment experience.
I appreciate any feedback and Ideas.

Development Road Map
  1. Yes


About the game
Screen_0.png

Zero Chronicle is 2D Action Adventure RPG
Your a long forgotten hero that has died, but an evil Wizard named Zero has resurrected you to steal your soul.
So your epic quest is to stop Zero and get your soul back but Zero has blocked off the Castle with a magic barrier and in order to break that barrier you need 4 magic Amulets all belonging to other town Leaders.
Each town is Unique and offers a different experience and part of the lore of the world.
Each Amulet has a different power which you can use to affect your weapons and skills.
Getting the Amulets wont be easy though as each Town Leader will require you to do a task for them in order to prove yourself.

Development Status
https://bit.ly/2BYq6NO

Development Videos


playlist: https://www.youtube.com/playlist?list=PLO_LtkQHJbiGJRt6LTBIPf9r7-vluoAnb
Current Features

Lore (so far)
Thousands of Moons ago,
The Land of Orbis was and still is made up of 4 Towns, Nomen Civitatis, Glacies (put more here when made)
each town there own tribes and laws but each town is united together under a crown. Whoever wore the crown was determined to rule all 5 towns.
In the town of Nomen lived 2 Wizards, Rasmodius and Zero, they were brothers. Ras particed white magic, pure and good. Zero practiced dark and horrible magic. Ras had tried to get his brother to turn good but failed. Zero was power hungry and one sunrise killed king Cyrex. Zero absorbed his soul and became corrupted by this energy and his soul became dark. He became king and ruled with an iron fist.
Ras tried to save his brother again but feared he was far to gone. so he came up with a spell to end his brother. The spell would need a physical object to project its power so the amulet of magic was created to do this task. The price of casting the spell was his own life. So on the dawn of the summer cycle Raz entered the castle,Zero had been waiting for this day to come. Zero attacked his brother fueling the amulet with magic energy. The amulet cast the spell destroying both Ras and Zero.
Zero soul was shattered and weak, it latched on to his brothers soul to survive but it would not keep it alive forever, it needed some kind of strong will to stay alive, so Zero stole the soul of a long forgotten hero (the player) thus combining the hero's soul into the mix. The power of the new soul mixture was so great it revived all three of them. Determined to rule Zero put up a force field around the castle, but Ras was one step ahead. When he died he has the amulet of magic be broken down into 4 different amulets and to be safe guarded by the Town leaders. One amulet is not powerful enough on its own, but all 4 combined would be powerful enough to absorb any spell and with that absorbed power cast any spell the wearer wanted.
This is Ras's only chance to stop his brother, with the help of the hero he can bring an end to his brother and save the Land of Orbis. (if you read all of that, Thank you!) :)
 
Last edited:

Evanski

Raccoon Lord
Forum Staff
Moderator
Locky Locky! Ive added Locked doors, and a lockpick minigame to Zero Chron!, Im also going to start comminting on my post because Idk maybe that will send notifis better?




Screen_1.png
 
Last edited:

Evanski

Raccoon Lord
Forum Staff
Moderator
By the request of @Bentley the code for the lock pick


ps: I give full rights and any legal stuff for anyone to use this code in there own projects, as long as im credited and given a link to the project ^W^
Code:
//Obj_door collision with obj_activate event:

if (canactivate==1)
{
//is it locked?
if (locked==true)
{
    //how locked?
    locklevel = locked_skill;
  
    //find level locked and then do this
    switch(locklevel)
    {
        //not locked?
        case 0:
        locked=false;
        break;
        //easy
        case 1:
        //medium
        case 2:
        //hard
        case 3:
        if (global.itemlockpick != 0)
        {
            if instance_exists(obj_activate2)
            {
                instance_destroy(obj_activate2);
            }
            if !instance_exists(obj_picklock)
            {
                instance_create(x,y,obj_picklock);
            }
        } else {
            if !instance_exists(obj_player_TB_nolockpick)
            {
                instance_create(obj_player.x,obj_player.y,obj_player_TB_nolockpick);
             }
             if instance_exists(obj_activate2)
            {
                instance_destroy(obj_activate2);
            }
        }
        break;
        //needs key
        case 4:
        //find out if player has key
        if !audio_is_playing(snd_door_locked)
        {
            audio_play_sound(snd_door_locked,1,0);
        }
        instance_destroy(other);
        break;
    } 


} else {


if (closed=true)
{
instance_destroy(other);
if !audio_is_playing(snd_door_open)
{
    audio_play_sound(snd_door_open,1,0);
}
opening=1;
closing=0;
image_speed=0.2;
canactivate=0;
}

if (closed=false)
{
instance_destroy(other);
if !audio_is_playing(snd_door_close)
{
    audio_play_sound(snd_door_close,1,0);
}
closing=1;
opening=0;
image_speed=-0.2;
canactivate=0;
}


}
}

Code:
//Obj_picklock Create event

pick_image_angle = 90;
draw=1;
level = 0;
sweetspot = 0;
playsound=1;
spotmax=1;
spotmin= -1;
image_angle=90;
pick_subimg=0;
reset=0;
if !instance_exists(obj_playerlockcontroll)
{
    instance_create(x,y,obj_playerlockcontroll);
}

door = instance_nearest(x,y,obj_NL_woodendoor);
player = instance_nearest(x,y,obj_player);
lockplayer = instance_nearest(x,y, obj_playerlockcontroll);

instance_deactivate_all(true);
instance_activate_object(door);
instance_activate_object(player);
instance_activate_object(lockplayer);
instance_activate_object(obj_screenshot);
lockstrength = door.locklevel;
level = lockstrength;

switch (level)
{
    case 1:
    sweetspot = irandom(90);
    spotmax= 7;
    spotmin = -7;
    break;
    case 2:
    sweetspot = irandom(180);
    spotmax = 5;
    spotmax = -5;
    case 3:
    sweetspot = irandom(360);
    spotmax = 3;
    spotmin = -3;
}
Code:
//Obj_picklock Step event

//Quit
if keyboard_check(vk_escape)
{
    instance_destroy();
}

//image_angle max and min
if image_angle > 90
{
image_angle = 90;
}
if image_angle < 0
{
image_angle = 0;
}

//Reset if not pressing stuff
if !keyboard_check(ord('D')) && !keyboard_check(ord('A')) && (image_angle<90) && !(reset = 2)
{
image_angle=image_angle+90/8;
}

//Turn lock
if keyboard_check(ord('D')) ^^ keyboard_check(ord('A'))
{
    if !(image_angle <= 0) && !(pick_subimg = 1)&& !(reset = 2)
    {
        image_angle=(image_angle-3);
    }
}

//Woah Noises!
if keyboard_check(ord('D')) ^^ keyboard_check(ord('A')) && (image_angle<90) && !(image_angle <= 0)
{
  if !audio_is_playing(snd_lockturn)
    {
        audio_play_sound(snd_lockturn,0,0);
    }
}

//Turn pick
if keyboard_check(vk_right) && !keyboard_check(ord('D')) && !keyboard_check(ord('A'))&& !(pick_subimg = 1)&& !(reset = 2)
{
    if (pick_image_angle < 0){pick_image_angle=360}
    pick_image_angle=(pick_image_angle-1);
}
if keyboard_check(vk_left) && !keyboard_check(ord('D')) && !keyboard_check(ord('A'))&& !(pick_subimg = 1)&& !(reset = 2)
{
    if (pick_image_angle > 360){pick_image_angle=0}
    pick_image_angle=(pick_image_angle+1);
}

if !(pick_image_angle = sweetspot)
{
    playsound=1;
}

lockClick = choose(snd_lockClick_1,snd_lockClick_2);

if (pick_image_angle = sweetspot)
{
    if !audio_is_playing(lockClick) && playsound=1
    {
        audio_play_sound(lockClick,1,0);
        playsound=0;
    }
}



//Unlock

//is the lock turned?
if (image_angle <= 0)
{
    //Pick is in the sweetspot
    if (pick_image_angle = sweetspot)
    {
        //Unlock door
        if !audio_is_playing(snd_lock_Unlock)
        {
            audio_play_sound(snd_lock_Unlock,50,0);
        }
        door.locked_skill=0;
        door.locked=false;
        if !instance_exists(obj_activate2){instance_create(door.x,door.y,obj_activate2)};
        instance_destroy();
    } else {
        //Pick is not in the sweetspot
        spot = (pick_image_angle - sweetspot);
        if (spot < spotmax) && (spot > spotmin)
        {
            sweetspot = pick_image_angle;
            image_angle = 0;
        } else {
            //break lock pick
            pick_subimg = 1;
            //play break sound
            if !audio_is_playing(snd_lock_breakpick) && !(reset = 2)
                {
                    audio_play_sound(snd_lock_breakpick,50,0);
                }
            //reset lock
            if (reset=0)
            {
                global.itemlockpick = (global.itemlockpick - 1);
                alarm[0]= room_speed*1;
                reset=2;
            }
      
        }
    }
}

Code:
//Obj_picklock Draw Event

if (draw=1)
{

draw_set_alpha(0.99);
draw_set_color(c_black);
draw_rectangle(0,0,room_width,room_height,0);
draw_set_alpha(1);
draw_sprite_ext(spr_lock,0,view_wview[view_current]/2,view_hview[view_current]/2,2,2,image_angle,c_white,1);
draw_sprite_ext(spr_lockpick,pick_subimg,view_wview[view_current]/2,view_hview[view_current]/2,2,2,pick_image_angle,c_white,1);
draw_set_color(c_white);
draw_set_font(fnt_coderscrux);
draw_text(view_wview[view_current]/2,((view_hview[view_current]/2)+200),"Lockpicks: "+string(global.itemlockpick));

if (global.lockdebug = true)
{
draw_text(x,y+200, image_angle)
draw_set_color(c_green);
draw_text(x,y+300, sweetspot)
}



}

//fix everything
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_set_alpha(1);
draw_set_font(-1);
draw_set_color(c_black);
Code:
//Obj_picklock Alarm[0] Event

if (global.itemlockpick = 0)
{
     if !instance_exists(obj_player_TB_nolockpick)
            {
                instance_create(obj_player.x,obj_player.y,obj_player_TB_nolockpick);
             }
    instance_destroy(self);
} else {

pick_subimg = 0;
pick_image_angle = 90;
image_angle = 90;
reset=0;

}

Code:
//Obj_picklock Destroy event

if instance_exists(obj_playerlockcontroll)
{
    instance_destroy(obj_playerlockcontroll);
}
instance_activate_all();
 
Last edited:

Bentley

Member
@EvanSki That was nice of you, thanks for posting. I'll check it out.

I really like your art style. The second video looks good.

Just a side note, you can use the stuff I say below or not:

"instance_destroy(self)" is (I believe) unneeded. You can just type "instance_destroy()" and that will destroy the calling instance.

You also didn't use "breaks" in your switch statement. That might be intentional, in which case, ignore what I'm saying.

I also think this is unneeded, "if (something == true)". You can just type "if (something)". The same goes for checking if the condition is false: if (!something).

Sorry if my advice wasn't helpful.
 
Last edited:

Evanski

Raccoon Lord
Forum Staff
Moderator
@EvanSki That was nice of you, thanks for posting. I'll check it out.

I really like your art style. The second video looks good.

Just a side note, the stuff I say below or not:

"instance_destroy(self)" is (I believe) unneeded. You can just type "instance_destroy()" and that will destroy the calling instance.

You also didn't use "breaks" in your switch statement. That might be intentional, in which case, ignore what I'm saying.

I also think this is unneeded, "if (something == true)". You can just type "if (something)". The same goes for checking if the condition is false: if (!something).

Sorry if my advice wasn't helpful.
Im not going to lie, some of that stuff is intentional and some of your advice isn't extremely helpful, but the if(something) is helpful and I appreciate the comment and advice anyway! : )
 

Joe Ellis

Member
There is something about this that I really like, the ideas of the shadows and the way the enemies work with them is really good and interesting, I also like the art style, even though its simple, are you planning to make more polished versions of the graphics in the final version?
 

Evanski

Raccoon Lord
Forum Staff
Moderator
There is something about this that I really like, the ideas of the shadows and the way the enemies work with them is really good and interesting, I also like the art style, even though its simple, are you planning to make more polished versions of the graphics in the final version?
Ive been thinking about Hiring an Artist in the polishing steps of my game, but Idk I kinda like the art style how it is, it gives the game a certain feel and look, Thank you for your interest!
 

Evanski

Raccoon Lord
Forum Staff
Moderator
Hi people who are following this, This game is being put on hold for a while because:
  1. Life is getting in the way, such as Education and other life stuff
  2. Lack of interest / motivation (Dont worry this is a off and on experience)
  3. Im starting a new project I have bigger interest in
I have no intentions of quiting or canceling Zero Chronicle, I will work on this again at a different point of time (hopefully soon)

Edited 8/28/18 ; )

: D
 
Last edited:

Evanski

Raccoon Lord
Forum Staff
Moderator
I've got the feeling back for working on this game, I've got new ideas for it and a great Artist Doing some sprites for me, Cant wait to show them off, Stay tuned :D
 

Evanski

Raccoon Lord
Forum Staff
Moderator
(Bump plz maybe) I'll be releasing info about an artiest That is working with me, As well as A prototype demo of the game some time this week, Idk when for sure but I'll manage to scrape it together!
 

Evanski

Raccoon Lord
Forum Staff
Moderator
HI, so Im really close to releasing a demo for you guys, Sorry for the delay life got mad at me
 

Evanski

Raccoon Lord
Forum Staff
Moderator
hahahahah
I did that because I want to start a demo now rather then wait, Im still working on assets for the town and the crypt escape sequence but im no longer waiting until those are 100% done
 
Status
Not open for further replies.
Top