Charas-Project

Game Creation => RPG Maker => Topic started by: Donut on November 27, 2015, 01:54:33 PM

Title: Tower
Post by: Donut on November 27, 2015, 01:54:33 PM
Engine: RPG Maker 2003
Creator: Donut
Genre: Dungeon-RPG
Expected Release: 2016


A few words to begin with

Tower is a dungeon RPG made for kids. D-RPGs are generally difficult, not very comforting, with terrible and nebulous plot, and sometimes unfair to the point that kids (meaning <10 yo) do not want to go in such adventure. It's a shame, since D-RPG are one of the first (if not THE first) style of RPGs that came out in Occident. I want to make a D-RPG that is easy to play - no crazy mechanics -, cute, and that kids wil enjoy. All the game is designed keeping this in mind: help kids discover one of the oldest type of RPG, teaching them what's the most important aspect in such games. CBS is designed to teach them to pay attention to their enemies, the Craft system and Leveling will hopefully teach them the importance of exploring (to find materials and items for example) and be stronger. The inn is there to tell them that they need some rest and save their game.

The Story
Tower is set in a most basic forest. At its center lies a beautiful, century Old Tree, which dictates life among the woods. Each of the specie of the Forest has to go through a test inside of the Old Tree when they are still young to become robust. Caterpillars become beautiful butterflies, cubs become strong bears... Until one day, a shadow is cast at the top of the Old Tree. No one among the living creatures knew what the Shadow was, nor what it wanted from them, but each time an animal went to pass the Test, it was never seen again. Slowly, life in the Forest slew down. Old creatures that passed the Test before the venue of the Shadow passed away, and new adults were never to be seen again. Only a few young species survived, only to be less and less as they went into the Old Tree.
You are one of the last Caterpillars. You need to brave the dangers of the Old Tree to become a magnificent butterfly. Will you make it through the top? Will you stop the reign of terror of the Shadow?

Features
The game is yet to be finished but will feature:

A bit of dev. - for who is interested.
Here is how I did to make the first person view in RM2k3. It's an updated version of what I did back in 2009, only with more thinking and cleaner code. It is rather easy and relies only on simple maneuver: conditions, variables, and showing picture.
The important thing to do first is to determine how big your line of sight. You can see the one I chose below.
(http://retro-snes.net/tower/img/directions.png) 
Then you will need to store the position of the Player (X_p,Y_p) and see what type of squares you can see from there, e.g., (X_p+1,Y_p). The plan here is to take advantage of terrain ID. If you define the ID 3 to be a wall, and ID 4 to be a chest, then the only things you have to do is:
Of course, as you see in the first image, the tile you need the ID of depends on which direction the player faces, so that you also need to know that. To take back the exemple of a tile located at (X_p+1,Y_p), if the player is facing right, and the tile has an terrain ID of 3, then the player will face a wall just in front of him. If the player is facing up, then it will see a wall at his direct right. It all can be done with simple conditions.

Below is the event to compute the positions needed (also displays floor and ceiling and HUD). Sorry, I code sometimes in French, sometimes in English, hence the use of both languages :/ What you need to know really is that gauche=left, droite=right, bas=down, haut=up, coffre=chest, mur=wall.

Code: [Select]
@> Comment: Cet évènements initialise les variables
 :               : et appelle les évènements d'affichage
 :               :
@> Display Text Options: Transparent, Top, Fixed, Stop Event Movement
@> Comment: Store la position du heros
@> Get Player Location: Variable [0001][0002][0003]
@> Comment:
 :               :
 :               : Initialise les positions de depart
@> Control Variables: [0004:X_heros+1] = Variable [0002]
@> Control Variables: [0005:Y_heros+1] = Variable [0003]
@> Control Variables: [0006:X_heros+2] = Variable [0002]
@> Control Variables: [0007:Y_heros+2] = Variable [0003]
@> Control Variables: [0008:X_heros-1] = Variable [0002]
@> Control Variables: [0009:Y_heros-1] = Variable [0003]
@> Control Variables: [0010:X_heros-2] = Variable [0002]
@> Control Variables: [0011:Y_heros-2] = Variable [0003]
@> Control Variables: [0004:X_heros+1] += 1
@> Control Variables: [0005:Y_heros+1] += 1
@> Control Variables: [0006:X_heros+2] += 2
@> Control Variables: [0007:Y_heros+2] += 2
@> Control Variables: [0008:X_heros-1] -= 1
@> Control Variables: [0009:Y_heros-1] -= 1
@> Control Variables: [0010:X_heros-2] -= 2
@> Control Variables: [0011:Y_heros-2] -= 2
@> Comment:
 :               :
 :               : Affiche l'image du sol/plafond+HUD
@> Show Picture: 1, 'Sol_plafond', (160,120), 100%, 0%
@> Show Picture: 500, 'HUD', (160,120), 100%, 0%
@> Comment:
 :               : Vérifie la direction du personnage et appelle l'évènement
 :               : correspondant
@> Conditional Branch: Player is facing Down
  @> Call Event: [Direction Bas]
  @>
 : Branch End
@> Conditional Branch: Player is facing Up
  @> Call Event: [Direction Haut]
  @>
 : Branch End
@> Conditional Branch: Player is facing Right
  @> Call Event: [Direction Droite]
  @>
 : Branch End
@> Conditional Branch: Player is facing Left
  @> Call Event: [Direction Gauche]
  @>
 : Branch End
@> Wait: 0.2 seconds

And here is what the event looks like if the player faces down (refer to the first picture to help you understand)

Code: [Select]
> Comment: Y+2
 :               :
@> Comment: X+2;Y+2 => Gauche+2_2
@> Get Terrain ID: [0012:ID_terrain], Variable [0006][0007]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 3, 'Mur_gauche+2_2', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 3, 'Coffre_gauche+2_2', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 3
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X+1;Y+2 => Gauche+2
@> Get Terrain ID: [0012:ID_terrain], Variable [0004][0007]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 5, 'Mur_gauche+2', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 5, 'Coffre_gauche+2', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 5
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X;Y+2 => Mur+2
@> Get Terrain ID: [0012:ID_terrain], Variable [0002][0007]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 6, 'Mur+2', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 6, 'Coffre+2', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 6
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X-1;Y+2 => Droite+2
@> Get Terrain ID: [0012:ID_terrain], Variable [0008][0007]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 4, 'Mur_droit+2', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 4, 'Coffre_droit+2', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 4
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X-2;Y+2 => Droite+2_2
@> Get Terrain ID: [0012:ID_terrain], Variable [0010][0007]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 2, 'Mur_droit+2_2', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 2, 'Coffre_droit+2_2', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 2
    @>
   : Branch End
  @>
 : Branch End
@> Comment: Y+1
 :               :
@> Comment: X+2;Y+1 => Gauche+1_2
@> Get Terrain ID: [0012:ID_terrain], Variable [0006][0005]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 8, 'Mur_gauche+1_2', (160,120), 100%, 0%
  @>
 : Else
  @> Erase Picture: 8
  @>
 : Branch End
@> Comment: X+1;Y+1 => Gauche+1
@> Get Terrain ID: [0012:ID_terrain], Variable [0004][0005]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 10, 'Mur_gauche+1', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 10, 'Coffre_gauche+1', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 10
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X;Y+1 => Mur+1
@> Get Terrain ID: [0012:ID_terrain], Variable [0002][0005]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 11, 'Mur+1', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 11, 'Coffre+1', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 11
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X-1;Y+1 => Droite+1
@> Get Terrain ID: [0012:ID_terrain], Variable [0008][0005]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 9, 'Mur_droit+1', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 9, 'Coffre_droit+1', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 9
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X-2;Y+1 => Droite+1_2
@> Get Terrain ID: [0012:ID_terrain], Variable [0010][0005]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 7, 'Mur_droit+1_2', (160,120), 100%, 0%
  @>
 : Else
  @> Erase Picture: 7
  @>
 : Branch End
@> Comment: Y
 :               :
@> Comment: X+1;Y => Gauche
@> Get Terrain ID: [0012:ID_terrain], Variable [0004][0003]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 13, 'Mur_gauche', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 13, 'Coffre_gauche', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 13
    @>
   : Branch End
  @>
 : Branch End
@> Comment: X-1;Y => Droite
@> Get Terrain ID: [0012:ID_terrain], Variable [0008][0003]
@> Conditional Branch: Variable [0012:ID_terrain] == 3
  @> Show Picture: 12, 'Mur_droit', (160,120), 100%, 0%
  @>
 : Else
  @> Conditional Branch: Variable [0012:ID_terrain] == 4
    @> Show Picture: 12, 'Coffre_droit', (160,120), 100%, 0%
    @>
   : Else
    @> Erase Picture: 12
    @>
   : Branch End
  @>
 : Branch End

Also you need to be careful at which pictures come first ;)

This looks like it in the editor (Red=wall=terrainID 3; Blue=chest=terrainID 4)
(http://retro-snes.net/tower/img/editeur.png)

And here it is in motion (test map), but you've already seen it before ;) RIPs from Heroine Dusk and Dokapon Millenium Quest.
(http://retro-snes.net/tower/img/donca1.gif)

Stuff/News
27/11/2015
So I've been a lot undecided for the graphics, I want to make a cute game, with cute graphics, and my searches ended up with this.
(http://retro-snes.net/stuff/Tower_0_small.png) (http://retro-snes.net/stuff/Tower_1_small.png)
(http://retro-snes.net/stuff/Tower_2_small.png) (http://retro-snes.net/stuff/Tower_3_small.png)
(http://retro-snes.net/stuff/Tower_4_small.png) (http://retro-snes.net/stuff/Tower_5_small.png)

And then this.
(http://retro-snes.net/stuff/2.png)

Not satisfied. So I went RIPs (LoM, CoM, Pokemon, Mother3). THose are old maps, I made the contours less heavy since. In the shop, the fire and the sleeping Molebear are animated.
(http://retro-snes.net/tower/img/Map_town.png) (http://retro-snes.net/tower/img/Map_shop.png)

I made a cool menu too, thanks for your feedbacks =)
(http://retro-snes.net/tower/img/Menu_2.png)

And the craft system is the newest stuff as we speak, fully working, no bugs seen so far. When you craft something, the shopkeeper gets animated to the fire, does stuff there, and comes back. I need to make a gif of that, but hey, lazy xD
(http://retro-snes.net/tower/img/Craft.png)

A friend of mine, a qualified artist (Vincent Batignole) agreed to help me so that I can replace the Mugshots (placeholders so far) and the dungeon graphics (placeholders so far). Maybe he'll help me for custom town maps and monsters too!

01/12/2015
So here is a gif showing the different stuff. I think I'll drop the Custom Save Menu, since DynRPG or BetterAEP don't seem to work with the official RM2k3, and I'll probably drop the Custom Title as well since when I contacted RMW support they told me the non-steam release will probably never get the updates (they seem to have trouble with update when not on steam), and I refuse to using Steam.
So Inn, Crafting all with animation, Menu, choice of floor... At the end you see a battle starting but that randomly chosen monster has not been coded yet.
What I've done today was basically optimizing, as it was slightly lagging before. There's still a bit of lag sometimes after teleportations, I'll see what can be done about it. I must have a wait showing up somewhere. I increased the size of the FP view, made the HUD less heavy by using a dedicated menu for all the stuff you posess.
Enjoy

(http://retro-snes.net/tower/img/Test2.gif)

03/12/2015
Sooo, status update o/

I've been coding aaaall the monsters. Took me ages, and I'm sure it can be made better, I shall see when testing the game before release. That does not include the bosses (I said they would be 5, but I have 4, and the final boss has 3 forms, so 6 technically....) because I want to implement special behaviour for them. I was thinking mini-game style, like Dames, Dance Dance Revolution, stuff like that. It would diversify the battles, and make all the bosses uniques. What do you think about that? That would make the list of stuff left to do slightly bigger though...

Below you can meet the monsters that will lurke in the labyrinth, bosses included (they're all in the database already), not in order. Which ones are bosses, which ones are not? (RIPs from Dokapon Millenium Quests GB)

(http://retro-snes.net/tower/img/Monstres_cards_1.png) (http://retro-snes.net/tower/img/Monstres_cards_2.png) (http://retro-snes.net/tower/img/Monstres_cards_3.png)

17/12/2015
Hello!

So today... I made a big decision: switch back to the unofficial RM2k3. Reasons? I have the non-Steam version, which is not going to be updated. And I need some of Cherry patches/dynRPG so that I can do stuff such as: Custom Title Screen, Custom Save System, and perhaps even the Progressive Minimap that I have trouble with. So that the game can be made like I want it to be. That's pretty much it. I copied/pasted and on the new side I've done a few adjustments on characteristics, EXP curve, and coded a QTE system for the first boss. That's it =)

06/01/2015
Howdy!

For celebrating New Year, I was planning on releasing a tech demo, allowing you to play the first two levels of the dungeon, use the forge and inn, but with no story/music implemented. I did not release it... Everything is ready but I am basically waiting for my friend to finish the graphics he's promised to do. Meanwhile, I thought it would be more interesting to add doors/switch/puzzles into the dungeon. I have implemented those changes in the first two levels (hence why I wanted to make the demo only up to the 2nd level). What I'm going to do is implement a new mechanism every 2 floors: switch/keys/doors, then teleport, then iced floor etc, etc.
Since I dropped the official RM2k3 release, I was able to make my save system. It's basic but it works, and it's not as invasive as the default one ;)
I also made a Custom Title Screen! Or should I say, the background for it. I can't seem to make a nice logo/font etc... I'm desperate so if you think you can help me, please do. I'm looking for a logo similar to that of Pix The Cat, but with a more woodish design. Here is a little animation to show you how the background works. Credit goes to Adam from pixeljoint for the trees. I can't remember who made the clouds, I forgot to write it down but it's from an animation I found on twitter, not done by me. I only slighlty edited the stuff to make the loop look good.

(http://retro-snes.net/tower/img/Title_screen_unfinished.gif)

SO a demo will come very soon I hope (depending on my friend), since everything else apart from title screen (but don't worry, we can always make something not so nice just for the demo if it's the only problem left) is READY.

So what's left
Stuff I need to do:


There is no downloads now, if you want a bit more details on the game and if you read french you can keep an eye on the dedicated website (http://retro-snes.net/tower/tower.html)


Title: Re: Tower
Post by: Prpl_Mage on November 27, 2015, 04:27:52 PM
This is some impressive work and clearly original. Let me know when you have a download ready.
Title: Re: Tower
Post by: Zoltar on November 27, 2015, 05:59:48 PM
Wowie! Looks totally tubular and challenging! I like the original story and the bright colorful visuals. I am curious about a battle system based on Suikoden as I never played it before so it might be fun.  ;D
Title: Re: Tower
Post by: Fisherson on November 28, 2015, 12:32:52 AM
O_______O What gorgeous screens! I mean I know that's using a panroama or pictures but DAAAAAANG it's impressive looking. Like the story too and the fact it's a maze based dungeon crawler. Can I assume it's heavily puzzle centric rather than battle centric?
Title: Re: Tower
Post by: Donut on November 30, 2015, 06:42:07 PM
This is some impressive work and clearly original. Let me know when you have a download ready.
Thanks! Will let you know! Most of the work left is a bit boring, so it I work less efficiently ;)
I prefer working on prototypes and push the software, when it gets at this stage I usually give up. My computer is filled with numerous prototypes now xD

Wowie! Looks totally tubular and challenging! I like the original story and the bright colorful visuals. I am curious about a battle system based on Suikoden as I never played it before so it might be fun.  ;D

Thanks =) I tried to make the game the most appealing. For the battle system, the enemy starts first and says or does something. This hints to what the player should do: use special, attack, or defend to make damage or dodge.  It's a simple paper-rock-scissors system.

O_______O What gorgeous screens! I mean I know that's using a panroama or pictures but DAAAAAANG it's impressive looking. Like the story too and the fact it's a maze based dungeon crawler. Can I assume it's heavily puzzle centric rather than battle centric?
I'm not sure. There'll definitely be puzzles, but to be fair I'm not very good with them, so I don't know what they'll be about. I designed some floors without for now, but it won't be difficult to include them. Any advices are welcome ! And thanks for the compliments =)
Title: Re: Tower
Post by: ZeroKirbyX on December 01, 2015, 12:11:16 AM
Aw ****! This type of dungeon crawling is so great, and you really don't see it outside of Etrian Odyssey anymore. Just please, no Phantasy Star holes in the floor. Oh god, please.

Any plans to include a map editor or something akin, a la Etrian Odyssey?
Title: Re: Tower
Post by: Donut on December 01, 2015, 07:21:28 AM
Ahah! There won't be any holes in the groundin which you could fall. I might include some secret passages, maybe some doors too.
As for an editor, I'm not planning on encrypting the project (i might have to encrypt some of the art assets of my friend depending on how keen he is to freely distribute the work he'll do for it), so everyone can just have a look inside and make their own maps.

EDIT: So here is a gif showing the different stuff. I think I'll drop the Custom Save Menu, since DynRPG or BetterAEP don't seem to work with the official RM2k3, and I'll probably drop the Custom Title as well since when I contacted RMW support they told me the non-steam release will probably never get the updates (they seem to have trouble with update when not on steam), and I refuse to using Steam.
So Inn, Crafting all with animation, Menu, choice of floor... At the end you see a battle starting but that randomly chosen monster has not been coded yet.
What I've done today was basically optimizing, as it was slightly lagging before. There's still a bit of lag sometimes after teleportations, I'll see what can be done about it. I must have a wait showing up somewhere. I increased the size of the FP view, made the HUD less heavy by using a dedicated menu for all the stuff you posess.
Enjoy

(http://retro-snes.net/tower/img/Test2.gif)
Title: Re: Tower
Post by: Donut on December 03, 2015, 01:59:13 PM
Sooo, status update o/

I've been coding aaaall the monsters. Took me ages, and I'm sure it can be made better, I shall see when testing the game before release. That does not include the bosses (I said they would be 5, but I have 4, and the final boss has 3 forms, so 6 technically....) because I want to implement special behaviour for them. I was thinking mini-game style, like Dames, Dance Dance Revolution, stuff like that. It would diversify the battles, and make all the bosses uniques. What do you think about that? That would make the list of stuff left to do slightly bigger though...

Below you can meet the monsters that will lurke in the labyrinth, bosses included (they're all in the database already), not in order. Which ones are bosses, which ones are not? (RIPs from Dokapon Millenium Quests GB)

(http://retro-snes.net/tower/img/Monstres_cards_1.png) (http://retro-snes.net/tower/img/Monstres_cards_2.png) (http://retro-snes.net/tower/img/Monstres_cards_3.png)

EDIT: no spoiler code?
Title: Re: Tower
Post by: Donut on December 17, 2015, 11:00:30 AM
17/12/2015
Hello!

So today... I made a big decision: switch back to the unofficial RM2k3. Reasons? I have the non-Steam version, which is not going to be updated. And I need some of Cherry patches/dynRPG so that I can do stuff such as: Custom Title Screen, Custom Save System, and perhaps even the Progressive Minimap that I have trouble with. So that the game can be made like I want it to be. That's pretty much it. I copied/pasted and on the new side I've done a few adjustments on characteristics, EXP curve, and coded a QTE system for the first boss. That's it =)
Title: Re: Tower
Post by: Donut on January 06, 2016, 04:21:52 PM
06/01/2015
Howdy!

For celebrating New Year, I was planning on releasing a tech demo, allowing you to play the first two levels of the dungeon, use the forge and inn, but with no story/music implemented. I did not release it... Everything is ready but I am basically waiting for my friend to finish the graphics he's promised to do. Meanwhile, I thought it would be more interesting to add doors/switch/puzzles into the dungeon. I have implemented those changes in the first two levels (hence why I wanted to make the demo only up to the 2nd level). What I'm going to do is implement a new mechanism every 2 floors: switch/keys/doors, then teleport, then iced floor etc, etc.
Since I dropped the official RM2k3 release, I was able to make my save system. It's basic but it works, and it's not as invasive as the default one ;)
I also made a Custom Title Screen! Or should I say, the background for it. I can't seem to make a nice logo/font etc... I'm desperate so if you think you can help me, please do. I'm looking for a logo similar to that of Pix The Cat, but with a more woodish design. Here is a little animation to show you how the background works. Credit goes to Adam from pixeljoint for the trees. I can't remember who made the clouds, I forgot to write it down but it's from an animation I found on twitter, not done by me. I only slighlty edited the stuff to make the loop look good.

(http://retro-snes.net/tower/img/Title_screen_unfinished.gif)

SO a demo will come very soon I hope (depending on my friend), since everything else apart from title screen (but don't worry, we can always make something not so nice just for the demo if it's the only problem left) is READY.