Puppeteer
Emperor
The Civ3 Clone thread got me to thinking about how that might work. History tells us I'm highly unlikely to have enough follow-through to get nearly complete, but I might try a few ideas.
For the game logic, Civ3 is a fairly basic loop:
The key to making such a game is the data tracking and manipulation. I've been looking for an excuse to try out Reactive Programming, and this may be it. The facts of the game--tiles, units, cities, settings--might all be observables. The game rules would be implemented in filters, and then the game update loop and UI view would observe and update based on the rule filters.
For example, when calculating each worked tile's commerce harvest, the tile would have a base commerce value, and then depending on the government, civ traits, road presence, building modifiers, etc., that value would be modified by those stacked in-effect filters to produce the final modified commerce income for the tile.
There would certainly be a need for mod scripting, so I'd like to have the filters/rules include e.g. lua to allow 3rd-party logic. But that's way, way down the road.
For now, I grabbed the SVG map display parts from my Civ3 Show-And-Tell, stripped out d3, whipped up a little AngularJS scaffolding, and have a very basic view model that can display isometric tiles based on 3 variables: height, width, and an array of tiles. (Very boring screenshot attached.)
Next I'd like to start playing around trying to get maybe a unit or two moving around and/or see if I can get any observable/filter/observer logic going.
Eventually, if this grows I'll check into graphics frameworks that could at the very least use Civ3 graphics, and preferably allow much more. PixiJS looks promising. Or I might try out a non-browser front end. The back end could end up as Go, because I kind of have a browser/Go fetish the past couple of years, and Go has a Lua implementation and is cross-platform.
-----
Otda3 GitHub repo: https://github.com/midnightfreddie/otda3
civ-viewer Godot thingy GitHub repo: https://github.com/midnightfreddie/civ-viewer
For the game logic, Civ3 is a fairly basic loop:
- Calculate harvests, builds, research, maintenance, improvement progress, etc.
- Player moves
- Repeat for each player, including AI and barbs
The key to making such a game is the data tracking and manipulation. I've been looking for an excuse to try out Reactive Programming, and this may be it. The facts of the game--tiles, units, cities, settings--might all be observables. The game rules would be implemented in filters, and then the game update loop and UI view would observe and update based on the rule filters.
For example, when calculating each worked tile's commerce harvest, the tile would have a base commerce value, and then depending on the government, civ traits, road presence, building modifiers, etc., that value would be modified by those stacked in-effect filters to produce the final modified commerce income for the tile.
There would certainly be a need for mod scripting, so I'd like to have the filters/rules include e.g. lua to allow 3rd-party logic. But that's way, way down the road.
For now, I grabbed the SVG map display parts from my Civ3 Show-And-Tell, stripped out d3, whipped up a little AngularJS scaffolding, and have a very basic view model that can display isometric tiles based on 3 variables: height, width, and an array of tiles. (Very boring screenshot attached.)
Next I'd like to start playing around trying to get maybe a unit or two moving around and/or see if I can get any observable/filter/observer logic going.
Eventually, if this grows I'll check into graphics frameworks that could at the very least use Civ3 graphics, and preferably allow much more. PixiJS looks promising. Or I might try out a non-browser front end. The back end could end up as Go, because I kind of have a browser/Go fetish the past couple of years, and Go has a Lua implementation and is cross-platform.
-----
Otda3 GitHub repo: https://github.com/midnightfreddie/otda3
civ-viewer Godot thingy GitHub repo: https://github.com/midnightfreddie/civ-viewer
Attachments
Last edited: