Cytopia is a free, open source retro pixel-art city building game with a big focus on mods.

Overview

Cytopia Logo

Discord

Codacy Badge Total alerts Language grade: C/C++

Quality Gate Status Coverage

Translations

Website/Forums - Cytopia.net - https://www.cytopia.net/
YouTube - Cytopia - https://www.youtube.com/channel/UCJIzKBD3wl6KRohiX6i53GA
Twitter - @CytopiaGame - https://twitter.com/CytopiaGame
Reddit - r/Cytopia - https://www.reddit.com/r/Cytopia/
Discord - Cytopia - https://discord.gg/ua3qFqF
Patreon - Cytopia by Jimmy Snails - https://www.patreon.com/cytopia
Itch io - Cytopia - https://cytopia.itch.io/cytopia
GitHub - Cytopia by CytopiaTeam - https://github.com/CytopiaTeam/Cytopia
Online Emscripten Port - Cytopia - https://game.cytopia.net/
Translation project on Weblate - Cytopia - https://hosted.weblate.org/projects/cytopia/

Cytopia is a free, open source retro pixel-art city building game with a big focus on mods. It utilizes a custom isometric rendering engine based on SDL2.

Current Key Features:

  • Custom UI System, based on JSON. Highly moddable
  • SDL2 based rendering engine written in C++
  • Camera panning, zooming, relocating
  • Terrain manipulation
  • Procedural Terrain Generation
  • Pixel-art graphics made by graphics team lead by Kingtut 101
  • An original soundtrack, ambient noises, and sound effects made mostly by MB22
  • A Qt based tile editor for editing TileData JSON files

Planned features:

  • Biomes
  • OpenGL Renderer
  • Gameplay mechanics
  • In-Game Mod downloading mechanism
  • Android / iOS
  • Scripting language for mods (like LUA)

For code documentation see the projects Doxygen Documentation.

If you have questions or if you want to join the project, visit the Projects Discord Server If discord is not for you, visit our IRC channel on freenode at #Cytopia

In case you want to support our project on patreon, visit our Patreon Page

Try out Cytopia in your Browser (Chrome based Browsers on PC supported) without installing it, take a look at our emscripten port

Supported Platforms

Linux (clang / g++-5 or higher) Windows Mac

Prerequisites

CMake 3.11 or later

https://cmake.org/

Conan

https://conan.io

Build instructions

See: https://github.com/CytopiaTeam/Cytopia/wiki/Build-instructions

Coding guidelines

See: https://github.com/CytopiaTeam/Cytopia/wiki/Coding-guidelines

Work-in-Progress Screenshot

alt text alt text

We're proud to be part of Jetbrains opensource program!
Jetbrains logo

Issues
  • 🎉 Simplify dependency management

    🎉 Simplify dependency management

    This PR removes the duplicate cmake code that was used to find the dependencies, now all the dependencies are defined in cmake/DependenciesConfig.cmake instead of the main CMakeLists.txt

    Features:

    • Unified the dependencies in one file, this makes it easier to see what versions are being used
    • Replaced vcpkg with conan
    • On-demand fallback on conan 1
    • Removed the pmm cmake-module

    Fixes #785 Fixes #770 Fixes #834 Fixes #839


    1 Setting the cmake option CYTOPIA_LIB_PREFERENCE to SYSTEM will search the system first for dependencies, and then fall back on the Conan package if it hasn't been found

    opened by AnotherFoxGuy 15
  • Increase warning levels and rearrange folder cmake specific files in repository

    Increase warning levels and rearrange folder cmake specific files in repository

    I've moved the cmake / cpack specific files to a seperate folder and i've included the CompileOptions.cmake.

    Both windows and linux now use increased warning levels and treat warnings as errors.

    All warnings that occured with the increased warning levels are fixed in this branch.

    enhancement refactoring core build 
    opened by SimplyLiz 11
  • Write files to appdata dir instead of current working dir

    Write files to appdata dir instead of current working dir

    Writing to the current working dir can cause write access problems. Also, when Cytopia is update, existing settings and save games would be overwritten. Writing to another directory would help to sustain settings and save games throughout updates. Also, this is necessary for AUR packages

    Prerequisite for #871

    Things to do:

    • [x] Find out the best location to store data (home dir on linux. MacOS too? %APPDATA% on windows? Android?)
    • [x] On startup, check if our settings file already exists on the new location. if yes, use it, if no copy over the existing one and use it
    • [x] Re-enable writing error.log file to the new location
    • [x] Change path of save games to the new location
    core 
    opened by SimplyLiz 10
  • Issue compiling on macos

    Issue compiling on macos

    I have all the prerequisites mentioned but after git cloning the repo and making a build directory inside, I try the command "cmake -DCMAKE_BUILD_TYPE=Release ../Cytopia" mentioned in the build instructions but slightly modified (".." instead of "../Cytopia" since my build directory is inside my Cytopia dir I think this is fine.) and get the following

    CMake Error at /usr/local/Cellar/cmake/3.22.2/share/cmake/Modules/CMakeDetermineSystem.cmake:130 (message):
      Could not find toolchain file: /Users/<me>/Desktop/Open
      sources/Cytopia/external/vcpkg/scripts/buildsystems/vcpkg.cmake
    Call Stack (most recent call first):
      CMakeLists.txt:13 (project)
    
    
    CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    -- Configuring incomplete, errors occurred!
    
    build 
    opened by ConveyorBusBuilder 10
  • Crash on Debian 10 when clicking on New Game: terminate called without an active exception

    Crash on Debian 10 when clicking on New Game: terminate called without an active exception

    Running Linux devel Version 0.2-CIBuild-3873.2 from https://cytopia.itch.io/cytopia crashes when clicking on the New Game button on Debian 10 with terminate called without an active exception.

    Peek 2021-01-25 15-40

    What useful information can I collect to help debug this?

    Here is the full error.log from the gif:

    Jan 25 20:39:47 - [DEBUG] - Launching Cytopia
    Jan 25 20:39:47 - [DEBUG] - Created AudioMixer
    Jan 25 20:39:47 - [DEBUG] - Created Game Object
    Jan 25 20:39:47 - [DEBUG] - Setting cursor
    Jan 25 20:39:47 - [DEBUG] - Initializing Cytopia
    Jan 25 20:39:47 - [ERROR] - Failed to load MO file /home/omsai/.apps/cytopia/languages/en/Cytopia.mo
    Jan 25 20:39:47 - [DEBUG] - Initialized Game Object
    Jan 25 20:39:47 - [INFO] - Fetching Above_the_Clouds at /home/omsai/.apps/cytopia/resources/audio/music/Above_the_Clouds.ogg
    Jan 25 20:39:48 - [DEBUG] - Audio data read successful! Loaded into decoded audio buffer.
    
    Jan 25 20:39:48 - [INFO] - Resource cache is now at 43MB
    Jan 25 20:39:50 - [INFO] - Fetching MajorSelection at /home/omsai/.apps/cytopia/resources/audio/sound effects/menu/Major Selection.ogg
    Jan 25 20:39:50 - [DEBUG] - Audio data read successful! Loaded into decoded audio buffer.
    
    Jan 25 20:39:50 - [INFO] - Resource cache is now at 44MB
    Jan 25 20:39:50 - [WARNING] - Destroying renderer...
    Jan 25 20:39:50 - [WARNING] - Destroying my renderer... Printing all errors which have happened
    Jan 25 20:39:50 - [WARNING] - Destroying window...
    Jan 25 20:39:50 - [DEBUG] - Destroying MouseState
    

    Here are how the local libraries resolve, followed by their package versions:

    $ lddtree Cytopia 
    Cytopia => ./Cytopia (interpreter => /lib64/ld-linux-x86-64.so.2)
        libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2
            ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
        libjack.so.0 => /usr/lib/x86_64-linux-gnu/libjack.so.0
            libopus.so.0 => /usr/lib/x86_64-linux-gnu/libopus.so.0
        libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0
            libpulsecommon-12.2.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-12.2.so
                libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
                libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
                libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
                    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
                    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
                        libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0
                libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6
                libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6
                    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
                libXtst.so.6 => /usr/lib/x86_64-linux-gnu/libXtst.so.6
                    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6
                    libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6
                libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0
                    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
                    liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1
                    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20
                        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0
                libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0
                    libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1
                libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1
                    libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8
                    libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0
                    libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0
                    libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2
                libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0
                    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
            libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3
            libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2
        libaudio.so.2 => /usr/lib/x86_64-linux-gnu/libaudio.so.2
            libXt.so.6 => /usr/lib/x86_64-linux-gnu/libXt.so.6
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
    
    $ ldd Cytopia | awk '{print $3}' | sed '/^$/d' | xargs dpkg -S | cut -f1 -d: | sort | uniq | xargs apt-cache madison | cut -f1-2 -d'|' | column -t
    libasound2        |  1.1.8-1
    libasyncns0       |  0.8-6
    libaudio2         |  1.9.4-6
    libbsd0           |  0.9.1-2
    libc6             |  2.28-10
    libcap2           |  1:2.25-2
    libdbus-1-3       |  1.12.20-0+deb10u1
    libflac8          |  1.3.2-3
    libgcc1           |  1:8.3.0-6
    libgcrypt20       |  1.8.4-5
    libgpg-error0     |  1.35-1
    libice6           |  2:1.0.9-2
    libjack-jackd2-0  |  1.9.12~dfsg-2
    liblz4-1          |  1.8.3-1
    liblzma5          |  5.2.4-1
    libogg0           |  1.3.2-1+b1
    libopus0          |  1.3-1
    libpulse0         |  12.2-4+deb10u1
    libsm6            |  2:1.2.3-1
    libsndfile1       |  1.0.28-6
    libstdc++6        |  8.3.0-6
    libsystemd0       |  241-7pureos0.2
    libsystemd0       |  241-7pureos0.1
    libuuid1          |  2.33.1-0.1pureos1
    libuuid1          |  2.33.1-0.1
    libvorbis0a       |  1.3.6-2
    libvorbisenc2     |  1.3.6-2
    libwrap0          |  7.6.q-28
    libx11-6          |  2:1.6.7-1+deb10u1
    libx11-xcb1       |  2:1.6.7-1+deb10u1
    libxau6           |  1:1.0.8-1+b2
    libxcb1           |  1.13.1-2
    libxdmcp6         |  1:1.1.2-3
    libxext6          |  2:1.3.3-1+b2
    libxi6            |  2:1.7.9-1
    libxt6            |  1:1.1.5-1+b3
    libxtst6          |  2:1.2.3-1
    
    bug 
    opened by omsai 10
  • Add Localization

    Add Localization

    • [x] Extract localizable strings
    • [ ] Translate strings
    • [x] Load strings

    MofileReader can be used to load strings from mo files: https://github.com/AnotherFoxGuy/MofileReader

    feature 
    opened by AnotherFoxGuy 9
  • Assertion failure at SDL_QueryTexture_REAL

    Assertion failure at SDL_QueryTexture_REAL

    Hello everyone, I just saw your reddit post and wanted to try out it this game. I followed the build instructions from the gitand there where no errors in the build, however when i try to run the game I get the start screen but then when I click on any button I get the error

    Assertion failure at SDL_QueryTexture_REAL (../source_subfolder/src/render/SDL_render.c:727), triggered 1 time: 'texture && texture->magic == &texture_magic'

    Some help would be appreciated.

    bug core 
    opened by niteya-shah 9
  • 3D Audio Implementation

    3D Audio Implementation

    I managed to implement OpenAL Soft to play sounds in 3D.

    To test this, compile with cmake -DENABLE_SDL2_MIXER=1 -DENABLE_OPENAL_SOFT=1, and change settings.json 3DAudioStatus to true for 3D audio. Also wear stereo headphones or use a surround sound system.

    Use the alsoft-config program that came with OpenAL Soft installation to set up the audio device for simulated 3D audio.

    Changes for each class.

    AudioMixer

    • Uses Macro USE_OPENAL_SOFT to initialize specific OpenAL Soft variables such as gAudioDevice, alContext to initialize OpenAL Soft system to play 3D sound.
    • If OpenAL Soft is enabled by USE_OPENAL_SOFT and 3d audio is set to be used, SDL mixer will initialize in mono, mono audio files will be loaded, OpenAL Soft will play 3D audio.
    • If OpenAL Soft is enabled by USE_OPENAL_SOFT and 3d audio is not set to be used, SDL mixer will initialize in stereo, stereo audio files will be loaded, OpenAL Soft will play audio in stereo. -If OpenAL Soft is not enabled, SDL mixer will initialize in stereo, stereo audio files will be loaded, SDL_Mixer will play audio in stereo.

    SoundTrack

    • buffer added to contain audio data for OpenAL Soft to play in stereo or 3D audio.
    • source added to contain position of object in 3D space for OpenAL Soft to localize where to play audio in 3D space. Buffer is attached to source.
    • buffer and source is similar to Mix_Chunk and gets initialized and destroyed in the same places as Mix_Chunk.

    SettingsData, JSONSerialization

    • Added Audio3DAudioStatus variable to set 3D audio on or off through settings.json.
    • Added AudioConfig3DJSONFile to specifically load only mono versions of sound for use with 3D effect as stereo audio files can't be localized in 3D space under OpenAL Soft.

    Game

    • If OpenAL Soft is enabled by USE_OPENAL_SOFT and 3D audio is set to be used, AudioMixer will play the theme as if the sound is coming from in front of you from the computer.

    Changes outside of classes

    • CMakeLists.txt changed to include OpenAL Soft as an optional dependency.
    • conanfile.txt.in changed to include OpenAL Soft as a package to download.
    • Mono versions of sound produced and added to resources folder to be used for 3D effect. 21 audio files added.
    opened by adct-the-experimenter 7
  • Cmake issue

    Cmake issue

    Hi. I try to build it for macOS

    I install from homebrew cmake, git and conan. Then:

    brew install cmake git conan
    git clone https://github.com/CytopiaTeam/Cytopia.git
    cd Cytopia
    git submodule update --init --recursive
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
    cmake --build . --target package
    

    I try cmake just like this cmake ...

    I got always error

    CMake Error at /opt/homebrew/Cellar/cmake/3.22.2/share/cmake/Modules/CMakeDetermineSystem.cmake:130 (message):
      Could not find toolchain file:
      /Users/naymapl/Cytopia/external/vcpkg/scripts/buildsystems/vcpkg.cmake
    Call Stack (most recent call first):
      CMakeLists.txt:13 (project)
    
    
    CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    -- Configuring incomplete, errors occurred!
    
    build 
    opened by naymapl 6
  • Restyle Added Pixel buffer

    Restyle Added Pixel buffer

    A duplicate of #634 with additional commits that automatically address incorrect style, created by Restyled.

    Since the original Pull Request was opened as a fork in a contributor's repository, we are unable to create a Pull Request branching from it with only the style fixes.

    The following Restylers made fixes:

    • clang-format
    • whitespace

    To incorporate these changes, you can either:

    1. Merge this Pull Request instead of the original, or

    2. Ask your contributor to locally incorporate these commits and push them to the original Pull Request

      Expand for example instructions
      ```console
      git remote add upstream https://github.com/CytopiaTeam/Cytopia.git
      git fetch upstream pull/<this PR number>/head
      git merge --ff-only FETCH_HEAD
      git push
      ```
      

    NOTE: As work continues on the original Pull Request, this process will re-run and update (force-push) this Pull Request with updated style fixes as necessary. If the style is fixed manually at any point (i.e. this process finds no fixes to make), this Pull Request will be closed automatically.

    Sorry if this was unexpected. To disable it, see our documentation.

    opened by restyled-io[bot] 6
  • Items with multiple variations that are also overplacable should avoid using the same frame twice when they are placed over another item with the same ID

    Items with multiple variations that are also overplacable should avoid using the same frame twice when they are placed over another item with the same ID

    Currently, many items, like trees or flowers, are overplacable, which allows users to build over them without destroying them first. Using this feature, users are able to replace the same item on a tile over and over again to get different variations. However, one annoying aspect of this is how you can occasionally place the same frame, which makes it seem like the game didn't place the item at all.

    Therefore, I am suggesting a feature that would prevent the user from overplacing the same variation twice. For example, if the user overplaces a tree that's using its third variation, the new tree will have a 0% chance of using the third variation. This will ensure that a new item variation is placed every time.

    enhancement question feature graphics 
    opened by KINGTUT10101 6
  • imgui: move build menu to imgui logic

    imgui: move build menu to imgui logic

    • remove logic for build menu with ui natives widgets
    • draw build menu aligment inplace
    • draw and create only need elements
    • avoid creating textures for all buttons in buildmenu
    user interface 
    opened by dalerank 3
  • Rework Game UI

    Rework Game UI

    Remove the ui buttons at the bottom of the game and replace it by a new UI. There are several ideas on the discord server, but be creative :)

    We need to show following:

    • Building Menu in categories and subcategories, like we have now. (Terrain Edit, Roads, Zones, Water, Power, Emergency, Parks, Debug)
    • Money count
    • Population count
    • RCI demand Indicators
    • Settings button
    • GameSpeed buttons
    enhancement user interface 
    opened by SimplyLiz 3
  • threads: split render thread and workers

    threads: split render thread and workers

    why: common approach of enhancing this architecture is to move it more into a fork/join approach, where you have a main execution thread, and at some points, parts of the work is split between threads.

    • add thread pool implementation for workers
    • add scenes ideas for split game logic such mainmenu, loading, map

    explanation: https://vkguide.dev/docs/extra-chapter/multithreading

    performance 
    opened by dalerank 2
  • Create Terrain generation dialog

    Create Terrain generation dialog

    When the player clicks on "New Game" Display a dialog with settings for terrain.

    Following settings are available in TerrainGenerator.cxx:

    struct TerrainSettings
    {
      int mapSize = 128;
      int seed = 0;         // If the seed is 0, a random seed will be generated by TerrainGenerator::generateTerrain()
      int seaLevel = 2;     // All tiles with elevation below this will be set as water.
      int treeDensity = 50; // 0% no trees, 100% All trees everywhere all the time.
      int mountainAmplitude =
          10;              // Both amplifies the mountain noise source, as well as biasing the mountain/plains blend. Expects 0-100.
      int waterAmount = 5; // Density of freshwater in addition to coastlines and rivers. Expects 0-100.
      int coasts =
          1; // 4 least significant bits are bitmasked, where 0 is a land border and 1 is a coastline. Remaining bits reserved for future use.
      int rivers = 1;              ///< Number of rivers to attempt generating.
      std::string biomes = "{}";   ///< JSON string of biomes to attempt using, plus any options associated with them.
      std::string advanced = "{}"; ///< JSON string of arbitrary advanced option data for future use or mods.
    };
    

    We need UI Elements for:

    • DropDown Map Size
    • Textfield Seed
    • Slider Water (0-100)
    • Slider Foliage density (0-100)
    • Slider Mountain height (0-100)
    • Slider for sea level
    • DropDown Biome
    • Checkbox Rivers

    Buttons:

    • Generate
    • OK
    user interface 
    opened by SimplyLiz 1
  • Separate music and sound FX volume

    Separate music and sound FX volume

    Right now setMusicVolume changes all sound volume, not just music, and setSoundEffectsVolume does nothing. It's been like this for a while, I just wanted to create an issue so it wasn't forgotten about.

    audio 
    opened by lizzyd710 0
Releases(v0.2.1)
  • v0.2.1(Apr 14, 2020)

    ===Cytopia v0.2.1 Changelog:=== General:

    • Fixed a bug where the game would crash when the terrain was elevated and an in-between tile was created.
    • Fixed a few bugs in the line placement mode.
    • Added a preview for buildings that are bigger than 1x1.
    • When placing buildings bigger than 1x1, the placement is now correctly checked.
    • Added support for diagonal roads.
    • Pressing ESC now stops the tile-placement mode.
    • Added shorelines.
    • Added two new fantastic soundtracks by MB22. Gameplay:
    • Added three different selection modes; single, rectangular, and line. The mode is chosen automatically for the right tiles.
    • Added RCI zone tiles by RockFort.
    • Added a blueprint layer mode. When placing water pipes, the game switches to this blueprint mode automatically.
    • Roads of different types now won't autotile to each other.
    • Holding down the SHIFT key will use straight line placement mode instead of the diagonal line placement mode.
    • Holding down the CTRL key will place straight road corners instead of diagonal ones.
    • Added De-Zone tool - Hold down SHIFT key while in demolish mode.
    • Added a tool to remove ground decoration only. - Hold down CTRL key while in demolish mode.
    • Added panning for both WASD and the arrow keys. Tiles:
    • Fixed a bug in autotiling.
    • Added new trees and other biome-related graphics and prepared biome JSON information for further terrain generation improvements.
    • Changed how road spritesheets are handled. Now the tiles are used from a single spritesheet instead of having "default" tiles in an extra spritesheet.
    • Added a "tileType" property to define certain behaviors, like "autotile" instead of handling this via tileCategory.
    • Items can now be placed over certain items, like trees, without deleting them first.
    • Added a property to allow placement of tiles on water
    • Added ground decoration tiles, that can be placed on a seperate layer underneath buildings.
    • Added a json property to define multiple ground decoration tiles that will be chosen randomly on placement UI:
    • Opening the settings menu now hides the category UI.
    • The UI can be hidden for screenshots by pressing the H key.
    • Fixed the UI text alignment in ComboBoxes.
    • Added subcategory buttons to the debug menu to show more buildings.
    • Centered UI items if they would normally go off the screen.
    • Right-click will no longer trigger a UI interaction.
    • Screen resolution can now be changed in-game.
    • The UI menu position can now be changed in-game.
    Source code(tar.gz)
    Source code(zip)
    cytopia-linux-portable.zip(44.50 MB)
    cytopia-osx-portable.zip(44.83 MB)
    cytopia-windows-portable.zip(43.99 MB)
  • v0.2(Feb 20, 2020)

    This is a pre-alpha tech demo.

    ===Cytopia Changelog:=== v0.2 -A new 32-bit version of Cytopia has been made for users with older machines -The new procedural terrain generation system can be used to make new maps with hills, lakes, oceans, and forests -Roads can now be placed using our new linetool -The new tile variation system allows buildings to pick a random frame after being placed -The grass and water tiles have been updated with new textures and variations -Lots of new buildings, decorations, and trees have been added -Items can be placed over flora tiles without manually removing them first -Tiles are now highlighted while placing items -You can now pan the camera using WASD -The GUI has been improved with previews for each building and new icons -The layer system fixes the black void that used to go under buildings -There is now touch screen support for Windows Tablets -New music tracks by MB22 have been added to the game -There is now spatial 3D audio -There is now Audio playback and track switching -Cytopia now has multilanguage support

    Note: You can either download the packages here, or use our releases at itch.io at: https://cytopia.itch.io/cytopia

    Source code(tar.gz)
    Source code(zip)
    Cytopia-0.2-Linux.deb(34.97 MB)
    Cytopia-0.2-Linux.tar.gz(35.11 MB)
    Cytopia-0.2-win64.msi(35.11 MB)
    Cytopia-0.2-win64.zip(34.83 MB)
  • v0.1.1(Mar 16, 2019)

    Checkout our gameplay video:

    IMAGE ALT TEXT

    v0.1.1

    • Save / Load Game functionality (including ZLib compression)
    • macOS support
    • TileDate Editor
      • Automatically calculate TileSize if count is changed
      • Added scrollbars if the preview image is bigger than the preview window
      • Fixed a crash when changing category of a tile
    • New Soundtrack made by MB22
    • Reformated the terrain system with brand new graphics and standardized frames for all slopes by KingTut 101.
    • A lot of code quality improvements and bug fixes.
    Source code(tar.gz)
    Source code(zip)
    Cytopia-0.1.1-Darwin.dmg(81.88 MB)
    Cytopia-0.1.1-Linux.deb(40.82 MB)
    Cytopia-0.1.1-Linux.rpm(40.82 MB)
    Cytopia-0.1.1-Source.tar.bz2(57.12 MB)
    Cytopia-0.1.1-win64.msi(51.31 MB)
    Cytopia-0.1.1-win64.zip(50.98 MB)
  • v0.1(Feb 18, 2019)

    This is a pre-alpha tech demo.

    Changelog

    v0.1

    • Renamed the Project to Cytopia
    • Added a Qt based tool to edit TileData JSON File (by Kollix)
    • A lot of new buildings by Kingtut 101 and Pineapples Trix
    • Placement of buildings (Power, Water, Debug, ...)
    • Support tilemaps and improved tilemanagement
    • Camera panning (hold down right mouse button)
    • Added a background image for image buttons.
    • highlight mouse over tile when in edit/placement mode
    • Added window and desktop icons
    • Performance Improvements and code refactoring
    Source code(tar.gz)
    Source code(zip)
    Cytopia-0.1-Linux.deb(19.10 MB)
    Cytopia-0.1-Linux.rpm(19.14 MB)
    Cytopia-0.1-win64.msi(29.65 MB)
    Cytopia-0.1-win64.zip(29.32 MB)
  • v0.0.2(Nov 20, 2018)

    This is a pre-alpha tech demo.

    Release Notes:

    Isometric Engine

    v0.0.2

    • Improved User Interface Library
    • Performance Improvements
    • Audio playback and a custom theme song made by sqwdmusic
    • Tilemap support
    • Bugfixes for Terrain editing
    • Custom Textures made by Kingtut 101
    • Roads and water
    • Performance Improvements
    • Lots of improvements to code design

    v0.0.1

    • Basic Render Engine
    • Read inputs from SDL Keys
    • Read configuration from resources/settings.json
    • Read tile list mapping from resources/tilelist.json
    • support multiple height levels of tiles
    • different zoomLevels
    • convert screen coordinates to iso coordinates (with pixel collision detection)
    Source code(tar.gz)
    Source code(zip)
    Isometric.Engine.v0.0.2.techdemo.zip(21.12 MB)
    IsometricEngine-0.0.2-Linux.deb(18.88 MB)
Battle City Game Clone

BattleCity Battle City Game Clone 4 Level 3 Level 2 Level 1 Level Menu You can also add your own level as txt-extention file: -in first row you need t

Sergey Semionkin 2 Feb 19, 2022
GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

Chris Maltby 6.1k Jul 1, 2022
Waternet Multiplatform Retro Game

Waternet is a multiplatform puzzle game written for old consoles and handhelds like Game Boy (Color), Game Gear, Master System, Analogue Pocket and Mega Duck using the gbdk sdk.

Willems Davy 1 Jan 31, 2022
TeeWare is a Teeworlds mod based on DDNet, inspired by the other mods TF2Ware and SRB2Ware

TeeWare is a Teeworlds mod based on DDNet, inspired by the other mods TF2Ware and SRB2Ware, which are also inspired by the WarioWare game series by Nintendo.

Headshot 6 Jun 7, 2022
YYToolkit is a tool for creating mods and altering GameMaker games.

YYToolkit is a tool for creating mods and altering GameMaker games.

Archie 29 Jun 10, 2022
Combination of various small tweaks/mods for Quake Enhanced

QETweaks A collection of "tweaks" (small mods) for Quake Enhanced multiplayer servers. Enabling tweaks Set saved1 console variable to desired value be

CK 1 Dec 29, 2021
A Vulkan game engine with a focus on data oriented design

The Fling Engine aims to be a cross platform Vulkan game engine that will experiment with the following: Low-level engine systems such as render API a

Fling Engine 295 Jun 18, 2022
A decompilation of Guxt (2007 game by Studio Pixel)

Guxt Decompilation Project WIP. Mostly based on work of @tilderain. Reverse engineering of remaining parts and various fixups was done by me (Alula).

null 2 May 25, 2022
Conway's Game of Life art project

Conway's Game of Life art project Arduino TODO documentation Find Optimal Conway's Game of Life is a simulation that follows some simple rules to mani

Andrew Harbick 1 Jan 9, 2022
Free, open-source, game engine and a 3D sandbox.

Work-in-Progress The official "early alpha" release should be available around April 2021 SGEEngine SGEEngine is an open source (MIT License), C++ cen

ongamex 65 Jun 13, 2022
A model viewer for Quake 1 and Hexen 2 with a focus on accurate representation.

LunarViewer A model viewer for Quake 1 and Hexen 2 with a focus on accurate representation. Powered by raylib and dear imgui! Features Support for Qua

Luna Ryuko Zaremba 31 May 4, 2022
OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

null 4.3k Jun 26, 2022
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 79 Jun 27, 2022
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 7.3k Jul 3, 2022
3D ray-tracing and animation engine for pixel matrices.

ProtoTracer: Protogen Ray-Tracing and Animation Engine This project is a 3D ray-tracing and animation engine for pixel matrices, designed to be used f

Open Protogen 64 Jun 13, 2022
null 4.9k Jun 30, 2022
Building Escape is a simple room escape game made with Unreal Engine 4.27 and C++.

Building-Escape Building Escape is a simple room escape game made with Unreal Engine and C++. The main purpose of the game is to find a way to escape

Christine Coomans 2 Dec 13, 2021
SameBoy DX is a Qt-based interface of SameBoy, a free, highly accurate Game Boy and Game Boy Color emulator.

SameBoy DX SameBoy DX is a Qt-based interface of SameBoy, a free, highly accurate Game Boy and Game Boy Color emulator. Build requirements: CMake Pyth

Snowy 8 Jun 4, 2022
Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.

Amazon Lumberyard Amazon Lumberyard is a free, AAA game engine that gives you the tools you need to create high quality games. Deeply integrated with

Amazon Web Services 1.9k Jul 1, 2022