Zooconomy (Strategy-puzzle)

I will do weekly posts: a mix of developments insights and what have been done so far.

Cloud loading screen basically has no other purpose than esthetic one. I really hated how abruptly game loads world map and wanted to make transition more smoothly. And as it is a world map, there can be :cloud: and also i remembered playing Two Point Hospital, where they same idea applied. And that’s why i made this cloud\transition\loading. On a side note, with game getting bigger, maybe in a future it will be used to load assets during transition, who knows :slight_smile:

giphy

I was tired from programming and took some time to test and implement animals avatar animation this week. One of the most used assets in the game are animal avatars. They are used almost everywhere. While 2d artist continues to draw avatars for remaining animals i tried to animate one of them. For animation i used Spine and it was pretty straightforward. Here you can see the “final” version of Golden Eagle animation, but i am 100% sure that i will tweak it at least several times :expressionless:

4x2

And this is timeline from Spine:

I’m not sure yet if animations will be used instead of all static avatars, but probably only in some parts. One reason is that it won’t be nice to see several golden eagles with the same animation in animals list. Of course i can make several animation for each animal, but it takes a lot of time to do only one animation. Second reason that the avatars size is not so big in the game, and it probably won’t be so noticeable if avatar is animated or not. But we’ll see, everything changes so quickly) In the end, the test was successful and probably in one future build you will see animated avatars.

Thanks again for interest in my game. And once again you can play demo via this link. Next time i will tell about scroll panel nodes management and round progress bars. Stay tuned.

14 Likes

oh man, that is such a great eagle!!! i have to investigate spine, that looks so good

3 Likes

Thanks)
You can download and try Spine for free, but you won’t be able to export anything from it without a license. It comes with many samples, so you can see what you can do with it and even try it yourself with samples or with your imported files.

they have a sale on at the moment… I will have to get it, i think. It’s a good price and i’ve been looking for some software like that for a while!

Really nice demo… the music animations and graphics… go together really well.

1 Like

@Tremor_Blue thank you, but unfortunately current music is just for reference and will be replaced before release. Hopefully it will in the same style)

This week was focused on gui “quality”, as i recently discovered that almost all scaled down images were blurry, as well as world map with zoos on different zoom levels. World map i have already fixed several weeks ago and started digging into shaders stuff (resolved problem). Approach was pretty much the same with gui. With it i also updated some icons.

Meanwhile i worked on news and events systems. News will be used to create “live” world around the player, reflecting player’s actions like upgrading zoo’s capacity or exchanging animals. Additionally it will just show world news, for example:

Bear the dog saves more than 100 injured koalas. A koala-detecting dog has come to the rescue in the aftermath of Australia’s fires.

Main problem is that this news are created manually and as a player i would like to see unique news every time i play. One approach is to create hundreds or thousand small news. It’s very time consuming and not practical. So this lead me to idea to use neural networks to create news headlines. I would also need to collect many real news headlines to train neural network, but after that it will generate unique headlines every time i play. I’m not sure yet if i would implement this, but it is cool thing to try. Right now i’m tuning frequency of news. You do not want to show something every second, but also do not want to show something every 10 or so minutes. Basically i would track when last time news was shown to the player in in game days and in real time.

Events will affect gameplay and offer player a choice, for example: one animals has escaped and you have to do something about it or there are forest fires and you can temporally hold animals at your zoo. It will have some advantages and disadvantages. News will also support these events, like news about some spotted fires, and your decision to hold animals or not.

First version of news system is almost ready while events system will take some time to tweak and fully implement. Here is WIP screenshot:


Image used from www.freepik.com/

This post is already big, so i will tell about node management next week ( i promise) :neutral_face:

But before you go:

Only five animals left to draw from the initial group of animals!

8 Likes

Hello everyone and welcome to another friday progress post.

On the last week topic, i have finished first simple news system. At this stage it works good, but newsline speed probably needs tweaking. Newsline works okay with different languages correctly calculating end of the localized text.


Note: gif is trimmed

Event system in the end will affect a lot of things, so i will do it in a small iterations with focus on one event type at a time.

And finally promised things about node management.

I really can’t recall why i come to this solution in a first place. Problem was that at big number of animals nodes (more than 30 animals), some of them was disappearing with warning, that max number of nodes was exceeded. I tryied to optimize nodes, putting everything in different layers and so on. I managed to increase this fallout number up to 40 animals, but it was still not good. In the end i decided to just “draw” nodes that fits in current scroll view. I wrote a simple function (which was rewritten several times), that checks if nodes “ends” are in the view. If it is - draw it, otherwise do not draw. Here is the example:

I am sure there are different ways to overcome my problem, which are probably much simpler and easier, but in my case, this system helped me later, when i encountered Stencil buffer exceeded, clipping will not work as expected warning. I wanted to create round progress bars, so i used several stencil mask to achieve it, but when there is a big node with several progress bars they all fill stencil buffer. And as node is drawn as one entity, progress bars which are not visible still are drawn. So i started to draw “subtasks” with the system which i used for nodes: if this bar visible draw. Here is the how player see it:

Task%20or

And how system draw subtasks with progress bars:

Task%20view

Progress bars are not visible on this gif, sorry

And that’s it for today. Thank you for your attention. See you next week.

6 Likes

It’s friday again, so welcome to another blogpost. It will be a short one.

We have finished with animals avatars (at least with starting animals):

Meanwhile i started working on save\load system. It uses DefSave for saving and loading, but right now i only made a gui for it, which saves only some basic information about current game state. It will definitely take some time to implement correct loading procedure.

First events for Event system are almost working and i hope to finish them next week. Also i found screenshots of first prototype and several iterations of the UI, so it looks very different right now, but some basic concepts are still there. Everything was White and Blue back there)

That’s all for today. See you next week.

8 Likes

This looks like a lot of fun! I love the animal icons. Will giant pandas be as rare to have at your zoo as in real life? If so, it seems like it’d be a fun challenge to try to get them! :panda_face:

Are you using a UI component library like dirtylarry or gooey, or is the UI system/scrolling/etc completely from scratch? I’m pretty new to Defold so I’m interested how people architect complex UIs. Either way it looks really nice!

2 Likes

Thanks )
In campaign mode all animals will be determined and will be the same all the time, so if i put one panda in mission it will be hard to get it :smiling_imp:. I’am trying to do missions as real as possible, so they will mostly be in Asia. But in sandbox game, every new game you play, they will be different random set of animals. Previously i just random select animals, but now it is more complex and i use conservation status to generate set of animals. So if animals is rare i will generate 1 or 2 animals, if it’s more widespread - more animals of this type. And yes it will be a fun challenge to get them).
I will probably made a post about generation and other stuff.

I am using dirtylarry for the gui, but i made small modifications to the original files. And if i recall correctly in dirtylarry you can scroll by dragging only, so i add mouse wheel scroll as well. Basically, i just detect if mouse wheel was used and replace action_id to “touch” and set some scroll speed.

action.dy = -scroll_speed
action_id = hash(“touch”)

2 Likes

That’s a cool system! I like that animal rarity and real-world location will affect things like that – it could be a cool chance to learn some new things about different animals, too!

Thanks for sharing some info about the UI, too, that’s really helpful to know!

1 Like

Welcome back to another blogpost. Today we have some polls and development progress.

First two events are finally done: animal escape and epidemic. I think that you can figure out what happens in them). When animal escapes, you can’t exchange it and breed, so you have to find it somewhere in the city. Right now it happens in the background, so animal is just unavailable for one
month.

During epidemic animals just can get ill with higher chances. And it lasts from 1 to 2 month.

During testing, numbers will probably be changed. Also both events are just “information” for the player, because player can’t influence on them. In other events there will be an option to make decision.

And now a big topic for today - Tutorials. Usually tutorials are made in the end of the development cycle, but as i was showcasing Zoo Economy at DevGamm Minsk 2019 i needed a simple tutorial for the showcase and for the initial review. It was very simple system and with lot of text.

I consider my game a bit complex for just sit and play, so it turned out that these genre in particular is very bad for offline showcasing: people do no want to spend 10-15 minutes just understanding what is going on. So compared to other booths less people was playing then watching. That’s why gameplay video was playing on separate device.

But during playtest with my friends, i notice that only 1 of 10 people read the tutorial! :rage:It happened in nice environment with no rush and any distraction. They just skipped all messages and then asked tons of question about how to do something. Even when the same players tried next build, they still skipped them all. And on my question why? They said that they already know how to play :neutral_face:. And they game should be understandable from UX point of view.

Of course any game must be as easy to enter as possible. In some genres it is very easy, in some more difficult to do. If you never played Civilization, i doubt that you will play the game without the tutorial. Almost in every game i play, i read tutorial if present (except for general controls, like walking etc).

There are 4 tutorial missions in the game, in which gradually new mechanics are introduced:

  1. Animals exchange
  2. Money und upgrades
  3. Animal breeding
  4. Animal illness

So with all this tutorial skipping, i remade tutorial system) Initially it was designed to just show what to do in the game. Now it is partly animated, with more text spacing. Maybe in the future i will add some other things to it, but for now it’s looking way better.

Before:

After:

And do you read tutorials in games or skip them?

  • Yes (Almost in every game)
  • Yes (When i interested in the game or like it)
  • Yes (Only in some genres)
  • No (I will figure it out myself)
  • No (I do not like them)
  • No (They are useless)

0 voters

5 Likes

Looking good! I think it’s really important to have tutorials in games (and apps) with non-trivial complexity, even if they might get skipped. Implementing them is usually a hassle, but I like that it forces me to think about how the use flow is designed and sometimes presents opportunities to simplify/streamline some elements.

To avoid people just skipping messages, I find it useful to only explain a UI element when the player actually needs it – for example: don’t explain the date/fast forward UI, actually require the player to fast forward as part of the tutorial; don’t explain the money balance display, ask them to buy an animal that’s too expensive then highlight the money display when it doesn’t work; etc. And then, if I never find myself explaining that element for the tutorial, I start to question why it’s there in the first place!

2 Likes

Great idea! I will try to move some tutorials to places where they “needed”.

And you also right about opportunities to simplify some things. Every feedback from players is valuable, especially negative or strange.

1 Like

You can make as a start level of the campaign that he must do two three things basic and easy. Just for see how is done. I think does nt need much detail. Or you can put two tutorial one very detailed and one simple. Keep up the good work… me still trying do defsave lol :smile:

2 Likes

That’s way there is 4 tutorial missions) To show gradually and explain everything as well.

1 Like

Welcome to the shortest devlog so far)

I have finished new build for two events which are coming this july, so it was mostly polishing and bug fixing. I will take part in WHITE NIGHTS SUMMER 2020 and in GTP Indie Cup. So i will probably release new trailer next week, as i will create it anyway for these events.

And a lot of changes coming to the core gameplay and UI\UX. Lengthy play session revealed several flaws which must be addressed to create more interesting and fun game. So stay tuned)

Also this week i tried @Denis_Makhortov system to check if we clicked on transparent part of sprite. But i have to rewrite some parts, because i need it for continent selection in Sandbox menu, which built with gui sprites and not with game objects with sprites. Anyway it worked, but i’m not still pleased with the results and probably will use more simplified image for generation.

That’s all for today. See you next week :sunglasses:

3 Likes

Could you write in more detail? Not perfect accuracy? If so, then I think you need to set the compression to 1

1 Like

Sorry, I probably didn’t put more context) It worked too well, I used compression 1. Problem is in images themself. North America for example, has very complex shape with small island and parts. And when i hover over it, it often jumps form selected and not selected. So i wasn’t pleased mostly in this)

The algorithm itself is very nice, thanks.

How it’s look.

I will probably fix it, by using different images for generation, like this

2 Likes

Welcome to even shorter devlog)

Today i have for you a gameplay trailer, which is based on latest stable version. Work is still in progress)

And that is pretty much it) Things that i am working on right now is still in early stages, so i will talk about them in next devlogs. See you there.

8 Likes