Jump to content
  • Advertisement

AntHillPlan

Member
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

2 Neutral

About AntHillPlan

  • Rank
    Newbie

Personal Information

  • Role
    Programmer
  • Interests
    Business
    Design
    Production
    Programming

Social

  • Twitter
    AntHillPlan
  1. This is Week 5 of an 8 week game dev. A link to the PC browser version is here. This week I added 3x3 tile flips and help screens. The new 3x3 flip looks like this in action. Latest iOS beta version link on TestFlight https://testflight.apple.com/join/IJDl9FXC There were lots of edge cases to think about in the design and code. Such as flipping tiles off the board area and flipping nonexistent tiles from off-board to on board. I just destroyed tiles when the flip moved a tile off-board. For moving time from an off-board area on to the board I made the new tiles empty. Also handling moving from one tile to another inside the 3x3 flipping area, while bouncing off edges on the permitter of the 3x3 area. The icons for the 3x3 flips have a red "you are here" dot in their centers and faint grid over them. This will be more useful if I add 2x2 or off center flips later. The flipping code is generalized to NxN but only fully test for 3x3. Similarly off center flips have been coded but I have not tested all edge cases yet. The generation of cooldown icons and buttons is not automated yet. Since making all off center 3x3 and 2x2 powers would mean an addition 88 icons I do not want to do that by hand. The power balance system I mentioned last week is done. The red lines show how much a cooldown is increasing and the yellow mark shows that a power is at its original fastest cooldown. If a beginner is just having trouble staying alive this won't have much effect, but once a player is living past 20~30 flips using all the powers about equally become important. The power/cooldown game object is getting more complex. The help screens use TextMeshPro to add icons as new glyphs. TextMexPro is included in Unity as a package, so it is not as integrated with the rest of Unity as the rest of UI but it is free and works well. Also, the documentation is separate. It feels like I did not add many features this week but, learning how to make icon glyphs and then making them was time consuming. Same thing with all the edge cases in generalized NxN flipping code. Thanks for reading. Please try out the game on Kongregate, feedback is always welcome.
  2. Latest iOS beta version link on TestFlight https://testflight.apple.com/join/IJDl9FXC This is Week 4 of an 8 week game dev. A link to the PC browser version is here. This week's focus is on new powers and a party system. The top 2/3 of the screen is the same. At the bottom, there is now a 5 member party. On the left is the leader, who will be on the board. The next 4 members allow you to use their powers. If the members are in the same theme as the leader their powers will take twice as long to cool down. If they are from a different theme they take 4x as long to cool down. In the upper part of the display solid grey characters are already in the party so can't be added to the party. Solid black still means unacquired. The arrows are used to add a character to the party. Powers new powers are U-turns - turn a character around but not the tile. kill & break - remove enemies or walls when colliding ghost - pass through enemies and walls. 2x & 3x - multiple the score. slow & fast - change the speed of the avatar At the top of the screen, I added active power icons. Powers like Speed, 2x or ghost that have a duration. I used the same cooldown design as powers. No green box means it cannot be pressed. I sped up the slow mode from 5 to 7 speed. Added bouncing off the top of the screen as mentioned last week this keeps the game interesting at the beginning. I added a fix for playing on a Mac browser. Unity only uses 1/2 resolution on mac retina out of the box. WebGL Retina Tools 3.2 What I learned from playing this week: I need FX for kill & break. I need a pause and help function. I got an idea for balancing power use. Every time a power is used it will take longer to cool down. When all powers have been used the cooldowns move back towards their original speed. Please try out the game on Kongregate, feedback is always welcome.
  3. Latest iOS beta version link on TestFlight https://testflight.apple.com/join/IJDl9FXC This is the third of a weekly series on about a casual mobile game I will try to develop from start to release in #8WeekGameDev. This weeks PC browser demo is up on Kongregate here . This week I worked on graphics and avatar selection. I added many avatars and a system to choose them. I also changed the tiles. For the avatar selection screen, I have grouped the avatars into themes. Each theme has a number of avatars in it. Currently, themes are only used for grouping avatars. Next weeks work will be implementing features related to themes. The avatars with a solid black material have not yet been acquired yet. Also a feature for a later week. Getting the the picker UI to work with 3D models was not bad I just put the canvas on a camera, not in screen space. The overall structure of the screen code is pretty messy. I learned a lot about what works and what does not, so it will be cleaner if I need to something like this again. Setting the picked item from code was pain and I did not get it working very well. The problem is the order things run in. Most code runs in Awake(), Start(), Update(), LateUpdate() or PhysicsUpdate(). UGUI code does not, it runs in its own set of UGUI calls and you should not do somethings in UGUI code like destroying GameObjects. Also emulating UGUI events like clicks is not well documented. ExecuteEvents.Execute(button.gameObject, new BaseEventData(eventSystem), ExecuteEvents.submitHandler); I found is on Unity Answers https://answers.unity.com/questions/945299/how-to-trigger-a-button-click-from-script.html?childToView=1604638#comment-1604638 It is the second answer and works on all UI objects, not just buttons. Different avatars have different powers. Some powers are new and others duplicate the existing powers. Having a second button with the same power means not having to wait for cool down. For animation I only used basic idle, walk, jog, and sprint animations. I use separate animations for male and female characters but the female walk is pretty exaggerated. There is a problem with this combo of model and animation. When walking, the moving foot's toes go lower than the stationary foot's sole. So they go underground, maybe this can be fixed in the avatar setup, by switching from using heels to toes. It is not really visible at the scale I am using so I doubt I will fix it. The new tracks took a bit of setup because the old code for tiles could also change the colour of the tracks in 1/8th sections at runtime. This is not needed in this game but being able to make tiles with different graphics, easily at design time is needed. I did not have curved models for tracks so used Mega-Fiers (mesh modifiers) to bend some models 90º. The original models were low poly so I also used Cheetah3D (OSX modeler) to split some triangles so the models would bend nicer. I had the camera at 45º orthogonal but switched to 30º because the avatars look better from the side than the top. This squashed the tiles vertically, so increased the board to 15 rows from 10. 15 rows play tested better because it lets you make a mistake and then recover. I changed the colour of the tile outline to pink from green. I am planning on having green squares used only for buttons. All of the graphics stuff is try and see. My goal was to get something up now and see how I feel about it over the next week or four. I added three manager objects. AvatarManager to manage avatar data. PartyManager to manage who is in the party, only one avatar so far. ScreenManager, to manager switching between gameplay and party management. I will also need a screen for acquiring new avatars. I added lots more icons. The came from icons8.com They were black on transparent pngs. I inverted them in photoshop and am resizing them to powers of 2 for IOS compression. I added stats to track which avatar is used in each game. Yeah, I love my stats, even though I will probably never use most of them. What I learned from playing this week. Bouncing at the top would keep the game challenging at the beginning A play balance stat on avatars would be useful. For example, rouge is fast and has good power, so setting a balance attribute to -2 would reducing scoring by 2 for each row dropped off the bottom and each edge bounce. Slow game mode might be too slow Some links The avatars are from Synty Studios PolyGon Fantasy Characters Polygon Dungeon Avatar animation from EveryDayMotionPack The tracks from Tile and Bridge Pack I bent the curves with Mega-Fiers - Mesh modifiers inside Unity. I increased the triangle count with Cheetah3D (a Mac 3D modeler) because the original work was very low poly which is great for straight sections on a mobile but they need about 4 more triangles to bend nicely. The avatar selection side-scrolling UI used Picker for UGUI The new icons (everything except the old powers ) were from icons8.com Please try out the game on Kongregate here, feedback is always welcome.
  4. Latest iOS beta version link on TestFlight https://testflight.apple.com/join/IJDl9FXC This is the second of a weekly series on about a casual mobile game I will try to develop from start to release in #8WeekGameDev. This weeks PC browser demo is up on Kongregate here and a youtube version of the blog here. This week I added obstacles and three separate play modes to the game. Bad guys: There are three types of obstacles added. 1) Enemies that move along the track and when they hit you, you both bounce off each other. The basic code was straight forward. Some checking for what direction a pawn (player or enemy) is hit from. If hit from behind it does not affect the pawns movement. Also, there some working sizing colliders and checking to make sure pawns passing each other on two arcs on the same track do not collider. I did not make the enemies kill players as that would be a sudden death, which not the play feel I am going for. I am going more for a Tetris feel, where if you make a mistake you can recover if you don't panic and it is early enough in the game. 2) Walls are enemies that don't move. Very simple subclasses and setting speed to zero. 3) Empty tiles are tile without paths on them. no special code was needed for this, which was nice. For the obstacle generation I use random selection based on the idea of putting chits in a bag and choosing one. I put the chits back in the bag after each draw. For example, in slow mode, the bag starts with 6 chits for "none", and nothing else. So when I draw a chit for the first row I always get "none" and there are no obstacles. Then each time a new row is added I add chits to the bag. 0.1 wall chits 0.2 enemy chits 0.01 empty chits So for the second row of added tiles, none is still the most common chit but there a chance of an obstacle being placed on a tile. By the time the 10th is row added about 1 wall will appear in each row. By row 20 half the tiles will have enemies. The bag would contain 4 - none chits 2 - wall chits 4 - enemy chits 0.2 empty chits This basic list of outcomes with the chance for each (FreqPair) is code from an old project so did not take much work. I made the class serializable so I can change it in the inspector. [System.Serializable] public class FreqPair{ public string name; // e.g. wall public float freq; // e.g. 2 } I also made some extra code the limits the number of empty tile in one row, or else you could have all empty tiles and there would be no way past that row. Judging difficulty and playability is a difficult problem. So decided to put off the decision. I made three modes of play. 1) Fast - Fast movement but obstacle frequency increases slowly. 2) Slow - Slow movement but the frequency of obstacles increases quickly. 3) Strategy - each time a button is pressed the game advances one turn. During the turn the tile flips and the player and enemies move for a set amount of time then stop. All buttons are disabled when the turn is running. Also, cooldown counters for buttons were changed to advance one unit each turn. I added the 8th symmetric transformation (identity) which does nothing but does cause a turn to run. My inner mathematician was happy to see all 8 members of the group of symmetric transforms on a square represented. For each mode of play there is a GameSettings object and obstacle generator object. This lets me set the player's, start speed, acceleration, max speed. The cooldown time of buttons. Also to set frequencies of obstacle separately for each mode in the inspector. I add the mode being played in each game to the analytics. Also, I added separate high scores for each mode to the Kongregate version. This should give me an idea of the popularity and difficulty of each mode. I enjoy the slow mode the most, it is busy enough that I have to stay focused and plan ahead, but not so fast that I panic. Fast is too fast for me but in general, I suck at this type of game, so I wanted to set the difficulty level too hard for me. I think I may have screwed up the strategy turn length and made it too difficult. I added a green outline on the tile you are on so you know which tile is going to flip even when you are near an edge. I found out it was frustrating trying to judge which tile you are on. The green outline made the game much more enjoyable for me to play. I added a new avatar and made enemies. Now you can see why I buy artwork instead of making it. This avatar and enemies are just enough to let me see that they are turning to follow the tracks on the tiles. So I know if my code is working. Please try out the game on Kongregate here, feedback is always welcome.
  5. AntHillPlan

    Concept: Week 1 of #8WeekGameDev. FlipTiles:Runner

    Thanks, I added a link at the bottom and noted these are for PC browsers. Even outside Kongregate my game won't run on a mobile browser. To do that I would need to learn Tiny Unity and rewrite everything and work around the 3D part. An interesting project but would probably take 8 weeks on its own Also in mobile native apps, I can use incentivized ads, not sure how I would monetize a browser game effectively.
  6. Latest iOS beta version link on TestFlight https://testflight.apple.com/join/IJDl9FXC This is the first of a weekly series on about a casual mobile game I will try to develop from start to release in #8WeekGameDev. I will put weekly playable (PC browser) demos up on Kongregate https://www.kongregate.com/games/AntHillPlan/fliptiles-runner-v0-1-beta and a youtube version of the blog https://youtu.be/pPWbntsVibo. The game will include monetization and analytics etc. I am taking a lot of my ideas from Crossy Road, an endless Arcade game that is simple but well executed. It is free to play and it does not monetize by making playing the game annoying. Players watch a few ads and you get new characters faster, pay money to get some limited access characters. To get this done in 8 weeks and hopefully be profitable, I will be making many design decisions based on cost. Mainly cost of coding for time and cash for graphics assets, and the ability of features to bring in some revenue. I am starting with prototyping game mechanics, after game mechanics are fixed I will decide on graphics. I am using Unity V2018.3 and Photoshop for most things. Minimum Payable Game 0 (MPG 0) This version is not actually playable it is just a concept. The board has tiles with paths on them and an avatar moves on the paths. The tiles slowly scroll down and are destroyed at the bottom edge, new tiles being added at the top. The code for tiles and avatars moving on them was from an old project. Below is an expanded outline of my development notes for the first week. MPG 1 - Rotate Tiles under the avatar The ideas that the player can change the tiles is on. a) Rotate tile under self static icons (made in Photoshop) at the bottom for 7 of the 8 rotations that put the tile back in its original position. Design decision - What happens when the player hits edge while a tile is still rotating? Should the player bounce or wait. Going with wait because it is easy to code and bouncing would probably be frustrating when playing. Start moving after rotating is finished and paths reconnect. b)What happens player hits the edge of the board, bounce, die or wait? - going with wait because I could not decide which is better and wait was default code behaviour. I might want to change this later. Also, this gives me another option to change the difficulty. I could add new edges as curves that always lead back to the board. Then at higher difficulty have the edges tiles lead off the board. c) Make all sure various speeds of things are adjustable easily in code. So they are changeable in the inspector in Unity while the game is running. -rotation cooldown -player speed -acceleration of player's speed as time passes. The tile scrolling speed is proportional to player speed, make that ratio adjustable. I choose to have time to move along one section of track the same even though curved sections are shorter than straight sections. I think this will make it easier to judge how fast to make player speed and tiles scroll down speed. Also running faster when going straight compared to turning should look OK. d) cooldown Design decision - to reduce a player's choices and force a player to use more types of transforms. Using radial fill for cooldown & highlighting outline when done, because it is easy to code and intuitive for players to understand. Buttons are inactive if the avatar is on a rotating tile. I thought coding for rotating an already rotating tile might get messy and I don't think it will add much to the game. f) board size variable I made sure it was to change the board size while testing. I just change in the board size in the inspector and move the camera. g) Make a minimal playable game - finally, make sure I have something playable to put on Kongregate to get some playtesting. Also playing the game myself is important for coming up with new ideas and keeping my motivation up. -add death -add Score -add restart -random center 3 tiles - there following a pattern before. -put max speed at 29 - above 30 I was getting glitches in play. -extra score for waiting at the top (change to anywhere?) This was not needed to make it minimally playable, but I wanted to reward players for being able to go up faster than the tiles scrolled down. Also when players get better they can flip tiles around and the top score extra points by hitting edges repeatedly. I considered speeding up the scrolling when a player was near the top but that seemed like more work to code. I made the base score for surviving one row of scrolling 10 and the bonus for hitting an edge 9 just to give more interesting final scores. I also integrated Scoring into Kongregate's high score system. I added analytics events for each rotation used and game start and end times. I don't know if I will ever use these but it was pretty easy to add. If you bother to read down to the bottom here, you should check out the PC browser demo here https://www.kongregate.com/games/AntHillPlan/fliptiles-runner-v0-1-beta . Also if you give me 5 stars I will be happier It may even help me makes some money on this project.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!