• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

120 Neutral

About creyes

  • Rank
  1.   I understand that point of view, but respectfully disagree. I think that a MOBA like game would create some pretty interesting CtF scenarios - CC the character that's running, drops the flag and then teamfight around it. Just because it isn't the norm doesn't mean it isn't a good idea.     Regardless, I'd still like to know people's opinions on income allocation in this scenario
  2. ***I'd like to preface that this topic is about flushing out the mechanics of my idea... implementation will come later***   Hi everyone,   I'm a little bit of a gamer, but more importantly I'm a competitor. I played sports growing up (still do), I played card games competitively and ran/run tournaments for a number of activities. As my career has switched from networking to programming I've thought a bit about creating a game specifically made for competition and more importantly, broadcasting/viewing that competition.   Case studies   League of Legends is a success, there's no denying that. DOTA 2 is as well. They've created a game that people love to play and love to watch and is easy to monetize. 2 reasons it’s successful - it masks itself as being simple, and you get to root for a team. Simple gameplay mechanics - 4 abilities and a mouse Anyone can play the game, but there’s so much to master. Build trees (runes/masteries), skill progression, item builds, activatables, positioning, team compositions. All intricate parts of the game that allow for improvement but all encompassed under 4 abilities and a mouse. Simple game goal - blow up the enemies base Beauty lies in how the base is destroyed. Farm? or Farm the jungle? or Blow up the other guys? Objectives are great, creeps are great, but it’s all a means to a very easy to understand end. Cheer for (and blame a) team! If you look at almost every major sport in the world, there is a team component to be found. There are successful outliers like Tennis and Golf and Racing, but the vast majority of really popular sports are team sports. Fans get to be a part of something bigger. They can cheer for the whole team while identifying with a small part of it. Because it’s always a team, a fan can say “We won the match” instead of “He won.” Likewise, players can blame other players on their team as a result of losing. How many of us have said “I’d be in Diamond if my team wasn’t so bad.” Good thing or bad thing, excuses keep players from self-defeating thoughts and keep them playing.   Starcraft is also a huge success, but has been dwindling in popularity next to the more simple MOBA games.  I think the same two reasons why LoL and DOTA are on the rise are the same 2 reasons why Starcraft is on the downhill. Daunting gameplay mechanics - I have to control my workers… and my army? And build things in the right order? And in the right place? ALL AT THE SAME TIME?!?! Starcraft is unquestionably a harder game, and undoubtedly the better player wins 90%+ of the time. This attracts some hardcore gamers and some hardcore fans but will never win over a fanbase. It’s hard enough to explain 4 abilities per player to a non-gamer, explaining a game of Starcraft is much more difficult, and is more difficult to watch. 1v1 It’s awesome to root for your favorite player, but really hard to identify with him/her. They’re amazing at this game, they win all the time.  But it’s just that one person. Players are on teams, sure, but it’s not the same because the team doesn’t win or lose (unless it’s forced like Team League, but it’s still just 1v1 matches). Players want to wear their teams’ jersey and watch their team win, and blame their team for losses.   Room for Improvement So LoL is awesome, why change it? Well we don’t, I don’t think I’m going to make the next LoL. But there are ways to improve the idea (imo). There needs to be a scoring mechanism - kills are cool but meaningless, gold is awesome but is meaningless. All of the stats that are broadcast in LCS games aren’t accurate predictors of who is going to win. There are touchdowns in football, there are goals in Football and hockey, there are points in Basketball. In my opinion, there needs to be some sort of point-based scoring. There needs to be breaks - 2 main reasons. 1 - fans need a time to be able to get up and get a beer without missing some of the action. 2 - there needs to be a good time to run commercials. 30 minute games are a good compromise, but I think that a 45min - hour long match with semi-regular stoppages is more fan-retentive. See television viewership of football vs soccer (in the US). There needs to be a centralized focus - one of the biggest problems with LoL in my opinion. Obviously the camera wants to be where the fighting is but there are 3 lanes and 5 players on a team. The overall focus of the game is the Nexus, but the camera can’t just look at that all game.  In most other sports, there’s a ball… and even though there might be other things going on (blocking schemes, route running etc) the focus is on the ball. There could be coaching - there is definitely coaching that happens during the week in Starcraft and LoL, but not mid game. There isn’t really an avenue for it. I’m not sure this is a necessity but a coach ‘calling plays’ has always seemed like a pivotal part of sports to me. We have rotations, but how much different would LoL be if there were a 6th person on each team who was only a spectator (with only your teams vision) whose sole job was to be a shotcaller. Pretty cool huh?   My Game (so far) This brings me to my game. I feel like the core of my game is solid and done, but I’m missing a CRITICAL gameplay element that I need some help with.  Here are the core mechanics. Elements MOBA characters - I’d like to have different champions each with 3-4 abilities (including 1 ultimate). RPG elements - Leveling, income and item purchases Match Structure Game - Center Flag - There is a ‘Flag’ (some object, will likely be lore-based) in the middle of the map. The goal of the game is to get the Flag from the middle of the map to the starting box of the opponents base. Doing so scores a point. Match - ‘Pro’ matches would be played in 2 15min halves. Teams switch sides at halftime. Teams will continue to play games of Center Flag until time runs out. Whoever has the most points at the end of the match wins. Kills aren’t necessary, you can sore a point without killing a single person, but killing them probably helps (no one to defend). Breaks - between each Game, there is a 1 minute break. During that break players respawn, can switch characters, buy items etc, talk to coaches etc. Map - Typical MOBA map, starting area, (possible) jungle camps, Flag in center, jungle boss. Gameplay Characters fight for positioning and attempt to get the flag to the opponents teams base.  If your character dies he’s dead for the remainder of the Game - no respawns. That’s it…. The game has so much potential. Easy idea, complex implementation. Do you go for the flag and rush it to their base? will you die in the process? should you kill them first? How many people should be defending your base? Do we go for jungle camps and give up some points early to get a gold lead and win more points in the 2nd half? Which team comp is better for which strategy?   So here’s my problem and here’s where I think I need ya’lls help.  I am having serious problems with how to work out gold/experience accumulation. Creeps don’t work, because there’s nothing for them to destroy. The Matches are designed to be full of Games so adding towers to the enemy base and then forcing creeps would elongate Games too much (would create a ‘farming lull’ - something common in LoL games that’d I’d like to avoid). I thought about Jungle camps but was worried about that causing the same problems.  Maybe jungle camps with bonuses? Then a strategy could be 2 players try to get the flag, 1 scouts/snipes/invades, 1 farms and 1 defends and they rotate to get xp and gold? If the question becomes ‘Why do we need RPG elements?’ - I’m not sure. I think that item choices are important to add depth to the game, those can’t go away. Experience can probably go away idk. I just don’t want to run the risk of Bloodline Champions which was similar but was just about kills and too skillshot oriented and didn’t have the ‘small psychological wins’ that come from leveling and increased income. Sorry for the long rant, I wanted this to be well thought out and thorough. Thanks for those who decided to read along and would like to contribute.   tl;dr - Made for eSports game. 5v5 Center Flag MOBA. How should I do resource allocation?  
  3. First of all, I'd like to thank you @smr for all the help you gave - I learned a ton just be reading your posts. As for "picking an easy project" - that's sort of true. I definitely thought it would be easier but I'm glad it turned out to be more difficult because it's forced me to read about/I've learned a lot about oop and program design. Because of all that, I have all of the infrastructure done (can draw cards, play cards to each of the different zones etc etc) I think my final question before I put this mini-project to bed for a while (until I learn a lot more about oop, and gui stuffs) is about data-storage. I know this is a much discussed topic but I haven't really found a solid answer. I'm pretty sure what I want to do is make an XML file similar to [source lang="xml"]<card> <name>"Random Name"</name> <type>Ally</type> <subtype>Human Warrior</subtype> <attack>5</attack> <health>3</attack> <abilities>When this comes into play, gain 5 life</abilities> </card>[/source] But I can't seem to find any tutorials online about how to parse those into objects. I'd assume I make a prototype class before hand but my xml/python knowledge is zero. If someone can point me in the direction of a tutorial or if there's a better way to do this (sqlite maybe? then make all the class instances sql queries?) that'd be much appreciated!
  4. Thanks! that was incredibly helpful and exactly what I was looking for! My follow up question is another design one with a little bit of implementation. You bring up a good point that there should be some sort of "game state" class that everything interacts with like playing cards etc. I feel like this is also the place where EVERY RULES FUNCTION would go also (when ~ enters play do ~)... does that sound correct? In other words the "game state" object would contain all of the "rules objects (i've read that every rule should be made an object)" and then when a card "enters play" it checks the "game state" object and instantiates whatever rules that card has thanks again, you've been a big help!
  5. Bit of background, I've been getting pretty into programming lately and think that I have a decent grasp on most programming concepts but have never actually put my skills to the test and made anything. I've decided that I want to make a text-only card game clone (WoW tcg) to test my skills. The game doesn't have to be completely functional, but I'd like to create a structure that would allow me to one day (if I feel like it) implement a rules system etc. That means... cards can't just be names they need to be objects with attributes etc. I'm pretty bad at design, but I figured that the best way to handle gameplay was to create a list for every zone (allyZone = [], deck = [], hand = [], graveyard = [] etc etc) and then interact with the cards via the different lists. If that's wrong... let me know but it's what I could think of. Now my problem is interaction with the cards as objects in those zones, and figuring out how to design the card object in general. [source lang="python"]class deck(object): def __init__(self): self.cards = [] from random import shuffle shuffle(self.cards) def shuffleDeck(self): from random import shuffle shuffle(self.cards) def drawCard(self, hand): d = self.cards cardDrawn = d.pop(0) hand.append(cardDrawn) def viewLibrary(self): for x in self.cards: print x.name def viewNumberOfCards(self, cardsToView): for x in self.cards[:cardsToView]: print x.name class hand(object): def __init__(self): self.cards = [] def viewHand(self): for x in self.cards: print x.name def playCard(self, card): if card.type == "ally": h = self.cards cardToPlay = h.pop(card) allyZone.append(cardToPlay) class card(object): def __init__(self, name, type): self.name = name self.type = type [/source] This barebones for sure, but you get the idea. Now obviously using a string for type in card.__init__ is a bad idea, but I'm not sure of a better way to do it and I'm not sure how I'm going to store the cardData (xml, just a python file, json i have zero clue). Anyway my question for now is under hand.playCard(). When I try to use something like hand.playCard(hand.cards[0]) the compiler says that hand.playCard(card) needs to be an integer. I'm not sure how to get around that or what I'm supposed to use instead. Any help would be awesome!
  • Advertisement