Tuesday, December 6, 2011

Elemens Game Functionality Demo (Light Flare v1.0.0)

As I've stated numerous times before, the video game Elemens that I'm developing in Microsoft XNA as part of my research will provide the opportunity to battle miniature creatures known as Elemen while heavily modifying and upgrading your Elemen to adapt to a massive amount of battle variables. I am now releasing a stable version of what I refer to as a "Test Skeleton" of the Elemens game, with this Test Skeleton featuring nothing more than the essentials of a battle. Download the file here, and read more on the installation and the location for other releases here.

The released Version 1.0.0, codenamed Light Flare, features basic instances of the battle mechanics with dummy sprites and images used until the actual game's images are finalized. This version does not focus on the customization of the Elemens, which will be analyzed more heavily in upcoming releases. The players have the option of battling on one of two randomly selected stages while controlling two Elemen, Susie and Jams. With this release, one can test out the capability of the movements, the usage of the Skill system, and view all of an Elemen's statistics as depicted below.

Elemen Statistics

Elemens battle by utilizing their Skills to whittle down the HP of opposing Elemens. Elemens possess a variety of statistics that determine the effectiveness of their usable Skills. Providing an Elemen with Skills that correspond to its best stats with will provide ease in obtaining victories.

HP: Hit Points. Determines the vitality of an Elemen. When this is completely depleted during battle, an Elemen will no longer be able to fight.
Strength: Determines the power of physically based Skills.
Mind: Determines the strength of magically based Skills.
Soul: Determines the effectiveness of moves that have status or healing effects.
Defense: Determines the resilience of an Elemen.
Speed: Determines how swiftly an Elemen can move in battle.
Spirit: The amount of energy an Elemen has to use its Skills.

Currently, I plan to develop Elemens so that each Elemen will be initialized to have a random set of statistics, with all stats starting near predetermined model values. In addition to these statistics, an Elemental System will play a role of heavy importance in Elemens, which will be developed and tested later.


Elemens fight via utilizing an assortment of skills. It will be developed so there is a plethora of Skills available for an Elemen to select from and unlock to use in battles, each varying in power and purpose. In Light Flare, there are three specific Skills both Susie and Jams have in their arsenal.

Burst: An Elemen shoots out a burst of energy. It is a Mind-type Skill.
Punch: An Elemen lunges forward and unleashes a punch. It is a Strength-type Skill.
Shield: An Elemen produces a barrier from oncoming Skills. It is a Soul-type Skill.

By utilizing these Skills effectively, an Elemen can effectively reduce an opponents HP. Skills in upcoming versions of Elemens will all be imbued with specific Element Class. Each of the Classes such as Fire, Water, Earth, etc., will have disadvantages and advantages to other Elemental Classes, meaning certain Skills will reduce in strength or completely dissolve if colliding with a Skill with a stronger Class. Each Elemen will also become imbued with a specific Elemental Class that will maintain the same weaknesses and resistances to specific Skills.

Elemens Game Structure

Being an XNA developed game, the Elemens coding will be required to follow a particular structure. The above chart represents the five different sections of coding which XNA games must adhere to in order to function properly. The Initialize method is for the instantiation of the necessary objects and statistics for the game. Load Content is used by the XNA software to assign images and other materials to specific sprites, and musical tracks and sound effects to appropriate sound files. Unload Content is essentially used to save data acquired in game to a specified location on file. Update is used to update any necessary variables in the game. Finally, the Draw method is used to display the visual aspects of the game on screen.

The main file Game.cs is the primarily encapsulating coding, in which all other code is played. It is from this file that all coding is run. I've developed a BattleManager.cs class which contains all the information regarding a Battle. It possesses and relays information about all Elemen that are currently battling to each other, while updating information about its current stage in Stage.cs. Lastly, Elemen.cs functions as the coding that maintains each Elemen, including its personal Skills and statistics, and eventually its customized appearance and Elemental Class among other specifics.

As I continue to work on updates to Elemen, they will be released here. Continue to check this spot for the latest updates.

Sunday, October 23, 2011

Customization Engine Model


My current REU focuses on the development and application of three projects. The first project is a video game developed in the Microsoft XNA Game Development Studio, titled Elemens. Elemens is a continuation of the game started during this Summer 2011’s REU, and will continue the same theme of heavy player customization to strengthen small Elemental Creatures, or Elemens, for high octane battles. The second portion of the project will be to construct a template to assist in construction of player customized graphics for the Video Game Development community, dubbed the Customization Engine Model. The last project of the REU will be to assist Jonathan Fisher with the Football Fan App by using it as a platform to strengthen our Android Developmental skills.


The purpose of the Customization Engine Model is to provide a platform by which members of the Video Game Development Community can utilize a provided layout to assist with the graphical construction of in game images, specifically player customized characters. I plan to develop this template by comparing the most relevant games with thorough and intensive character customization features and extracting the most efficient portions of each. I will perform an extensive analysis of specific video games and note the potential benefits to character customization provided by each. I will construct pseudo code based interpretations along with theoretical assumptions of how to apply these methods, ultimately combining each set of coding to obtain a model with characteristics to help develop a working in game, character image producer based on player customizations.

There are a multitude of games that have a heavy level of character customization, expanding through several different video game genres. Video games that I currently plan to analyze include games from The Sims Franchise, Elder Scrolls IV: Oblivion, Soul Calibur IV, MapleStory, and Madden NFL 12. From this selection, we have two Role Playing games (The Sims and Elder Scrolls series), one fighting game (Soul Calibur IV), one MMORPG (MapleStory), and one sports game (Madden). By not limiting the selection of video games to one or two specific genres, I will be able to fully encompass a multitude of features that may be specifically invented with features that may prove necessary for different genres. This week, I’d like to devise a strategy to appropriately categorize several important factors that go into player customization in video games, such as how the images of customized players are rendered, and whether a player’s sprite is merely a combination of overlapped images or actually one single fully rendered model based on a player’s input. I will be starting with the The Sims series this week to begin this process.

Saturday, July 30, 2011

Conceptualization, Customization, Elementation, and Education

The preceding clip demonstrates the implementation of a defined video game concept through the Microsoft XNA game development environment. "Elemens", as I have dubbed it, is the latest project in development that I plan to implement into my REU research. The clip provided represents the current status of the project, still in it's early stages of development, and containing models used merely as visual references for testing purposes. When I attempted previously to begin the construction of an XNA game for REU, I lacked what I feel is the pivotal instrument used in the creation of today's great games: a strong concept.

I will admit that my initial introduction to XNA was not as smooth as I hoped it would be in 2009; I was honestly intimidated by the massive capabilities for game creation that the software harbored. An engine such as XNA could quite literally be used to create whatever possibly could be imagined, and as I've stated before, the only potent limitation for the games would be the creativity of the designer. Albeit I've always considered myself a creative person, the possibility alone to do anything I desired with this software left me conceptually impaired. I attempted to create games to merely test the possibilities of XNA without having a firm concept on which to build, which resulted in several restarted projects with nearly the same process. Now, after thoroughly conceptualizing an idea which I've harbored for years, I feel certainly capable of constructing and testing a complete video game. "Elemens" is currently designed to be a single and multi-player game which will focus thoroughly on player customization utilizing lighter graphics, while focusing on intensely detailed animations and battle scenes.

Players will control Elemen, standing for Elemental Men, who will be pitted together in elementally charged, high-octane battles. Player customization of Elemens is key for victory, as each Elemen will be fitted with a certain Elemental Affinity which will cause it to possess a natural advantage or disadvantage to Elemens of other Elements. In addition to an Element, each Elemen will possess a slew of statistics such as Speed, Health, and Power that will help them during battle, and gradually improve as they gain victories. Players will have full control over the statistics of Elemens, along with the growth provided for "Leveling-Up", or gaining enough victories to earn a reward in terms of statistical growth.

Customization is a factor that I personally feel is necessary in today's games. The completely linear plot line and player involvement that is all too common in several of today's popular games causes me to lose my interest after successive plays. In addition to building and testing Elemens, I'd like to also research the capabilities of the XNA engine in terms of the customization possibilities. Several of today's best character customization engines rely on the use of 3D models which are rendered during the game for use, with characteristics which modify specific portions of models. This is not often the easiest to visualize programmatically for a 2D game, as generally, all intended usable images must generally be included into the game prior to loading and cannot be significantly altered during game play. Only basic manipulations such as size, tint, and rotation changes seem to be the possible for 2D game character customization. I'd like to research the possibility to have heftier systems of manipulation in XNA which will result in a more thorough, and firm character customization experience for players, with less work for programmers.

Lastly, I'd also like to utilize this project source as a base to view how the integration of education into video games can yield benefits to the community. After a previous meeting with Dr. Xie, it became apparent how video games could potentially utilize their massive influences to leave an educational or beneficial impact onto those who play them frequently. From personal experiences, I've viewed games which were designed with the sole purpose of serving as educational platforms do not lure me into potential purchase as heavily as other games do. In fact, I can say that I expressly purchased the two educational games Brain Age, and its successor Brain Age 2. These two video games are the only 2 games in my arsenal of literally over 100 video games for various systems which were designed to be educationally stimulating. I plan to test the effects of integrating an educational complex into an existing game which was not explicitly made for educational purposes, and finding whether players would prefer to enjoy such a game opposed to a specifically education based one. I also plan to make comparisons to the current levels of educationally stimulating material in today's common games, and find what makes educational games differ. This will be an interesting topic to discuss, especially since several popular games such as Portal, which are not labeled as educational games, most certainly challenge the player to think intuitively to solve the game's challenges.

Overall, the various aspects discussed in this post will become the driving force behind this new project I'll be undertaking. The progress of the observations will be thoroughly recorded, and the advancement of "Elemens" will be frequently released for review.

Saturday, July 16, 2011

"Football Fan" App Prototype

Completion of the "Football Fan" App's basic components draws nears. It possesses four distinct processes to select, including viewing Stats, Roster, Coaches, and Schedule.

Pressing Stats will provide the user with the option to select from either Team, Individual, Defensive, or Combined Stats. The Player Stats when pressed will provide the user with a complete biography of each player, along with their total accumulated statistics on their own separate page.

The Player Roster provides a list of all of the current players listed on the Roster. During this current developmental period where we are relying on manually inputted player data, we utilize an Excel spreadsheet to convert data from the table format found on the official website to one that can easily be copied and pasted into an array of Strings. At any time there is a change of the current football roster by the school, updating Roster.xls, and then copying the new output data will allow for almost instantaneous updating of the roster inside of the App.

The Coaches function will work similar to the Player Bios, and will display a screen with information in regards to all of the current Football coaches. Lastly, the completed Schedule feature displays the current schedule for the upcoming semester! It provides destinations of games, along with scores and times they will be aired.

Additional features including Player Search, Coach Search, Roster sorting functions, and overall best statistics sorting functions have been considered and will be worked on upon completion. Aesthetics will also be concentrated on more heavily upon the completion of the primary components. Working on the version for WSSU will become as simple as updating the information in Roster.xls along with a few other features for Coaches to update the information to appropriately represent each school.

Thursday, July 14, 2011

More Visual Studio 2010 Experimenting

Over these past couple of weeks, I have been experimenting with a feature in VS 2010 called IntelliTrace. IntelliTrace makes debugging easier by recording the series of events happening within it and in turn alows you to play these back. However  IntelliTrace collects less information than one might need at debugging and also has a slight performance overhead when turned on. I tried debugging a couple of programs for practice utilizing this feature and some without it and I must say that IntelliTrace is a rather convenient addition.

Monday, July 11, 2011

Systematic Testing For Robotic Car Systems

These past couple weeks I have working with and testing robot car systems with the Tekkotsu platform. I have moved, from that stage of the process, to putting the work that I have done into a paper. I have also been communicating with Khiry Arnold about developing a football app on the Android Market in which he talked about in a previous post.

Khendr'a Reid

Thursday, July 7, 2011

"Football Fan" App Prototype

During this Summer, I am working alongside Jonathan Fisher and Khendr'a Reid to develop an Android platform application whose purpose is to serve the user with a variety of collegiate football related information. This application entitled "Football Fan", will provided data including Team Schedules, Team Rosters, Player Statistics, Team Statistics, among other information. This code will be used as a basis to perform and examine the capabilities of various forms of testing on a newly developed Android code base (which is written in Java). By utilizing existing reviews on the analysis of White and Black Box Testing for Android apps, I will begin to develop my own manners on these forms of testing, and record results for these. The App upon completion will be capable of displaying these stated statistics for two Universities: North Carolina State University along with Winston Salem State University. It will also be considered for release on the Android Market if it is deemed efficient.

Football Fan is intended to utilize an XML Parsing code to obtain information online from the official websites representing each school's football data. However, due to the volume of the data within each webpage's source, parsing XML from them via coding is proving difficult. While we work on effectively completing the XML parsing for Android via SAX Parser, we plan to manually enter information for each player and team.

Khiry Arnold

Monday, June 20, 2011

REU progress

Exploration of Python

After meeting with Dr. Xie, I started my research by exploring the depths of use python coding in various venues. The main venue I was introduced to was Visual Basic 2010 and I combined this with my previous knowledge of IDLE platforms such as VPython and Pygame. I created graphic, animated,non animated, and interactive (games) programs. After trying out these various Python platforms, although Visual Studio 2010 is easy on the eyes, basic IDLE platforms seem to still be easier to use, this could be biased based on my previous familiarity, but after extensive testing I believe this to be true. My next endeavor will be comparing ease of use of and efficiency of python to other languages and platforms. 

FSM-based testing for robotic programs

In these past two weeks I have met with Dr. Xie. He helped me focus my research in FSM based testing for robotic programs. I am currently developing different programs with the Tekkotsu platform using C++ style programming as well as creating black box testing techniques for each program. These programs are being executed on with the iCreate Robot.