Financial reporting

I’m now working on the financial screens. The basic data structure I was able to implement quite successfully. I wonder if it will still work out when the game is saved and reloaded in the future… This will need a lot of rigorous testing to not have a bunch of exploits packed in (even though I’m sure people will find some anyway).

The graph(s) to show income, spendings, etc. definitely need some more work :D But I think I’m tabling that for after the UI rework.

I have some smaller tickets to do before I then go into introducing the “external” charts and the players relation to that.

Everyone wants to be paid

One can now click on the little music people and look at some details. This has to be made more pretty in the future, obviously. But what I was able to introduce this way is salaries. The musicians have an expectation, what they should be paid - if you underpay them, they never get really happy in your studio; if you give them a little extra, they stay happy for longer. It’s quite an easy principle, but it gives the player something to do, I guess. I will have to see if that kind of continuous budgeting is fun or more of a nuisance… Maybe one can upgrade some department in the future that will automate paying the musicians the “right” amount.

But what we introduced now is multiple cost factors to the game. Salaries, room upkeep, production costs - there are now enough elements to spending, that it makes sense to work on the finance page, I think.

I'm not doing microtransactions, I swear

So, here’s the teased scouting system: card packs.

I know, it’s nothing new really, but I think it will give the randomesque scouting workflow a much funner interface. I love opening card packs in games - and in this one you don’t even have to spend IRL money to do so. Through this, I can get you a little bit of that “Ultimate Team”-dopamine, but without the shady business model behind it.

When I rework the UI, I will obviously give this menu an especially juicy set of animations to make it celebratory. You know, something like this (in a more amateur, low-res variant :D):

Tools of the Trade

Man, programming. Sometimes there are things where I think beforehand that they will take ages, and there are others things that seem so simple that are surprisingly hard. The instrument list was the latter. I though I could just copy over the code from all these other lists that I already introduced (albums, songs, artists, etc.), but as the instrument aren’t object instances and just parts of a data structure, everything was different. I fixed it now after a day and a half, but man, I though this would take 15 minutes.

Anyway, the instrument room now works. Not only can musicians now be assigned instruments, but some instruments also unlock new genres. There’s no Rock without an E-Guitar at your disposal, for instance. I’m not happy yet with the structure of the menu, but I will change it when I overhaul the entire UI anyway.

I still have to change some things in the rest of the code so that assigning the instruments actually has an impact on instrument skill and boosting certain genres when in use. But after that we get to the next big package: talent scouting. I do have a fun idea for that…

How are you feeling?

I now introduced the basic elements for speech bubbles and status effects. For the latter, I’m not entirely sure if I will keep them in… even if I animate them to be prettier, they present a lot of visual clutter. So, we’ll think about that. The speech bubbles I do like, but also here we have to see how much we want to expand that feature. Obviously we could take this very far and make it intricate, with the musicians talking about things based on their personality, skills and things they are working on. But does anybody care? So this feature is tabled for further conceptualization in the future. But the foundation is done if I want to run with it.

On to instruments.

Theory of Mind

The musicians are now thinking for themselves! Or rather, thinking happens to them. But isn’t it that way for us real people as well? Think about it…

Anyway, I have now created two big things that make musicians act a little bit more organic:

  • Buffs and debuffs get activated by being (long or too long) in the leisure rooms. Like going to the Bar can make you inspired, buffing your songwriting skill for a bit, but it can also make you drunk, which lowers instrument skill for some time.

  • When musicians are too low on energy and/or happiness, they stop working and go to one of the leisure rooms. They chose the room themselves, based on their personality.

  • The personality influences how much they are affected by their favorite rooms and some other stuff. For example: people with high smarts learn faster how to song-write, but they love the thought of themselves so much, that they more often go to the stylist, which can turn them into an overconfident diva.

This has given the game much more personality in theory. What’s lacking is these thoughts and personalities being visible. So next will be introducing little talking bubbles, where musician say what they are thinking / where they are going. Some little status effects would also be pretty cool.

After finishing that, I have to introduce the instrument room (and the instruments and their logic). With the instruments I should also work more on the assets: creating different looking instruments and corresponding playing-animations for different instruments.

Honest work

It doesn’t look like much, but I introduced the first “leisure room” (a Bar) into the game. Soon, musicians will go there by themselves when they are unhappy, out of energy or bored. But you can also assign musicians to these rooms to make them happy. They get buffs (like being overjoyed) by spending some time in them, but there is also a chance they receive a debuff (like becoming drunk). Those buffs and debuffs vanish over time. I think it’s a fun management task to keep your musicians happy, try to collect some buffs by sending them to different leisure rooms and try to not “catch” debuffs. When you have several bands and they kinda act independently from each other and you, this will be - hopefully - a entertaining juggling act.

The rooms have an off and on-button, so that you can be sure that none of your musicians get drunk, when you’re not looking. They can then not receive the respective buff from the bar either, though.

After finishing these leisure rooms (making copies of this element and changing some values), I will set out to make the musician state machine. I feel like, because of my semi-structured approach so far, this will not be too hard to implement. It will later on just be kinda hard to balance…

These Boots Are Made For Walking

I now have the basic structure for animating introduced. A bunch of assets need to be expanded and I need to refactor some data structures, but this should all work now in a kinda jagged fashion. At some later point, I should rework the code to make it more fluid - but for now, that like good enough to progress.

It’s just nice to see some little people walking on screen :)

Going Forward

The album list works - different albums can be released at the same time and all make money based on genre trend, artist’s fame, album quality, etc.

As my next “epic” ticket I will work on the musician’s state machines. Working on that, I also want to (re)introduce animations. So I have been warming up my Asesprite as well the last few days.

Peddling those wares

Got a few things done over the last week.

Most importantly, publishing is now pretty far along the way:

The album makes money every week after being published based on a slew of parameters, including:

  • Album quality

  • How much in trend are the genres on the album at this moment

  • How much in trend are the themes on the album at this moment

  • Fame of the Artist

  • What formats is the album released on

  • How is the album advertised

It’s already apparent, how much balancing through testing will be needed for this in the future. Selling records is the entire “win condition” after all. But I’m pretty excited, that I got the main elements of the economy in place now. You can now spend money to make money. That’s what management games are all about.


I also worked on a lot of datasets for the first 10 years of the game. I think I’m gonna limit it to this era for the first Demo. That way I don’t have to create all the content before I can make a first release. Every week in the game has a Top 5 of the most successful albums (Charts) based on real-world data. That’s over 16’000 album entries (for 1960 to 2022) I have to edit… So yeah, I keep with the 1960s for now.

“Alma Square” by The Bugs

By the way, here is my new favorite (real) album title of all time:

I'm back, babyyy

My puppy is much bigger now! So that happened.

I’m now working - with about 6 months delay - on the album publishing stuff. As written in the last blog post, I introduced bigger data structures by importing them as .csv. It worked flawlessly!

The review function is tabled for a second, as an easy solution for this could be done rather quickly (“<album> by <artist> is <adjective>”), but a more intricate and exciting version of this is becoming pretty complex. But as a teaser, on the left you can see one of the reviewers, Andrew Fantany from Deedle Nob.

Here’s an example for a larger data structure. How formats have sold over time. Left is my data and on the right the historical source material:

C.R.E.A.M. (Cash Rules Everything Around Me)

I introduced money now and albums can get sent to recording. Now I just need to kinda copy the song writing-logic to become the album recording-logic and album creation is almost done.

Then we go to album publishing. The first part of album publishing is straightforward: define album quality and generate some reviews. Easy enough from a logic-standpoint. For the reviews to be a little bit more exciting to read, I should find a way to give the texts some variety. But that shouldn’t really be complicated.

The second part of publishing will be more complex: the album making money over time. For that I pretty much need to introduce trends and the full market size over time (of which you get a share, so to speak). So that will be a bigger ticket. I also feel like that might be a good chance to try out how to import larger data structures. Typing in all of the trend and market data in a manual way doesn’t seem feasible to me - I should find a way to use a CSV-import. I’m kind of looking forward to this challenge, as it opens the door for many of the “world building” aspects of the game (other bands, studios, the charts, etc.). Let’s see how it goes!

What have you done?

Welcome back! I had some motivation issues the last few weeks, getting back to working on the game. I wasn’t completely idle though, driving through the French countryside and preparing everything to adopt a puppy… but still, I should get more productive again to reach my goals for the game.

But as an offer of reconciliation, here is a picture of the puppy in question:

She’s a “rabbit dachshund” and will be coming to us in a week or two :)

But back to Music Tycoon.

I am still working on the recording studio. Now the album “knows” what its main genres and themes are. These play a big role on the success of the album in the market (based on trends). I decided that the choice which marketing and formats the album gets, only will be done after the album has been recorded. This way you can get a preliminary idea of the quality of the album before you spend most of the money on it (publishing). The big empty part on the left is for the album cover creator - but that’s something for much later.

The next thing will be introducing money to the game, as recording an album should cost some money. After that we work on the publishing options.

Put it in an album

I am now working on the recording room and thus, album creation. At the tail end of this programming bout, we have the catalysator for our economy in place. This means I can start introducing the whole finance aspect to the game. This not only includes earning and spending money, but the whole market through time. But let’s not get ahead of ourselves.

The biggest challenge is attaching songs to the album and getting a picture of what the album in the end is. I want to include some indicators what genres and themes your album consists of, what the overall quality is, and in the end you should also be able to kinda gauge how the quality will turn out before pressing record. So there’s lots of things still to do. But I am happy that I got the song list working.

When I get sick of coding, I also keep myself busy working on the album art of your “competitors” - the best and most successful albums of each year. Here are some examples:

In an orderly fashion

Only a small update, but a useful one. I now implemented the songlist entirely, so that the order of how songs are produced can be ordered manually. I now will work on the song creation automation and then I am done with the Creative Room / Song Creation for now. Album creation will be next :)

Interface-to-Interface

Most time right now I spend building the menus. I’m still on the menu for the creative room, where artists write songs. More and more I feel the need for a design system, that defines all UI-elements, so that things don’t look random. From past experience I learned, that for a interface to be easily readable and understandable, the user needs to get the rules of your (design) system as quickly as possible and for the system not to change throughout the whole experience, if possible.

Those UX/UI-teachings aside, a video game is also a work of art (some more, some less, obviously) and entertainment. So not everything is about “The user should be able to perform a task as efficiently as possible”. Some things should be pretty and/or fun, just for the sake of it. At least that’s why I believe. Otherwise every game would look like a more complicated version of “Pong”. In a simulation game particularly, an important element to think about is what information to show, what information to hide and what information to make vague. In the picture below you for instance see, that the number of instrument is an information that is direct and shown, while the score for the writing is vague. The last point creates some tension, as the player won’t know exactly how the reaction to the piece will be, until they show it to the world. I feel like this recreates the feeling of releasing music more realistically than showing “Songwriting Score: 73 of 100”.

Growing Pains

With limited programming-knowledge, I feel that it’s normal that you are gonna build a game that is quite unoptimized. At least at your first attempt when making new functions. But thankfully, a lot of those issues can be fixed by small adjustments or refactorings of the code. My game got to a point where the FPS was below 25, which I found quite weird, seeing as how small the game still is. At an earlier point I talked about the need for Culling - as “drawing” is one of the, if not the most performance-heavy thing the engine does. But there were other things in the Draw-Event as well, that hampered my performance.

By making some of these functions in the Render-object dependent on user actions (like only closing all menus, when there are actually menus to close - duh), I managed to get my performance back from 25 to 140 FPS. Sometimes it’s the small things, really. But it’s a good reminder that, while your performance is not the most important thing in a lot of settings, the performance can be a good indicator where you have written bad code and should look over it again.

A Song of Stuff and other Stuff

After having done most of the ground work for all of the rooms, it’s time to program all the logic for them and their interactions with the artists and musicians. This also includes all of the menus that lead to basically the entirety of the player input. So when I’m through this - albeit, it might take a few weeks -, the game loop basically stands. I don’t think it will be fun at the end of this already - as the system will be lacking competition and goals (which make it into a game…) -, but the player will be able to control everything as they are supposed to. I’m very much looking forward to that point! :)

I now go room by room programing the menus and systems, before then writing some niftier musician AI. At the moment, I managed to “teach” the little buddies to enter the room you lead them to, leave it when they lack energy (at least for the rooms they work in), and return to their lounge (where they get back energy) automatically, at least if they have one of those assigned to them.

I code the rooms in the order of the game loop. Because I already have the musician creator done and also the artist creation (in the artist lounge), the song creation in the “creative space” is next:

The player is able to pick an artist to write the song, then give the song a name, choose a genre for it, a theme and the instruments that make up the song.

I still am in the “concept phase” of thinking about introducing a simplified DAW (digital audio workstation) for players to make their own music. I believe that just outputting generic songs is a bad idea, as they won’t match whatever the player has in mind, so I rather have them either do the leg work to make the songs sound like what they imagine, or the songs created have no sound at all… I probably should get some feedback from testers in the future, if that is the right way to go. But as said: I’m still in the concept phase on this point.

Alas, in this first phase I am happy when songs can be named and categorized, the quality of them (based on the songwriting skill and genre skill of the artist, as well as some randomization) calculated, each song be “written” over time by the artist in the room and it then being saved in a data structure, so it can be chosen to be recorded on an album (in the next room: the recording studio). That leads to a lot of potential for personalization already.

At a later point I also will make a “keep on writing songs automatically”-feature, so that the songwriting can be automized. I think some part of the player base will want to make songs and albums “by hand”, naming and choosing every song individually. But other - more managerial, “big picture” - types of players, probably don’t care about the song names that much and will want them just to be created as efficiently as possible, so that they can create more albums and make more money (quicker). So the “automatic song making” will probably take some keywords based on the genres and themes and create songs like that. For the more hands-on player, who wants to create every song individually, I’m thinking of introducing a queue of songs - so that they don’t need to go back every time one song is finished.

PS: I also made my own font for really small text: