Skip to content
This repository was archived by the owner on Jan 18, 2022. It is now read-only.
This repository was archived by the owner on Jan 18, 2022. It is now read-only.

Module Request - 2d World (library + hard problem solving) #75

@leland-creswell

Description

@leland-creswell

Overview

I would like to make a request for a GDK module that includes code running on SpatialOS handling 2d game worlds, and the hard problems that sometimes crop up while creating them, especially with multiplayer involved.

The 2d-based game has come back to the fore as a highly active section of the overall games industry. It has advantages in the ability to use simpler code to achieve basic game functionality, as well as dramatically reduced budgets for visual assets, allowing small teams, or even solo developers (as was mostly the case with Gungeon), to create amazing experiences based on core gameplay, without the millions of dollars required in a typical AAA game.

However, massive multiplayer (and even simple multiplayer) networking is still an extremely hard problem, especially if the code is written from a publicly available library. Most successful 2d games, especially those created by smaller teams, either do not have a multiplayer component, or rely on (vastly overpriced, imo) simple multiplayer plugins/components usually bought via the assets store.

There is an incredible amount of gameplay, revolving around people working together/against one-another, and building things alongside each-other, that is simply not able to be tapped due to the lack of an easy way to get massive multiplayer going at a reasonable price for a smaller team.

References

Gungeon:
gungeon example

Dungeon Crawl Stone Soup:
dcss example

Dwarf Fortress:
dwarf fortress ex


Requirements

The module should include the following (not an exhaustive list, just the things I can currently come up with):

  • A 2d physics world, set up using the same ECS system used in the 3d GDKs
  • A grid (square, hex, octagon?) overlay for the world, allowing for terrain/entity division in a tile format (may or may not be used by each game - useful for turn-based games, aggressive optimization, region-control, etc..)
    PS: It would be nice if the 3d GDK modules also had support for grids, so that something similar to Final fantasy tactics could be done with more ease)
    fft example
  • Support for Z levels to allow "floors" and different altitudes/heights similar to what is done in dwarf fortress
  • Built-in terrain system that maps/etc.. could be imported/exported from (via photoshop drawings/real-life height maps/etc..) - perhaps focus on the networking side of this? I know that there are various assets in the store that help handle grid/tile based 2d maps... not sure what exactly should be in the GDK..
  • Camera zoom support with the ability to render the world differently based on the zoom level (ie. when zoomed close to a character, perhaps a cliff would look like a black abyss.. but if zoomed out, you would see further down - this would probably include tile/terrain streaming of some kind...)
  • Optimizations specific to 2d (especially if the grid is used to highly simplify combat/movement data traffic/processing)
  • Local 2d physics worlds that can be spun up/down for shared, moving spaces such as airships, boats, floating islands (sonic and knuckles? 👍 ^^)...
  • All applicable optimizations/components/etc.. from the base 3d GDK (smooth movement prediction, etc..)

(All I can think about for now.. would love to hear additional ideas if anyone has them..)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions