Resourciv: Weeks 1-2

I've spent the last two weeks making a super basic Civ-like. You can see in the picture how far I've gotten: units, cities, research, fog of war. At this point it's so bog-standard that it's not worth getting into how it differs in the details. Instead, I'll try to talk big picture about what I'd like to accomplish—if I get that far!

Resourciv is a take on the Civ formula more concerned with social development of a culture than exploration, expansion, exploitation, and extermination. (Again, talking as if it's not just messing around and seeing what I can do, which it is.) That's kind of a strange difference, since Civ's conventions and mechanics implicate its particular perspective on history: one of a clash of civilizations, each with its own essential nature, all converging on a socio-technological path of evolution driven by domination. Different people have offered or implemented their own ideas of how to improve this model, to make it more "accurate" to real life. I want to think of this more of an "immanent critique" of the model—exploring and exploding the implications of the world it presumes.

The first dimension I want to explore is of urban development. Civ, of course, supposes that all peoples are sedentary or seek a sedentary existence. The contradiction of the early game is between the early nations and the barbarians, defined by their non-nationality and what obstacle this poses for the various nation-participants of history (who desire, above all, to expand and control their territory). The agents of Resourciv, however, are not nations per se. You could settle like in Civ, or you could simply exist and eventually find yourself at the receiving end of the 4 X's. Urban development and expansion are driven by the complications inherent to sedentism: overgrowth, disease, and disorder. In fact, early cities don't "send" settlers—they generate migrants, each controlled by a new team!

I like the idea, too, of multiple ways in which you can "lose". Since early cities are mutually independent, even if they hail from the same culture, empires emerge when one team incorporates other cities through contract or force. That means there is the obvious way of losing, by being conquered, but you could also relinquish control to a rival city with which you are leagued. Does that mean "game over"? Maybe it would be more interesting to take control of the victorious faction (and in doing so, if we're keeping score, lose points for discontinuity). That's an external conflict, though, which is less interesting. I want to explore topics untouched by Civ, like: social relations (e.g., patriarchy), divisions of labor, logistics. Assuming I get that far!

Resourciv is called Resourciv because it's a pun on a word that doesn't actually exist. "Resourcive? You mean resourceful?" Given the general focus on social dynamics based on material needs, I think centering access to and usage of resources would be interesting. I don't like that the later Civ games tend to treat resources as number-go-up, and prefer the earlier approach of connecting resources to cities and connecting cities via trade (or, physically via roads). At the same time, I like the abstraction of road-building via trade in Civ VI. Why not mesh the two, and make the game specifically about controlling access to resources inside and beyond your borders? I think it'd be some sort of fun!

Development History

  • 5/11: Made a functional hex map, allowing me to select individual hexes by converting the mouse's screen coordinates into world coordinates (CodeMonkey).
  • 5/12: Hooked up my abstract-universal pathfinding scripts to interface with the hex grid by converting each hex's Cartesian or "offset" coordinates into a system more hex-friendly (Red Blob Games).
  • 5/13: Made a simple terrain generation procedure. Also wrote scripts to save and load worlds from JSON files, since I'm terrified of programming things that I can't also reliably save. Fun story about that.
  • 5/14: Added units or "meeples", of which there can be 4 per tile. Also added some basic GUI elements so it looked less ugly (Kenney's Pixel UI Pack).
  • 5/15: Added ability to select meeples on the hex map, loading a GUI which can let you switch between meeples on the same hex if they both belong to you. Also added ability to let meeples sleep or skip their turn, and movement indicators.
  • 5/16: Added random team spawns, meeple movement, hex discovery (only reveal hexes that your meeples can or have seen), and fog of war (obscure hexes which your meeples cannot currently see).
  • 5/17: Added work-around for Unity issue when loading a world after a world has already been created or loaded (it tries to delete and recreate objects with the same name after loading the scene). Also added random movement for AI-controlled meeples.
  • 5/18: Added hex features, which are distinct from hex terrain types, and turned forests into a type of feature. Also made data structures for both terrain and feature types, since the game's needs have become more complicated than just knowing which sprite to display. Wrote a single "panopticon" script which contains all world configuration data for terrain, features, meeples, and team cultures. Finally, wrote a dev option to view all hexes or disable fog of war.
  • 5/19: Added programmable terrain generation whose configuration is contained inside the Panopticon script, allowing me to soft-code any changes to procedural world generation. Also added whales to ocean tiles, to experiment with soft-coding features.
  • 5/20: Wrote notes on population mechanics. No development; was literally AFK.
  • 5/21: Implemented a sort of unique system for "research". By discovering new hexes, you earn "discovery points" which you spend to level up and (to be implemented) acquire new techs. Other methods of discovery will be unlocked during play.
  • 5/22: Simulated population growth based on my notes, and was happy with the results! Added terrain yields and cities, which migrant-type meeples can settle, along with hovering city summary GUI elements (including a population marker and a growth progress bar for player-owned cities).
  • 5/23: Added growth and production projections to the city summary GUI progress bars. Prioritize spawn location candidates by their yields, and assign spawns to teams out-of-order. Also added hill hexes.
  • 5/24: Added different biomes with slightly different base yields (tropical, meadow, steppe, desert). Each has a variation on the flat, hilly, and mountainous elevation type. Also added continent generation.
  • 5/25: Wrote this!

I want to incorporate climate simulation for world generation, develop the rules and GUI for camps and cities, fully implement the discovery system, and figure out team interactions. Other random things:

  • Allow player to move meeples on the same hex as a group.
  • Figure out trade connections between settlements (camps and cities).
  • Figure out how resources are accessed via trade.
  • Figure out an interesting nomadic situation, besides surviving the cities.
  • Figure out how nomads can use resources.

Development Screenshots






Comments

  1. looks so pretty man. I love the graphics at least, that I can tell you

    ReplyDelete
  2. My buddy and I once had the dream of a civ game where you as the ruler don't get to decide what technology to research for thext hundred years but rather technology happening and you scrambling to react and asapt to it. Also it felt super weird to be _the establishment_ and order a city to build Rock 'n Roll.

    ReplyDelete
    Replies
    1. that is neat! i've liked alpha centauri where you research blindly, but stumbling upon techs completely at random and trying to make the best of them sounds really fascinating

      Delete
    2. I mean imagine you're _the establishment_, happily keeping your theocracy running along just fine and then some chump comes along and invents _the printing press_...

      Delete
  3. I cannot deal with how cute the little sprite warrior is.

    ReplyDelete
  4. I am a sucker for hex-based games.

    I always wondered what it would be like to have an option to better specify the division of labor in such a game. By division of labor, I often conflate the series of connected tasks that ultimately produce a good or service [the dol as thing], and the act of specialization [the dol as process?]. Please bear with me, I'm writing this on my lunch break.

    For instance, can I set the average degree of specialization per worker? If so, is the degree of specialization per worker low? How unspecialized can I make my workers? Less worker specialization tends to happen in smaller markets (if we assume markets are the cachements of consumers/users for the good or service being produced; I'm less interested in thinking of markets purely as a site or convention for the exchange of money for goods and services). However, I suspect a less specialized workforce might create workers who are happier in their workplace(s), all things being equal, because they are not performing a narrow range of tasks day in and day out. I think this was a point Marx made in Volume 1 of _Das Kapital_, but also Andrew Sayer (1995ish) _Radical Political Economy: A Critique_. Furthermore, such a division of labor might be more robust to plague, etc, because there is more redundancy built into the system.

    If the division of labor is high (i.e., workers are highly specialized), as we might see in a a Taylorist/Fordist division of labor), we would expect to see more efficiency, but probably less workplace satisfaction. At the same time, only large markets can support a highly specialized division of labor (per Smith's dictum about the positive relationship between maximum degree of specialization and market size). Highly a specialized division of labor is also more likely to be vulnerable to a plague, etc, since fewer people are sufficiently specialized to take over tasks whose workers perished.

    I always wished Civ games dealt better with notions of carrying capacity and how different systems of land use can alter long-term carrying capacity. Some kind of feedback mechanisms for how local land use (e.g., deforestation, no fallow agriculture, animal dung fertilizer, three field crop rotation, canalization of run-off) decisions can impact the local carrying capacity, and in turn, amplify or dampen changes to carrying capacity in neighboring locations.

    I guess my point is that your project sounds cool, and I'd totally buy a game that tried to push beyond the customary conventions of the Civ genre. I especially love to play something that avoids reinforcing (representations of) the status quo, making the way things are (portrayed to be) seem inevitable or natural.

    ReplyDelete
    Replies
    1. thank you so much! :) i've been wanting to figure out some way of representing different DOLs or, more broadly, modes of production and distribution. the problem i've encountered is that the structure of civ generally allows one real "mode" (some sort of despotic, micro-managey command economy) which varies quantitatively between different so-called governments or economies. exploring structural differences between historical modes, and their resulting dynamics, would be more interesting but would also require different flows of labor and resources between different modes. very difficult to model without getting out of hand!

      Delete

Post a Comment

Popular posts from this blog

D&D Fifth Edition: Death & Rebirth

OSR Rules Families

Bite-Sized Dungeons