Christmas Tree Simulator


Experience all of the joy and excitement of the Christmas season with Christmas Tree Simulator.

Snowflakes contain special Christmas magic! The more snowflakes you collect, the more decorations you will be able to put on your Christmas tree. Christmas tree decorations make everyone happy and bring joy to the world!

Below are the goodies that you can place on your tree by exchanging magic snowflakes!

  • Ornament, round and shiny!
  • Candy cane, sweet and will give your teeth cavities!
  • Presents, make children happy!
  • Star, twinkling and bright!
  • Snowman, a frosty friend!
  • And more!

Screenshots

Videos

 

Christmas Tree Simulator Let’s Play videos


 

Released

Crystal GridIron

Crystal GridIron is a game that I developed for the Mini Ludum Dare 63. The theme is to develop a game that fuses two different game types. Since I’ve never developed a football game before, I thought this would give me the opportunity to do so. However, this game will include fantasy RPG elements. Instead of football players, the team will be composed of mages, warriors, and rogues. I’m planning to make the ball a crystal. I also want to have powerups that are stored in treasure chests on the field, which will boost the player abilities with things like faster movement and more power.  One of the games I liked playing as a kid was Bill Lambeer’s combat basketball, which also had collectible powerups.  I also liked Tecmo Bowl for the original Nintendo Entertainment System, and I decided to use a similar side view of the field.

Tecmo Bowl Bill Lambeer

I was able to develop the basic core of the game using Unity and Playmaker. The players are currently capsules, and the ball is a sphere. Of course, I will end up replacing these will actual models that I will create in Blender. I created a script which instantiates all of the players on the field, using two ArrayLists for the Vector3 positions of all of the players on each team. When the game starts, I parent the ball of the player that the player is controlling. This way, the ball follows the human controlled player on the field. I also set the ball to “is kinematic true” so that it doesn’t move away from the player. There is one Playmaker FSM for controlling the actions of the player. If the player is human controlled, then I use the GetAxisVector action to get the input. Then the human controlled player is moved using the Translate action.

Crystal GridIron
Each player is assigned a team ID, which determines if the player should play offense or defense. I also set the material for the player based on their team ID, which makes the players red or blue. Currently, the defensive players just move toward the ball object. The offensive players will move based on the play type selected.
I created two cube objects for the two end zones. There is a trigger action on the ball, so that if it crosses into the end zone, then the scoring team gets 7 points added to their score. I am using the GUI Text object for displaying the score. The team scores are stored in two Playmaker global variables.
The camera moves by getting the X position of the ball, and then moves towards that X position (the Y and Z position of the camera remains the same). I set the camera movement speed to slightly less than the player, so that it makes it appear that the camera is catching up with the player that has control of the ball.

After a few days of development, I was able to implement a simple football game with basic artificial intelligence.  When the player makes it to the end zone with the crystal, they score seven points.  The player has four downs to gain ten yards to get to the yellow line.  Then, the player gets a fresh set of downs, otherwise the ball is turned over to the other team.  I made some simplistic models for the game, since I didn’t have enough time to model player characters.  I did get the crystal implemented, and I was able to make it go through all of the color hues.

I learned a few things from developing this game.  I got more experience using the Playmaker Ecosystem addon, which adds more actions to Playmaker.  I was able to import int modulo (for changing the integer of the active team between 0 and 1) and HSV color actions (for changing the color of the crystal).

Unfortunately, I wasn’t able to add many of the features that I had planned.  I would like to model better looking players in Blender or import humanoid models in MakeHuman.  The entire field needs to be redone, with yard marker lines.  The AI needs to be improved on offense (players just walk forward) and on defense (players just move towards the crystal).  I also thought about adding a “classic” mode for people who just want to play regular football.  I would also like to add controls for selecting a play formation, and have multiple formations for offense and defense.  A play editor would also be a nice feature.  The game also needs to have the ability to pass to team mates.  A game clock also needs to be added, as you currently just play forever and there is really not an ending to the game.  Finally, the game needs to have music and sound effects added as well.  However, I was impressed with what I was able to accomplish in just a few days.

Play on itch.io

 

Released

DevSpace Technical Conference 2015

DevSpace

DevSpace Conference Overview

I gave two talks at the DevSpace technical conference in Huntsville, Alabama last weekend.  The conference was organized by frequent CodeStock speaker Chris Gardner.  I have a lot of respect for someone who starts a technical conference on their own from the ground up.  I had a great time at this conference as it was my first time speaking at a conference outside of the Knoxville, Tennessee area.  Huntsville is a very nice city in northern Alabama.  I had visited Huntsville about two years ago for a sporting event at the Propst Arena at the Von Braun Center in downtown Huntsville.  It was a great experience to return and speak at the conference center at the same location.

I stayed at the Embassy Suites, which is right next to the conference center and is connected by an enclosed bridge.  This was one of the nicest hotels I’ve ever stayed and the conference discount made the nightly price reasonable.  In the conference center, they have flags hanging from the ceiling representing all of the 50 states.  I noticed that the Georgia flag was the old blue one that was used in the late 90’s.

The first morning started out with a keynote from another speaker from Knoxville named Alan Stevens on the lower floor of the conference center.  The individual sessions took place on the upper floor.  A nice game room was provided by a local arcade shop.  I was able to take in a few games of Street Fighter II Hyper Edition, Galaga, and Star Trek pinball between sessions.  Best of all, the arcade games were set to free play.  Free T-shirts were given out by DealNews as well.

I attended sessions by fellow Knoxville Game Design member Michael Neel on Not Teaching Children Code and an Introduction to Unity.  There were other interesting sessions that I attended on network packet monitoring, functional code, REST best practices, prototyping mobile apps, and Kanban with Scrum.

Promoting Your Game with Social Media

My first talk was late on Friday afternoon.  I covered the various social media sites that can be used to promote a game and I also covered the analytics of each of the sites to measure your audience.  Many of the social media sites can be used to promote any product.  I also covered a few sites that were devoted specifically towards promoting games.  My talk did spark a lot of discussion from those who attended the session.  One person said that they found the ability to schedule a tweet in TweetDeck very helpful.  There was some interest in using the Twitter APIs and OAuth authentication.  I had written some code months ago in Ruby to pull data from Twitter using OAuth.  There was one question about when is the best time promote a new game and my best advice was continually promote through the development process so that you build a following.

Playmaker for Unity

My second talk was early Saturday afternoon on using Playmaker to develop Unity games.  Mike’s talk the previous day was a great introduction for my presentation, as it meant I didn’t have explain all of the basics of Unity and hopefully session attendees were already a little familiar with the Unity terminology.  In this presentation, I gave a demo of how to create a space shooter using Playmaker.  I had five basic steps, and I already had pre-built scenes for each step in the development process.  This made explaining things much easier, as I didn’t have to worry about doing all of the technical steps live, which can slow down the pace of the presentation.  Earlier in the week, I made a final polished version of the space shooter with models imported from the Unity Asset Store and many other special effects such as lighting, a scrolling background, and a tail renderer for the bullets.

 

Conclusion

In my opinion, the most difficult part of presenting is keeping track of time.  It also doesn’t help when your talk doesn’t end at the top of the hour, since there are usually never clocks in the room and your PowerPoint presentation in full screen covers the clock in the system tray.  The clock on my phone didn’t help, as it kept auto-sleeping after a minute.  When I’m sitting in the crowd during a session, the time seems to go by so slowly and I start thinking about how it’s going to be impossible to talk for an hour.  However, whenever I get up in front of a crowd everything seems to come naturally and the hour will fly by in what feels like just a few minutes.  I do like to cover all of my main points on my slides first, and then the remaining time will determine how in-depth I go into explaining the demo.  I did remember to bring a bottle of water with me this time, since it is really easy for your mouth to go dry while talking for an hour.

I had a great time at DevSpace, and I hope the conference continues to grow in the upcoming years.  I was really happy to be a speaker at a new conference to help get it off the ground so it will be held again for many more years to come. There is a severe lack of technical conferences in the southeastern United States, so I will do whatever I can to help establish new conferences. My only complaint was that the WiFi was spotty at some locations in the conference center.  My social media talk relied heavily on showing the different sites on the web, so I had to make sure that all of the sites were pre-loaded in my browser before I started my talk.  The projectors were a little old, but fortunately I packed my MacBook VGA adapter that I bought years ago and never used.  I definitely look forward to attending DevSpace 2016 next year!