Skip to content

Realization of a Fully Custom Engine

JakeSamiRulz edited this page Sep 22, 2015 · 1 revision

Introduction

Okay, Custom Wars Tactics is an engine about making the game of Advance Wars customizable. When we were developing for PC in the past, it was a really realizable goal to make the entire engine a sum of data sheets. Now with mobile emerging, that dream becomes harder and harder as the safety and integrity of our program is put under pressure. It came obvious that another solution was needed.

In order for this game to keep in the spirit of customization, setps needed to be taken to make the game feel more and more as though it can be customized. We needed a way to allow users freedom to change the game, without us having to limit the services available to users online.

The Plan

The idea is to make each game item have a disable and enable switch. To put it in a better way, each item in the game will have a way of disabling itself. For items that may conflict, they will be grouped into a list and only one can be selected at a time. These items will be called "Modification Switches".

Currently, there will be two distinct places where a user can perform changes, before the map is selected and after the map is selected. Items that will change the game structure will have to be changed before the map is selected. However, things like choosing a CO from the list and choosing teams should probably occur after the map is selected.

The role of the data sheets

One would think that the data sheets should be deprecated. However, I have a different use for them. Instead of the data sheets representing only one item, each data sheet can hold an ID that'll make them stand for a modification.

For example, there are 4 different types of infantry units (AW1, AW2, AWDS, and AWDoR). Instead of placing all the unit stats on one sheet, we can make four sheets and have the switches be an array that selects between the four. In this case, we will never have to worry about conflicts and our game can always expand to include new types. It also expands the game in where people can mix and match unit stats from different games with minimal conflict.

Since each unit will be following its own actions, all we have to make sure is that the rules they follow doesn't conflict with the game.

Modification Selection - Before the Map is Selected

Modification switches that do drastic changes to the game structure should be selected here. This area is reserved for Commanding Officer bans, Unit Bans, and possibly Map Bans. It will be the place where people select the Damage Formula they want to use, and whether powers are allowed in the game or not. It can be argued that things such as funds and weather conditions should be decided in this section as well.

Game Selection - After the map is Selected

Items here should not dramatically affect the game. The player should be allowed to select the team, the Commanding Officers they want to play with, and the side they are on. They should also be able to change minor settings like whether they want battle animations, and how they want the game to operate.

About Commanding Officers

This is a pretty weird suggestion. But I think the best move would be to have each Commanding Officer have five slots to fill in data, even if that data is empty.

  • Daily Slot
  • Commanding Officer Zone Slot
  • Power Slot
  • Super Power Slot
  • Affinity Slot (just to hold the affinity stuff)

The reason is that each mode of play changes what is available, and players may want to play with older Commanding Officers in a new game. This will allow us to ban individual slots of powers and allow us to fit in more types of Commanding Officers.

Quick Conclusion

This is only a start of the idea. But the main idea is to remain flexible in what we build. Upon request, a larger more thorough document can be written, but this is just here to get things started in the right direction. Hopefully, if we clearly define where to split the data, we can make effective on/off switches that'll give a lot of power to us and the users of the game to craft their own experiences.

Clone this wiki locally