So I made a bunch of changes tonight. Optimized a bunch of things here and there, fixed a number of bugs but the most exciting change is finally building some logic to extend past just one level. Intelligently moving from one scene to another, I definitely side skirted some aesthetics, but I was definitely in the mood to get some of this done. It’s humorous, as I finish more tasks, I think of more tasks to complete. Regardless, February is almost over and I’ve committed to myself the game is coming out this year. So we can all expect more changes.
When running the alpha, you can quickly see that the game now navigates to multiple scenes. There is a world selector after the intro levels and of course, there will be the option to skip the intro if the controls are already aware of.
Testing it on the web client… “New Game” isn’t working. It is on the android and in the IDE… so another bug to figure out.
File location refactoring isn’t actually handled from the Unity IDE for some bizarre reason I performed it in there. I do realize that Unity auto generates the project and solution files from the actual file systems, so I could have actually moved them in Visual studio instead which actually would tell Subversion that the file moved through AnkhSvn… However, I must have decided that I wanted to punish myself tonight.
Sigh.. so I’m cleaning up some stuff right now.
As for new changes. I’ve implemented a little loading dialog in the game, so that on the android platform, the player will get at least some indicator that something is happening.
I’ve also implemented the logic to back up from the world selector, similar to the main game.
So I finally figured out a huge performance bottleneck on the android platform that would freeze the entire game when the probes entered the screen.
I was writing what I thought was a really clever implementation to have prefabs or transforms loaded via code directly as opposed to be attached to a behavior script, which is attached to the scene. Well, it turns out that if you do this, then the resources are lazy loaded and when android has to load some resource, apparently it’s insanely slow. I created an Entity Container, kind of like dependency injection container so that on the scene I could have one place to look at where I knew all of the prefabs that were going into the scene. I haven’t consolidated all of them yet but I will so that I have a good picture of how many assets will be loaded for each scene. This idea is really inspired by Chris Pruett’s Google I/O presentation from a few years back where he mentioned on these mobile platforms you need to address the performance early on to prevent death from 1000 cuts.
I’ve also started implementing a brute force build process that would auto update the version, compile and deploy it to the web server. Interestingly enough, when you build from the Unity IDE, it hides a lot of details, such as how big the resources are and what’s going to make it in the final pack. Fortunately, Unity does perform a lot of optimizations, but this information is incredibly helpful as it will also allow me to make better decisions on what resources will go in. Anyways, next step is to install a continuous integration product on my windows server so that when any changes are committed, it builds and auto deploys.
Before, I end my post for today. I came across this video and was totally moved by it. So many reminders of a similar child hood with very few friends. I was that geek that was picked last for pretty much all sports, I did avoid certain hallways and I can’t even count the times that people messed with me.
However, I did make it out and I’m really happy now. They were wrong, indeed.
So I finally got around to finish the second video in the random coding series. I decided to change up how I recorded it, breaking it into multiple chunks and blending them together with Sony Vegas. Apparently FFSplit, by default record to mp4 which vegas had a hard time working with. Fortunately, I Was playing with ffmpeg which converts from one format, to practically any other. It then converted into the .m2t format that Sony loves and real time editing became a breeze.
I’m really enjoying building these as it also really forces me to learn more about something to demo it. I’m also in contemplating of what video will be the third in my series.
New release of Conflicademia updated tweaking the swiping input so that the consumer of the swipe event can choose to process on a number of different attributes, such as total distance swiped or speed of swipe.
After the changes were completed, it seems that swapping weapons on the phone platform are much more intuitive. Additionally, I fixed the logic so that the swap can be received on the web platform too. Simply click and drag across the screen as if the mouse were your finger.
Additionally, I’ve posted a Youtube video that includes some random coding as I also really enjoy teaching and presenting. If anything this will help me become better at that specific task, as one day I’d love to pioneer some really awesome technology and then present it to the all those who are interested.