Showing posts with label Game Progress. Show all posts
Showing posts with label Game Progress. Show all posts

Tuesday, July 2, 2013

Dragon game update: additive blending, contorted transformer and slender dragon

Hello again!

This has been a pretty big week for my game.
I've refactored the rendering engine simplifying some stuff and improving performance a lot. I've also added smooth shading to my dragon model and had a fight with blender over exporting models (I had to change roll of some bones which turns out isn't as simple as I though because all animations get screwed up).

As for additions to the animation system:
  • Additive and Subtractive blending. Allows me to create an animation I can lay on top of other animations (eg: small variations when running)
  • Skeleton masking: Allows me to select which bones get affected by a node
  • Triangular mesh node blending resulting in Head rotation: Ok, this isn't completely new but I did remove it for some time when I did the animation tree refactor
I also did another small anim tree refactor meaning it is no longer a tree and more of a graph with a root node and leaf nodes. This means I can now have one source animation node being used in several other places which is really useful.


Anyway, here's the latest update video:




And here you can see what happens if you don't subtract animation from a reference pose:  
 
 


Also my dragon is apparently a transformer, here he is as a spaceship:


That's all for this week. Next week I'll be working on leg IK, adding flying animations and I'll also work a bit on the texture. I'd love to do an IK tutorial eventually since it's a topic I already got myself quite familiar with, and there are a couple of techniques that are easy to implement that you don't need to know too much math to add to your own game.
Either way if you have any questions about animation blending/trees or IK feel free to contact me either by commenting or through twitter @SpliterCbb

Cheers!

Saturday, June 22, 2013

Working on a new game

Hey!
I've been neglecting this blog for quite some time since I was thinking of moving to wordpress but without ever actually committing.

So I decided that for the time being I'll keep updating this blog with the news of the game I;m currently developing.

The end result I want is a game where the player is a dragon from the start of its life in the egg up to the end of the life. I want it to have a certain storyline but It'll be free-roaming/open world for the most part with story taking place in specific areas, one of the key focuses of the game will be the animation as I want to combine keyframed animation, IK, physics and procedural animation to have a dragon that controls great but still responds naturally to the world.

I'm developing it on my own engine since I want this to not only be a great game but I also want to learn the hard technical parts as I'm making it.

So far I have a basic resource management, a rendering system and the beginnings of a robust animation system.

Here are the video updates so far:
Update 1

Update 2
A funny bug related to my direction setting resulting in wobbling.
Update 3

Sunday, August 21, 2011

Progress snippet

Hello!
Ludum Dare 21 has started yesterday. Unfortunately I'm not participating but that doesn't mean I won't be doing anything this weekend!

For the last month or two I've been working on my game engine. My little baby Litterbox has it's third rewrite from scratch ever since I've started making it. This time the key word is "Components"!

Now, components are a very, very good thing, but the classical component-based engine design has it's flaws like component communication overhead, the lack of centralized control, and many more than would normally keep me away from it. However I couldn't just go back to using the traditional deep hierarchy design as it constraints the flexibility of the engine, and many times you have to use a super-complex base-object that I really don't want to have.

So.. What's the sollution?
Hybrid

My engine architecture is a hybrid one, having always a centralized  game entity to which the components are linked. In most cases this means that I have a command center for my objects, but I can also add and new components easily. So if I have a 2D game engine where I suddenly would want one of my bosses to be fully 3D there wouldn't be a problem! I just add a lb3DModelComponent to my boss object, and handle all the special 3D code in the entity.

So far I've moved from 2D animated sprites to 3D models (with Horde3D) without any problems, and if I want a 2D game on top of my 3D game then there's absolutely no problem!

So, here's my progress so far:
-I have a fully functional Entity system with attachable components.
-2D box-based collision system (with various iterations per frame)
-2D graphic system, leftover from earlier engine testing, with support for animated sprites loaded from a sprite sheet.

My Game
I also started thinking about the game I want to make. In my earlier days as a wannabe game dev I created a small demo in gamemaker, where you controlled a fiery guy, you had a selection of fire-based weapons and you were left in a small town full of squishy pink dudes and buildings to use your abilities on.
Recently I showed it to a couple of guys at LudumDare IRC channel and the feedback they gave me really pumped me up so I decided to give that game another try.

The basic idea of the game was that you were a Poyo, a little pink dude kinda resembling a Poring from Ragnarok Online. You would then acquire special powers that would let you transform into a version wielding 1 of 3 natural elements, namely: Fire, Water and Flora.

The game setting was mostly based in a fantasy land with traces of advanced tech.

Now I'm reworking the Idea. I'm planning for keeping the feature of 3 elemental transformations, and as planned before the game would be an Action-Adventure, though I might throw in some RPG elements in there too since it seems to be a good blend considering the fantasy setting.
Anyway, here's the screenshot of how things are so far:



This also was a good excuse to go back to modelling in Blender.
Importing these models to Horde3D was a real pain in the ass as the colladaConverter crashed when converting them, but the people on Horde3D forum had a nice workaround which works good so far.

For comparison here's how the old PoyoAdventure demo looked:


That's quite a sight there in all its 2D glory, however 2D constraints when it comes to depth and having object on top of one another really threw me away from it, that's why I decided to remake this game with 3D graphics (though with the same 3/4 view). I still plan on using 2D collisions though, just to work faster and have something done in less time.

I won't finish this game but I want to have a fun to play prototype. If it's fun enough then I'll work on it more adding fully 3D collisions, proper story, and I'll invest more time into it. (Basically this version will be the proof that I can make a game, as well as a proof of concept for my engine).

I'll be working on this most of the weekend, in a few hours I should have the little pink dude walking around with a basic animation and colliding with stuff. No idea what I'll do tomorrow but lately I've found out that striding back and forth around my house, brainstorming, gave me lots of good ideas as well as will/inspirations to implement them.

Edit: For those interested, no I didn't get the animations playing. I have no idea how I export animations from blender to use in Horde. I'll ask on Horde forums but that place is pretty much a ghost town. I'm kind of starting to regret using Horde instead of Ogre3D. If I don't find anything reasonable soon I'll try making my own converter with the help of AssImp.

That's all for now!

Later!
Spliter


Monday, November 8, 2010

Small engine update

Hello!
Sorry for the complete lack of updates (in case anyone reads this blog) but I've been dead busy with real life, most notably with my university and finding money to live. But never mind that.
I have made a little upgrade in my engine, namely: it now supports polygon casting.
What is poly casting you say?
Poly casting works just like ray casting except with a poly. Basically it smears a (convex) poly along a line and looking for collisions along it, giving you the time each of them (if any) happened.
In simple terms:
Let's say you have a large 16px ball that's travelling at 200 px/frame. any wall that's in between the balls' current

position and the next one is probably gonna be missed, and so the ball will glitch through them.
frame 1:





frame 2:




Using polygon casting we can prevent that as it will detect all the walls the ball went through and also record the time at which the ball entered and exit each one of them, making this perfect for fast moving objects for which a simple ray cast wouldn't be enough for.

Frame 1:




Frame 2:




Note how in the second frame the ball didn't get past the walls since it detected the collision beforehand.

Here's a video in which I show the latest updates:
1-Webs
2-Lazer
3-little demo of a triangle being cast from the player to the mouse position
4-some bullets





When I get some free time I'll make a tutorial on ray and polygon casting, in the meantime I'll also update my engine to support an entity IO system which will allow the communication between various entities. It'll prove to be mighty useful when I want for example a door triggered by a button, or to make explosions at specific events.

Till next time!
~Spliter

Friday, June 18, 2010

Not only procrastinating

Hello!
It's been quite some time since my last update and as crazy as it seems I didn't spend all this time sitting on my butt and farting. Only mostly.
Yeah, college life is difficult, when you're not studying for finals you're looking for a job, or a place to live, or gathering documents or doing assignments.
Still I've got some time free and I've been spending it mostly watching youtube videos making a small model viewer on wxWidgets and last two days I've spent making a nifty little 2D animation system for my game. All it does for now is draw a mesh on an animated skeleton.

Anyway here's a screen:

Unfortunately it isn't animated here.

So far it only animates a test skeleton with a test mesh using two merged test animations.
Oh, that's right, one little feature is that there are two "blending" modes, a simple aditive, which is helpfull when you want use two independent animations (eg, legs running, and arms flailing around) and use them together, and a real blend between two animations with a certain ratio. Of course the stored skeleton pose can be blended again and again, so I can have a 50 tentacled monster with each of his arms having a diferent animation of its own, while the monster itself has its own animations.
In future I plan to add IK and simple physics which will be blendable with the existing animations giving them a little more realism/naturality.
Apart from the animation system I'm also gonna create an animation and mesh editor, and when I'm done I'll have pretty looking graphics in my game.

That's all for now, I'll update this once I've finished some of the planned things.
~Spliter

Sunday, February 28, 2010

Progress on the Cricket game [post nr 3]

Hello! Long time no see, eh?
In the last few days I've been concentrating more on the artsy side of me, this was fortified with Chiustream. "What is chiustream?" You may ask. Well, chiustream is a video stream every friday at 22:00 GMT created by the awesome artist Bobby Chiu.
For those that don't know who he is: he was one of the three character designers on Alice in the Wonderland directed by Tim Burton, along with Kei Acedera and Michael Kusche. The stream is basically a 1 hour contest at the beginning of which Bobby Chiu gives a theme and you must draw it.

But enough about art, you're here for my game updates right?.... right?

So in the last post I wrote that I've already finished all the three things planned for this update: Camera scrolling, Particle effects when you sing and allowing walls that won't let you grip them, From that time I didn't do much more as I've been busy with art practice.
Anyway, here's a screen of the latest build:


As usual here's the update of my game:
benhem.com/catboxbeta/Litterbox_update_10_02_28.rar
Of course you must have all the previous updates downloaded which you can download here:
http://benhem.com/catboxbeta/Litterbox_update_10_02_18.rar
and here:
http://benhem.com/catboxbeta/Litterbox_redistributable.rar
Yes, you do have to download them all and extract to the same folder, remember to extract them in the reverse order of appearance. Sorry for this inconvenience but I don't want to waste too much Benhem's space.

That's all for today, I hope you liked this update, I'm off!
~Spliter

Thursday, February 18, 2010

Progress on the Cricket game [post nr 2]

So things are going quite faster than I expected them to do. It's a shame I'll have to put the my cricket game aside for the miniLD this weekend.

Anyway, here's what's new:
I finally added jumping, proper jumping with raytracing to make sure you don't fly off the map no matter how fast you go (although you can still get pushed outside with the normal collision tests I make after the movement has been done. I'm still indecisive whether I should add walking/scurrying into my game for the player since if I did that for normal ground walking I would also have to do it for wallwalking/ceilwalking and it would be a hassle. So far you can still move a little, but if you want to travel it's mostly by jumping.

Here's a new screen:
Those blue things at the edges are walls I have added so you wouldn't fall off if you miss a jump.
I also finally disabled the rotating background! It was giving me headaches when testing.

Having made a lineart concept from the "I'm probably not meant to be a game designer" post I decided to color it. It might sound simple but being Deuteranope (I have shifted green spectrum a bit) I usually use weird looking color combinations when dealing with green, so I decided to try something crafty:
Paint the little guy in blue, setting appropriate hues and saturations and all that jazz,and then change the hue to green. It definitely looks a lot better than if I did it with green right away (at least to me), so here's a little tip for all you deuteranopes out there: Paint in the color you're comfortable first and only then change the hue to the color you have shifted! (however unless I get a confirmation from a person without shifted spectrums I can't put my money where my mouth is).

Anyway! Here's the final version of the main character:


Of course this wouldn't be much of a progress post if I didn't give you an updated version of my game to try out the new jumping feature so here it is:
http://benhem.com/catboxbeta/Litterbox_update_10_02_18.rar
It's only the exe without the DLL's but to save on Benhem's storage space I decided it would be best to only give updates instead of the full thing every time.
You can get the previous working version here:
http://benhem.com/catboxbeta/Litterbox_redistributable.rar
And then just put the exe inside there

The controls:
Space- to show the sing menu/GUI and mouse over the circles to sing.
WSAD- for additional control in flight
AD-to walk on the floor (or on the ceiling in this version)
RMB- hold longer to jump faster release to jump

My plans for the next update:
-add a little particle effect of notes when singing
-add camera scrolling to follow the player and thus make the world bigger
-add walls/solids you can't latch yourself onto

So this is it! I hope I didn't bore you,and see you next time!
~Spliter

Wednesday, February 17, 2010

Progress on the Cricket game [post nr 1]

An average programmer can write an entire program in a week. Unfortunately I'm not an average programmer and I take incredibly long amounts of time to write the simplest things. Main reason for the slow progress is not having much motivation therefore I decided to get more graphic.
From now on every few days I'm gonna update this blog with the progress of my game and I'll post when there is something new you can actually see. I'll try to do it as often as I can. Hopefully having something to show for will motivate me to work more and procrastinate less, having said that here's my first progress update:

I finally added one of the key gameplay features: Singing.
Practically I've spent today's entire day adding Fmod support to my game and I'm happy to announce I now can have sounds! Of course having ability to play sounds would be nothing without the sounds themselves so I added the singing feature, mentioned in the "I'm probably not meant to be a game designer" post, suggested by Thedaian.
The singing works just like it did in Aquaria, you mouse over the notes arranged in a circle and compose short melody with them, if it matches any melody known to you will give you certain power or do something interesting. So far you can only play a fixed-size melody of 6 notes and all it does is toggle between red and purple song layout.

Before Singing: After Singing:
Note that everything here is placeholder, and the background still rotates continuously because I'm just too lazy to change a certain variable to false.

Here's my work in progress if you want to see it in action:
My game's current build with necessary DLLs:
http://benhem.com/catboxbeta/Litterbox_redistributable.rar
Just the game exe and the assets:
benhem.com/catboxbeta/Litterbox_nodlls.rar

WSAD-moves you (the little blue square).
LMB-places one of the walls on the mouse position.
Space-press and hold to play the music you like.
Q-hints at the only music available.


So this is all for today, I hope I didn't bore you too much, see you next time!
~Spliter