Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Thursday, March 8, 2012

Astronaught went public

Around 3 weeks ago i had a blurry recollection of something that might have been a dream after waking up. The image in my head was a little pixel astronaught running around in a space station. I am not actually sure why i dream in 8bit, but i sure liked the impression.
I started drafting first sketches of the character and a walking and jumping animation. The day after i started a mapeditor with some placeholder tiles and basic box2d collisions.
The coming days i improved on each the tileset, the mapeditor and the game mechanics and went ahead to build the lighting shader. For now it is simply raycasting with a fall-off value to get some nice light rays. So this is the current state development in a nutshell.



So yesterday i started the 8BitFunding campaign and  got a really nice review over at the Indie Game Mag. I will dedicate the next few days on some more promotion of the campaign before i can concentrate on the project again. More info on future plans will also follow in the coming days.

Thursday, August 4, 2011

Decisions

I just guess that's how life works.
You work on something, you enjoy it, you're looking forward to it.
Then you get distracted, you loose your focus and you get annoyed by it.

In my case it was a shift in priorities. I had to focus on earning money to pay the month's rent, and i resumed to play Minecraft which was a horrible time-waste in itself.

So yeah, now i am stuck with thoughts about what my next step would be. Working on the existing prototype, with no clear goal, or rather thinking up some concrete, fast-to-realize Projects, or even doing something entirely different.

Developing a game is a long journey and no matter how easy it seems in your mind, there will always be some hurdles you haven't anticipated, be it of algorithmical, logical or conceptual origin, or even interventions from the outside. And it doesn't help if you are good at distracting yourself with forms of entertainment, be it games, TV shows, and virtually anything that momentarily seems like a better alternative than being stuck on that one problem that just appeared.

While pondering what to write, and with the hope to come up with a solution to my uncertainty, i went through my different ideas and concepts and thought about how much time and man-power each would take, and how complex the realization would be.

What i think seems most realistic in terms of the most soon'ish implementation is a space shmup. Yeah we have a bunch of those already, i know. But there are people who enjoy those, and are looking forward to more and different kinds of them.
Furthermore it is easy, fast and straightforward to prototype and i can play with a lot of different shader effects. I reckon there is not much to be done in terms of research for technical or logical problems.

I still need to think it through, and sleep over it, talk to people and stuff, but i think that is the best bet i can come up with currently.

Saturday, June 11, 2011

Getting more interesting

As all so often there's a lot of things on my todo and i can't manage to focus on getting one thing done before starting the next, thus i am jumping around a lot of different construction sites.

So what i'm going to show you today is something i worked on a few weeks ago.
Behold inverse kinematics walking animation:



There are still a bunch of issues, like the elbows being all over the place, and the legs crossing at some points when turning around, but it works fairly stable

This prototype is pretty simple in itself as it only works on a flat surface yet. Eventually the model should be able to climb stairs and slopes similar to how a person would to it.

So why am i doing this?
Obviously because it's pretty darn cool. The other point is having realistic animations which are adjusting to the environment, without the need to have the animator design a bunch of animations for specific cases.
Another reason is the immersive aspect (as much as this word is misused nowadays, i think it fits at this point): Nothing tips me more off in game as terrible animations, starting at simple things like syncronising the movespeed with the walking animation cycle, or a simple waving the hand to interact with objects, instead of grabbing the doorknob to open the door for instance. It just looks like a poor puppetplay.

I realize that in the past it was not easily possible to implement it any differently due to performance restrictions and some other barriers. But we arrived at a time where graphics will only improve slightly, so to increase the realism(for lack of a better word) in games we need to focus on things other than the polygon count. Many studios realized that already and came up with a bunch of nifty features, such as Assassins Creed's climbing and user interaction animations, or LA Noire's captured facial and body animation.

This is currently a work in progress proof of concept. This attempt holds a lot of mathematical barriers to me, implementing restrictions for joints, finding the correct pathes to move for the limbs, reacting to outside forces and a bunch of more stuff. So i take this as an iterative process. I will improve it step by step to get a good approximation of what i have in mind eventually.

Friday, May 13, 2011

Changelog 003

I mostly finished the work necessary for porting to OpenGL >3.
The model class got rewritten to use VBO's instead of immediate mode, and the imported collada vertices were changed to fit into the VBO's vertex structure. In retrospect, it was a straight forward process, even though there were some minor hiccups. There is still much to do, converting the actual existing code that is still using deprecated functions, but the worst part is done.

After mog mentioned he wants to code a 2d rotating ribbon effect, i thought about how i would realise it and today i was playing around with the shader realtime editor and built that oldschool 2d ribbon/twister effect, which is common in older demos.


I ended up playing around with the same code in the shadertoy and it ended up in a textured more dynamically moving twister thing (paste to the default Deform shader code and hit the compile button (or Alt-Enter)). You might need to manually enable WebGL in your FireFox about:config or use Chrome.

Friday, May 6, 2011

Changelog 002

This week i started out improving the shader editor, so it becomes actually useful. It still lacks some kind of selection of what shader currently is being edited, but i added some visual enhancements like fading the top and bottom code lines, adding a line counter, and error handling and parsing the errorlog to highlight the lines which makes the compilation fail.

Failed compilation with highlight on the errornous code line
Further i added tangent calculation from the texture coordinates for normal mapping and texture mapping on the sphere primitive.

Is this normal?!

Once upon a time in a galaxy far far away
In case you're wondering, theres a julia fractal being animated in the corners.

The rest of the week i was trying to port the engine to the OpenGL 3.3 core specs which includes uploading the modelview and projection matrices, and the actual vertex data to the shader, and stop using immediate mode ( i will miss it! ) for the sake of using Vertex Buffer Objects.

So hopefully i will be done porting most of the code by next week so i can focus on the fun stuff again.

Friday, April 29, 2011

Changelog 001

This was a quite successful week. I've learned a lot of things and started implementing them aswell.

The first thing i worked on was finally getting the per pixel lighting shader to work, which i did after numerous talks with several developers both on gamedev.net and irc. Eventually, all that was left to do was transforming the lights position by the camera matrix, so everything is in the same view space, and can be lit accordingly.

Failed lighting
Successful lighting
Currently it is only using diffuse lighting. Adding ambient and specular would be easy but it is not necessary right now, as for now i just like to tinker around with shaders and to get a better understanding of how to work with them.

Another thing i wanted to get done for month is model loading, and thus i started coding a collada importer. For now it is crudely hacked together, and it only supports triangulated models and no quads or other polygons. It took a couple of hours but eventually i got it working pretty good.

Quick and dirty model made in blender

I added another shader for texturing which includes the lightingcode from before and ..wow.. shaders really are awesome to work with!

Lastly, i want to give some credits to iq of rgba for writing this awesome shader live editor.
Something like this would really increase the workflow, and instead of alt-tabbing and recompiling all the time you just hit a button and see the results. So this encouraged me to remake this idea and write my own shader live editor. It took just a few hours, but for now it is more of a proof of concept. The editing capabilities are crude, but at least it is working!


I will keep working on it to make it a useful and fun tool eventually.

Friday, April 22, 2011

Jitter physics

I thought it finally is time to implement some physics into my game engine.

Physics usually require a tedious amount of work and you probably need a degree in computer science and math to implement them nice and smoothly. Because i have neither, i was looking for the alternatives.
There are a handful of libraries available for C# which seem to work quite well.
JigLibX and BulletX are both implemented for Microsoft XNA, so it would require some rewriting, which wouldn't be so bad since they are both opensource.
There is however Jitter Physics which works tremendously well for me. Implementing it and getting it to work was an hours effort. It comes with samples for XNA, XBox360 and Windows Phone. The XNA sample is just that though. Jitter Physics is in no way tied to XNA like the other libraries mentioned. So it could be seamlessly implemented in my engine. It comes with the zlib license which means you can do virtually anything with it. But you should be nice and mention that you're using it. That's the least you could do!

One thing i will have to adjust would be changing the vector and matrix classes to use my own, because they currently need conversion every time. I'm curious how much of a performance gain that will bring.


Hell, thats an ugly box!
Oh yeah, since i haven't mentioned anything about the engine yet; it is in development for around 9 month in my spare time. It is realized in C# using OpenGL rendering through OpenTK.
Currently i am still working on a lot of base features rather than gameplay, even though i have some prototypes i will show off some other time.