We have implemented some best practices foundations for both development and implementation of our solution.
- Code repository
- Pipeline for ALM and safe implementation

- Azure AI Search configuration backup via JSON structure in repo.

We have implemented some best practices foundations for both development and implementation of our solution.


We did some progress and changes to our solution that might help us improve our business case :). In the meantime we want to claim some badges!
Badges
We have created a Realtime dashboard with the help of an MVC webapp with SignalR to show Realtime data coming from the database and telemetry in data lake. The Dashboard combines many different components and view referencing different data sources. We think that this is a good candidate for #DashItOut, #Feature bombing, #ClientSideSalsa and #Nasty Hacker (Since we could not achieve some Realtime functionality in PowerBi for some telemetry data, we had to find a quick workaround). Come and take a look to how it works if you wish.

We have also created an Azure AI Search knowledge source and knowledge base which collects all telemetry data from azure data lake. The cool thing about this is that we can use it to translate events from Minecraft into real world scenario events, converting our solution into an incident simulation platform. We can translate events like this:
Minecraft | Industrial Reality |
| Player | Operator |
| Zombie | Mechanical hazard |
| Creeper | Explosion or gas incident |
| Player death | Safety incident |
| Block change | Maintenance |
| Time of day | Shift |


The knowledge source is then made available to be used by any external agent that supports RAG indexes. We want to claim the badges: #Hipster. Check the code in our github repo: https://github.com/bricenocar/acdc2026.
Dooh Badge
We created an agent that was supposed to improve prompts coming from Minecraft chat. It took long time and we got really bad results after implementing it. So there was no point on using it, waste of time! #Dooh!
Power of the shell
We have now exported our arm templates and saved into our repo. We can now recover our solution if needed 🙂
https://github.com/bricenocar/acdc2026.
Here is a video demonstrating the use of a QR code to open our solution dashboard
We have been focusing on building a platform on top of minecraft to have a “Minigame” experience where users can get rewards, points and even money.
But what if Minecraft wasn’t just a game but a safe, controllable way to simulate industrial incidents?
Instead of treating Minecraft as a playful telemetry source, we now use it as a digital twin and incident simulation platform for complex environments like Oil & Gas rigs.
In our solution, Minecraft represents a simplified but powerful model of an industrial facility:
We use Minecraft as a digital twin to safely simulate industrial incidents and analyze telemetry, human factors, and environmental signals to identify root causes and reduce real-world risk.
The key is semantic translation.
| Minecraft | Industrial Reality |
| Player | Operator |
| Zombie | Mechanical hazard |
| Creeper | gas leak |
| Player death | Safety incident |
| Block change | Maintenance |
| Time of day | Shift |
This mapping allows us to treat Minecraft events as real operational signals.
We simulate scenarios such as equipment failure cascades:
On top of the telemetry, we built an Incident Analysis & Root Cause Assistant that can answer questions like:
This turns raw signals into insight.
In the real world, you can’t freely experiment with failures. But with a digital twin:
Minecraft becomes a controlled incident generator, not a game, but a learning environment.
While players are in the game, they can interact with the world, which means building blocks, killing MOBS, etc. A game master can change the game conditions of the match, so he/she can simulate unexpected scenarios or events.

All the events are shown in a real time dashboard that an “auditor” can see, allowing to easily track game analytics.

All the game telemetry is logged in azure data lake via an eventhub resource, we index all the data by using Azure AI Search, which then makes it available for AI agents to interact with. The output is then translated from Minecraft terminology to real case scenarios, as described in the table at the beginning of this post.
Our Fabric agent is then mixing data from the game database to get some important data like player points (translated to operator experience), player money (Translated to player access) and player time in game (translated to fatigue) and also data from telemetry like player death (Incident), block built (maintenance),Mob appeared (Risk detected) , Mob killed (risk mitigated) and so on.
Fabric goes on and do its magic to generate really insightful data based on user prompts.

All the information about how we govern the solution is found in the following blogpost:
https://acdc.blog/wp-admin/post.php?post=10564&action=edit
For the system architecture you can take a look at our post:
https://acdc.blog/wp-admin/post.php?post=10906&action=edit
Experimenting here with Azure AI Search to index our telemetry data. We set up the data source, index, and indexer, defined the schema, and configured the indexer to process JSON Lines files stored in Azure Data Lake.
After testing, the initial indexing completed in about one second, which is quite good.
The real advantage becomes clear when this data is vectorized and exposed to agentic solutions, queries return results significantly faster, enabling more responsive and scalable AI-driven experiences. Here are some screen shots of the configuration:


#Crawler
One of the fun (and surprisingly powerful) things about working on our DataBlocks solution at ACDC is discovering how far you can push enterprise platforms when you stop treating them as “back-office only”.
In this post, I want to share a small but meaningful integration we built:
automatically generating diplomas for Minecraft match winners using Dataverse, Power Automate, and MSCRM document generation.
As part of our solution, we built a custom minigame on top of the Minecraft world.
Players compete in a match where:
The goal isn’t just to play, but to win the match based on clearly defined rules.
Every game session is represented in Dataverse as a Match record.
This entity stores:
When a match is still running, its status reflects that. When the game finishes, the integration updates the record: Status = Completed.
We created a Power Automate flow that listens for changes on the Match table.
Specifically:
Status = CompletedThis keeps the logic clean and declarative. Once the flow is triggered, it calls the MSCRM document generation capability.

The process looks like this:

After the diploma is generated, the flow attaches it directly to the Match record in Dataverse as a file.

This integration is a small piece of the overall DataBlocks solution, but it captures something we really like about this project:
Serious platforms don’t have to be used seriously all the time.
By combining Minecraft, Dataverse, Power Automate, and MSCRM document generation, we created an experience where game outcomes produce real, traceable artifacts
https://www.linkedin.com/feed/update/urn:li:activity:7420558637867114496
During the day we have been finetuning the retrieving and processing of data, some of the integrated systems are:
We created a platform on top of the minecraft world to be able to have a “minigame” on top of the existing game. We used some known technologies/apps like:
The game itself works as a UI for our solution. The players can interact with the world while also having our framework available.

User interface used by the team lead player that can provide players with items and weapons during a match.


Our azure function (which is planned to be transformed into a bot skill) is interacting with Dataverse via APIs and Agent via HTTP.

An agent that can respond to prompts from players to generate artifacts during a match depending on the availability of resources. Game Masters have unlimited access to generate anything in a match.

All events seen in realtime :). MVC application with SignalR

This agent is available for users to provide answers to questions about insights of a specific match, it uses a Fabric agent with an Azure AI Search source to get insights from the data. It can answer questions like:
A couple of flows created for handling some events in a simple way.


Minecraft is a Microsoft game that consist of players in a sandbox world where they have freedom to do certain actions like building, attacking even create flows. We created a Minecraft Plugin that handle all events recorded in the game and send the data to a endpoint published by us in an Azure webapp where we process the data.

The plugin is also in charge of sending telemetry of events happening in a match to a event hub resource, which starts our data journey described in the next section :).
This is a critical component of our solution, since it is the main communication bridge between both systems.
Once the data is obtained from the event hub, it is saved in Azure data lake. We then imported this data into our Fabric workspace. We finally configured a Fabric agent that access this data, and it is our source of knowledge for the Match Insights agent.

Diploma generation for players in a match is generated based on a template from a MSCRM connector. Looks very nice 🙂



We had to have a section for The Existential Risk badge :). Here we show how a prompt to our agent from Minecraft chat can make things EXPLOSIVE :)!!!
From the start, we treated governance as a must have. Since our solution combines AI agents, Power Platform, and a Minecraft integration, we needed clear boundaries around risk, permissions, and visibility. Here’s what we’ve implemented so far:
We defined five environment groups, based on risk and usage patterns:

Each zone has its own Data Loss Prevention (DLP) policy, aligned with the intended risk level.

Our Minecraft integration is hosted in the Red Zone, as expected for a solution with real time interaction, agents, and external APIs. Through the Red Zone DLP policy, we explicitly enabled the following connectors:

Nothing is enabled by default, connectors are enabled on demand and implemented after risk assessment.
We use DSPM for AI to maintain an overview of all agents in the environment.
This allows us to:
This gives us governance at the agent level, not just at the environment level.

Using Global Secure Access, we collect traffic logs related to agent activity and outbound requests. This allows us to:

Audit logging is enabled, and bot activity logs are available. We’ve already identified and extracted key governance events, like:

Many interesting tools here to see and test! looking forward to see new features and results from reports and insights.
Our GitHub repo you can find here: https://github.com/bricenocar/acdc2026
#Sharing is Caring
Stay tuned!
Early birds starting our work! Good luck everybody!


We started the day by setting up a Minecraft themed workstation environment.
It turned out to be a bit more challenging than expected, especially since some of us traveled from Stavanger to Oslo, and there were practical limits on what we could bring with us.
That said, we’re genuinely happy with the final result. The setup fits the mood, keeps the energy up, and honestly makes long technical sessions more fun. #Happy Camper

One of the best parts of events like ACDC is the collaboration across teams. During the day, the EVIDI team ran into some issues with failing HDMI cables. We had a few spare ones, so sharing was an easy decision. They’re back up and running, and we wish them the best of luck for the rest of the challenge!. #Community Champion

It turns out Minecraft is contagious, in a good way!
We’ve had a lot of fun sharing our setup and progress with colleagues and friends on social media. The reactions have been great, and if this inspires more people to join next year’s event, even better. #Remarkable Teamspirit

From a technical standpoint, today’s biggest win was integration. We successfully established a bi directional communication between our Power Platform environment and Minecraft, via its APIs.
We can now send commands from Power Platform into the game as well as emit events from Minecraft back into the platform.
The communication is near real-time, which gives us a solid foundation to move forward with game logic, storytelling, and dynamics. This integration is enabled through a custom Minecraft Java plugin, and it’s already proving to be a key building block.
Some of the technologies we have used include:
a- Minecraft Java Plugin for in-game integration.
b- Azure Bot Framework Skill handling agent activities and external API calls
c- Fabric Agent, used to generate data insights from telemetry coming out of Minecraft.
A nice mix of classic engineering and modern AI agent based architecture. #Hipster
Most of the interaction between players and our platform is driven by AI agents. That said, there is one very important human in the loop: the Game Administrator. This role has the power to:
a. Switch between day and night
b. Assign weapons or items to players.
c. Release more monsters to increase difficulty
Think less “admin user” and more Game Master, shaping the experience in real time.
#Power User Love
Overall, today was about laying the foundation:
integration, collaboration, and setting the tone for what’s coming next.
Tomorrow we build the story and the wow effects 🙂
Stay tuned!
We building an intelligent, cloud backed in-game experience, the idea is simple: bring logic, AI, and data directly into the game, where players and admins interact with it in real time.
We’re implementing a custom minigame experience inside the game, with its own logic layer. This includes:
– Points and in-game currency
– Rewards and progression
– Player state and session tracking
Instead of hardcoding everything, the game logic is designed to be data driven, allowing us to evolve rules and mechanics without redeploying the game itself.
One of the key features is a game admin role. An admin can make live changes to an ongoing game session, such as:

Communication between players, the game, and AI agents is handled using a Bot Framework skill.

We’re using Dataverse as our primary database for:
All in-game telemetry is streamed to a data lake. This includes events such as:
The goal is to capture everything that happens in the game, at scale, without impacting gameplay performance.
We’re using it in three main scenario where AI is going to play a role:
Game Helper Bot:
Players can interact with a game helper bot through chat. Examples:
The agent translates these requests into Minecraft commands that can be executed directly in the game, taking into account:
Player Prompt Improver
Players don’t always write perfect prompts that is why we use an LLM as a prompt improver, which:
Data Insights Agent
Finally, we’re building a data insights agent on top of the telemetry stored in the data lake.
This agent can answer questions like:
We also have plans around: