Friday, October 15, 2021

Game Controller Assignment - Final

This week was texturing and final renders. For this assignment, I used heavy references of a Sega Dreamcast controller to help me figure out the right color and texture I needed for the controller.

Controller Ref

The Analog stick is Shiny!

I had to make some Alpha stamps for the logo and a few other details on the body of the controller. These were:

  • Dreamcast Swirl Logo
  • Dreamcast Text Logo
  • Dreamcast Logo outline
  • U indent around screen
The logo was very simple - I took a vector of the logo, changed the color of the components I needed to white, and added a black background. I had to separate the swirl and text parts of the logo as they are different colors. As for the outline, I combined a rounded rectangle and an ellipse, and added a rounded transition between the two, and repeated the same color changing process. Finally, for the indent, I created the shape using a circle and rectangle, made the outline white and fill transparent, and added a black background. I exported all of these as JPEGs and imported them into Painter. For the ABXY and Start buttons, I just used one of the text alphas in Substance. 

Outline
Swirl Logo












One of the biggest problems for me was that I ended up using the wrong model (low poly) for texturing, and had to redo it. Fortunately, I was able to transfer all of my materials and masks over using exports and adjusted it to fit the high poly, subdivided model. It went relatively smoothly, with only a couple of spots that would need to be redone completely. 

Rendering was easy as well. I've already done it a handful of times in 350 - my 3D scanning class - so it was a very simple process for me.

Final Render


Sunday, October 10, 2021

Rogue Light: Interstellar Post 1

The game that I am working on is called Rogue Light: Interstellar. It’s a idle game centered around mining and resource collecting, with the player operating a ship that goes from star system to star system, mining resources from different planets and selling them to gain a profit.

For this sprint, my tasks mainly centered around game design and programming.


Completed:

  • Main Menu (Programming)

  • Spaceship art (Art)

  • NPC ship interactions (Game Design)

  • Buying/Selling economy for planets (Game Design)

  • Programming buying/selling economy for planets (Programming)

  • Programming NPC ship interaction (Programming)

  • Game Win requirements (Game Design)

In Progress:

  • Game Win (Programming) 

Incomplete:

  • Optimized build test (Programming)


The Main Menu was the first thing I created. While it has not been implemented in a prototype and needs to be updated to work with the current iterations of the game, it functions and will be worked into the final product. This was a fairly easy programming task as I’ve created menus in the past, and will continue to update this feature of the game as we create an official rule sheet and develop the Save/Load functionality in the game.

The Code!
The Product!




The next task was creating the Spaceship art. I created the piece to be modular to allow upgrades to be added easily from a visual aspect. I did a bit of research to find the kind of spaceship we wanted to use for the game, and settled on one that was inspired by a shuttle rather than a rocket. As more and more is completed within the game, I will be adding more upgrades for the ship when they are created. 


The NPC Ship interactions were created to add some action to the game while players waited to get their income and resources. These interactions include buying, selling, trading, missions/quests, buying intel, and trivia quizzes. The buying and selling are similar - the ship will request to either buy or sell you an item at a randomly generated price in a certain range around the “standard” price. Players will need to determine whether or not the price is worth it based on experience, their current situation, and other factors. The trading system is similar, except that the ship will request to trade a certain amount of a resource for another amount of another resource. The missions/quests are quests that the ship will ask the player to do, and will reward players if they accept and complete the quest. The intel is information that the ship is selling to the player that will reveal other star systems and information about certain areas. The trivia quizzes are small quizzes that the players can take part in and get rewards for answering questions correctly. Topics will pertain to in-game information. At the moment, I only have the buying/selling system programmed, however at the point my group is at, this is the only interaction that we can realistically include at this stage. 




Buying/Selling with ships - still a work in progress


The Buying/selling economy of the planets was the next aspect I designed. There is a standard price for each resource, but there are factors that affect this price for each planet. There are 3 total factors that affect the selling price of resources:(1) Whether or not the planet produces the resource the player is selling, (2) whether or not the planet uses the resource the player is selling, and (3) how large the population is. For (1), if the answer is yes, then the selling price is .25 the standard price of the resource, but if the answer is no, then the selling price is the standard price of the resource. For (2), if the answer is yes, the selling price is 2 times the standard price of the resource, bu if the answer is no, then the selling price is the standard price of the resource. For (3), there are 3 classifications of populations for star systems. Popular, Balanced, and Sparse are the classifications. Popular star systems will have a multiplier of 1.5, Balanced has a multiplier of 1 (no change), and Sparse has a multiplier of .75. All of these multiplier stack as well. For example, a player sells Iron to a planet that needs it to produce a product (x2), but has a Sparse population (.75). If the standard price of Iron is 50, then the resulting selling price is 50 x 2 x .75 = 75. Players will have to strategize where they sell certain items and factor in all variables. I have programmed the first two factors into the buy/sell system of the planets, as the third variable still needs some work. However, for the moment the two factors are enough to add some variety and strategy into the game.


The code that determines the price of a resource


I was also assigned the task of creating the requirements for winning the game. For the game that we currently have, the requirements are: Have 50 million dollars (the number is adjustable as we fine tune details and understand how players earn money), have 5 collectable items, and have spaceship parts all upgraded to level 5. Players will get collectable items by  creating a stable sustainable economy within a star system, in which players will receive a star gem that the star system grants them. For the moment, there will be 5 in total.


So far, I feel like I’ve fallen behind on my tasks. I do believe that part of the reason is that I have invested a lot of time into researching how to program certain features in Unity, especially since my knowledge of Unity lies mostly in programming platformers and not idle games. However, with some assistance from my project lead, who is also our main programmer, I was able to figure out how to program these things in. I do spend a lot of time brainstorming the logic behind the programs I end up creating which speeds up the process a lot. In the future I hope to manage my time better and get more points done for the rest of the sprints.


Final Course Reflection

  Going into this course, I had no idea what to expect. Even with the syllabus, it told me nothing of what I would truly end up learning – a...