Status
SteamPeaks
ChartsSalesUpcomingPatchesEventsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
EventsSteam's own events and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesEventsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
InfinicityEventsDev Diary: My attempt at procedural gameplay
Community

Dev Diary: My attempt at procedural gameplay

Infinicity · published 7 Jan 2025, 20:20 UTC

All eventsPlayers around this dateRead on Steam

I've been trying to generate gameplay (that's ideally fun) procedurally.

An initial idea was to set up an NP hard problem or two around the player (i.e. the knapsack problem and the travelling salesman problem) albeit within the context of the game's theme and then leave them to solve it in any one of many ways. On completion then I was thinking about simply ranking their solution according to some metrics (fuel expended, time taken, enemies destroyed, game people saved etc) on a leader board, but then I got distracted...

Whilst setting up the systems for the above I started experimenting with a couple of simple ideas. Let's call them "Gameplay Layers" and "Gameplay Cycles":

  • Gameplay Layer: A Gameplay layer is an approximately 200 lines of code that adds to the game some system or mechanic i.e. time of day, weather, defensive tower, refuelling rings, enemy waves etc
  • Gameplay Cycle: This is simply a timer that activates periodically (configurable), lasts for a configurable amount of time and then pauses for a configurable amount of time until the cycle then repeats.

A Gameplay Layer is activated and deactivated according to a Gameplay Cycle.

With these two simple ideas I seem to be able to generate interesting events as the gameplay layers run out of phase with each other the resulting behaviour of which I haven't had to code explicitly.

For example, the time of day system is running out of phase with respect to the weather system so you can have a quiet foggy morning, or a lightning storm during the day or fog at night whilst being overrun by a wave of enemies or a clear night etc.

Fun for free?

Here's a short video:

Watch on YouTube

More from Infinicity

Other announcements

All events
Community26 Dec 2025Procedural Object Placement with Variable-Radius Poisson Disk Sampling and noiseWhen generating large procedural worlds, placing objects believably is harder than it looks. Trees shouldn’t overlap. Rocks shouldn’t clump unnaturally. Buildings need breathing room. And ideally, all of this should be controllable, performant, and compatible with procedural generation. A few years ago, while working on procedural world generation for my game, I ran into exactly this problem i.…Community17 Dec 2025Turning Real Footage into Game Animations (and Why I Open-Sourced the Tool)One of the challenges I’ve been thinking about a lot while working on Infinicity is animation. I wanted characters that feel hand-animated and expressive but without relying on huge animation budgets or locking myself into a very rigid art style. I also wanted a workflow that lets me iterate quickly i.e. change timing, style, or scale without redoing everything from scratch. That led me down an…Community13 Dec 2025Player moddable terrain feature addedI’ve added a new feature that lets players tweak the mountain noise layers in real-time. Previously, the terrain was generated using layers of noise with fixed frequency and amplitude. Now players can adjust these parameters to shape the mountains exactly how they like whether that’s jagged peaks, rolling hills, or something in between. This gives a lot more expressive freedom while exploring o…