Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Ninja Penguin

NINJA PENGUIN

It is about ninja penguins.

Why penguins?
Because they are easy to sprite.

Why ninjas?
Because normal penguins are boring.

Features:
-Penguins
-Ninjas
-PENGUINS AND NINJAS COMBINED
-RTAB battle system
-ABS battle system
-AI that doesn't suck
-Equipment-combo-thing-something-or-other based skills
-Silly holiday events
-Silly hats
-Crafting and junk
-Buckets
-Penguins wearing buckets as hats
-Penguins being hit by various objects ranging from bricks to LOLTRAINs
-I don't know lots of other stuff I'm tired

No up-to-date screenshots, as magic and items currently do not work and none of the tilesets are finished. No demo, because my external HD decided to die. No character info, because there really wasn't any to begin with. No story description, because after about two sentences the rest of the story is up to you. There's not even one story, depending on the branches you could end up doing all kinds of wierd stuff and wondering if I was on drugs when I made it.

So, here's some old screenshots:
equipdetails5.png

doubleorbs2.png

chargingnew1.png

intross1.png

Very old. As in, none of these are up to date.
And those two sentences of the story:
Pengoku wakes up to the smell of smoke, and finds the entire village has been set ablaze. The culprit is his brother, Pengzoda.

So yeah there you go.

I've started college, and am currently pursuing a degree in game programming. I thought it would help prepare me for a career in programming games.
HAHAHA NO
It's just as useless as all my previous years of school, except now I'm paying them to waste my time instead of wasting my time for free. Oh, we're doing trigonometry? That would have been awesome like FOUR YEARS AGO


SO ANYWAYS
There's a lot of stuff to go over here. I'm not sure how to list it all, even, so this might look and sound wierd. Oh well.
More info on the features:

-RTAB battle system-
Ninja Penguin's battles use a dynamic delay system. How fast your turn comes around depends on more than just your AGI. It doesn't use your AGI at all, for that matter.
Every action, weapon, skill, and item has a delay. Attacking uses your weapon's delay, skills use the skill's delay, and so on.
Attacking with a claymore will take longer than attacking with a dagger, for example, but won't slow down how fast you can cast spells.

Another feature of the battles is the TP guage. Think of it as a kind of overdrive bar, except on a smaller scale. As you deal and take damage, the bar fills up to a maximum of 300%. Different actions and weapons yield different amounts.
Once you have at least 100% TP, you can use TP skills. The power of these skills depends on how much TP you have. For example, Mitzy's magic-based Manifestation:
manifest.png

As you can see, it extends the range of your next single-target spell. As you can also see, I need to make a new icon for drain.
When you use it, it consumes your TP and adds a 'Manifestation' status:
manifest2.png

This status will wear off when you cast a spell that can be manifested.
It will also wear off on its own if you wait too long before using it, or if you use a TP skill while it is active (Including Manifestation itself. Using Manifestation twice will overwrite, not add to, the magnitude of the last use), if you are KO'd, or if the battle ends.
It will NOT wear off if you cast a non-manifestable spell, or if you do any action other than those mentioned above.
Drain is a manifestable spell, so let's cast that on one of those Claire clone things:
manifest3.png

And there you can see the downside of manifesting a spell. It will divide the damage/healing by the number of targets it hits. That's where the amount of TP you use it with comes into play. The more TP you have, the more it reduces the number the damage is divided by. For example, at 275%TP:
manifest4.png

At 300 TP, it will always apply the full damage of the spell to all targets. Due to the way this works, the more targets there are, the closer to 300 TP you'll need to be before you get a significant increase in effect. This property only applies to damage/healing effects of spells. Spells that apply states (Such as Poison or Repel) will apply their states just as well at 100TP as they will at 300TP, so you can manifest them at low TP without worry.
It's also fully animated and features a projectile class, allowing me to get silly effects such as this:
apples4.png


-ABS battle system-
Some portions of the game will use an ABS system for exploring and battles. These sections will require more than just button mashing to get through. More on this after I finish everything for it.

-AI that doesn't suck-
Enemies in the RTAB system are no longer mostly random. They'll heal when they (or their allies!) need healing, conserve NP if they're running low, and use TP attacks just like you, among other things.
Enemies in the ABS system don't just charge at you for the most part, they'll wait for openings to attack, try to avoid being hit, and much more.

-Unique skill and stat system-
The skills you have access to are based entirely on your equipment. Different equipment combinations may also change the skills you get.
The stats have become... complex. Way too complex to explain here.
As a comparison, this is what skills are modified by in the default RMXP formula:
Power, STR, INT, DEX, AGI, Attack, Evasion, Skill Hit%, Pdef, Mdef, Variance, Guarding(halves damage)
And here's what they are modified by in Ninja Penguin (So far):
Power, Base Damage, Weapon Base Damage, Ammo base damage, STR, INT, DEX, AGI, Attack, Evasion, Evasion Stats (not always agi vs. dex), Acc, Magic Acc, TP, TP Factors, Magic Attack, Skill Hit%, Pdef, Mdef, User Hit%, Casting Time, Delay, number of targets hit, Resists, Resist Rate, Resist Cap, User Crit%, Skill Crit%, Skill Crit multiplier, Skill soft base damage cap, Skill soft base damage rate, evasion ratio, skill hit% floor, skill damage ratio cap, comparison of skill's modifiers vs. enemy's defenses, guarding(reduces damage, may negate damage entirely), and a whole bunch of attribute flags for various other effects.
So... yeah.
Most magical skills cannot be evaded, but can be resisted. If a spell is resisted, its damage will be lowered, and (eventually) the duration/power of any status effects will be lessened.

-No more corrupt saves!-
Features a save-patcher system. If something gets changed that makes saves unloadable, the game will be able to patch them up so you won't have to start over.
Saves will no longer be corrupted due to updates to the game.
Incidentally, this update means that all your saves are corrupted.
 
Alright, made the first post prettier. Or something.

Just finished the bare bones of the skill formula:
Code:
  def skill_effect(user, skill)

    state_p[user] = []

    state_m[user] = []

    self.damage[user] = ["", [3, 0], [false, ""], 0, 0]

    if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or

       ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)

      return false

    end

    tpf = skill.tpfactors

    hit_acc = skill.hit

    hit_acc += skill.acc

    hit_acc += (user.acc * skill.acc_f)

    hit_acc += (user.macc * skill.macc_f)

    hit_acc *= skill.attributes.include?(4) ? user.hit : 100.0

    hit_acc /= 100.0

    if self.cant_evade?

      hit_eva = 100

    else

      eva_stats = skill.get_eva_stats(user, self)

      hit_eva = (100.0 - skill.eva_r) + (skill.eva_r * (eva_stats[0] / eva_stats[1])).truncate + (self.eva * skill.eva_f)

    end

    hit_p = (hit_acc / hit_eva) * 100.0

    if hit_p < skill.hit_floor

      hit_acc = skill.hit_floor

      hit_eva = 100

    end

    hit_r = rand(hit_eva) < hit_acc

    if hit_r == false

      unless skill.attributes.include?(0)

        hit_result = false

      else

        hit_result = true

      end

    else

      hit_result = true

    end  

    if hit_result == true

      unless skill.attributes.include?(6)

        pow = skill.power

        negcheck = 1.0

        negcheck = -1.0 if pow < 0

        pow *= negcheck

        pow += ((((skill.element_set.include?(16) ? user.altbasedmg : user.basedmg) * skill.dmg_f) / 100.0) + ((user.magdmg * skill.mdmg_f) / 100.0))

        pow += (user.str * skill.str_f) / 100

        pow += (user.dex * skill.dex_f) / 100

        pow += (user.agi * skill.agi_f) / 100

        pow += (user.int * skill.int_f) / 100

        powmult = 1.0

        if tpf != nil and tpf[0].include?(0)

          tpindex = tpf[0].index(0) + 1

          if user.tpm[0] == 300

            powmult = tpf[tpindex][2]

          elsif user.tpm[0] >= 200

            powmult = tpf[tpindex][1] + ((tpf[tpindex][2] - tpf[tpindex][1]) * ((user.tpm[0] - 200).to_f / 100))

          elsif user.tpm[0] >= 100

            powmult = tpf[tpindex][0] + ((tpf[tpindex][1] - tpf[tpindex][0]) * ((user.tpm[0] - 100).to_f / 100))

          end

        end

        pow *= powmult

        if pow > skill.scap and skill.scap != 0

          base = negcheck * (((pow - skill.scap) * skill.scap_r) + skill.scap)

        else

          base = negcheck * pow

        end

        resist = 1

        unless skill.attributes.include?(1)

          if hit_r == false or skill.attributes.include?(5)

            resist = skill.resist_rate unless skill.attributes.include?(5)

            loop do

              hit = rand(hit_eva) < hit_acc

              if hit == true or resist >= skill.resist_cap

                base /= resist

                break

              else

                resist *= skill.resist_rate

              end

            end

          end

        end

        if skill.attributes.include?(2)

          mdif = 1.0 + ((rand(skill.variance) + rand(skill.variance) - skill.variance) / 100.0)

        else

          mdifr = []

          dval = []

          def_factors = [skill.pdef_f, skill.mdef_f]

          if tpf != nil and tpf[0].include?(3)

            tpindex = tpf[0].index(3) + 1

            if user.tpm[0] == 300

              def_factors = tpf[tpindex][2]

            elsif user.tpm[0] >= 200

              def_factors = [tpf[tpindex][1][0] + ((tpf[tpindex][2][0] - tpf[tpindex][1][0]) * ((user.tpm[0] - 200).to_f / 100)),tpf[tpindex][1][1] + ((tpf[tpindex][2][1] - tpf[tpindex][1][1]) * ((user.tpm[0] - 200).to_f / 100))]

            else

              def_factors = [tpf[tpindex][0][0] + ((tpf[tpindex][1][0] - tpf[tpindex][0][0]) * ((user.tpm[0] - 100).to_f / 100)),tpf[tpindex][0][1] + ((tpf[tpindex][1][1] - tpf[tpindex][0][1]) * ((user.tpm[0] - 100).to_f / 100))]

            end

          end

          dval[0] = [((user.atk.to_f * skill.atk_f) + (user.matk.to_f * skill.matk_f)) / 100.0, 0].max

          dval[1] = [((self.pdef.to_f * def_factors[0]) + (self.mdef.to_f * def_factors[0])) / 100.0, 0].max

          dratio = [dval[0] / dval[1], skill.dcap].min

          if dratio > 0.833

            mdifr[0] = 1.2 * dratio

          elsif dratio >= 0.5

            mdifr[0] = 1.0

          else

            mdifr[0] = 0.4 + (1.2 * dratio)

          end

          if dratio > 1.5

            mdifr[1] = -0.8 + (1.2 * dratio)

          elsif dratio >= 1.25

            mdifr[1] = 1.0

          else

            mdifr[1] = -0.5 + (1.2 * dratio)

          end

          mdifr[2] = mdifr[0] - mdifr[1]

          mdif = (rand(mdifr[2] * 100.0) + (mdifr[1] * 100.0)) / 100.0

        end

        crtc = 0

        if skill.crit_f > 0

          crtc = ((1250 * (attacker.dex.to_f / self.agi.to_f)) * skill.crit_f).round

        end

        if skill.crit != 0

          crtc += skill.crit

        end

        crit = true if rand(10000) < crtc

        mdifmod = 0.0

        mdifmod += 1.0 if crit

        mdifmod -= 1.0 if [self.guarding?, skill.attributes.include?(3)] == [true, false]

        mdif = [mdif + mdifmod, 0].max

        damage_result = (((base.to_f * elements_correct(skill.element_set)) / 100.0) * mdif).round.to_i

        if user.tpm[2][0] == 1

          tpf = $data_skills[user.tpm[1]].tpfactors

          tpindex = tpf[0].index(4) + 1

          manifest_r = 0.00

          if user.tpm[0] == 300

            manifest_r = tpf[tpindex][2]

          elsif user.tpm[0] >= 200

            manifest_r = tpf[tpindex][1] - ((tpf[tpindex][1] - tpf[tpindex][2]) * ((user.tpm[0] - 200).to_f / 100.00))

          else

            manifest_r = tpf[tpindex][0] - ((tpf[tpindex][0] - tpf[tpindex][1]) * ((user.tpm[0] - 100).to_f / 100.00))

          end

          damage_result = (damage_result / (((user.tpm[2][1] - 1).to_f * manifest_r) + 1.00)).round.to_i

        end

        if resist > 1

          crit = true

          critstring = "RESIST"

        else

          critstring = "CRITICAL"

        end

        self.damage[user] = [damage_result, [0, 0], [crit, critstring], (damage_result > 0 ? 1 : 0), (damage_result > 0 ? 1 : 0)]

        remove_states_shock if damage_result > 0

      end

      @state_changed = false

      states_plus(user, skill.plus_state_set)

      states_minus(user, skill.minus_state_set)

      if skill.attributes.include?(6)

        unless @state_changed

          hit_result = false

        end

      end

    end

    if hit_result == false

      self.damage[user] = ["Miss", [2, 3], [false, ""], 0, 0]

    end

    unless $game_temp.in_battle

      self.damage_effect(user)

      self.damage[user] = nil

      return true

    end

  end
That's right, the bare bones.

Edit-
gsdfgsdfgsd.png

The cliffs need work, I think. Beyond adding a bit of shading and shadows, that is.
Any suggestions?
 
Alright, I am officially out of my mind.
Or a genius.
Or both.
I'm not sure, I've been awake for a good thirty hours at this point.

I've change the animation system to support visual equipment.
This was easy, actually. Took... lemme see... 25 lines of code.

Now comes the hard stuff:
I also changed the maximum number of equipment slots from 5 to infinite.
You'll only be able to equip as many things as I code into the menu, though... which won't be infinite.
Also, this system will let you dual-wield, and there'll be more equipment types than... how many does RMXP have? 4?
And, all of this will show up on your character in battle.
The problems with this are:
I gotta resprite all the battlers into different poses for each of the following categories:
-single weapon
--main hand, no shield
--main hand, shield
--offhand, no shield
--offhand, shield
-shield
--main hand, no offhand
--offhand, no main hand
--mainhand and offhand
-two weapons
-bows
-two handed weapons
Each of the above categories is further split into more categories depending on the type of weapon being wielded.
Each sprite for the weapons needs a different sheet for each type of pose and two-weapon combination
Each piece of visible armor needs a different sheet for each pose
All of these need seperate sheets for the skill poses


Additionally:
-Main menu needs to be redone entirely
-Inventory and skill menus need to be redone entirely
-Inventory system needs to be redone
-Battle formulas need to be changed to use the new equip system
-Animation system needs to support multiple attacks per round
-Animation system and skills need to know which weapon to use the skill with
-Battle formulas need to know how to handle shields properly
-Help window needs to be overhauled completely to work with all the new stats and crap
-All the event commands need to be updated or have their use removed entirely (probably the latter)
-Shops need to be redone entirely
-ABS... well, we'll see after I get it moved into script form.
-Equipment skills need to be moved into code
-Battle test is basically fucked completely now
-Yeah I've basically given up on the database editor at this point

Once I get the basic system down it'll be eaaaasy, though. Honest.

Bleeeeh getting ideas faster than I can code them.
...

CATSLEDDING
I NEED A CATSLEDDING MINIGAME D8
 
Actually, this seems pretty cool, and fairly original(original doesn't always mean no one's done it before ;) ).

Add a tech demo, after you get more of the system done. Then I'll really be impressed.
 
There were some old demos, but they died with my external HD.
There's a couple videos on youtube, though:
http://www.youtube.com/user/whalecakes#grid/uploads
They're pretty old as well, though.

Currently, due to my meddling with the formulas and handling for everything, about all you can do is... walk around the map.
A tech demo instead of a gameplay demo would probably be a good idea, though.

I think I'm going to use a grid system for the new inventory, where each character has their own seperate item bag. There'll also be a shared item bag that has an infinite (or much larger, at the very least) capacity.
The catch would be that characters can only use items in their item bag during battle, and your weapons and gear will also take up room in the bag.
 
Alright, I've finished some of the basic parts of the menu.
Oh, and I changed Ninpo to Aether, since it's a more generic term and can be applied to characters other than Pengoku. And because Ninpo sounded kinda dumb.
fhgsyrtr.png

The little scene there... think of it as a kind of zoom-in on your party. What it looks like changes depending on the area you're in. This one would be in a cave, obviously. I was planning on making it the inside of a tent or something, but this is better. It provides a more diverse range of settings so that the mood of the area won't be completely lost when you open the menu. Also this way I do not have to sprite a tent interior or explain why Pengoku pitched a tent inside a shop or something.
The characters there will be moving around and doing various activities. They'll react to each other and their conditions. For example, in the finished product, a poisoned character would look and act ill, a KO'd character would just lie there, etc.
Moving the cursor selects a target from the scene. You'll then be able to see more detailed info on them, and choose an action for them to do.
For example, that mailbox up there is the shared item bag. You may notice that it does not look like an item bag. Yes, you may very well notice that. I won't stop you. Selecting that will let you choose to move items to the character's inventories, use items from it, etc.
Selecting Mitzy would bring up a choice to open her inventory, use skills, view her status, change her equipment, and use alchemy to craft items.

The basic layout might change a bit by the time I'm done, but this is what it'll look like for the most part.

Oh, yeah. I guess I should also clarify that that picture is -not- a mockup, since it kind of looks like one. I think I should also mention that the scene in the background is not a map and those are not events.
I don't think I'll make the water animated when I get around to spriting it.

Still wondering if I should use a ring menu for the action choices or put a list on the right. A ring menu around the character would be hard to see, I think. I'll mess around with it after I finish the cursor's movement.


Also fixed a few things:
-Aether gauge (formely known as the Ninpo gauge) now turns red as it drops, instead of green.
-Hitting F12 to return to the title no longer crashes the game
-Improved the handling of the status bars
-EXP bars now start off yellow and turn red as they fill, instead of... whatever the hell I had that made them like 6 different colors as they filled up.
-TP and EXP gauge text no longer uses the crisis or knockout color if the gauge is low.
-AP gauge background color is now tinted blue like it should be, instead of green.
-Visual equipment now checks the equipments priority (affects the z level it is displayed at, i.e. armor goes below weapons) instead of the equipment SPRITE's priority. Problem with that was that sprites don't have a priority, so it crashed when battle started.
-Visual equipment now uses the equipment sprite's width / @frames and height / @poses, instead of just width and height. Oops.
-Walking regen now checks $data_states[state_id].negate_xx_regen instead of trying to check state_id.negate_xx_regen and crashing. Oops.
-Walking regen now uses to_i so you don't end up with 93.64738/112 health. Oops.
-Drain now hurts the target and heals you, instead of the other way around. Oops.
-The wooden staff's stats are now set to $data_weapons[7] instead of $data_weapons[8]. Oops.
-hit_eva for skills now uses skill.eva_r instead of (100 * skill.eva_r), since it's a percentage instead of a multiplier. Oops.
-hit_eva for skills now uses (target's stat / user's stat) instead of (user's stat / target's stat). Oops.
-The magic attack of weapons is now boosted based on the wielder's MND instead of their STR. Oops.

Lastly, I updated the game over screen:
http://img213.imageshack.us/img213/5657 ... meover.png


Edit-
Just finished coding in the cursor movement.
It's really pretty neat, it... flies around or something. You could make it do loops and stuff if you were bored, I guess.
Unfortunately, it makes for a very unexciting screenshot:
hstrerte.png

I made Pengoku slide back and forth for that screenshot to make sure it followed targets, but... yeah, you can't see it because it's a screenshot!
The cursor there will follow its target around. Pressing left/right/up/down switches targets to the closest one in that direction.

Oh you know what bugger explaining it I'll just record the damn thing.
http://www.youtube.com/watch?v=1cFg2zcWf0c
 
This is so original and cool! :thumb:
I think the penguins need some shading, as the edges look jagged and harsh in comparasin to everything else. the magicians hat of the penguin looks a little pillow shaded and needs some creases. But your tilesets look fantastic so far! :biggrin:
good for you to stick to this project even though there's a lot to do to make a graphically custom game :grin:
 
Yeah, Mitzy's hat is kinda... bleh on the sprite.
All the walking sprites for the characters are gonna have to be redone anyways, since I increased the walking speed.

Anyways... I fixed a bug with the delay system. It was not accurately using the delay of actions... for example, a 500 delay weapon was attacking at 75% of the speed of a 250 delay weapon, instead of at half the speed.
Not good.
The new aspd formula is
(base * haste) / (1.0 - ((base - action delay) / base))
Where base = 1000
Now speed is really truly affected by the delay of your actions. Completely. As in, an action with 0 delay will cause your turn to come around instantly. Additionally, it now really truly is affected by the speed scaling of RTAB, and you'll really truly feel the difference in the speeds of different actions. It's pretty neat. Really. Truly.


Also started working on the action menu and the info area on the right:
tyertyert.png

I need some feedback. Or insight. Or something.
I... dunno what to put in that big blank spot below the state icons.
So, I'd like to know what stats everyone thinks would be the most important.
Here's a list and description of all the stats:

-Base Damage-
Affects the amount of damage your attacks can do. When dual-wielding, each hit uses the corresponding weapon's base damage, which makes it a tricky stat to put in the menu. If it is included, should it be like the screenshot, and add the two weapon's base damages together, or should it write it out as DMG:16(16), an average of the two, or something else?

-TP Gain-
How much TP you gain from attacking, and how much the enemy gains from being attacked. When dual-wielding, TP from each hit uses the TP gain of the corresponding weapon.

-Delay-
This would be the weapon's delay. The lower it is, the faster your turn comes around after attacking. When dual-wielding, it's calculated by adding both weapon's delays together.

-Attack-
This is compared against the target's p.def to determine the range of the base damage multiplier. That's really all it does, but it's still an important stat. It's affected by STR. The amount that STR affects it depends on the weapon. For dual-wielding, each hit uses the corresponding weapon's attack+STR value, so it would require similar formatting as base damage.

-P.Def-
Compared against the attacker's attack to determine the range of the base damage multiplier.

-M.Def-
Compared against the attacker's magic attack to determine the range of the base damage multiplier.

-STR-
Affects attack. When attacking, it's compared against the target's STR and can change the base damage multiplier by +-0.5.

-DEX-
Affects accuracy and critical hit rate.

-AGI-
Affects evasion, critical avoidance, and the success rate of fleeing from battle.

-MND-
Affects most magic attacks. When casting spells, it's compared against the target's MND to determine the resist rate.

-Accuracy-
Adds directly to the accuracy of physical attacks, so it has more effect on hit rate than boosting DEX.

-Magic Accuracy-
Adds directly to the accuracy of magical attacks, so it hase more effect on hit rate than boosting MND.

-Evasion-
Adds directly to the evasion rate of physical and magical attacks, so it has more effect on avoidance than boosting AGI or MND.

-Critical Rate-
Actual chance of a critical is based on a comparison of your DEX vs. the target's AGI, so this could only display any critical% boosts from equipment.


That's pretty much all of them. Keep in mind that the equipment menu will show all of these in greater detail, and that I only need the -most important- ones.
I was thinking base damages + delay + attack + defense, and maybe the four base stats(STR,DEX,AGI,MND) along with how much they're increased/decreased by equipment. I'm also thinking of dropping one of the state icon rows there, so instead of making a new row, it'll resize it to match the size of the ones up top. It'll still get two rows of the resized ones, though.... Maybe I'd better make an example to clarify what it would look like.
With less than or equal to seven different states, it'd be the same size as the ones in the screenshot up there. With 8 or more, it'd resize them:
srttytrtwer.png
 
...So how about some suggestions for the stats to put in that blank spot? >.> I dunno what to put there. It should contain the stats you'd need to see at a glance. I'm thinking just damage/delay/attack/defense, but even then I dunno what the best way to display damage/attack would be in regards to dual-wielding.
 
http://www.youtube.com/watch?v=zhDzMMNI-38
itembag.png

My backpack-drawing skills are terrible D:
Whatever, it gets the job done and I have spent waaaay too much time on just the graphic.
Oh, Mitzy's item bag will be her hat :u

Finished:
Rotation
Flipping
Movement
Cancelling placement
Opening/Closing menu
Collision with edges/other items

To do:
4x10 temporary storage area
Switching items between pages
Switching items between characters
Transferrings items from shops/drops/chests/etc. into inventory (like fuck am I coding a sorter for this thing)
Window showing item stats that follows the cursor
Make some actual pictures for the items instead of the squiggles
Maybe make the colored squares only pop up when you pick something up? I don't know. Wouldn't be difficult. Maybe I'll just add it to the options menu.


Also, I just had a thought.
I bet I could use this system to make a player-owned house that you can decorate however you want, without having to change much at all. So... yeah. I guess that'd be neat?
 
2h848w0.png

I didn't really take into account how silly some items would look when rotated (i.e. potions).
That brown brick on the right is the temporary storage area. Should your item bag become so crowded that it's impossible to move anything (and thus impossible to organize it), you can just plop items into this area until you've made room for them.
It's temporary, so you can't close the item menu if there's anything sitting there.

Finished:
-Transfer between item bags (including temporary storage)
-A few item graphics (the three in the screenshot)
-Ability to toggle the colored squares and/or the gridlines on/off

Not finished:
-The temporary storage area's graphic
-Swapping between pages of the item bag
-Adding items to the bags without having to manually set the coordinates
-Description window for items


If anyone feels like coding an auto-sorter (as in, press a key and it positions/flips/rotates items to leave as much free space as possible) for this thing, lemme know.
 
I started rewriting most of the default classes and merging them with the non-default stuff.
Just finished recoding the animated battlers and battle system:
adtfuiewr.png

The animation system's probably 95% done at this point. Recoded it almost entirely from scratch, so it's not using Minkoff's system anymore.
I say 95% because I'm sure I've forgotten SOMETHING, but I don't know what.
It's got dual-wielding, single-wielding with either hand, visual equipment, multiple attacks per round, and all that stuff.
The battle system is maybe 75% done. Still need to finish the item formula, the skill formula, and most of the windows. Did not recode the entire thing, just the entire phase4 section.
Although the animation system has support for status conditions, I still have not coded them into the actual battle system, so I need to work on that eventually.

After I get that and the menu done, I'll only have maybe 3-4 more things to finish before I can start back on the actual gameplay. Yay!

Oh, yeah, and the item grid's about 90% done, too:
http://www.youtube.com/watch?v=Aa37kW-5aT0
 
ahaha this is looking really good. its always nice to see someone talented with a good sense of humor.
keep up the great details (like that the stash is in the hat, i like that)
also to fix the weird graphics of the potions on the side, you could do an extra graphic with the liquid in the flask also shifted.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top