Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411472 Posts in 69369 Topics- by 58423 Members - Latest Member: antkind

April 23, 2024, 11:09:54 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsBuild Up The Base, a weird game I quit my job to make
Pages: [1] 2
Print
Author Topic: Build Up The Base, a weird game I quit my job to make  (Read 8892 times)
tankorsmash
Level 1
*



View Profile
« on: March 29, 2016, 06:31:54 PM »

Here are the quick links to jump to the meat:


So in August last year I released my first mobile game, Beat Up The Face, and I was like, "alright, simple is fun but it's too short and repetitive and no one wants that". I decided that my next game would have none of those problems so it would have to be an incremental game.

You click stuff over and over and other things happens and for some reason you want to keep clicking. I figure if every so often I go back to the site of the first game I released and keep clicking the @ symbol and read the console as it keeps spitting stuff out, I could probably make something decently compelling and have other people play it.

Anyway that brings me to Build Up The Base. It's only been a few months of development, although its off  the same base code I wrote for Beat Up so I've got a bit of a headstart. I decided that I should post video logs every so often so that I could track my progress, since looking back through my post on reddit it was cool to see how the game progressed from something hella dirty to a pretty alright looking game.

Here's the one I put up several months ago now,

 



There's a few before it, but I think the third one is legit too, and shows off what it looked like when it was still pretty close to what Beat Up was.

 
So the actual gameplay is still basic as crap, but I'm hoping that the workflow'll be something like 'click a lot, find a new reason to click the same thing, automate the clicking, find something new to click a lot'. Right now you can harvest stuff and then get an auto-harvester, but that's not as interesting. I want to get a lot of interplay between buildings going.

In the (now disabled) game loop, you've got two fighters fighting a constant stream of enemies. You can make them potions to keep them healthy and fighting to level them up, or you can let them die. If you have them die, their body gets carted off to the graveyard where it gathers flies. The flies attract dogs that bring their corpses to the Underscape where some dude cuts them up to pieces. Once you've got enough pieces of flesh, you can reanimate them and have undead skeletons fight for you.

The idea there is that you can keep clicking to heal the fighters, you can let them fight for themselves and die off, and then you can upgrade some buildings to do all that neat stuff.

I've got an alpha set up on Google Play if anyone wants to try it out and let me know what they think. It's real basic right now but any feedback at all is great.

Here's newer images to show off how far it's come in the last little while:



becomes


becomes


becomes


becomes


You should try the game out. It's come a long way, and I can't wait to see where it goes as I continue to work on it!

« Last Edit: December 04, 2017, 11:03:03 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #1 on: April 10, 2016, 03:20:00 PM »

I'll be putting up another video soon, ideally tonight, but I just finished this little animation for when you're working away in the workshop on whatever it is you're going to craft




The idea is that in one of the other buildings you'll gather and harvest and mine materials you'll want for crafting and bring it into the workshop to create things that'll help you out in other ways, be it having your little dudes fight better or better craft ingredients and tools or just tech boosts of some sort.
« Last Edit: April 27, 2016, 11:16:32 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #2 on: April 12, 2016, 07:26:38 PM »

I spent a bunch of time with it to abstract out the Harvestable class, where it used to be one animate function, but now I've got it so the animate calls out to a bunch of different virtual animate_XYZ things. There's the one that handles the clipping of the sprite, the shake/rotation, and then how the harvest itself happens. It's not nearly crazy or anything but it feels good to write some decently modular code for a change. I've come a long way since BiochRL where all the monsters were each their own class (in their own file) with purely the constructor changed. I was like "I'll be happy this is like this eventually", but never was. YAGNI is how I live now.

There's also a harvesteable for the Mine, where its a big wall of stuff and you dig out pieces on the way down and it finally explodes. Putting the three different ways to harvest makes the game feel a bit more full. With all 9 buildings doing the exact same thing it was hard for me to see the game actually going anywhere, but now I can at least imagine how each building would have its own use.


Something I'm struggling with a bit is how to make the game actually compelling. With Beat Up The Face, while it was really simple to play, I could fall back to the initial design decision of just wailing on a face for a minute. With Build Up, incremental games are young enough as a genre where there's no tried and true method, I don't think at least, that you can organize your game around.

Of course that's really a good thing, it means I'm totally free to invent a way to play a game like this; but it's tough without having too many games to play and say 'huh, this is fun but this can be done better'. As I design the game and try to find ways to keep it interesting I'll need to find more incrementals to play. If anyone has some mechanics they'd love to see in a game, please tell me, it's more than early enough that I can add them in.

I made a new video but I'm not crazy happy about how it turned out. I'm trying to keep the videos a little non-sensical to keep it interesting to watch but its starting to feel a little forced.
« Last Edit: May 12, 2016, 07:28:11 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #3 on: April 17, 2016, 07:31:31 PM »

It was a pretty productive couple of days for me. One thing I didn't even consider was how the game would perform with thousands of resources at play, because I had a list for each building and resource type that got filled with say Ingredient resources with a set subtype. This was nice at first, but then obviously doesn't scale very well into the thousands or more if you need to keep a count of all the resources at play. This meant I needed to overhaul the system and use maps instead of vectors.

It took a while but it was crazy worth it, and you can have basically unlimited resources and not incur any sort of performance penalty. Eventually I'll apply the same logic to the auto harvesters; each harvester you buy is put into a vector of em instead of simply incrementing some field in a map.

Added some new harvestables to Build up, one's not too crazy yet, it's some sort of monster you touch a bunch until it bleeds out and you get to collect its blood. The ideas going to be that once you die in combat you can spend some of the souls you've won plus the blood from the Underscape's monster to bring yourself back to life.

I considering something like a mechanic to have you be dead for a while and it'll change the way some of the systems work, so like you can only farm when you're human but the things you harvest somewhere else gets a boost or new actions become available at the marketplace, like pillaging it or something. Not sure yet, but I want to keep thinking about how to spice it up.

The other harvestable I added is that combat one. You click on a sword and it'll fight whatever monster is on screen. You deal some damage and take some damage. If you die you can't fight anymore so no more souls to gather. Again, there's no benefit to doing any of it so no harm done yet.

Having the combat in place is good because it can let me start working on some more interesting things like building equipment for the player to use in combat, and craft some stuff from the other ingredients to heal or something.

Here's a quick video showing off the two new harvestables



« Last Edit: May 01, 2016, 09:40:49 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #4 on: April 18, 2016, 10:36:29 PM »

Only thing I added tonight in terms of gameplay is a way for you to regenerate some health, so that you can get back into the battle and collect some more souls, even if the resources you're gathering at this point are useless. It's not real clear, but if you're dead your health goes red, you can't fight in the arena, and the player info panel in the bottom right shakes a bit. If you click on it and you've got 10 coins, you can buy 5 hp. If you can't afford it, the coins label with shake instead to let the player know that something to do with money is happening. I figure its not very clear but at least its better than nothing happening and no hint as to why.

More interestingly I finally spent a few minutes and found a python wrapper for the Google Developer Console so that I can pull down all the changelogs I've written for the alpha so far. Unfortunately you can't just export it right from the page from where I'm standing. Anyway I modified a sample script to spit out all the changelogs and then do some dirty string wrapping to build an HTML page.

With Fabric, I take the generated HTML by sending the output to a file, then putting the file directly to the remote django server's template directory and host it there for all to see. It's plain text right now, but it's fun looking back on what it was just a few updates ago and how much changes without you realizing.

I've said it before, but I'll say it again, it's fun to look back and see how far its come. Here's the log. There's a bunch of duplicate info because each new update has some room saved for the last one, so that the user doesn't lose track in case they've skipped reading the notes a few times.

READ NOTES

I figure I could make a new page with just the latest changelog and have buildup make a request to the page and download it that way, but that a) seems like a lot of work and b) not many people are playing the game often enough for it to be worth it.  I'm currently at 5 downloads and they're all friends so far. If that ever changes I'll work on putting it in probablu.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #5 on: April 21, 2016, 07:32:54 PM »

Got a bunch of feedback about my game, but for a change it was mostly negative. As much as it sucked it means my friends are a) getting sick of me pestering them for feedback and b)getting used to playing my shitty game and are ready to play something good for a change. This is the feedback I've been waiting for since I started sharing the builds. I learned it the hard way after Beatup. It's one thing to tell me it's cool but another for them to not want to tell me bits are boring because they're assuming I know the problems. I don't, I'm too close to the game to tell what sucks or what is fun.

So they told me they spent an hour playing Cookie Clicker after I had told them that that's the genre I'm trying to make, only you know, way too complicated. They said that they found it really fun and that my game should be fun. After swallowing a bit of pride, I turned it on and decided to take a more objective designery look at the game and figure out what it did that my game didn't.

I realized that it's all on one screen, there's like 3 different ways the game reacts to your first few clicks with immediate and interesting feedback, you can see the resources pile up in the middle of the screen, you can see whats coming up in the shop to buy so you know to save up for, and then later on the resources work together, like the grannies helping the farm, the cursors benefiting from buying units of everything else which slowly increases the complexity as you play.

So tonight I tried getting a little closer to that. I added a scaling down effect when you touch, and then scaling back up when you release the touch. I added the slider menu on the side of the screen so you can target different buildings without needing to go into the menu and saving the player a context switch. This also works without me having to explain what 'targetting' a building means and is made more clear thanks to the immediate sprite change.

Check it out:

« Last Edit: May 01, 2016, 09:41:39 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #6 on: April 25, 2016, 06:45:59 PM »

In the last few days, I refocused on getting more things on the same screen at a time, instead of spreading the actions out across menus. While I thought it was alright as it was, having done the time and used the one screen instead, I have to say it is a definite improvement. While the text is too small and generally hard to read on a phone, it does the job for now as a prototype.


I've added a few things, so there's the inventory menu along the bottom that shows all the resources inside this particular building's inventory. From there you can choose to move 10 to the workshop for later processing or you can sell 1, 10, 100, 1000 at a time. Having the variable amount to sell is key once you've bought a bunch of harvesters from the new sidebar because you'll be getting so many at a time, just getting rid of 1 at a time isn't enough. I might have an auto seller at some point too.

The new shop sidebar replaces the old Shop menu (still accessible from the Shop button), it represents the way you'll be interacting with buildings from now on. No more needing to go into a menu. I'll need to add some interesting things to it, but can't figure out a good set of things to put it. Might divide the menu into basic actions across all buildings and a specialist menu for actions exclusive to the building.

Other things I've changed is you can now swipe the harvestable itself and swap buildings, allowing for a more smooth workflow. I resized the harvestables to fit into a smaller rect, and I think it helps the scene out. Having all different sizes is a little inconsistent and I want to build a fairly internally consistent scene the player can get lost in.

Another nice touch I quite like is that I added a beautifier function for numbers that convert from 123456789 to 123.456M, adds a little layer of polish that's both subtle and helps the player quickly identify counts. It's also something I always hope games do too, at least by separating numbers with commas. I get it though, it's easy to miss places that the number will be spat out, and not all regions identify numbers the same way. That's something I'll need to solve one day.

Anyway, the whole idea now is that its easy to just keep clicking away on the main screen, and eventually there'll be goals to buy and unlock constantly visible so you know what you're working towards.
« Last Edit: May 12, 2016, 07:27:58 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #7 on: April 27, 2016, 11:15:24 PM »

There's a lot of reorganizing and the game is actually playable now, there's a point to playing, and like every other incremental game, it's just about buying more things. I'll elaborate more another day, but basically I moved almost everything to the main screen, gave the player a bunch of things to spend their money on, and make sure the game is playable for a few minutes without the player getting way too much money.

Making this screenshot the UI is just hideous if you look at it, but I'm going to chalk that up to placeholder art. Once the UI gets reorganized for real, and gets a cohesive visual theme, it shouldn't look as haphazard.


Something I need to start thinking about is tutorializing. A friend of mine was looking at my game and they had no idea what was going on. Incremental games can be real confusing if you just start out looking at end game UI, so I need to make sure when you start the game out, it's almost nothing but a simple clickable element and really slowly adding things.

That's something I tried to do for Beat Up The Face, where as you played, you unlocked more things to do, but I think most players lost interest by then. It was a tradeoff between keeping the people who were hooked entertained vs blowing the load immediately and revealing everything too soon. With Build up, I'll be relying on the appeal of that growing number to keep the player hooked.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #8 on: May 01, 2016, 09:40:03 PM »

Some more visual changes this time aorund. Added a new font to the game, really makes the game look like it's something to be played instead of just sort of put together. I'm sure in time I'll feel the same way about this font though. I tweaked some wording, hid some labels that weren't relevant, beautfied more numbers (aka 123456 turns into 123.456k).

A huge thing, in terms of backend, is that there's two menus on the screen now under tabs on the left. The first tab is to buy the harvesters as before, but now you've got the detail menu, where it contains recipes and other misc things you will be able to do. The only three things you can do are make bread from the grain you collect at the Farm, and consume blood of the monster to heal back your life you've lost fighting in the Arena. I hope to add recipes at the workshop where you can buff up your fighting, add sellers to the marketplace, that sort of thing. Definitely looking for input on other things I can add.

Here's a before and after:



I mentioned it before, but you get randomized appearances for the harvesters and challengers in the Arena. It's all for show but it's fun to see. It used to only randomize on game load for the harvesters, but now it randomizes each time you switch target buildings. This is a side effect of rebuilding the sidemenus each time, which seems to have incurred a small performance hit. There are things I can do to mitigate the effect that I'll need to look into. For now I'm just happy it seems to mostly work.

I've been working on this game pretty hard for the last month or so, I'm thinking I'm going to need to take a break soon, but I'm worried that if I do, I'll be gone from the game too long and give up on it. I sort of feel like I'm procrastinating something by still working on this for so long. But as long as it keeps me working, I'm not going to question it too much.

I don't have a gif this time, but here's a quick video showing some of it off



Logged

tankorsmash
Level 1
*



View Profile
« Reply #9 on: May 03, 2016, 09:39:09 PM »

In the backend I use a typedef for numbers called res_count_t which I used to track all the resources and coins the user had. It worked out great, but I wanted to make the game feel more active and I realized that if you only see the UI update about once a second with the loot that all your harvesters generate, it wasn't as interesting as it could be. I decided that I'd need to allow for fractions of resources, AKA floating points.

It ended up being a fairly painless switch so far, since I used the typedef everywhere I was able to change the unsigned long long int to a long double and barely had to change anything. I have warnings on for type conversions but this didn't trigger any of those, which is weird because I was at least in one place converting floats to ints. Whatever, doesn't matter. It's working now, check it out.


Someone suggested the idea that beyond just not being able to fight anymore, you shouldn't be able to do anything until you heal, which is a pretty great idea. It means that I'll need to incentivize fighting somehow, which means I need to make certain resources more valuable which means certain buildings need to do things very differently.

Starting to think up a theme for the game, might take it spacey, where you're building a galaxy, starting off with just a few cells or something and build it up to a planet, then generate a few planets to work together to make a solar system or something. Still early thinking stages, just wanted to get it down.

I'm going to update the original post to include the newer gifs.
« Last Edit: May 12, 2016, 07:27:47 PM by tankorsmash » Logged

arvidsson
Level 0
**


View Profile
« Reply #10 on: May 03, 2016, 09:53:32 PM »

This type of game is not my cup of tea, but I like your progress. Keep it up! Smiley
Logged
tankorsmash
Level 1
*



View Profile
« Reply #11 on: May 03, 2016, 10:01:51 PM »

I don't blame you man, they're pretty mentally unstimulating but man do I find them compelling. Like Cookie Clicker or Kittens Game just scratch this deep itch for me.

Thanks man! Hope I can keep progress going.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #12 on: May 12, 2016, 07:25:47 PM »

Got a bunch done in the last week or so, added Salesmen which sell your resources for you. If you've got 10 salesmen, they wait until you've got 10 grain for example, and then sell all 10 for you. That saves you having to manage selling them yourself all the time, and frees you up to go manage other buildings.

I didn't want to have the player focus on maxing out salesmen and buying them willy nilly, so I added building upgrades, which control how many resources you can have of each type for each building. At level 1 you can only hold 10, but at level 2 the limit is 50. This creates a short and attainable goal the player can work for. I also added a progress bar that shows you how much money you've got towards the current building's next upgrade.

One thing I realized was that if you click the upgrade button, it felt really flat; nothing felt like it was happening and it was really anticlimactic. So what I did was add a little shake to all the buttons when you click them, shake the screen when you upgrade a building, vibrate the phone, have a silly particle effect run and change the UI color so you really know something happened. It also helps the player identify immediately what level each building is, based on the UI color alone. Once I get an art pass done, I don't know if I'll keep the different UI colors, and the cheap looking stars, but at least for now, it serves its purpose.


Remember to click the 60fps link for a video instead of a fat gif. Anyway you can see the top right corner shows you how many ingredients you can hold, and how towards the end of the gif, how the progress bar changes color to red and empties once the player can no longer afford the next upgrade.

A tester told me that the game feels like it starts and stops between sections, where you've got a lot of downtime interspersed with a brief period of action. Not sure what to do about that yet, so if anyone's got any ideas I'd love to hear it.

As usual, the alpha link on Android is here if you want to give it a shot. I'd love any sort of feedback you have.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #13 on: July 17, 2016, 02:22:33 PM »

It's been a few months since the last update. Not going to lie, Github taking down the streak counter really put me off for a while. You don't realize how important something is until its gone. Thinking about making a new one with the Github API (which I assume exists).

Anyway, so the things I've been working on since last update have been mostly trying to get performance up for the sidebar. It's incredible how much time and energy I've spent on it, without virtually any payoff except stress. I mean I've learnt a bunch about how cocos2dx works for its UI system, but nothing I was able to translate into significant gains. The problem is that I try to rebuild the menu every few frames, so that everything is as updated as possible. That's great because it lets me get a little sloppy with changing variables and values elsewhere because I can trust that my UI will always reflect the latest changes, so in that respect it's very valuable. It's just that when you swap from building to building, there's some sort of chug that happens which seems to be an issue with the way cocos2dx builds its labels and the spritemap its based on getting resized and making a bunch of memory allocations. Not crazy about the way it works, but for now it'll do.

Some things I was able to do in the latest version (0.22.1) was redo the UI a bit, using buttons for certain things to make it more obvious that it's actually clickable, and I added a quick switch button along the top, that lets you jump directly to a building instead of having to swipe over and over again. The problem though is that the sidebar building there uses the same template, and since it's not actually clickable it's pretty confusing because it acts like you can touch it. The topbar has a bonus of when the storage is too full, it'll go red to indicate that you're maxed out and you should upgrade the building as soon as you can if you want to keep storing more stuff.

I made it so that the inventories of all the buildings are reflected along the bottom, to give a more collected experience, because it's way more fun to see your stockpiles buildup than it is to only see one type of thing go up. To that end, I made it so when you've got salesmen selling your resources, the amount of money you make from each cycle floats above the ingredient button. Makes the UI feel a little more alive. Here's a gif of it in action.




Finally, I've added a way to save and load your game, where the game serializes most data to a json file, and loads it back in on startup. This should be okay but there's a lot of different ways for it to fail that I'm not necessarily aware of. For example, in release mode, Android doesn't throw exceptions when 'new' calls fail, it instead returns 0 so rapidjson freaks out. The answer off a github issue, was to swap out allocators so that Android doesn't get scared. It was a relatively straight forward fix, but it's just an example of the phone app failing while the desktop version runs fine.

Fun fact, there's a bug where since your building data is saved on button press, and the coins are saved as it increments, you could cheese the shit out of the game by loading up the app, selling all your stuff, exiting without saving and reloading. Your money will reflect the sales, but you'll get all your ingredients back.

The next steps are probably to add another screen where you can get a better overview of things. A player suggested they'd like to see more goals, so they've got a reason to keep playing. I'm definitely into getting new ideas from whoever, so hit me up if you've got any.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #14 on: August 30, 2016, 07:18:13 PM »

Started to get more and more people playing, there's about a dozen people active on the leaderboard now, which is awesome. I'm really glad I implemented it, because it keeps at least a bit of competition going in the game, even if its just between friends.


Top two guys are cheaters, but it's in alpha so I'm happy I can figure that stuff out before it goes live.

How the leaderboard works is that it posts your entire savefile, and then does logic server-side to calculate the coins per second, and pulls the coins and building levels out of the savefile. This means that I trust the client too much and have successfully 'hacked' the server into bogus nonsense in exactly 3 lines of Python. That'll need to get fixed before going live for sure.

I recently added Bootstrap v4 alpha to the page and gave it a little touchup so it doesn't look like a non styled page, making it look a little more legit. Recently added an ingame link to the Leaderboard so you don't need to get told what URL it's at. Eventually I'd like to get an ingame leaderboard, but it's working out for now.

In this next screenshot you can see how the UI currently looks, it's getting a little cluttered but I think I'm actually alright with it. It's workable so far, except the resources along the bottom aren't immediately recognizable as clickable, so you don't know how to sell things at first. I've added a default salesmen to the first building in the game, so even if they never figure out that it's clickable, they can still make some money by automatically selling their stuff.


Giving each building an abbreviated name and using an icon along the top has helped immensely with getting people to use them more. Not only is the text bigger and easier to see, but the icon's let people recognize each one without much effort. Since a lot of the game requires you to swap around between buildings, I'm really happy that this little change worked out so well.

Another change you can see is that the ingredients list along the bottom starts out on the leftmost side and will extend across the entire screen. This was to work around the fact that I can't resort the ingredient list there as easily as I'd like. Long story short if I resort it every frame, the listeners change, and the TouchStart and TouchEnd event fire on different elements since they'd get rebound every frame. I will eventually figure out a better way but for now, this'll do.

Something I'm especially proud of though is the performance of the game. Now that I only update the one sidebar menu while its active and I don't create the menus for the other buildings and tabs unless they're made visible once, the game runs much  much better. While there's a tiny delay in swapping to a new menu once, the second time it's much faster.

I spent a while optimizing that and the beautify_double function, which prettifies numbers like 123,456,789 into 123.45M. Basically I made static everything I could and avoided making new objects in the function where I could, along with using references as much as possible. Still more to do, since the function runs a few thousand times a second, but as usual it's good enough for now.

Onto gameplay changes:


Because a lot of the game is spent harvesting by clicking, then buying auto harvesters, then salesmen, then building upgrades, I  wanted to change things up a bit. To that end, I beefed up The Arena a bit. In the screenshot you can see the three ways you can improve your swording skill, base damage, chance to WOOSH and the amount of damage the WOOSH does. Fun tidbit, I use 'WOOSH' instead of 'critical hit' because the string 'critical hit' is too big for a lot of the text boxes and it'd resize, reducing the text quality.

What's unique to The Arena is that, on top of the auto harvesting, you can't manually harvest the sand you get that way, but you can fight to kill the (randomly sprited) enemies in order to get souls to upgrade your sword with. You're also able to use other resources, blood and flies, from other buildings and boost the WOOSH chance and ratio. Adds a little complexity to the game that I think it really needs. In the backend, there was a lot of effort into making the Technology class work with Recipes, and then saving properly.

That's one thing I never really thought about when playing other games, everything needs to be saved and serialized. Since there's so much to unlock and tweak in games like this, I'm going to need to get real good about writing things so that they're easy to use. Anyway, the Technology backend is the same thing that powers your double clicking power you can unlock for The Marketplace, which doubles the output of each click you do. I've got it contained to The Marketplace because I prefer to keep progress in one spot, so you can't max out one building then blitz through the rest with all the upgrades of another. To that then, I'm going to need to work on better prerequisites cross-building.

I need a way to limit an upgrade to some arbitrary condition. That would allow the game to feel a little more cohesive, because each upgrade you buy would help you along some other goal too. I certainly need to make the player feel that they're progressing in the macro sense along with the micro every step of the way.

Now that the game's getting a little more complex, subtle bugs are starting to pop up. In order to alleviate that a bit, on top of the posting entire save files, I've implemented a logging screen, which is using the EasyLoggingPP library.



It's nothing to fancy, it tracks certain events, like game loading, posting to the leaderboards, saving files, cheat detection, one or two errors that might pop up. I'm hoping that as the project develops, I'll be able to flesh this out even so that users can send me their logs with a button and I'll be able to better diagnose issues they run into.

The next big thing I'm working on is recipes and crafting at the Workshop.


It's going to work like you choose an active recipe and it'll spend a percentage of the total recipe's cost and increment the progress counter. While I've gotten a bunch of the work done on Recipes thanks to the Loaf and its prerequisite, a Slice, there's a metric ton left to do. I've already had to break the Harvestable class up and write docs up for myself just to remember the order that they're called in.

        /* onTouchBegan -> animate_touch_start
         * [animate_touch_start] -> get_per_touch_output
         * [animate_touch_start] -> animate_flash_action
         [animate_touch_start] -> spawn_label_on_touch

         * onTouchEnded -> [animate_touch_end]
         * [animate_touch_end] -> animate_harvest -> animate_clip ->animate_rotate
         * [animate_touch_end] -> on_harvest
         * [animate_touch_end] -> should_shatter -> shatter
         */


Where onTouchBegan fires animate_touch_start, which in turn calls get_per_touch_ouput, animate_flash_action and spawn_label. Same idea for onTouchEnded. The problem I'm running into with CraftingHarvestable, the anvil, is that the stuff I've got going on for the touch start is dependent on things happening when the touch ended. For example, it'll say 'needs more ingredients' when the touch is starting, but by the time the touch ends, you might actually have enough resources and it'll silently consume it. It's not a bug so much as an undesired feature of the design. I'm not quite sure how to fix it just yet but as I continue working on it, I'm sure something'll come to me, even if it's just leaving it as is and adding other GUI elements that'll help the user understand what's going on.

Before I end this, I want to touch on how important having a straightforward UI is. With The Arena, in the same way that the resources might not be there on touch started, but might be there on touch end, there's an issue where it'll calculate your next crit on touch end, then render it on the next touch start, leading to a very weird user experience because it seems like the game is no longer random.

Anyway, thanks for reading. If you're down to try and break my game, try it out on the Google Play store as an closed alpha by going here. I'd love to hear what you think of all this and how I can improve my game any way I can.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #15 on: November 24, 2016, 07:41:09 PM »


It's been a couple of weeks since I've updated the game, and even longer since my last post here, but I've been working on this new feature and a buttload of new stuff. Long story short, v0.36.0, the 81st update, features whole new screen and mechanic to the game, the tunneling deep into the mine to find altars to place your items.

New mechanic

 Like all things in the game, its just the framework for what's to come so we can iterate on what works and what doesn't, but I think it's turned out pretty well, despite my best efforts at programmer art. Check it it out.


The way it works is you go to the Forest, gather a bunch of wood, a new resource in the game which drops every so often (spending that wood on upgrading your axe boosts that though), then you head over to the Mine and mine a bunch of copper, turning some of it into a rarer iron resource. You throw the gathered wood, copper and iron into mine carts and rails. Then you head into the city management screen and click the Mine button. That brings you to the screen up there where you place the rails one at a time, trying to build a track to the altar, where you can place your items you've scavenged from the Dump. A placed item has a very good chance at being blessed and gaining levels (right now its 100% likely, but don't worry you about that).

The idea of the new mining stuff is that as you go deeper into the mine you find new resources and new things to do. I plan on having a balrog style creature to discover that you'll need to fight in the arena to get further down, and potentially a store to buy and sell specific things that I'm not too ready to talk about.

UI Tweaks

On top of the new mining mechanics, I've tweaked a bunch of little UI things that I hope help make the gameplay feel a little better. You can see a couple of changes here:


The floating labels hover around for a second before floating away, so that you actually have some time to read it before it floats away. This applies to the per touch output and the salesmen labels along the bottom. Thanks to feedback from the earlier thread and PMs I've made it so the text on the icons along the top change to 'FULL!' when any given ingredient generated by that building has capped out. This hopefully clears up some of the ambiguity of the red icon. I've changed the Graveyard's short name from "GRVY" to "GRYD" in an attempt to not have it sound like soup, and I've changed the "CITY" label to "MGMT" to prepare for some changes I'm going to make to that whole screen.

Combat

I've been thinking about the combat in Build Up The Base a bunch while I've been working on the mining mechanic and didn't like that there wasn't enough visual feedback on how the fight was going, so I made a small change to the health display: as you get hurt, the health goes red, and it glows green as your consumers in the Underscape turn blood into health, so you can get back into the fight.


I've also added icons for just about every menu item in the game, and added half a dozen new Items to the Dump to scavenge for, with the help of the Undead you raise in the Graveyard. Items are not even close to complete, since all they're good for right now is really selling, but I hope to get some more crafting, in the vein of Two Worlds where every item you find is valuable in some way because you can combine it with another and get an even stronger one. Another element of this is I want to let you equip a set number of items and apply a buff to harvesting, crafting, mining or combat. Lately I've loved the idea of shattering an item for a stronger but temporary buff, but again that's still aways away.

Roadmap

Among other things, there's not a great sense of progression in the game right now, in part because of the balance, but also because there's not any visual indications of progress beyond the background changing from black to grey the higher the level of a building. I hope to solve that by adding a screen of your base as it builds up. It's nice to see your boat build up in You Must Build A Boat, and in games like Terraria as your home gets huge you start to feel pretty cool about how its coming together, and that's what I want to start working towards in my game.

I have a pretty strong distaste for prestiging/resetting games because as much as I love the idea of boosting progress, I'd much rather have a breadth of things to do. Sort of like how in Stardew Valley, instead of farming forever, you can fish and mine to change things up. The trick of course is to make each individual mechanic feel like it belongs, and that's something I really need to address in Buildup, it's all over the place right now, there's no tutorial and it's incredibly overwhelming with no direction.

As the game get's more fleshed out, I'll be able to reevaluate the UI and rework it so that as you actually build up your base, the mechanics reveal themselves and you'll be introduced to them piecemeal. Right now it's all there right away and I don't blame you if it's like 'nah I got better things to do'.

Stats and Leaderboards

What's crazy to me is there's even people playing my game at all. Despite it not even being a big deal, for me to having people taking the time to try something out that I made is super cool. Right now there's 429 testers, and 136 people on the leaderboard. I know it's probably smalltime to you guys but it's so friggin cool to me. Really helps to motivate me, but it can also be a bit of pressure to know that any one bug might break or ruin someone's day because something doesn't work. If something's busted, let me know on here or on twitter because playing broken games is just the worst.

If you want to show up in the leaderboard, fill in a username along the right side of the screen (no spaces or non word characters please!) and then under the Menu button there's a link to the leaderboards where you should be able to see your progress highlighted.

On performance

What I do want to mention though is the framerate of the game. It's something I've worked pretty hard to maintain at a smooth 60fps throughout the game so far. You'd think it sounds easy enough given the visual complexity of the game, but there's a bunch of logic going on each frame. What I'd like to ask is that if anyone has a less than smooth experience message me here and we can debug it and get it going as smoothly as possible for everyone. If you go to the City Management screen and tap the header, it'll toggle on an FPS view that'll show you some metrics, and I hope everyone's at a smooth 60fps. Here's how to enable the FPS display:


tl;dr that's a whole bunch of text to say there's a new update for Build Up The Base, which I think is pretty cool but I'd love some feedback on. Download it here on Android. Seriously, the game's pretty far along, it's been like a year and a half, but I'd love some feedback from people to just tear it apart.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #16 on: February 20, 2017, 02:22:42 PM »

First off, since the last post three months ago, I've gone from 1500 testers for Build Up The Base to now having over 8200 helping me come up with and develop with features, which has just been incredible! I'm a long way away from putting the game out for real, so everyone's constant help with this game has been crazy awesome.

I've been hard at work implementing all things I've wanted to put in, but some of the bigger ticket ideas I've had are now in the game. You can equip items to help you craft, mine and fight. It varies per slot, but generally it's increasing the output of the crafting, or doing more damage, or getting more resources as you mine. It's a young feature so expect this to be elaborated on. I'll only say that you want to level up the items to get a bigger and bigger boost from them. 

On top of equipping and selling items, you can now scrap them and convert them into city investments. It works very similarly to how you'd sell them before, but it would fill up a different total. The value of a given item is based on its level and quality. You can boost the level of an item as you find them by sacrificing souls you get from the Arena on the City Management screen. You can also upgrade a given item by placing the scavenged item on an Altar you can find on each depth as you dig. 

For now, the only thing you can spend your city investments on is increasing the amount of coins you can store. The limit starts at 100,000 coins and goes up significantly from there. This was one of the last things I've implemented so I've very curious to hear your feedback.

I've started to get some achievements in the game. Right now they're very easy to achieve, but that'll change as time goes on. As they get more stable they won't need to be tested as often and I will adjust them to their actual values.  When they pop up there's some sweet particle effects. Within a few releases I hope to get some intersting unlockables for getting achievements, in the form of permanent buffs on your output or items.

The new tutorial triggers on first load and takes about 30 seconds to complete; I wanted to make sure it could get done as fast as possible because it's pretty straight forward. The tutorial covers the basics of harvesting, selling, buying workers and salesmen, and upgrading your building.  It doesn't cover fighting in the arena, digging and tunnelling, scavenging for items, or upgrading and scrapping items either, but it's a start.  It took a while to actually write the tutorial out because it involved hooking into every part of the UI and just shoving logic in there that it definitely doesn't care about.

You might remember my leaderboards from last time, but a friend of mine overhauled the way it looks, check it out. There's still some people posting illegal scores to the game but I'm way happier with the amount of people playing. I didn't anticipate this many people on the leaderboard, so I might have to reconsider my stance on pagination and bite the bullet. You can check out the leaderboards here

Random thoughts and changes
Some other smaller things I've done is:

* Completely rebalance the resources you get, where Grain is cheap and easy to get, but something like Copper and Iron is slower but much more valuable.
* Change the sell buttons from 1, 10, 100 and 1000 to 1, 10, 25% and 50%, which goes a long way towards clearing out your stock of resources if your storage is full.
* Try a new (what I thought was cool, but ended up being nauseating) sidebar animation where it dropped from the top of the screen down. Hotfixed and rolledback that change within a few hours.
* Add a ton of small little touches, like subtler vibration (and a disable vibration button), buttons shake, things pop up instead of just appearing.
* The order of the resources along the bottom is unchanging, used to be random each time you started the game.
* When you're full storage when you're harvesting manually, it'll flash red along the bottom to tell you which one to sell.
* Reword a bunch of labels to describe how to solve the problem instead of describing the problem.
* Added the actual enemy health to the Arena.
* Correspondence from Poland, German and many more countries, using Google Translate on the fly
* Found my way to a bunch of APK sites, which I'm somewhat proud of for some weird reason.
* Made a graph that shows most of the things you can create and do in the game. I really need to work on my graph making.


tl;dr In my Android Alpha, for Build Up The Base, I've since over 8000 testers, added achievements, rebalance, a bunch of features across 21 updates in the last three months. Get in on the action here.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #17 on: April 12, 2017, 08:01:49 PM »

I'm up to 12291 Registered Testers now, on Google Play, which is super cool.

A few people have said that it gets tough to progress after a while, a few people have been confused quite a bit by the new City Investment currency system, so I'm trying to figure out a good way to solve that. Since a lot of the game's progress is dependent on the CI now to increase the amount of money you can hold, placing your Items on the Altars in the digging screen takes up a lot of the player's time.

The workflow is that in order to gather an item, you need to harvest a bunch from the Dump to get an item, then to level it up, you place it on the Altar in the dig scene, but you can't get into digging until you build mine tracks and carts. You need Iron, Copper and Wood. You can get Iron and Wood easily enough from the mine, but the only way to get Wood is by chopping trees down in the forest. You get Wood very slowly until you upgrade your axe, but upgrading the axe takes wood. You can see how that would be frustrating.

I'm trying to think of other ways to both solve the items levels process taking too long, and solving another problems where if you hit the current level's gold cap, you're basically dead in the water, by creating a place where you can spend gold, slot machine style, where you place an item and a bunch of gold, then you spin the lever and maybe get something back. I dunno if that's a good way to dump out some money, but I'm open to ideas.

Another cool thing happened recently, I contacted an indie artist and he created some super cool HP Lovecraftian art for me, replacing the plain looking pixel art at the Graveyard and the Underscape for me. Unfortunately he wasn't able to commit to doing more but I am supremely happy with what he did. If you're able to create pixel art in the same style, hit me up for sure.

Old art for the Underscape:



New art for the Underscape:



Here's the old art for the Graveyard



and here's the new art the Graveyard



You can see there's much much more detail in the new ones, and it's way closer to an interesting theme that I was already working towards without realizing it. There's so much weird stuff in the game, like appeasing the gods, placing items on altars and  killing and collecting souls that it feels like it's a pretty good fit to theme it like this. Naturally the UI is still rough and there's almost no art in the game to speak of, but it's still fun to think about.

I've been playing through the opening stuff of my game a few times now, and it's always weird to see the game from that perspective. Normally I'm just picking at parts of it as I go, but seeing it all together is pretty neat.

There's still so much to do, I still need to develop the sense of progression and unlocking, I want to make the 'welcome back' message more fun than just a readout of the stuff that has happened why you were away, and I want to keep working on the sound. I had started on a simple retro NES style soundboard, but I couldn't get the feel right, and it's tough when so much of what you do is repeated quite a bit, so you need to make it interesting or subtle, but ideally both. Eventually it'll all be done and it'll be great, because it does make the whole thing feel so much more complete when you've got sound effects going.

Join the alpha here,  to help me build this incremental into something magnificient.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #18 on: July 28, 2017, 07:31:27 AM »

this entry is dated June 19th 2017

Today was the first day of full-time indie gamedev. Lot of time today was spent anxious about leaving work. Not in the traditional sense of making sure I had a secure future, but worried that some work was left over and I'd get an angry email. Hope that works itself out.

I spent most of the putzing around with Factorio and Surge, but I spent a few hours working on tuning the mainloop for my game. I know I shouldn't be optimizing this early, and my game isn't that slow already, but a feature I've got right now is, since it's an incremental, is that it works even when you're not playing.

Currently it does one huge loop for all the time you were away, meaning if you were away for 24 hours, it would just run the mainloop once with a deltatime of 24 hours. This works alright, but the problem is that since your harvesters generate resources once, then your salesmen sell, the salesmen only sell once since it looped once. What I mean is that if you were actually playing for 24 hours straight you'd be loop several times a second meaning your workers would be generating and selling over and over again, instead of once each.

Since there's a storage limit for how many resources you can store, the harvesters need to have the salesmen sell to give them space to keep harvesting. So I want to accurately loop about one second at a time for every second lost when you're returning to the game. I don't know that I'll be able to actually do that for any time longer than a day without totally boring the player with a loading screen.

I've been playing Bloon TD and it's got some typical mobile game stuff where you need to tap your harvester buildings every time you come back or else they fill up. Maybe I can explore something like that, or weaken the simulation like only simulating 1000 seconds at a time instead of 1, or even simulating 5 minutes and then extrapolating that over the total time away.

So if the player generated 50 grain and 100 coins in 5 minutes, and they were gone for 10 minutes, I'd just fake it and add 100 grain and 200 coins to their banks. Of course that wouldn't work well with the storage limits but if I got smarter about maybe sanity checking the numbers after like say an hour's worth of output, it could be cool. I'm not sure the player would even notice so this isn't too big of a priority but I would like my game to perform at a smooth 60fps on as many phones as possible.

Speaking of performance, on a well established base, the phone does 200 or so draws a frame, 70% of which are text draws. I've been thinking about moving to BMP fonts instead of TTF to see if that helps as much as I'm hoping. Here's some of the progress that was made on that, you can see the dimensions being messed up



The problem is that I've never turned a TTF font into a BMP one, and I'd have to be smarter in my font usage. Right now almost everything shares a single configuration for color, size and outlines, but since BMP fonts don't scale as well, I think I'd need to set up a few different ones. We'll see though, there's plent of time for that in the future.
Logged

tankorsmash
Level 1
*



View Profile
« Reply #19 on: July 28, 2017, 08:00:57 AM »

It's been about a month and a week since I've quit my job to work on Build Up The Base full time. I've accumulated a total of
12760 alpha testers which is only a few more than the last few posts.

Things are starting to ramp up again, I had spent a few weeks staycationing but now I'm getting back into the groove of things. I'm currently rocking a 102 day streak on Github. It doesn't mean all that much but it's means that at least once a day for 102 days I've had to make some effort no matter how small. I would say most days it's been around 2 to 6 hours of work, where most of them lean towards the lower end of the spectrum. I could say that it's to avoid burnout, but for a little while there I had a tough time deciding what I was going to work on next and it was making me pretty anxious.

Anyway, I have at least made some cool progress on my game in the last 5 weeks. I've moved completely to BMFonts from TTFonts, I've added a new background,


I've reworked achievements so they're staggered and multi-leveled, I've reworked the save system so that I can wipe the saves with an update so that testers can more easily re-test the early game, I've added help text throughout, and a big thing I've added is progression.

Finally when you start the game, after you complete the tutorial, you only see a subset of the mechanics available to you. Instead of seeing every single piece of UI, you see just a few buttons and things to do. I really want to nail the opening moments in order to not scare away players by the complexity.


For what's coming next, I decided I needed to better define the action in my game, I wanted a player to have well defined short, mid and long term goals, I decided that each session meant they'd achieve something like unlocking the next tier of harvesters, they'd make progress towards an mid-level unlock, like an achievement, and then also see some progress onto a larger scale reward, whether it's a new building or revealing new mechanics in old ones.

I started thinking about prestiging, restarting the game as new game+, and how I could apply that to my game. My game's about building up your base and getting production just chugging away as smoothly as you can, so I want to have a way to compare your base to other bases, whether it's a real bad, or CPU bases, so I figured I could eventually add a 'city value' score as a means to quantify the value of your base. Then you could trade with other cities that are at least as high as you or something.

But then I had a better idea, what if when you prestiged, you could turn your base into a bonus-giving totem of sorts, where your next base gets a value bonus, a resource bonus or a cooldown bonus depending on what your base looked like. Think of how in SimCity there's the RCI graph showing where most of your buildings are focused, where you could see the 'shape' of your base through the bar graph. I want to have the game determine that shape of your base and use that to determine the totem. Further than that, I'd like to be able to join together cities and create these networks, but I'm not sure yet what to do with them.

We'll see how this stuff changes, or if it even gets made. Since I don't have a design doc any further than a huge TODO list, my game's focus has been fairly wild. It's been good and bad but I think I'm finally at the good bit of that freedom for now. We'll see if I actually release the game though. See you next time.

As always, the latest build is available through the Alpha, you should try the game out. The update with all this progress will be out soon.
Logged

Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic