19 – Having fun modelling

I have been working on 2 complementary things at the same time: improving my modelling skills and finding a suiting art style for Manage the Universe.

I love the process of modelling with Blender, it is really satisfying for me. And I find it easy to get myself to work on modelling, so I that is a good indication that I might be able to pull off a content rich game.

On the finding of an art style: this one is difficult. The amount of polygons or the color schemes don’t appear to matter so much. I tried to find a satisfying result while working in blender with changing model poly count, texture color maps and scene composition. But feels not right. I need the whole picture. So I think I have to get this into Unity and add more things like animation, direct and indirect lighting, and other effects.

So I did some more modelling. A few trees for the nature side of things, and eventually a few planetary bodies for the galaxy overview.

It is with these planetary bodies that I imported them into Unity and tried to get a good looking composition. So I created an actionblock and added a sun (with light effects) and rotating bodies (planets) around it:

I like this fiddling in Unity: with this being in the engine I know if it works I can pull this off, unlike animating stuff in Blender and hoping it compares when imported in Unity.

By the way, there are a few improvements I could think of. First of all the sun has to be bright yellow, than I have to find something better than these 2 point lights currently in the sun, and of course adding clouds & atmosphere on the planets. But what do you think I could do to improve this scene?

Bi-Weekly update 18

Hi, Erik here. A solo game developer doing his ‘thing’. Currently I’m writing this on the evening of my weekend. For me writing this article is a fun way to get me thinking about all the things I accomplished the past to weeks. And for you a way to keep notice of the interesting things I come up with.

I learned from my mistakes

My ‘asking for a buddy’ a few weeks ago is still influencing the things I do. I did some more talks, and this time it was about my way of prototyping. The designer pointed out I was going too fast and not ironing out the necessary things needed before you go to production. With his background coming from EA he said ‘game companies do this all of the time, no hard feelings’.

But I realized that I was making the same mistakes I made with ‘Find the Gnome’ back in 2017/2018.

Let me take you back in time. Back then I had some things worked out, like using gnomes and doing hide-n-seek with funny mouse interactions. But that is just a very small part of the game. I had not looked into level design and story design, and how these would amplify the funny game mechanics. But I started production, happy that I did find some kind of core game loop. So I ended up working myself into the corner, not being able to recover from it. Eventually I came at a point in the production that if I wanted to make the game better, I had to start all over with all the level design, assets and story. But 75% of the time spend was already in those parts of the game…

(Interesting detail: If you play ‘Find the Gnome’ you see that there are some levels ‘under construction’ still to this day. That is where I gave up hope.)

Back to current day. With ‘Manage the Universe’ I have everything still open. I can still make a great game out of it. All assets that are created currently are technical/mechanics only and can easily be dropped or repurposed.

So I made a whole new plan, this is for the prototype phase only:

If you want to know a bit more about how I salvaged the progress, see this in depth article. There I explain what the end-product of the prototype phase should be, and from there on you can work back and create steps on how to get there.

Let me introduce ‘Actionblocks’

Another experimental technique I am currently using is an ‘actionblock’.

What is the official idea: it is an isolated ‘main’ game mechanic, but with enough added small helper mechanics so that you have a mini game around this ‘main’ game mechanic. Make like 40 or 50 of these, and from there on you can easily play with different mechanics and mash up a few of these ‘main’ mechanics and find out if an interesting core game loop emerges.

I did add my own twist to it. I want my game to be more component based even during production. So I see use in this as a combination of prototyping, game-play testing, and component testing.

So, in practice. For a new mechanic I first create an actionblock and work out the details of this mechanic, and then add it to the core game loop. But the two are interconnected in that I use clever interfaces. So if isolated correctly I can than easily tune the specific mechanic in its actionblock without having to fire up the whole game. And preferably do some automated testing with it in the build pipeline.

Actionblock ‘tech tree’

A big portion of my previous 4 weeks went into this actionblock thing, and specifically the ‘tech tree’.

During working on the actionblock of the tech tree I found out I was creating all kind of production ready UI elements. So it was then that I decided to get back to prototyping. Hence the prototype look:

It is all about the tech tree, the additional stuff is there to extremely simplify the remaining game loop. My current goal with this actionblock is to determine how the tech tree interacts with you while doing your usual stuff of exploring the world. It is still a WIP, the idea is that you find items with technology on it and that this unlocks your techs. But sometime you can’t unlock tech because you have to advance other parts first before you can do ‘better’ item finds, and with this actionblock I am trying to work out a good way to get this interesting.

Prototype phase 2

Product development is a hard thing to do. It is so easy to want to go too fast. The reasons don’t matter: if you don’t have enough information on your product and its market yet, you are in for a bumpy ride if you push through.

I know all this stuff from business software development, and from developing my first game ‘Find the Gnome’. It seems I got myself trapped again.

In this article I shed some light in how I continue to keep the speed and agility in my product development.

First prototype

While working on the first prototype of ‘Manage the Universe’ I slowly came to a halt.

A few things that happened:

  • I hadn’t decided on the art style of my game yet, nor experimented with it, nor researched how to get a good looking art style in my game engine.
  • I started needing models for my terrain, I needed design guides for my UI elements.
  • While modeling my terrain I was not happy with the results. Partly because it didn’t look good, but also because I had no idea where to aim for.
  • I was slowing down. Since I was building a vertical slice I got things thoroughly connected and reaching certain parts in game while developing became hard. I was countering this by creating debug screens.

Don’t get me wrong. This first prototype phase was a very fruitful one because I could explore the possibilities of the idea that is ‘Manage the Universe’. I now have a more clear understanding of the core mechanics, that they work, and that this product is worth dedicating more time to.

The thing is that with me trying to make a slice is based on the assumption I know what is in that slice. I do know about the outlines of the mechanics, but not their relations and I certainly have no idea what I want to do with the art.

So, there is my problem.

Second prototype

A lot of stuff still needs refining and exploring. But now the components are clear. So I have redefined my plan.

It was this:

I revisited it to this:

As you can see there are now 28 items with prototyping art vision or an ActionBlock on a certain aspect of the game. Finishing each part will result in a delivery of a test scene (with art or game-play) or a code improvement.

There is still a lot of work to do, so I probably need to scrap more features. But I like it that the roadmap is a lot more clear now.

Next phases

The end goal of this phase is to have a clear understanding how things ‘work’:

  • How does the game look like.
  • How much time would it need to create certain content.
  • The relation between the amount of content and the amount of playtime this will get.
  • A code base / architecture that is not likely to see drastic changes.
  • A good working pipeline with tools, a clear understanding how to easily add content.
  • Good QA tools to see if the game-play still works out.

So then I could make calculations on how much content I want to have given the time available. And to layout the needed assets to be created.

Then the production phase starts. This is where all these assets get actually build and put together. While testing and fine tuning. And with the help of other freelance developers I want to hire.

Somewhere in the beginning of the production phase, early alpha builds will start to get available. Probably on Steam Direct or/and funded through Kickstarter.

And when all content is created, the product is ‘final’. Then I can look at what is created and how well the community responds to this game, and decide on adding additional content.

The competition

Tell me, do you often experience something like this: you have a great idea, start working on it, and one day you stumble upon a video and it seems as if the whole world is already creating the idea’s you had in mind. And they where doing this for like the past 2 years already, so it seems as if you where sleeping these past 2 years…

This blog is about the competition I face while building ‘Manage the Universe’ and what I think of my chances.

First of all 2 nice videos worth watching if you are into strategy games / city builders. These are the competition I’m talking about, especially those in the strategy 4X section.

My first notice is that most of the games have decent to excellent 3D graphics. Yes a few are cartoony but even then quite polished.

A bit more on the looks of the game. My aim for the game would be to place it in a space sci-fi setting with gameplay balancing between strategy and first person action. That brings another set of competitors in view:

There are a lot of good looking competitor games in the market. I did know this already. But every time I look at the competition I see very well thought-out and nice looking spaceships. I want at least well thought-out space ships, but even that requires a lot of work to pull of.

Back to the strategy video. A thing I noticed was that a lot 4X strategy of games use generated maps with hexagon tiles. And they have interesting approaches on how to make the terrain fit these tiles and still look natural. See this for instance:

Look at the water body on the right: these are nicely hidden hexagons. Or the mountains. Or the nice transition between the plains and the farms in the bottom left. It gives me a nice reference to what is possible, but I do know from first hand experience that getting it to this level is quite a feat on its own.

Now on to comparing other parts of the game. My game would fit quite a bit in the 4X genre: ‘eXplore, eXpand, eXploit, eXterminate’. A few of these games are 4X and do also have real time battles, so that is about the same. Most of these strategy games have progression systems (upgrades, tech trees). A few of them are in a space sci-fi setting. A few of them have hero units. And a few of them are story driven. But not all of them have it all at the same time. And no one of these play from the eyes of a main protagonist, as in: your strategy control is centered around your protagonist. And none of them have the unfolding gameplay, progression system and replayability system.

A lot of comments that accompany these video’s do complain about these upcoming titles to be more of the same. But at the same time people refer back to Age of Empires 2, Dune, Supreme Commander (1), Total War series, Empire Earth 1, Black and White, Star wars Empires at War, Populus, Civilization series, etc. Deep inside them they want to relive their old experiences over and over again.

In 1990-2000 there was a golden age of strategy games. But it seems as if there is a revival happening with a lot of upcoming titles. The question is however: are these new titles compelling/different enough to compete with the other new stuff when they compete at the same time with the old legends. And is this revival a good or a bad thing for my title… only time will tell.

On the positive side I do have a few interesting tricks up my sleeve. While I have to watch out with the graphic side of things (and possible look for support of other devs), my interesting gameplay mechanics will save the day! (If executed well)

Bi-Weekly update 17

Manage the Universe

Last update I wanted to create a holographic view of the second world detail level. But I would not be me if I worked on something else. I had a hard time determining how it should look like so I decided to let the idea mature a bit more.

Asking for a buddy

What I ended up doing was asking Reddit to help me out again. This time more serious: I asked for a game dev buddy. That is because while determining where to work on I realized I was doing a lot of work on my own and I need someone to talk to. I need someone to mirror my behavior and help structure the thoughts I have.

I got an overwhelming and heartwarming response. A lot of people can relate to the issues I have with finding like minded people in these COVID times. It is hard to work from home, alone.

Core game loop

‘buddy’ game designer CALSYTHE took the limited information I gave him and turned them into a core game loop. This is a major step: it means that all needed components are already in place and they have the potential to work together to create a working game.

This is what the core game loop looks like:

God games

Another game designer that contacted me on the Reddit post did send me this video. It is about the ‘god game’ type of game where you use indirect controls to let people do stuff.

Well, after watching this game I found out that I did not want my game to be a pure ‘god’ game. Yes the ‘god’ mechanics is a fun one, and yes I think I will use it partially. But more as a secondary mechanic than the main one. This is a game and I want the player to have more direct control over stuff than in real life, to enhance the power fantasy.

A ‘god’ mechanic I would like to implement is one where your environment makes their own decisions independent of you. But they still use your ‘set way’ or ‘blueprint’ to subconsciously guide their decisions.

And yeah power is relative, it is the contradiction that makes you feel the power. So I know I need some helplessness in the game to emphasize the power. But that could be naturally achieved by adding stuff you really don’t control (even in real life never ever) like love/adoration/faith.

Identity

Identity and the search for identity is something many people can relate to. With me having a real ‘business’ I have had a few boosts in my own search for identity.

One of my latest findings is how to align all of my identities and get 1 ‘backing’ personality out of it. So me being a father, me being a lover, me being a software engineer, being an Indi game dev, me playing computer games, etc. Getting all these identities together will solve a lot of contradictory feelings and energy drains. The main thing I discovered is what my inner child is a ‘manly energetic problem solver that really likes to fiddle with stuff on his own’. So next on the to-do list is to align more of the things I do to match up with this profile, and to find out how I can implement an (emotionally) mature version of this inner child.

A concrete example of this is that I am making decisions about how I would like to shape the future of the company GameFeelings if things take off. This is not about dreaming of a future, but it is really needed if I want to take running a company seriously, as said by Joakim Achrén from elite game developers. I follow his blogs for a while now and I am subscribed to his mailing list, and there he speaks a lot about how to found game companies and still enjoy your work as the founder even when things change. It comes all down to deciding on identity and always aligning the things you do and plan to do with your identity.

Procrastination

I think the long time readers of my blog figured this out already, but I am very good at procrastination. I think it has something to do with my ADHD as explained in this YouTube video.

Procrastination could be a bad thing and I usually interpret it as a bad thing, however I am on a discovery that most of the time there is an underlying issue that can act as a signal on things that are not working out. For instance, me not wanting to start working on the level 1 and level 2 is more an issue of knowing that I can’t deliver on the art, animation and effects. And that relates more to having issues with a time deadline than that I don’t believe in me being able to learn some sufficient basic skills.

So yeah I am currently wondering if I am going to make the game I want and take the time it needs, or to just push for it…

Bi-Weekly update 16

Business

A quick overview of the business side of things.

Due to the whole COVID thing there is still much uncertainty in the market. Especially on the freelance / consultancy side. And since I am a single developer with no profitable game released yet, my money comes from savings of the freelancing I do in business software development.

My idea is to put as much time in my game ‘Manage the Universe’ as possible before having to put that project on halt and doing some freelancing to get the finances to do another take on ‘Manage the Universe’.

For this reason I’m looking for a new freelance project starting in December 2020 / January 2021 with a duration of 3 to 6 months. If you do happen to know someone that can use my skillset, please let me know.

I’m looking for:

  • A full remote project all over the world, or partially remote if it is max 2 hours driving from Zwolle (Netherlands), or on-site if it is max 1 hour driving from Zwolle.
  • Or a C# Unity project, or a C# .Net (Core) project.
  • Hourly rate is negotiable depending on travel and working conditions, seniority required, using an intermediate party, etc. Range is 65-80 euro/hour (ex btw).

What do you get:

  • An expert developer of C# .Net with a lot of experience on back-end heavy projects. Experienced in both full-stack as in solution/enterprise architecture. I have 10 years of professional experience, besides building software as a hobby for over 22 years now.
  • People recommend me because 1) I love my work and I naturally inspire other developers, 2) I can be build upon and deliver what I promise.
  • My expertise shines when doing technically heavy projects or being in a complex environment. Very skilled at dividing workload, solution architecture, databases, (multi)threading, networking.
  • Technologies used recently: .Net Core, Azure services, MsSql, Message queue’s, Azure DevOps, Azure IAM (AD/OpenID), Unittests, Postman.
  • Methodologies used recently: Agile, Scrum, CI/CD, Dev(Sec)Ops, TDD.
  • Languages: Native Dutch speaker, work level English.
  • For my full resume see https://www.linkedin.com/in/diederikjohannesderoos/

I am open for companies that want a long term relationship with small projects or assistance on a 1-2 days/week basis. With work like this other contract types like payment on a project base are possible.

Manage the Universe

With the commercial talk out of the way, here is an update on ‘Manage the Universe’, the game I am currently working on.

The major progress is on the ‘galaxy’ overview. If you watched my socials I did put this on my twitter:

As mentioned in previous updates this game is going to be a strategy game. The hexagonal style is communicating this very well I think. And the hexagon tile enables me to simplify the game mechanics.

The game has several levels of gameplay. To sum those up:

(By the way, layer 3 has the most appealing looks yet. That is because I started with layer 3, did some work on layer 2, more on layer 1, and then re-imagined layer 3. When I get the other layers another pass they will look a lot more appealing and consistent.)

The hexagon and gameplay levels system ties in into the progress. The idea is to unfold it like this:

The whole galaxy is generated from a seed. That is where another benefit of the hexagon comes into play: it makes for an easy building block system.

Where to work on next?

I’m still deciding on the art direction. A lot of the 3rd person level 1 planet view is depended on assets being made, and with the art direction not clear yet I don’t think that is where I will be working on next.

But the level 2 region overview of the planet is something I’m comfortable to make a few decisions on. I’m thinking about making it a holographic representation like thing, to emphasize the strategic element of it. With it being a representation only I can use a few shortcuts like non-realistic building placement and low effort assets. It would be cool if in the next 2 weeks I can get to the point where I can show off buildings, units and unit command.

Bi-Weekly update 15

Manage the Universe

Another two weeks of progress have been made on ‘Manage the Universe’. Still working on very rough concepts. But I have some nice screenshots to spice it up!

World surface generator

Most of the work went into the tile generator. This system will generate the surface of the world where your character can walk upon. The world consists of regions where each region is a hexagon that is filled with smaller hexagon tiles. A few screenshots of the work in progress:

Decisions

There are a few things that I had to decide upon. How big is the world? How detailed is this world? Is it generated or hand crafted? How close by is the camera on the player, and how good does it have to look when being that close?

I choose the world to consist of regions in hexagonal shapes, with that being the smallest ‘thing’ in the game. You specify if a region has housing, mines, units, etc. Then the region is split up into smaller hexagon tiles, with the content of these tiles being generated from the region ‘master data’. These tiles leverage the benefits of a generated terrain while still being able to model specific tiles. This way I can still create interesting tiles with specific features to it.

Here is a screenshot of me work out another aspect of the design: how ‘rough’ these terrain tiles will be and what the max height can be while still look believable.

To get an idea of sizes: the screenshot is a mountain tile composition I made. This mountain consists of 7 tiles. This is the highest I can get a mountain to be without taking more tiles as a base, or else it will look ‘off’. The capsules are the size of a human avatar, for size comparison. Each tile is roughly 40 by 40 meters, the region 400 by 500 meters.

There are still some things to experiment with: take the mountain for instance, it is very low poly. I don’t know my poly budget yet but I think it doesn’t look that well even if you take in consideration there will be props on the mountain slopes. So I think I have to go with LOD profiles on my tiles to get a better looking world, especially since the cam will be more close by than the screenshot currently shows.

Next

There is still a lot to do to get even a minimal working version.

Working on the game gets easier by the week. I had a lot of difficulties determining where to work on when all was unclear, but it is a lot more fun now I am heading in a specific direction.

Fingers crossed if I can have some gameplay ready in 2 months from here…

Bi-Weekly update 14

Manage the Universe

Two weeks of hard work have gone into ‘Manage the Universe’. I wanted to get a visual stimulating progress to show to you my readers… but instead I ended up creating a lot of code and doing a few sessions on game design.

I’m getting an idea of what I want with the visual side of the game. Creating this on my own isn’t in my set of ability so I have called in on the mighty power of the internet to assist me… in getting some nice things from the asset store!

These assets will be used in the alpha I plan on releasing November this year. I don’t know if they will be in the end product: that will depend on how well it works.

Another interesting thing I did was asking Reddit about my game design. I got a lot of useful responses. The main issue pointed out was that there is no ‘core game mechanic’.

So I did a lot of thinking and rework on the game design. And I decided to get the scope of the game smaller to be able to deliver something worthwhile end 2020.

While working on the design I realized a lot of the game’s pacing is depended on progression. So my main focus currently is to get an interesting tech tree that will allow for a gradual pacing but at the same time get that sci-fi vibe of endless exploration and endless possibilities.

One thing I learned while getting a tech tree together is that I needed to work backwards: In a game a tech unlocks an ability, but as a designer I have to think about the pacing I want to achieve and then work backwards what that implies for the available techs.

An idea of where I am currently at with the early stage gameplay:

‘Manage the Universe’ early game progression on draw.io

And that is it for this update! I hope you enjoyed reading this post and know a bit more about what it takes to make a game.

Bi-Weekly update 13

New content

As a solo game developer I have to make stuff happen across a broad range of expertise’s. That is not easy as a specialist. And I think a lot of small (starting) business have these issues. So that is why I want to share my practices.

I did some website analyzing past 2 weeks. This article came out of that: Your website, worth the effort? If you have a small website and try to reach out to your customers, please give it a read and comment how it was helpful to you or how I can improve articles like this in the future.

A picture from the article displaying real traffic data from 2020

I created something else last week. A tutorial ‘Azure DevOps Unity3D pipeline‘ about using CI/CD for Unity3D game development, using the Microsoft stack. I tried using Jenkins in January this year to achieve the same, but that didn’t work out. So that is why I created one using Azure DevOps and I’m quite satisfied with the results.

The tutorial video from the article

In the future I will give you more insight in my toolings used. But I need some time to accumulate positive and negative experience’s so I can give a balanced insight in my game dev related development tools and practices.

Birthdays

August is a special month for my family: my wife, 1 child and I celebrate our birthday that month.

Due to COVID-19 we had to spread the ‘load’ so we had a full week of eating cake each day.

Not much else

Beside creating the content for the website and attending to birthday parties there was not much time left.

I did some code optimizations on Manage the Universe and added a few background-computing things but that was all. Nothing visual to show…

Next update I promise I share some nice early gameplay!

Azure DevOps Unity3D pipeline

This is an article to accompany my video about setting up an Azure DevOps pipeline for a local build agent with Unity3D.

For those who want the files: https://gamefeelings.files.wordpress.com/2020/08/helper-files-for-azure-devops-unity-build-2.zip

And here the links to a few other resources:

Why Azure DevOps

I did a video on a Jenkins setup this year. In that video I show how to setup a local build system for Unity3D with Jenkins.

Doing DevOps was already kind-of a practice in game dev. It was often called a pipeline and revolved around getting newly build stuff integrated in the existing code base. So the current move of automating and streamlining more stuff into pipelines is only an evolution of this old practice. You only have to pay attention on what to automate and how stringent you are, but other that that it is a worthwhile exercise. See a good YouTube about this: https://www.youtube.com/watch?v=t9HRzE7_2Xc.

So why Azure DevOps? Well, I’m a Microsoft developer from when I grew up and have used their tools for over decades now. I do find that over time I like their approach to empowering the developer with good working tools, I tried a few other tools but always got back to them having the better maintained and better thought-out philosophy.

I tried Jenkins but found it to be outdated and non intuitive. So yeah, I do have a few (payed) Microsoft accounts already so for me Azure DevOps is the better choice.

Helper files

If you follow the tutorial you see me using a batch file, a setup, and a specific pipeline.

You can download the content in a zip over here, or copy it from the source code paragraphs below.

The pipeline yaml file:

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
- master

pool:
  name: Default
  demands: 
    Unity_2019.3.2f1

steps:
#cleanup for unity build
- task: DeleteFiles@1
  inputs:
    SourceFolder: '$(Build.ArtifactStagingDirectory)'
    Contents: '**/*'

#get the previously secured library (if any) for performance reasons
- task: DeleteFiles@1
  inputs:
    SourceFolder: '$(Build.Repository.LocalPath)\Unity Source\Manage the Universe\Library'
    Contents: '**/*'
- task: CmdLine@2
  inputs:
    script: 'if EXIST "$(Build.BinariesDirectory)\Library\" move "$(Build.BinariesDirectory)\Library" "$(Build.Repository.LocalPath)\Unity Source\Manage the Universe\Library"'

#unity PC build
- task: UnityBuildTask@3
  inputs:
    buildTarget: 'Win64'
    unityProjectPath: 'Unity Source\Manage the Universe'
    outputPath: '$(Build.BinariesDirectory)\Build'
    outputFileName: 'ManageTheUniverse'

#create the installer
- task: BatchScript@1
  inputs:
    filename: 'Installer/createsetup.bat'
    arguments: '"$(Build.BinariesDirectory)\Build\*" "$(Build.ArtifactStagingDirectory)\SetupCreation" "0.1.$(Build.BuildNumber)"'
    workingFolder: '$(Build.Repository.LocalPath)\Installer'

#upload artifact
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)\SetupCreation'
    ArtifactName: 'drop'
    publishLocation: 'Container'

#secure the library for performance reasons
- task: DeleteFiles@1
  inputs:
    SourceFolder: '$(Build.BinariesDirectory)\Library'
    Contents: '**/*'
- task: CmdLine@2
  inputs:
    script: 'move "$(Build.Repository.LocalPath)\Unity Source\Manage the Universe\Library" "$(Build.BinariesDirectory)\Library"'

The setup batch file:

set arg1=%~1
set arg2=%~2
set arg3=%~3

"Inno Setup 6\ISCC.exe" "/DBuildSource=%arg1%" "/DBuildTarget=%arg2%" "/DMyAppVersion=%arg3%" setup.iss

The Inno setup 6 file:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "ManageTheUniverse"
#define MyAppPublisher "GameFeelings"
#define MyAppURL "https://gamefeelings.com/"
#define MyAppExeName "managetheuniverse.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A3C19EB9-57D2-4DCD-870D-9A8A0CCCBFB2}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; Remove the following line to run in administrative install mode (install for all users.)
PrivilegesRequired=lowest
OutputDir={#BuildTarget}
OutputBaseFilename=SetupPc
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "{#BuildSource}"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

Admin Access

You need to have a high access level in your Azure DevOps organizations to pull this off. So in an existing organization with a DevOps account already in use you probably need to work with the admins to get everything going.

However if you have your own (free) account you by default have the admin role.

Azure DevOps plan limitations

Depending on your DevOps account plan you have limitations to the amount of running agents. And you have limited build minutes a month.

If you are on a free version you probably are limited to 1 local build agent, and have 1800 free build minutes a month (and for more you pay).

Even with a local build agent a few things still count for build minutes like uploading your artifacts or coordinating stuff.