Hello folks! In this part, I’ll be talking about our second feature that I finished this week and it is… Bucket Fill! One of the most anticipated features for editing your maps! Now you can fill the areas you want!
As you can see in the gif, you can select a type, tap on the area you want to fill, and here you go! Also, you can undo and redo the changes you’ve done.
For implementing this, the good ol’ Flood Fill algorithm helped me a lot. You can find detailed info from this link but TLDR:
We create an empty queue. Then in a while loop we enqueue the cells around the center cell , dequeue each one in an iteration and change their Type (color) till the area is empty.
It was an easy one to implement and had fun while I remembered the days I saw this algorithm from my university days.
In Part 3, I’ll be talking about Rectangle brush!
Stay in tune!
Hello folks, Eylul here! I have got lots of new features! (Features… and bugs never change…)
The first feature that I’ve implemented is… Yeah, you were waiting for this.
CATEGORIES FOR PROPS!
Now players can browse props by categories (alphabetically) and find what they seek within seconds!
For implementing this, I had to change a few things. Props were defined by their names as their types, so I changed the types according to their general function.
For example, I have a bunch of doors as:
I implemented their Type as Door. Now it’s easier to assign them.
Also, I created UI elements as Categories on the GUI and wrote a simple code to arrange all the props and assign them automatically. In my first attempt, I created the category elements at runtime. What I mean is, take the UI prefab, change its label text according to the Type and stick it to the GUI. It was working nonetheless, but it didn’t give the result that I wanted. UI was wonky, all the props were intercepting with each other when I try to open a Category tab. Then I found the problem: as a UI element, it needs a parent object to adjust the animation codes (our UI system is based on NGUI) and since I made the category element as a prefab, I couldn’t assign the parent object from the scene to the prefab’s serialized field. (Unity please fix this at once 😦 )
Then I made a solution and simply add the UI element to the scene, one by one and fill its needed serializable fields and voila! The result is there as I intended on the gif above.
In Part 2, I’ll be talking about the next feature, Fill Bucket!
Stay in tune!
Ladies and gentlemen… I announce you that…
Subscription is RELEASED!!!
At last, we successfully released this feature and now you can subscribe to our app for unlocking all the features and also have an access to monthly new content as well!
In these last weeks, I’d like to talk about what we’ve been through and what we learned so far.
Last two weeks, we were testing… and testing… and testing… as if we are some scientists from Aperture (refer to Portal :)). We had weekly, monthly and yearly subscription models. We needed to make them upgradable/downgradable since users might subscribe to Weekly model and would like to upgrade the subscription to Monthly or vice versa. But later, we figured out that Unity IAP does not have the functionality about this issue and I was informed that this will be patched within a few weeks.
(I must say that we had issues with Unity IAP yet the community is so helpful, we can get answers from the developers straight through the Unity Forums and I appreciate this.)
Later on, we wanted to test lock/unlock issue with subscription again, whether the app locks the items while there are no subscriptions and vice versa. The thing is when the subscription is canceled, the items get locked AFTER HOURS. I really don’t know if it is only for the test realm of Google Play or something within Unity IAP but according to the forum answer that I recieved for this question, this will be also patched with the next update. We thought of waiting, but we also wanted to do an A/B test, where we can test with a percentage of the users. So we changed the subscription model only for Monthly and then we released it with a certain percentage of the users.
We will update our subscription model to the triple model (weekly, monthly, yearly) when we receive the Unity IAP patch.
Stay in tune and rock on!
In this part, I’ll be talking about our testing process. Testing took a huge part of our development because of our previous experiences with the current store. Users had issues with the store, especially about locking/unlocking. Some users reported that after updating our app to a higher version, their items got locked and similar issues. The tricky part is sometimes we cannot create the same bug or bug environment in order to track the issue and fix. To prevent this, we created some user cases and tested according to these.it the button
First of all, we needed a subscription prototype to test the code whether it unlocks with the subscription starts and locks when it ends. It was easy to do, when an item is bought within Google Play, the receipt is saved o the user’s account. When the receipt comes to the app, the app’s code will get these receipts and unlocks according to it.
The hardest part (not to make but to test) was handling previous purchases of an existing user. The subscription model is easy for the new users. Just hit the button, pay for it and that’s all. But for the existing user… We need to get the previous purchases’ receipts, get the subscription’s receipt and lock/unlock according to the receipts. The logic is simple, having a receipt means unlocking the item. But being a test user and making purchases was hard. Hard because somehow the purchases we made before the subscription model vanished when we downloaded the beta with the subscription model. And this situation made us doubtful because we weren’t sure whether we are doing the right thing. To test it more realistically, we bought the items with real money within the production release. After buying, we installed the beta version with subscription model onto our Android device. (I’m not even counting the failures of being not able to opt out of testing, somehow Google won’t even get our accounts out of the beta. To test this more accurately we had to shut down all the beta testing itself, and our problem is solved.)
Success! After lots of testing, we are sure that the code is working nice and easy. Only some tweaks are needed, after that, we are fully ready to release our Subscription Model and we are so excited about it.
Stay in tune for more updates!
Hello folks! This week’s been a blast! We have done the Subscription Model and ready to engage!
I’ve done its UI as well as the testing of locks/unlocks. I want to talk about the UI first. UI is made by NGUI plugin and as a Unity UI user before, I saw lots of resemblances between them (I know Unity acquired NGUI) and I had no brief knowledge of NGUI before. Thanks my prior knowledge about Unity UI (and some little research), I was able to adjust the new Store with Subscription Model.
The tricky part is adjusting all the items in the scene (labels, panels, texts, buttons etc.) with anchors. Anchors lets us adjust the items according to an another item in the scene. My main items to take reference are the left menu and the white background. I decided to take the center of the white background and the right edge of the left menu.
As you can see, the yellow lines indicate the anchors. These anchors allows me to make this scene adjust itself according to the screen resolution of an Android device. And it’s needed since there are thousands of devices and every brand/model has different resolutions. We want to see the app as similar as possible with every device, so we need to use them.
I’ll be talking about our testing process in the Part 2!
Stay in Tune!
Hello folks! Subscription is almost ready! We got the store adjusted, we got the subscription models ready, we tested the lock/unlock status (our only challenging feature in the app 🙂 ) and here we are. The last to do item on our list, the UI.
My first attempt to do the UI was simple, inspired by other subscription-based apps.
But the feedback is that it is too bland. It does not explain the content enough. We should be able to tell the players what the contents they will receive, and make it spicy enough to make them excited about the products. UI and UX are So, I added some pictures to amplify the scene!
But the buttons need rework, hopefully, we will fix these graphical issues and publish it as soon as possible!
Stay in tune!
Hello! This week’s been quite busy with the subscription! This week we did change the store system, instead of buying and unlocking items one by one, with the subscription system, the items will be unlocked overall and will be locked when the subscription ends. Though this functionality needs to be tested, as we had problems with this current store system. Some users had issues with having their items locked without any reason. The thing is, it is hard to produce the exact same bug environment to test, everything is working correctly in our environment but sometimes this functionality seems working incorrectly in others’ devices. We hope to fix these issues with the subscription system.
In our current store, every user has their receipts for their bought items. In our store code, the receipt is checked. The receipt contains IDs of the purchased items, the functions process these IDs and voila, the items are unlocked. In the subscription model, this is quite the same, although we have to deliver the item altogether, so we need to access our whole library of items, not just one item. This is achieved, as well. Now it’s time to test the functionalities and make sure this works correctly.
This also consumed our huge amount of time because Google has been problematic about test purchases. When we were testing refunding/revoking items, the items were still present even though the user’s purchase has been refunded. We found out that test realm of Google Play is a little bit of chunky, also we had to revoke the items manually. And also in order to avoid falsely locked/unlocked items, we will make sure that subscription lock/unlock system will be working as intended.
Stay in tune and don’t forget to roll to initiative!