RTS/TBS Simulation (need feedback)
by , 02-15-2012 at 11:32 PM (308 Views)
I need some feedback on what people think of my latest engine idea.
I have started planning my simulation game which I have thought about creating sometime ago. Its basicly like a RTS/TBS without the actual intense graphics rendering. Before each round your select your units to attempt missions against an opposing team.
Here is the structure of my table's so far.
The basic user and settings table.
battle table will be used for each game, where battleStatus is either "y" for yes, "n" for no, or "w" for waiting for oppoment.Code:CREATE TABLE `_user` ( `userID` int(11) NOT NULL auto_increment, `userHandle` varchar(20) NOT NULL default '', `userPass` varchar(255) NOT NULL default '', `userRank` int(1) NOT NULL default '0', `userEmail` varchar(255) NOT NULL default '', `userRef` int(11) NOT NULL default '0', `userRefs` int(5) NOT NULL default '0', `userImage` varchar(5) NOT NULL default '0', `userLastIP` varchar(15) NOT NULL default '', `userPage` varchar(100) NOT NULL default '', `userTheme` varchar(25) NOT NULL default '', `userPageTitle` varchar(100) NOT NULL default '', `userRegDate` int(12) NOT NULL default '0', `userActCode` int(5) NOT NULL default '0', `userLastActive` int(12) NOT NULL default '0', `userGender` enum('Male','Female') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Male', `userCredits` int(10) NOT NULL DEFAULT '0', `userURL` varchar(255) NOT NULL DEFAULT '', `userURLTitle` varchar(50) NOT NULL DEFAULT '', `userText` text, PRIMARY KEY (`userID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; CREATE TABLE `settings` ( `settingID` int(11) NOT NULL AUTO_INCREMENT, `settingType` varchar(20) NOT NULL DEFAULT '0', `settingResult` varchar(3) NOT NULL DEFAULT '', PRIMARY KEY (`settingID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `settings` (`settingType`, `settingResult`) VALUES ('version', '1.0');
Code:CREATE TABLE `battles` ( `battleID` int(11) NOT NULL AUTO_INCREMENT, `battleMapID` int(11) NOT NULL DEFAULT '0', `battleUserID1` int(11) NOT NULL DEFAULT '0', `battleUserID2` int(11) NOT NULL DEFAULT '0', `battleStatus` varchar(1) NOT NULL DEFAULT 'w', PRIMARY KEY (`cPartID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0;
the simple race and units. races not really required but could add extra fun to game allowing different units for each race/team/clan/gang
Code:CREATE TABLE `races` ( `raceID` int(11) NOT NULL auto_increment, `raceName` varchar(50) NOT NULL default '', `raceImageFType` varchar(5) NOT NULL default '', PRIMARY KEY (`raceID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; //dps = damage per second CREATE TABLE `units` ( `unitID` int(11) NOT NULL auto_increment, `unitName` varchar(50) NOT NULL default '', `unitHP` int(3) NOT NULL default '', `unitAtt` int(3) NOT NULL default '', `unitSpd` int(3) NOT NULL default '', `unitRange` int(3) NOT NULL default '', `unitDPS` int(3) NOT NULL default '', `unitImageFType` varchar(5) NOT NULL default '', PRIMARY KEY (`unitID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ;
maps table where users will be virtually battling it out on. It will basicly be one image (an Image Map)
mapPixelYard is how many yards each pixel is which will use the unitSpd for when sending them on missions.
mapPlayers for how many players can play on map at once.
map_locs will be all the places on the image Map from maps.
locMapID refrences the map ID.
locXY is the starting x,y of the image map location
locWidthHeight will be the height and width of the x,y map location
I will use a cop and robber game as an example hereCode:CREATE TABLE `maps` ( `mapID` int(11) NOT NULL auto_increment, `mapName` varchar(50) NOT NULL default '', `mapPixelYard` int(6) NOT NULL default '', `mapPlayers` int(2) NOT NULL default '', `mapImageFType` varchar(5) NOT NULL default '', PRIMARY KEY (`mapID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; CREATE TABLE `map_locs` ( `locID` int(11) NOT NULL auto_increment, `locMapID` int(11) NOT NULL default '', `locName` varchar(50) NOT NULL default '', `locXY` varchar(10) NOT NULL default '', `locWidthHeight` varchar(10) NOT NULL default '', PRIMARY KEY (`mapID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ;
I decided to do away with buildings so the game isn't really focused on pumping units, so instead its based on missions instead. I am still pondering on what mission's will be addeed such as "Sending X units to Recruit", "Send X units robbing", ect. for robbers. For cops it would be like "Sending X units to Recruit", "Send X units investigating robberies" or something. Idea is not set in stone and could be used for much more then just a cop and robber game.
training will increase all of a units specific stat that was trained such as defense.
ReqTrainingID is for multiple training of same thing
ReqRounds is how many rounds it will take to train the stat
reqCredits is incomplete. I am debating on how the money system will work right now, so if anyone's got any idea's on that. I am interested.
I created a seperate table for the rewards of the training just in case that more then one stat would be increased. Depending on how the money system will work and if any inventory system will be used, I may be adding a training_requirements table. ;\
Note: this is not finalized. I would like to hear people's suggestions. Though the basic concept of the game is finalized. Furthermore; the game each player in battle will select there actions, then once they are both done selecting there action, the round will begin.Code:CREATE TABLE `trainings` ( `trainingsID` int(11) NOT NULL auto_increment, `trainingsUnitID` int(11) NOT NULL default '', `trainingsReqTrainingID` int(11) NOT NULL default '', `trainingReqRounds` int(2) NOT NULL default '', `trainingReqCredits` int(2) NOT NULL default '', PRIMARY KEY (`trainingsID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; CREATE TABLE `trainings_bonuses` ( `trainingBonusID` int(11) NOT NULL auto_increment, `trainingsBonusRefID` int(11) NOT NULL default '', `trainingBonusType` varchar(5) NOT NULL default '', `trainingBonus` varchar(10) NOT NULL default '', PRIMARY KEY (`trainingBonusID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 ;










Email Blog Entry
