Hello comrades. Recently, I have been trying to create an isometric RTS game and game engine from scratch. Specifically, I am looking to recreate something similar to one of the 3d fixed perspective “2.5d” Command and Conquer games like Red Alert 2. My initial goal is just to have my engine use the assets from that game and behave more or less identically. Another thing I intend for this project to be is to be an experiment in unusual game engine architecture. I’m looking to simplify my code as much as possible and to do more with less code.

I have been trying to model the internal game simulation in terms of materialist dialectics. More specifically, in representing the development of the state of the simulation as the result of contradictions between things in the game world, as well as their own internal contradictions. But I have been having a lot of trouble trying to concretize these ideas into something. It reminds me of what Mao Zedong said: that we can find contradiction in everything but contradiction expresses itself in different ways depending on what one is dealing with.

I was wondering if anyone has any experience with trying to model systems on a computer dialectically or would know of any references that could help me with my project. Search engines haven’t been so helpful. Also, is this even worth pursuing? Thanks for reading.

You are viewing a single thread.
View all comments

i think this is interesting, but i’m not sure how possible it is. what language are you using?

i’m curious what a programmatic contradiction looks like in this model? anyway, as i understand the goal, it seems like you probably need to define a series of abstract states representing different systems, define their interactions as some disagreement in state that needs resolved, and then programmatically define how to resolve them. So like, perhaps a Labor type representing a factions productive output, a BuildQueue type that represents what needs to be built in what location, and maybe some kind of Resolve<T, U> type interface that defines how to resolve the two states, and for this example of Resolve<Labor, BuildQueue> you start building what’s in the build queue if there’s enough labor available. You’d need to ensure that Resolve<T, U> === Resolve<U, T> in terms of behavior.

permalink
report
reply

C on Unix/Plan 9.

Part of the issue is I’m not sure myself how contradiction would manifest in this program. I’ve restarted and thrown away my previous code like 5 times already. Though, that’s very interesting, a general interface for resolving contradictions. It would have to map onto a variety of different situations. For example, the contradiction between 2 factions/players is resolved by conflict but conflict itself in this game is a contradiction between 1 or more units of different players. Also, the contradiction between 2 players is antagonistic. If someone wins that means their enemies have lost and it would result in a game end and scoring. Maybe that is what I need: an interface for resolving contradictions throughout the program. Whether it be between players themselves or their units for example. Thank you for the input!

permalink
report
parent
reply

yeah, it seems like you’re just trying to find a nice interface for encapsulating this idea. To that end, you might be interested in looking at entity component systems. it’s a pattern used in game design that separates out entities that exist, components that they have, and systems that describe interactions. Otherwise, I think you’re looking for the basic idea of a resolve interface like I suggested, in which case you might have more luck implementing something like that with Rust that supports generic typing.

permalink
report
parent
reply

Yeah most of my attempts so far have started to just look like ECS x3

I’d love to use Rust but I’m just really concerned about portability. Rust support gets worse and worse the more one deviates from Windows or Linux. So instead I make myself suffer with an old language with very sharp edges.

permalink
report
parent
reply

technology

!technology@hexbear.net

Create post

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

  • 1. Obviously abide by the sitewide code of conduct. Bigotry will be met with an immediate ban
  • 2. This community is about technology. Offtopic is permitted as long as it is kept in the comment sections
  • 3. Although this is not /c/libre, FOSS related posting is tolerated, and even welcome in the case of effort posts
  • 4. We believe technology should be liberating. As such, avoid promoting proprietary and/or bourgeois technology
  • 5. Explanatory posts to correct the potential mistakes a comrade made in a post of their own are allowed, as long as they remain respectful
  • 6. No crypto (Bitcoin, NFT, etc.) speculation, unless it is purely informative and not too cringe
  • 7. Absolutely no tech bro shit. If you have a good opinion of Silicon Valley billionaires please manifest yourself so we can ban you.

Community stats

  • 1K

    Monthly active users

  • 5.2K

    Posts

  • 60K

    Comments