Commander-Genius | Modern Interpreter for the Commander Keen Games | Game Engine library

 by   gerstrong C++ Version: refs/pull/358/merge License: GPL-2.0

kandi X-RAY | Commander-Genius Summary

kandi X-RAY | Commander-Genius Summary

Commander-Genius is a C++ library typically used in Gaming, Game Engine applications. Commander-Genius has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has low support. You can download it from GitHub.

So far, Commander Keen 1-6 are fully supported. There are some smaller missing features like PaddleWar, but the whole gameplay is there. Keen Dreams is starting to work but still might have some issues. So far, you can play it to the end. Also the menu lacks of a lot of features. Please configure input and sounds using the other games. There is an alternative called Reflection Keen which supports Keen Dreams, on which the code is based. Commander Genius runs on Linux/X11, Windows, Android, with plans to release on other platforms in the future. If you think you would like to port it, please send us a message and we will do our best to help you.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              Commander-Genius has a low active ecosystem.
              It has 177 star(s) with 35 fork(s). There are 22 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 21 open issues and 317 have been closed. On average issues are closed in 212 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of Commander-Genius is refs/pull/358/merge

            kandi-Quality Quality

              Commander-Genius has no bugs reported.

            kandi-Security Security

              Commander-Genius has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              Commander-Genius is licensed under the GPL-2.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              Commander-Genius releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Commander-Genius
            Get all kandi verified functions for this library.

            Commander-Genius Key Features

            No Key Features are available at this moment for Commander-Genius.

            Commander-Genius Examples and Code Snippets

            No Code Snippets are available at this moment for Commander-Genius.

            Community Discussions

            QUESTION

            Unity 3'nd Person Controller Camera Acting Weird
            Asked 2022-Apr-08 at 23:22

            I'm very new in Unity and Stackowerflow. If i did something wrong, please don't judge me ^^ I used Unity's TPS Controller asset for my game. In first, it worked very well. But then It broke. But i didn't do anything :( (i don't even touch scripts or prefabs). After that, i deleted asset and re-download it but it didnt work again. Here is one example from my broken scene and these are the codes from my controller. Thanks For Any Kind of Help.

            Starter Assets Input ...

            ANSWER

            Answered 2022-Apr-08 at 23:22

            I had the same problem too. I researched a lot of documents about that and finally, I solved this problem. The problem is not about your codes or events or smth else. The problem is related to Unity. I don't know the exact reason for the problem but you can solve it this way: First, go Edit > Project Settings and select Input System Package from the Left tab. And then, change the Update Method with Process Events In Dynamic Update. And that's all! Dynamic update means the usual Update method that you see in the scripts void Update().

            Images

            Source https://stackoverflow.com/questions/71804001

            QUESTION

            OpenTK doesn't render the color of my triangle
            Asked 2022-Apr-03 at 07:08

            I am learning to program a game engine which is why I followed a tutorial, with that tutorial I have gotten this far and even though my code is identical to theirs (theirs did work in the videos) its not working the way it is meant to. The triangle stays black no matter what. There is not any errors.

            Main Program Script:

            ...

            ANSWER

            Answered 2022-Apr-03 at 07:08

            You actually assign the shader program to a local variable in the event callback function's scope. You need to assign it to the variable in scope of Main:

            Source https://stackoverflow.com/questions/71723584

            QUESTION

            How to create a first-person "space flight" camera
            Asked 2022-Mar-15 at 13:43

            I'm currently attempting to create a first-person space flight camera.

            First, allow me to define what I mean by that.

            Notice that I am currently using Row-Major matrices in my math library (meaning, the basis vectors in my 4x4 matrices are laid out in rows, and the affine translation part is in the fourth row). Hopefully this helps clarify the order in which I multiply my matrices.

            What I have so Far

            So far, I have successfully implemented a simple first-person camera view. The code for this is as follows:

            ...

            ANSWER

            Answered 2022-Mar-02 at 23:15

            The problem is that two numbers, pitch and yaw, provide insufficient degrees of freedom to represent consistent free rotation behavior in space without any “horizon”. Two numbers can represent a look-direction vector but they cannot represent the third component of camera orientation, called roll (rotation about the “depth” axis of the screen). As a consequence, no matter how you implement the controls, you will find that in some orientations the camera rolls strangely, because the effect of trying to do the math with this information is that every frame the roll is picked/reconstructed based on the pitch and yaw.

            The minimal solution to this is to add a roll component to your camera state. However, this approach (“Euler angles”) is both tricky to compute with and has numerical stability issues (“gimbal lock”).

            Instead, you should represent your camera/player orientation as a quaternion, a mathematical structure that is good for representing arbitrary rotations. Quaternions are used somewhat like rotation matrices, but have fewer components; you'll multiply quaternions by quaternions to apply player input, and convert quaternions to matrices to render with.

            It is very common for general purpose game engines to use quaternions for describing objects' rotations. I haven't personally written quaternion camera code (yet!) but I'm sure the internet contains many examples and longer explanations you can work from.

            Source https://stackoverflow.com/questions/71328720

            QUESTION

            How do I make copies of a Node in Godot
            Asked 2022-Feb-19 at 01:11

            I'm new to Godot coming fresh from unity and I cant figure out how to duplicate an object/node. I've tried the duplicate function to no effect. My most recent attempts try to create child nodes with the same property as the parent. I cant seem to get anywhere, help would be appreciated. Here is my code that tries to create a child node:

            ...

            ANSWER

            Answered 2022-Feb-19 at 01:11

            • The base node class is invisible (gray) so you cannot see if they were added or not. You can switch from the local to the remote tab in the scene tree while running to see only one invisible node added.
            • If you change the code to AddChild(copynode).Duplicate(); you can see it adds all 5 invisible nodes.

            Source https://stackoverflow.com/questions/71180866

            QUESTION

            Coming from OO languages to C, how can I avoid circular dependencies?
            Asked 2022-Feb-13 at 13:14

            When I say "Entity" below, I'm not specifically referring to anything relating to the ECS pattern, I just mean a general game entity.

            I'm trying my hand at game development in C, after having done previous game dev in TypeScript. I'm looking for a C idiomatic way to reuse a pattern with which I'm familiar: each tick, the game iterates through a list of entities, telling each one to update itself, then draw itself. Each entity knows how to update itself, but requires information about the game as a whole to make this update.

            ...

            ANSWER

            Answered 2022-Feb-13 at 13:14

            Don't #include "entity.h" from game.h and vice versa. Just forward declare what you need a pointer to. Also add header guards if you haven't already.

            Example:

            Source https://stackoverflow.com/questions/71100649

            QUESTION

            SpawnObject for ak(Clone) (UnityEngine.GameObject), NetworkServer is not active. Cannot spawn objects without an active server
            Asked 2022-Feb-10 at 07:54

            helloI'm making an object in Unity that gives players random weapons when they hover over it, but it always gives me this warning and doesn't create it.

            ...

            ANSWER

            Answered 2022-Feb-10 at 07:54

            This is because of you are calling the spawn function from client. You should call it in server.

            Source https://stackoverflow.com/questions/71010816

            QUESTION

            Detecting if an enemy was shot by bullet
            Asked 2022-Feb-06 at 03:20

            I am trying to learn Godot by making a simple 2D shooter, but am running into a problem. I do not know how to detect if an enemy has been shot by a bullet. My bullets are Area2D nodes with a Sprite, and CollisionShape2D node attached. My enemies are KinematicBody2D nodes with a Sprite, and CollisionShape2D node attached. The enemy also has a timer attached, but that is not important.

            Here is the enemy code:

            ...

            ANSWER

            Answered 2022-Feb-06 at 03:20

            On your _on_PlayerBullet_body_entered you a body that has a reference to whatever the Area2D collided with, you can use it to communicate with it.

            For example, you can call a method on it. Which could, of course could be queue_free:

            Source https://stackoverflow.com/questions/71003599

            QUESTION

            Phaser.js: How to get or remove all sprites in one scene
            Asked 2022-Jan-29 at 09:00

            I used to handle a group of sprites by push them into an array or sprite group which is build-in class in the Phaser. But I am seeking another simple way could get or remove all sprites in an scene. Does anyone have any idea to resolve this? Thanks a lot!

            ...

            ANSWER

            Answered 2022-Jan-29 at 09:00

            The Scene has a property children (link to documentation)

            You can get all Sprites, with the command:

            Source https://stackoverflow.com/questions/70903111

            QUESTION

            Phaser3, Creating Rounded Rectangle, Not Staying Put Relative To Window
            Asked 2022-Jan-21 at 00:26

            I'm trying to create a scoreboard using phaser3. It creates the board when I do the following in create function:

            ...

            ANSWER

            Answered 2022-Jan-21 at 00:26

            YourGraphic.setScrollFactor(0,0);

            Source https://stackoverflow.com/questions/70794747

            QUESTION

            Ursina Python Engine: Lighting, Shadows And Bloom Effects
            Asked 2022-Jan-17 at 07:34

            I Am New To Ursana Engine And I Don't Know It Properly. But I Can Make Games In It. But The Problem Is That My Game Doesn't Have Any . So My Game Looks Dead.

            Is There Any Way To Make My Game Look Good Using In Ursana Engine?

            ...

            ANSWER

            Answered 2021-Dec-11 at 20:32

            You have to add lights and also apply lit_with_shadows_shader to entities that will receive shadow.

            See more here: https://www.ursinaengine.org/cheat_sheet.html#DirectionalLight

            Source https://stackoverflow.com/questions/70139918

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install Commander-Genius

            Download it, install it and launch it. In the Game Launcher click/tap on "New Stuff" and choose your game. It will start to download. After it has finished, you can play it. You can download more titles if you want, enjoy!.
            Copy the directory of the games to the "games" subdirectory of CG. If you own the registered versions, you can play all episodes, otherwise download the shareware version and copy them there. You also can use mods. If you have a bundled version, you already should be able to play episodes 1 and 4, as they are installed in that directory. If you connect your Android Device to the PC, normally you find a directory called something like like "/Android/data/net.sourceforge.clonekeenplus/files/games". Copy the games there where the shareware versions are and you should be fine. You should note that the following versions of Keen work best: Keen 1 - Version 1.33 Keen 2 - Version 1.33 Keen 3 - Version 1.33 Keen 4 - Version 1.4 (EGA) Keen 5 - Version 1.4 (EGA) Keen 6 - Version 1.4 (EGA) Keen 6 Demo - Version 1.4 (EGA) Keen Dreams - Version v1.13 (EGA) Other versions might work, but we cannot guarantee it. If you happen to own another version, I would recommend patching it first. There are free patches for that around the net. Also Keen 6 works on CG. Don't use the 1.5 version, which is not supported, sorry! Get the 1.4 version instead.
            If you want to use some patched mods just copy them as separate games to that path. Remember that due to copyrights, mods usually do not come with the games to patch. Like in DOSBox, you have to copy the original game data with the patches in the same directory.
            If you want improved sounds and music, just download the High Quality Pack (HQP) and extract it in the CG-Data location. Be aware that CG handles global HQ files and per-game files, depending on where the resources get extracted. Read the HQP readme for more information on how to use those resources. Using HQP, you might have to copy some resources to the specific game directory so that CG can detect it. For example, you might want to copy ck1tiles.bmp to /games/keen1/. I'm thinking of making HQPs deprecated and providing special versions of the games in future.
            Go to the program's directory.
            Under Windows you start "CGenius.exe", under Linux "./CGenius".
            The most recent version is hosted at GitLab.
            From the Linux command line, type: git clone https://gitlab.com/Dringgstein/commandergenius.git cd Commander-Genius
            I recommend you using the master branch. I might create a more stable one later.
            Install through Synaptic or "sudo apt install" the following packages: - build-essential - libgl1-mesa-dev - libcurl4-openssl-dev - zlib1g-dev - libsdl2-dev - libsdl2-image-dev - libsdl2-mixer-dev - libsdl2-ttf-dev
            Create an empty build Dir: mkdir -p CGeniusBuild
            Extract my source code into the "CGeniusSrc" directory.
            cd CGeniusBuild
            Run "cmake ../CGeniusSrc".
            Run "make".
            If everything went fine, you should be able to see an executable in the build directory. Copy the game data files to if you didn't already, and run Commander Genius. Even without any data copied, CG should run, but report that there are no games.
            Install using the package manager (replace "dnf" with "yum" for Fedora 21 or older): dnf install -y SDL2-devel cmake cmake-data gcc-c++ mesa-libGL-devel libcurl-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel
            Extract my source code into the "CGeniusSrc" directory.
            mkdir -p CGeniusBuild
            cd CGeniusBuild
            Run "cmake ../CGeniusSrc".
            Run "make".
            If everything went fine, you should be able to see an executable in the build directory. Copy the game data files to if you didn't already, and run Commander Genius. Even without any data copied, CG should run but report that there are no games.
            If you want to compile the game, you need to have all the standard development libraries and GNU C Compiler (at least version 4.8) installed on your system.
            You need to install the "SDL_mixer", "SDL_image", "SDL", "curl" and "Mesa/OpenGL" development libraries to get it to compile successfully.
            Extract my source code into the "CGeniusSrc" directory .
            mkdir -p CGeniusBuild
            cd CGeniusBuild
            Run "cmake ../CGeniusSrc".
            Run "make".
            Then, you can run "CGenius".
            Go to https://www.msys2.org/ and get the i686 version for 32-bit or for 64-bit x86_64. You can have both builds in one system but I highly recommend staying always on one.
            Start its setup and just follow the instructions
            Like webpage instructions indicate: pacman -Syu and eventually pacman -Su If you are entirely through with that setup, the installation of dependencies for CG are next.
            Set PACPFIX (32-bit): export PACPFIX=mingw64/mingw-w64-x64
            pacman -S base-devel
            pacman -S ${PACPFIX}-SDL2
            pacman -S ${PACPFIX}-SDL2_image
            pacman -S ${PACPFIX}-SDL2_mixer
            pacman -S ${PACPFIX}-SDL2_ttf
            pacman -S ${PACPFIX}-cmake
            pacman -S ${PACPFIX}-curl
            pacman -S ${PACPFIX}-zlib
            pacman -S ${PACPFIX}-gcc
            pacman -S ${PACPFIX}-nsis
            pacman -S git
            git clone https://gitlab.com/Dringgstein/commandergenius.git
            mkdir cgenius_build
            cd cgenius_build
            cmake -G "Unix Makefiles" ../Commander-Genius
            make
            Install Mac Ports. You can download it here: https://www.macports.org/install.php
            Open up a terminal
            Install some dependencies: sudo port install libsdl2 libsdl2_mixer libsdl2_image libsdl2_ttf libsdl2_mixer curl git cmake
            You might get a dialog asking for the installation of Xcode dependencies. Please confirm that dialog.
            You also will be asked for the installation of more dependencies. You need to confirm all that.
            cd into a directory where you want to clone the sources: git clone https://gitlab.com/Dringgstein/Commander-Genius.git
            Now you should have a directory called "Commander-Genius". It contains the source code. You can verify that with "ls"
            Create your build directory and cd into it: mkdir CG-Build cd CG-Build
            Prepare your build referencing to the sources you cloned: cmake ../Commander-Genius -DUSE_OPENGL=0
            And build it: make
            If everything went well, go into src and execute it: cd src ./CGeniusExe

            Support

            (c) 2010-2021 Pelya (Android-Distro)(c) 2020-2021 Elias Oenal (Switch port)
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/gerstrong/Commander-Genius.git

          • CLI

            gh repo clone gerstrong/Commander-Genius

          • sshUrl

            git@github.com:gerstrong/Commander-Genius.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link