Sunday, April 14, 2013

Final Sprint

BIG THURSDAY CRUNCH TIME
Final day for crunching down all stuff to pass for Xbox live previews. You would not believe how many things can go wrong when testing the game with different monitors, resolutions or different Xbox machines in regards to its UI. Here is the small list of unpleasant issues that I encountered and that were after some thought fixed:

  • Text and images won't scale and position appropriately
    I think we were scaling all twice, there are two main screen variable _UI.SX resp _UI.SY and _UI.SXM resp _UI.SYM, former is the safe width resp height of the screen, the later is the coordinate of the center of the screen. There is also screenScale variable which is 1 when screen is 1080p and 1.5 when 480p. It is important not to use both SX resp SY and screenScale at the same time. 
  • Credits screen was scrolling with different speeds on different Xbox machines
    Okay, that was my fault :-). I created TimerByUpdate and ClockByUpdate objects and they were correctly to be running off the OnUpdate(frameTime) method but I put the page.move(speed) method inside the OnProcessInput(input) method which update rate seems to be dependent on Xbox hardware and consequently running with different speeds on different Xbox machines. Putting move method inside the OnUpdate method fixed the different scrolling speed issue.
We were using open source XUI system for Xbox 360 and windows from http://xui.codeplex.com/.

Here is the final screenshot of the credits screen page (Avatars were developed and put there by Blake, the actual text content was written by Ross), thumbstick up/down will stop auto-scroll and start flipping pages up/down, A will start auto-scroll again, B will exit the screen:


Tuesday, March 26, 2013

Game Splashscreens

I did some brainstorming on Game Screens... I used Photoshop paint oil filter and other effects to mesh up and alter some public domain photos (Free public domain photos http://www.turbophoto.com/, http://office.microsoft.com/en-us/images/, http://sxc.hu/, http://www.freedigitalphotos.net/ , Free public domain fonts http://www.urbanfonts.com/fontsearch.php?s=ninja) with our game-play  images...



Photos I used (the 2nd photo I took at Solitaire Utah, others are public domain photos):





Thursday, March 21, 2013

Gamification


REALITY IS BROKEN
I think I got my new religion after I started reading the McGonical's bestseller book. I was a big fan of gamification and serious gaming before, and I think I was implementing a lot of its ideas in small educational games I was creating in Adobe Flash at my current job as a  e-learnerning developer, but this book kind of made it all clear and easy to see.
This is a video with the script of McGonical's famous presentation of her book on TED talk
IT IS WORTH OF WATCHING!


She is a great presenter and I really feel sorry I missed her presentation at the UofU the other day.
We need to play more games the make the world better!

"One way or another, if human evolution is to go on, we shall have to learn to enjoy life more thoroughly."
- Mihaly Csikszentmihalyi




INCREASE YOUR LIFESPAN BY 7.5 MINUTES BY EXPERIENCING THIS PRESENTATION
This is cool! You got to watch it, it is also a great presentation.

Sunday, March 17, 2013

4th Sprint and Clock

CLOCK
I was to implement Clock object to measure time, since XBOX can't access current time I am incrementing my clock by frame time variable. I just created simple ClockByUpdate class with Update method which keeps track of  time in format HH:MM:SS. It worked awesome on my test XBOX project, the only problem was displaying it on the HUD of our Ninja game. We use XUI library extensively with its Widget objects and for some reason it won't show WidgetText objects on HUD, it works with WidgetGraphic objects great. To make it even more weird the WidgetText object works great  when it is instantiated inside the GameScreen constructor but will not work when calling from it OnInit method.
Update:
Fixed displaying a clock (timer), fixed credit screen auto scrolling
Here is the screenshot


GAME REVIEWS
I did a lot of game reviews on our Xbox LIVE Indie game account. I have to say I started enjoying those reviews, I was quite surprised how various and interesting those Indie games can be. People can be insanely creative :-). There were cool 2D retro games with pixelated graphics and nice MIDI loop music reminding me Doom game and with nice storytelling. The last one I reviewed today was basically story-driven mystery game. You were choosing between male and female characters that were running small PI business. The coolest thing in this game that it was all shot like a machinima and the scenes were seamlessly connected to one another, changing from 1st to 3rd person views depending on your choices.

Wednesday, February 20, 2013

3rd Sprint

AUDIO CONTROLER/LOADER/MANAGER
I am doing some research on controlling and managing audio in XNA game. XACT may be answer to this, looking into this tutorial.
More cool tutorials from RB Whitaker's Wiki.

SHADOWS
Our game doesn't have a shadow effect. The answer may be using High Level Shader Language (HLSL). I found this HLSL Riemer's XNA tutorial

ENTITY IN GAME DEVELOPMENT
I was trying to get a grasp of what entity framework is and I found this excellent tutorial What is an entity system framework for game development? from Richard Lord. It suddenly made it clear and I just remembered problems I had when using inheritance and trying to fit movable, collidable, but not drawable  object (as invisible trap or force field) into the game loop.

CREDITS SCREEN - POLISHED
I was working on credits screen again. This shows the idea of static background and flip-able pages for intro with the title and each team member with some image and about me info.


Saturday, February 9, 2013

2nd Sprint

CREDITS SCREEN
Working on the second sprint. I was given a task to create a credits screen. The credits should have both text and images and player should be able to scroll by using controller. I also think it is a good idea to start the scrolling down automatically or after certain time interval when idle. I am going through some text rendering tutorials. I am also hoping to build it as one of the game states and be one of the clickable options on the intro screen.

IMPLEMENTATION
I built Timer class that is driven by the Update method, every team member has his own page, this is taken care of by the Page class, all is tied up inside the CreditsScreen class. I was not able to reset XUI effects like  that I was planning for pages to have fade in/out transitions. I just declared another Timer object that scrolls page up/down for a half a second and then it flips up/down the page. There was a problem that if you hold thumb-stick it will just start flipping pages too fast. I timed flipping with another Timer object that even if you hold thumb-stick it will flip pages only like every half a second.

Here is the screen recording of the credits page. If you don't touch the thumbstick up/down it will scroll up automaticaly after 5 seconds. If you move thumbstick up or down it will start flipping pages with slide in/out effect. All images and texts are just place holders and need to be updated with the actual stuff.