Uploading my notes for this project. It has been in partial development for a while and even more time has been spent designing the main character animation & rigging. I'm back on the code again so I'm pasting in my diaries.
Setting up initial project. Got frustrated and cranky with physics. Went to bed.
Physics problem ended up being an FX problem with null objects in an EventHandler. Still trying to figure it out. Trying to move a physics object via the mouse. Got it moving nicely, got gravity, got mouse throwing.
Trying to move callbacks to another code unit.
Got callbacks working in other code units and interacting with items from the main code unit. Created a proper mouse throw or swipe gesture.
Experimenting with spawners for firing bullets.
Learning about Vectors & normalisation. Experiemented with firing direction. Also with the vectors, improved the hero throw.
Experimented with enemy spawners and collision.
Fixed a bug in the collision detection. Only 50% of the bullets collided with the enemy.
Crazy things happening with physics and spawned objects. Got it sorted.
Created explosions and created an explosion spawner that allows you to detonate any object.
Created basic map objects to sketch out levels and maps.
Experimented with using Ocean but then started mapping by hand. Very painful.
Failed android deployment experiments.
Got the camera tracking with the hero.
Created a map level converter for use on the project. Packaged it up for use by others.
Android experiments: finally got my own code running on a Motorola Xoom.
Coupled the termite object to a class and replaced the mound spawning so that termites spring out of a termite opening on demand instead.
Fiddling with the termites trying to get them to use child feeler objects to sense what wall they are up against. I hit a snag when I work out the a child object sends the parent object in a physics collision event. Probably going down a messy path anyway. Need a better method.
Worked out an individual object can have custom gravity. This will work better for the termites to crawl over walls.
Got custom gravity working and the termites now crawl around corners. Except for one. Ughh.
Now crawling around all corners but they cannot crawl up walls. Tried various things to do with collision detection on different walls but there are too many variations and they all affect general walking.
Found a cleaner method for a termite to start climbing a wall.
Added terillium graphic. This is the compound that the termites use in their weaponry. The hero needs this to power the warhead.
Added terillium animation. Shouldn’t be spending time on graphics but can’t help myself. Need a distraction.
Added the ability to pick up terillium.
Created a larger test map using Tiled and the converter.
Added a configurable list to place the terillum throughout the map.
Added a configurable list to place the termite mounds throughout the map.
Built the concept of trigger objects. These are invisible and if the hero passes through one of these, a swarm will emerge from a mound. Designed classes to tie trigger and mound objects together in a relationship.
Added a configurable list to place the trigger mounds throughout the map.
Stopped the termites from colliding with each other.
Termites can now collide with the hero and knock him off a wall.
Added life value to the hero. Termites can cause damage to the hero and ultimately destroy him.
Added FX to the hero when he is hit by a termite or when he picks up terillium.
Created some underground themed tiles just to have a little eye candy and stop myself seeing the same thing day after day. Also themed the mini termite mounds. But again, just placeholder graphics, not the final thing.
Adjusted the gravity settings because I felt the normal gravity was too severe on the player.
Playing with a lot of Android builds seeing what works and what doesn’t.
Added a game over graphic which comes up when the player dies. Added respawning at the top of the level.
Designed and built a reticule to surround the player’s finger when firing. This is one piece of art that will stay.
Fiddled and fiddled and fiddled with getting reverse termite movements.
Took a hiatus and fiddled on and off with the main character in blender, building up his body rig, clothing and movements.
I love reading your notes, it's always very interesting to see the approach of other people and the results they obtain.
Given the hiatus was till June, should I conclude you're back to dev?
Did you touch Nexus Reloaded since last time? I'm really looking forward to being able to play that one.
Currently recruiting for another animator over at the blender artists site. There's too much work to be done to get this thing moving along: http://blenderartists.org/forum/showthread.php?300057-Assets-Background-artist-wanted-to-partner-on-a-current-game-in-progress
I haven't touched Nexus but I did fire it up a few nights ago and demoed it my nephews and they liked it a lot. They're young / critical, so that's good. Nexus goes back into dev once Termyticus is done.
Returned to the code and fixed problems with termite movements. Introduced 45 degree slope crawling. Fixed chasermite movement. Can chase properly and jump from wall to wall.
Spent a week in Wellington NZ where I worked on completing all the animation poses, and movements. And yes, I was there in my hotel room during the 6.5 earthquake. Quite an interesting experience.
Anyhow, once all the animation frames were finally rendered after many months of modelling, rigging and posing, I started setting up a working environment for ensuring I could edit or change frames without going through a painful repetitious process.
I needed to scale all 320 frames down to 25%. I used irfanview's batch scaler but it introduced weirdness in the edge of the alpha.
Seeing GIMP did the rescale perfectly, I got a batch resize script online. However it only used regular scaling, not Sinc (Lanczos3). So I adapted the script to scale with this method instead.
Next to find a sprite packer. Preferably a free one. After looking at a few, I settled on darkFunction - simple, straight forward and works well with alpha backgrounds. Some don't.
Started working on a converter to take the sprite sheets and generate orx ini fragments so there is minimal handwriting of orx ini configs. There are just too many frames to live this way anymore.
Ok, so nearly back into the project... in August I actually get the first animations in to the game (last night) and the little guy looked great! Very pleased.
If you wish to get into the new features for Termyticus (multi-threading, async resources, resource hotloading), don't hesitate is you have any questions on the subject. I haven't written any tutorial about those yet.
Returning to the code I found that my next barrier is to work out why my surrounding physics boxes are bigger than expected in some cases. Just have to trace things through again and catch up to where I was.
I remember I was about to implement splitting up the main character sprite into head, body and gun. Which is not a trivial change.