Our project will be a video game that employs a strategic turn-based battle system. The battle system will take the player’s characteristics into account as well as the opponent’s. The opponent’s characteristics will be randomly generated, but normalized to be similar to that of the player’s. The The player’s characteristics will start randomly, but the player will be able to give weight towards specific characteristics that he or she deems to be most important. The player’s characteristics will also “level up” over time in order to give the player a sense of earned progression. The opponent’s moves will be determined by an artificial intelligence system, and the player’s will be selected from a list of predetermined actions. The video game will be two dimensional while inside of a battle sequence, but when the player is exploring the world, the graphics will be isomorphic, meaning they will be three dimensional, but at an angle. The overworld and its characters that the player can explore and interact with will be themed around the University of Tennessee, Knoxville.
The motivation of our project is for each of the team members to get more experience with building a full project from start to finish and with creating video games. We all seem to agree that creating different types of software will help to hone our programming skills, especially a video game which is usually not the type of project assigned in undergraduate academia. We are also excited at the opportunity to create software that people may get enjoyment out of using.
Although the genre of isomorphic strategy video games is already well explored and defined, our project would be novel due to its theme of the University of Tennessee, Knoxville. This unique theme will help our project stand out in its current market; the theme also enables us to target a very niche and specific audience with our project: the collection of gamers who are a part of our community that also enjoys playing turn-based strategy games.
Our team members have a somewhat diverse background. Our group is made up of four computer science majors: Parker Holt, Jacob McLemore, Dylan Rainwater, and Jinxiao Yu. Parker Holt has experience with unity and basic C++ game development which will be valuable to this project because the project focuses on game development, specifically unity. Jacob McLemore has experience developing numerous small personal software projects and has also worked on a few medium scale open source software projects which lends itself well to the planning required to successfully pull off a project like this. Dylan Rainwater has experience with video game development on various platforms which will be valuable to this project because he is at least somewhat familiar with the development process of video games, even though his experience is with smaller projects utilizing different technologies. Jinxiao Yu has experience with racing game development on unity which will be valuable to this project because of the experience with unity would be easy to hand on the project in a familiar environment and develop racing game could gain knowledge about unity physical engine, so this will help to develop character moving and attacking action. Our collection of varied experiences makes us a good team to collaborate on this specific project.
The strategy role-playing game has been a novel classic in the gaming industry for many years. However, during all this time there hasn’t been much differentiation between titles during all these years. These games, even now, are highly coveted, but we feel with switching up the formula, there would come a much higher demand.
Our games’ main target audience would be people of the already prevalent community of SRPG players, as well as newcomers, who merely enjoy playing video games. Our game deviates from the formula of the old-school style SRPG, but not to the point that that an old-timer wouldn’t understand exactly what’s going on. It has been shown that more western gamers are delving into more Japanese-style games, and we hope to appeal to those who are looking to make the plunge, and can help serve as a good crossover for people who are interested.
Currently, many of the isometric SRPGs come out of Japan and appeal to those who like Japanese style games. The last of this type of game to really make a breakthrough in the West was probably Fire Emblem, which is still a product of Japan, under Nintendo. A comparison between that game and Final Fantasy Tactics, which came out in 1997, would reveal that not much has changed. While we are sticking to the 2D isometric formula, we are using 3D game models to allow camera shifting, rotation, and greater detail to our maps. With this, we are able to enhance the movement. One complaint about this type of game would be that you are unable to quickly move the camera from place to place. With our movement implementation, you will be able to quickly click on a character and drag him to your desired location. Previously, you could only move with the arrow keys. We also offer this system to not compromise on a veterans’ experience, if this is their prefered playstyle.
With this game, we are not attempting to reinvent the wheel by any means. Another small tweak that we came up with, was a focus on bigger maps. Since the ‘90s, the focus has always been on maps approximately the size of 10 blocks by 10 blocks, with our systems we should be able to expand that to much larger sizes.
Due to our time constraint, story will not play a big factor in our game, however, this idea is becoming more and more prevalent in the industry. We think that our newfound systems should take the foremost focus of our game, as well, so this is not a big concern.
Another big aspect of our game, is the focus on randomness, such as random encounters and a randomized map. This is a crossover that we would like to take from other games that have been proven successes that has not made the move to SRPGs yet. Whereas many SRPGs are currently linear story-driven type games, with our low focus on story, we are able to try to bring elements, such as our randomized maps to this genre. Similar industries, such as the dungeon crawler, with Diablo 3 and Path of Exile, have tried this with much success and we hope to find that same success in our game.
Unity, many things are already done for us, such as simple physics and setting up collisions. Many of the basic properties of a game are right at our fingertips, however, some of the more advanced systems will take many scripts and systems to complete. We plan on using the C# language as our scripting medium, as it has much in common with a language that we all know well, C++.
Some of the systems we plan to implement would be a movement system, combat, dialogue, and character statistics. Outside of this, we will determine at a future date our progress and continue with new systems if we have time. Within the movement system, we plan to be able to move with either the keyboard or mouse, allowing the user to play in both popular fashions. There will also be camera rotation, which is an interesting choice for a SRPG, considering the game is isometric. The camera will rotate in a 90 degree fashion to preserve the perfect desired angles.
Seeing as how we have decided to go with a randomness factor, we will have a map generation utility that will randomly generate us maps given a specific layout, such as whether or not we want the map to be hilly, which tileset preset we want to use, and how large to make the map. Perhaps if the map is extra big, we can use a chunk layout that would be able to expand to kingdom come. This would allow for huge maps that would allow for randomly generated events in specific chunks. We will also allow for the use of specific maps to be saved to files and loaded, which will allow us to craft specific maps that don’t belong as random generations, such as a castle, or a small story event, or even a shop to buy and sell items to the player.
In our game you will have to manage multiple characters, and also defeat multiple enemies. There will be a player script which defines which team each character is set to, as well as stats that define them, such as the player level, strength, intelligence, etc. These stats will be incremented as you go along in the game, winning battles. They will be used to calculate each hit you make, how far you can travel in a single move, and impact certain dialogue options. The dialogue system will be simple, but have various choices, such as saying “Yes, of course I want to fight.” or “No, get away from me this instant!” While this will be one of our more basic systems, it really doesn’t need to be too robust to be able to allow for a lot of gameplay options. Perhaps, as one of our sprints, if we have time, we could add more customization, more than just a simple yes or no, and even a small reputation system with certain vendors or NPCs.
I believe the most advanced system that we need will be the combat system. This is where the real bread and butter of an SRPG is, and where we need to really shine. For example, we could have abilities that knock characters back, stun them, or even put them to sleep. These will be a part of our sprints. Even further beyond that, we could add magic or items that project spells onto different characters with varying results. Within the combat system, there will be pathfinding and a way for the enemy AI to know how it wants to defeat the player.
There will always be more sprints for our game, whether it be adding advanced shops, a looting/inventory system, talent points, or a class system, there is just so much to do with this type of game. It is really up to us to pour ourselves into it and make it the best that we can.
Our project will be built to run on Windows, Linux, and MacOS/OSX desktop systems. This will make sure that our final product will be able to reach the largest possible audience. Luckily we can avoid most of the overhead that’s usually involved with creating cross-platform code by using a professional game engine.
Unity is our game engine of choice. Unity is a popular game engine that allows developers to create games using both its built-in visual editor and the C# programming language. Unity can generate code and executables for all major operating systems including our target platforms of Windows, Linux, and MacOS/OSX. The use of Unity also helps streamline some aspects of the game-development process including user interface design and asset creation.
The team will be using a variety of code editors, but they will all adhere to a team-wide code style guide. This makes sure that the already tough development process isn’t further hampered by inconsistencies within the existing codebase. Git will be our team’s preferred method of source control. This is mostly due to already having some familiarity with Git and also due to the class requirement of using GitHub for storing our work.
Our development process of choice will be feature-based development using an agile process. The team will participate in both daily meetings through an online messaging service such as GroupMe, Slack, or Discord to assess progress and also bi-weekly meetings to reflect on the previous sprint and decide what features we wish to be in our next sprint. To assist in creating our sprints and tracking progress we will keep track of a backlog of features, a list of what we’re doing now, and a list of what has already been done. This will hopefully facilitate constant progress on the project and robust components throughout.