Showing posts with label Victis. Show all posts
Showing posts with label Victis. Show all posts

Thursday, November 29, 2012

Battle Maiden Part 2

Day 2: Saturday

Fixed shoulder joint twisting.


Had to leave early because like mentioned, it suddenly turned out to be cleaning day.

It turns out Saturday was also when the meetup for the Game On! Philippines 2012, a game development competition for students. Me being one of the mentors for the participants, and that day was when the participants would meet with the organizers to show progress on their game, I attended the meeting to talk with the participants.

I'll talk about that some other time, but long story short, I wasn't able to do much progress on day 2.

Day 3: Sunday

Got things set up back at home. It's kinda hard to get back to the rhythm since the 48 hour hackathon didn't push through.

Suddenly I'm having crash problems with my Unity.

Every time I click "Apply" on changed prefab settings, there seems to be a 2 out of 3 chance that Unity will crash.


I guess it's because I'm using an old version, 3.5.5f2. So I tried finding 3.5.6, the latest one in the 3.x versions.

The official Unity site, for some reason, doesn't show the links to older versions of Unity. Since Unity 4 is out, this means there's no links to any 3.x versions.

I had to find it from the forums, and even the site had problems.


Dark forces are at play here.

When I finally got to it, the download is slow, as expected. Oh Asian Internet, you so crazy.



It would have been nice to just press Ctrl+S in the Unity editor and be assured that everything was saved in case a crash happens again.

Unfortunately, this isn't the case. When you change settings in prefabs, or GUI skins, or ScriptableObject files for example, Unity holds off saving the changes to the disk until you quit Unity. So I find myself closing and opening Unity after every significant change I make.


Meanwhile, I got the Locomotion system working a little more smoother and I got to test the player model in the game.



Times like these I wish we had motion capture studios. I heard you can use a Kinect as a low-cost makeshift motion capture device.

Day 4: Monday

Have I mentioned that I go to the office only when I feel like it? Yeah, so Monday will be devoted to finishing this, because I say so.

Day 5: Tuesday

Have I mentioned I rarely ever get any work done while at home? Yeah, so I slept all day long yesterday. But I was able to test attack animations today.





Also, seems like the version update for Unity got rid of the crashes.

Day 6: Wednesday

I did a few thumbnail sketches so I wouldn't forget what animations I wanted to do. I should've done this earlier.


Right now the game is sort of on-hold as Wednesday is usually the time I go to the office.

Wednesday, November 28, 2012

Battle Maiden Part 1

In the small game development studio I work in, I wanted to have what we ended up calling "Free Fridays": Every first Friday of the month, everyone stops doing work for clients and make personal projects. At the end of the day, you show your work to everyone.

This was an excuse to find the time to do crazy ideas that we get every now and then.

One such idea came to me when I was about to sleep, I just thought all of a sudden "Damn it, I want to play Assassin's Creed style combat right now on my Android tablet."

I thought, yeah that could work. I actually like the easier, free flow approach in Batman: Arkham Asylum. Batman can dart from one end of the arena to the next so easily, hitting opponents here and there.

H-Here We Go


So when our Operations Director mentioned we forgot to do Free Fridays again for this month, I thought I'd do that idea.

I also requested that Free Friday be lengthened to 48 hours (up to Saturday), since the idea I had was a lot of work. Game jams are mostly 48 hours anyway.

Even with the extended duration, I knew I had to cheat a little. I'm only one guy doing both code and art so 48 hours was probably still not enough.

Day 0: Wednesday-Thursday


I stole some time from work to prepare the 3d models I'd use. For the enemy I used the soldier model I already made from before.



For the player, I used MakeHuman to create a base mesh, then added hair and clothes in Blender.

I did this with the understanding that I'm making a throwaway model just so I can finish this as soon as possible. While her face shouldn't be anime like my old sketches, it shouldn't be the one that MakeHuman comes with either.



I downloaded a bunch of Assassin's Creed 2 and Batman Arkham Asylum YouTube videos for reference.



The idea was that we'd start at 00:00 of Friday and end at 23:59 of Saturday, to really squeeze the 48 hours. It wouldn't be wise to extend to Sunday, and the higher-ups didn't want us to start earlier than Friday.

So by about 1 AM of Friday, I was still preparing the player 3d model. I had a headache and felt like vomiting (as always when I stay too long in the office), so I had to sleep it out.

Day 1: Friday


By morning I was ready to tackle it on.

This was my first draft for the ideas.



I thought I'd try Unity 4 with all its fancy new animation systems with the blend tree. Hopefully that would make my work easier.

As I tried getting myself accustomed to the GUI changes in Unity 4, this happens.



I can't rely on a tool that crashes, given that I have a tight deadline for this, so off I went back to Unity 3.



These were my first few tests:

I wanted a way for the enemies to figure out the path to get to the player's backside. I also wanted them to move in an encircling fashion. So I made a simple waypoint system to track the player's front, back, left, and right sides.



Next I had the enemies actually follow that path.



By afternoon, I swapped in the enemy 3d model. I used Rune Johansen's Locomotion System to make the walk animations look better. Props to Rune!



Unfortunately we were suddenly told that Saturday can't be used anymore because the office will be cleaned. I guess I just have to take my work home or something.

To tell the truth though, not a lot of people in the office was taking Free Friday very seriously. Some understandably still had deadlines to meet and some were just playing videogames.

I actually still needed to fix the player 3d model. It wasn't even rigged/skinned yet, so I ended up taking too much time there.

I wanted a lot of fancy physics effects on the player. The skirt and ponytail should sway, and her boobs should *ahem* move naturally.

For cloth swaying, Unity has the built-in Skinned Cloth component for that and it works as expected. The interface to configure it isn't exactly great, but it works as advertised.



Doing the same thing for the ponytail would be overkill, and besides, it should move more like linked pieces of elongated chains than like a strip of cloth anyway.

I found a link in reddit that explains a simple trick, just use rigidbodies with joints on them and add some swaying motion: http://www.farfarer.com/blog/2011/07/07/unity-skeletal-ragdoll-jiggle-bones-tutorial/

The only problem was that the tutorial needed me to configure my 3d modeling software to specifically disable keyframe animation on the bones that need to jiggle. Unfortunately, no such option exists in Blender, so I just did something quick to fix it.

I made a script in Unity that detaches the ponytail's bone from the skeleton then reattach it again quickly. This would cause it to stop being moved by the skeleton's animations, while still being connected to it.

For the boobs, the wiki site has something just for that: http://www.unifycommunity.com/wiki/index.php?title=JiggleBone

The code for that needed some cleaning up and it didn't seem to work reliably at all for a 3d model created in Blender, so I took some time to fix it.

The day ended with me staring at bouncing boobs.





While I feel a little stupid for doing this, I made pretty sure the physics don't go so far as this:



Damn, I haven't even added combat yet.



Friday, February 10, 2012

Attributes

Here is what I have been thinking about this whole time:

  • Arm Strength: Powerful arm movements. Affects melee damage, and climbing
  • Arm Dexterity: Quick, flexible arm movements. Like in martial arts. Contributes to actions like parry, flurry strikes, and acrobatic movements.
  • Arm Endurance: Maximum stamina for melee attacks.
  • Leg Strength: Powerful leg movements. Affects melee damage for kicks, faster travel time (i.e. speed)
  • Leg Dexterity: Quick, flexible leg movements. Contributes to actions like evading, dashing, tumbling, acrobatic melee, and proper footing in melee attacks
  • Leg Endurance: Maximum stamina for movement.
  • Hand Dexterity: Fine motor skills. Contributes to actions like skullduggery, playing of musical instruments, or using firearms.
A high leg strength but low leg endurance means the person can do a short burst of fast sprinting, but he will tire away quickly.

A runner with leg endurance means he may not move fast, but in the last 200 meters of a marathon, he's still going at the same pace, while the others are too exhausted. Essentially he's a distance runner.

Separating arm strength and leg strength was because I figured there are brute-like enemies who have overbuilt upper body muscles, but slender legs. Top-heavy, as they say.

Separating arm dexterity and leg dexterity is maybe too much though. Though I understand there could be martial art styles that concentrate on kicks only. I think I won't go that far though, so I'll combine them.
  • Arm Strength
  • Arm Endurance
  • Leg Strength
  • Leg Endurance
  • Dexterity: Quick, flexible movements of limbs. Like in martial arts. Contributes to actions like parry, flurry strikes, acrobatic movements, dashing, evading, and proper footing.
  • Hand Dexterity
Having separate endurances for arms and legs meant that I'd separate stamina for arms and legs. Meaning the legs can get tired but the arms don't yet.

I figured they could be combined as well, as when someone is exhausted, he wouldn't be able to use both arms and legs anyway, so it doesn't make sense to have separate stamina for arms and legs.

The stamina they use are shared, in a way, though consumption wouldn't have been proportional for both depending on the action done (movement would consume more leg stamina and only little arm stamina, attacks consume arm stamina and a fair amount of leg stamina, because proper footing when attacking can also be tiring).

It then made little sense to separate endurances for arms and legs. So combining them:
  • Arm Strength: Melee damage for punches and swings.
  • Leg Strength: Speed. Melee damage for kicks.
  • Endurance: Maximum stamina to expend when doing actions, like moving, attacking, etc.
  • Dexterity: Quick, flexible movements. Like in martial arts. Contributes to actions like parry, flurry strikes, acrobatic movements, dashing, evading, and proper footing.
  • Hand Dexterity: Fine motor skills.
I'd then rename Dexterity to Agility, then Hand Dexterity to simply Dexterity:
  • Arm Strength: Ability to exert powerful force using the arms. Melee damage for punches and swings.
  • Leg Strength: Ability to exert powerful force using the legs. Speed. Melee damage for kicks.
  • Endurance: Ability to sustain force for an extended period of time. Maximum stamina to expend when doing actions, like moving, attacking, etc.
  • Agility: Quick, flexible movements of limbs. Contributes to actions like parry, flurry strikes, rolling, tumbling, evading, and proper footing. Also contributes to melee damage. Reduces charge-up time for melee attacks.
  • Dexterity: Fine motor skills. Nimbleness of fingers.
I could change Arm Strength to simply Strength and Leg Strength to Speed, but I have characters that are slim, lithe, but have high kick damage, essentially high Leg Strength. It would not make sense that their attributes reflect a high strength score when they are slim and lithe.

Thursday, February 9, 2012

Garwolf Gives Up


I was mulling about how Garwolf gets his forceful closure with Serin and this is the scenario that always plays in my mind. It is unusual that this pessimist bypasses the first four stages in the Kübler-Ross five stages of grief.

Garwolf trudges on, disregarding his grevious wounds. "I need to save her", he says. 
Mayev can only watch in despair. Is this what love really entails?

Arriving at the scene, he staggers and stops, lets out a soundless gasp. Once he remembers himself he darts for a place to hide. At this point it all feels rather foolish. What a stupid notion!

He stays quiet and lets them pass in peace. A sigh escapes his breath as their last footstep echoes away. His vision lingers as his thoughts wander, "I wonder what do heroes do, when the world doesn't need their brand of saving."

Eventually Mayev finds him passed out. Dead birds dot the path.



Garwolf finds himself in a lady's room, his wounds dressed.

"Do not banter. They still bleed." Mayev inspects his face, her concern more than physical needs.

His face limps like a lifeless manikin, drawn in a perpetual stare, without joy, without hate.

"Sometimes," he speaks tentatively, "Sometimes I wonder. What it feels like to give up and surrender." He direct his gaze at her. "It would be so much easier.", he whispers.

While she could not escape the flattery, she shakes her head, "You need to rest."
As she closes the door, she could not help smiling.


Mayev kisses him, but something wasn't right. It was like kissing an unresponsive doll.

"No, no, no, no!" "What are you doing? Fight back! Fight back! You always fight back!"

To be continued... Garwolf will find himself fighting one last time before hope is fully stolen.

Friday, February 3, 2012

Tactics Ensemble: Movement

This is an experiment on the movement mechanic of the combat for Victis.


The violet area is the limits of where the tiny white guy in the middle can move to.

While the game is turn-based, the map does not make use of grids. Basically I just used my idea from Death Zone Zero, which in turn, got its idea from RTS games in general. If you've played tabletop wargames, things work that way.

Movement is calculated as a stamina cost per meter, not a predefined value. He has, in this example, 100 stamina points, and movement is 2 stamina points per meter.

Other actions like attacking also consumes stamina, so the player has to be mindful of deciding when to conserve stamina for movement or actions. Basically the same with Action Points of XCOM games.

Furthermore, climbing upwards has a higher stamina cost of 10 stamina points per meter, which accounts for the irregular shape of the movement range.

The currently selected destination is shown with the X-mark on the ground there, with the distance to that shown at the top left, together with the total stamina cost to move there. You can see the stamina cost is roughly twice the distance. This is correct since again, I've set it to be 2 stamina points per meter. The disparity is from the fact that the terrain is bumpy, and since climbing upwards is more costly, the destination's stamina cost reflects this.

Wednesday, May 19, 2010

Victis: Female Character 1 Concept Sketches

Here I show an old piece of work I did for a different planned game, "Victis", a dark fantasy-themed RPG where guns and gunpowder technology are the norm for warfare instead of swords. My influences for the theme is from fantasy games with a somber mood like Quest For Glory 4, Castlevania, Disciples 2, and the like.

This character has no name yet, but she's some sort of gypsy traveler who wields dual pistols. Her unique ability is that she can see the potential future for a brief period of time.

Since she's of gypsy descent I searched the Internet for various Romanian names. I saw "Liliana" but that's similar to the name of a character in Dragon Age: Origins, then I saw "Tatiana", which the Internet tells me is "Feminine form of the Roman name Tatianus, a derivative of the Roman name TATIUS". What do you guys think?

Photobucket

Friday, February 22, 2008

Quong, and the ever elusive ideal firearm weapon for the gunner


Look at that. Look at that weird beehive looking... thing, which most of you will probably not bother looking at anyway. Its the quong hex keyboard layout but modified a bit 'cause I felt like it. I've been making up the code to make a hex keyboard in the Nintendo DS. Soon enough, I was outlaying a simple GUI library for it. That pic's just the concept layout though.

Ultimately, I want to make a homebrew app for the DS that's similar to Tiddlywiki: some sort of guerrilla wiki for the DS.

Moving on, I was about to make animations for the gunner soldier when I realized he doesn't have the props. So I've been making new concepts for fictional guns/rifles (which I will not show yet). So much reference images I've downloaded from the Web, and yet its still pretty hard to be creative when you're lazy, and prefer to spend the weekend fapping to porn instead, which means I'm not finished yet.

Tuesday, February 12, 2008

wrist rot problem

See, this is the problem.

Its like you take a piece of paper, roll it to a tube, then twist it. It'll lose volume and shape. I need to make a way to have a wrist bone that will deform the mesh properly. I've looked over Mancandy and it uses an approach I never saw before. I'll try it in the weekend.

Wednesday, February 6, 2008

Monday, 4 February 2008 20:16:25 PHT

Got sick. Hadn't done much. I was also trying out homebrew dev on a Nintendo DS.

Tuesday, January 29, 2008

Sunday, 27 January 2008 23:38:35 PHT

I hadn't expected painting textures would take so much time. Two days and this is the only thing I made. Still not used to it. Nevertheless, its good that I've made something close to average quality considering its been a long time (2+ years?) since I did CG.



In other news: ಠ_ಠ

Tuesday, January 22, 2008

Monday, 21 January 2008 21:19:33 PHT

Not much work was done.



I spent the Saturday buying a new 400 GB hard drive (which has practically only 372.61 GB of space). It turned out to be a Western Digital Caviar SE.

The only problem was that the store had no stock of SATA data cables, so it took me quite a while scouring shops for one. I got one for PHP 30.00 (roughly USD 0.75).

Then I tested the new hard drive for defects, reorganized my files, made some DVD backups, and that was it. The weekend was over before I noticed.




Changed the inner shirt's color. I think this one suits him better. His color scheme should be monotonous and unextravagant.

I realized I made the mistake of giving tiny objects (the belt buckles) more UV texture space, which was practically useless since they're only a few pixels big compared to the other parts of the gunner 3d model.

Even the head's UV texture is using up too much space. The glove's texture is the one that needs more space, so maybe next time I'll readjust the UVs.



In other news, a man's family was involuntarily abducted by 14th century feudal Japanese assassins. He is currently seeking ways to finance a rescue operation.

Monday, January 14, 2008

Saturday, 12 January, 2008 21:55:27 PHT

So I heard over here that keeping a journal about the stuff that you do helps to force you focus on what you're doing. Well, I was getting lazy, and I thought to myself, instead of continuing to spend weekends just fapping to porn, this'll be what I'm doing.

I still have no Internet connection in my home computer, so updates will be slow. Weekly, probably.

The gunner model is the first task. I'm working on the textures right now. I figure buying a Wacom tablet would speed up the process (after learning how to use it), but I just don't want to spend right now.


















After that:
  • fix wrist bone
  • model/texture weapons
  • idle and move animation
  • off to coding
  • ???
  • PROFIT
Not necessarily in that order.

I just found out that Blender actually does allow textured meshes to recieve lighting, and the feature was there, ever since the ancient 2.2x versions. The only problem is that the lamps should be in the same layer as the mesh object in question. Nevertheless, this thing should have been on by default.

In other news, King Leonidas of the Spartans announces his next preferred place of dining.

Free Image Hosting at www.ImageShack.us