permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

games.mdwn (3791B)


      1 **Games** have been made for computers since the early years. Playful and
      2 non-utilitarian uses are an important aspect of any technology – for
      3 example, playing with hunting bows led to the invention of the musical bow
      4 and other string instruments.
      5 
      6 Computer games are commonly framed as 1) entertainment (rather than e.g. art
      7 or life-changing experiences), 2) something produced by an "industry" (in
      8 the same way as there is "the film industry"), and 3) something that has
      9 high demands on the hardware resources. Many of the common conceptions are
     10 at odds with permacomputing. One should therefore look into the "margins"
     11 (i.e. "independent" games) for a more diverse view of what computer games
     12 can be.
     13 
     14 Before [[siliconization]], it was a common idea that any computer is
     15 suitable for playing games – and the most limited computers were actually
     16 considered unsuitable for anything else. This is something worth returning
     17 to in permacomputing: target those platforms that are available to anyone
     18 (either directly or via emulation), and especially those that are no longer
     19 preferred for utilitarian purposes. Supporting a [[bedrock platform]]
     20 increases the likelihood that the game can be revisited in an indefinite
     21 future.
     22 
     23 Maximalist [[aesthetics]] is a major driving force for [[obsolescence]] and
     24 ever higher hardware requirements. It is a better idea to stick to a less
     25 demanding style (e.g. [[pixel art]]) than to adhere to the mainstream gamer
     26 idea of "up-to-date graphics".
     27 
     28 In the [[non-digital]] world, a "game" is often more like an immaterial idea
     29 than a product (think about the variety of games that can be played with
     30 playing cards). The same approach can be applied to computer gaming as well:
     31 Tetris is not really a specific program/product, but a game that any
     32 programmer can implement in a moderate amount of time. If the logic is
     33 defined strictly enough, the different implementations can be compatible in
     34 regards to scoring, competition and skill acquisition. The games that can be
     35 fully described as sets of rules have the longest potential lifespans.
     36 
     37 Computer games often blur the distinction between a game and a virtual
     38 environment. Game-playing is a goal-oriented activity, but in a virtual
     39 environment it is not necessary to reach for anything specific. An important
     40 aspect of simulated environments is that their representations of the world
     41 can be used to gain insights to the actual world. This is how games can be
     42 used to [[amplify awareness|awareness amplification]].
     43 
     44 ## Common problems
     45 
     46 Game programming is often quite careless, as games are traditionally
     47 "allowed" to use all the available resources. Thus, it is common to find
     48 things like CPU-hogging busyloops even in turn-based games, or ridiculously
     49 high system requirements in modern pixel art games.
     50 
     51 Running of games often requires [[emulation]]. Cycle-exact emulation may be
     52 orders of magnitude more resource-hoggy than "just enough" emulation, so it
     53 may be a good idea to support the fast but inaccurate emulators when
     54 targeting classic platforms.
     55 
     56 ## Specific games
     57 
     58 These games may be interesting from the permacomputing perspective, either
     59 technically or otherwise.
     60 
     61 ### Another World
     62 
     63 There is very little code in Another World. The original Amiga version was reportedly 6,000 lines of assembly. The PC DOS executable is only 20 KiB. Surprising for such a vast game which shipped on a single 1.44 MiB floppy. That is because most of the business logic is implemented via bytecode. The Another World executable is in fact a [[virtual machine]] host which reads and executes byte-sized opcodes.
     64 
     65 Adventure games from Infocom, Sierra and Lucasfilm are also based on bytecode virtual machines.
     66 
     67 See more:
     68 
     69 * [The Polygons Of Another World](https://fabiensanglard.net/another_world_polygons/)