Recent Posts

Pages: 1 2 3 4 5 6 7 8 9 10
Announcements / Permanently Taking on Yaml-CPP Dependency
« Last post by Josh @ Dreamland on January 26, 2020, 06:42:59 PM »
Hi folks,

This is a quick heads-up that we're in the process of switching our YAML parsing over to yaml-cpp instead of doing the reader in-house. This has been coming for a while, so you probably already have yaml-cpp installed. If not, please run install the yaml-cpp package using your favorite package manager.

Windows users: pacboy -S yaml-cpp
Ubuntu/Debian users: sudo apt-get install libyaml-cpp-dev
Arch Linux users: sudo pacman -Sy yaml-cpp
RPM users: yum install yaml-cpp

This change is to help push along a new event system (#1875) that will ease the transition to EGM format as we begin to switch to RadialGM.

Works in Progress / Prototype in the works
« Last post by hpg678 on December 22, 2019, 07:08:00 AM »
Season greetings to everyone. As we come closer to the end of 2019, projects still come to mind which need to be fiinished This one is the latest which I sharing its progress to date. Other work has made it difficult to be as involved as I would to be. Hopefully come 2020, I will be able to spend even more time here, doing videos, tutorials and of course making games. Until such time, here's hoping that you have a wonderful Xmas and happy coding in 2020!
General ENIGMA / Re: Vector graphics? Bones on sprites?
« Last post by Josh @ Dreamland on December 18, 2019, 09:13:14 PM »
We're mostly focused on the build system and IDE right now; it's somewhat refreshing to see questions about the engine. Unfortunately, there's no great canned solution to your questions.

  • ENIGMA is a raster-based engine; you can draw textured polygons, but we don't support loading vector graphics by default. You could integrate with, eg, NanoVG easily enough, but until a hardware-accelerated SVG rendering library is popularized, I don't expect us to adopt one natively.
  • You can do that relatively easily using sprite origins and some trig (or the convenience lengthdir_x/y functions), but we don't currently have a bone editor.
  • I'm actually not sure what you mean by the origin of a sprite sheet. You can change the origin of an entire sprite, yes. Note that this is a global change that will affect every occurrence of that sprite.
  • You could write a shader that used the pixel value as a color index, but we don't natively support changing color palettes. This was one of my wishlist items, though. If you look around, you can probably find a shader that already does this.
General ENIGMA / Vector graphics? Bones on sprites?
« Last post by mistermano on December 18, 2019, 06:05:49 PM »
I did a quick forum search and the most relevant answer I found was a topic from 2014. So, I'd like someone who knows better about the engine to kindly answer me:
  • Is it possible to use vector graphics, somewhat similar to Flash?
  • Is it possible to add bones, joints or something similar to sprites?
  • Is it possible to change the origin of a sprite sheet to a particular frame while the game is running? (I'm almost certain the answer to this one is yes, but I'd like confirmation)
  • Is it possible to change a palette color? Say, my sprite is saved with a 16 color palette, after it is loaded, can I change the color value of one of those 16 colors?

Why I'm asking: the project I have in mind is basically the player controlling a robot, running around gathering new pieces like arms, legs and torsos, which are visually different. Zooming in and out to show the same image rather than having a separate set of images for close ups would be much better for me
Works in Progress / DSU - new underwater game
« Last post by hpg678 on October 03, 2019, 06:38:26 AM »
Deep Sea Underwater is the newest full game. You command a submarine underwater.....your goal is to avoid as many obstacles in the form of stalagmites, stalactites and mines in the sea. Clicking the left mouse button briefly keeps your sub afloat, releasing it makes it sink. Along the way treasure chest will pop up. Collect them for a big score, but that feat is not as easy as you may think.

At the moment there is a Linux version. There will be a Windows and Mobile version later. I am also thinking about doing a Mac version but that is another matter altogether.

Tips, Tutorials, Examples / Re: Mithe.....a Flappy Bird clone or underwater game
« Last post by hpg678 on October 03, 2019, 05:08:43 AM »
Seems the process will be more troublesome than its worth, so I decided to do two seperate games after all.

we'd need more sprites for fish, bubbles and obstacles. Adjustments to the code to make everything work together was more troublesome and irritating where my goal for this, well any tutorial is to be as simple and painless as possible.

As far the Underwater game is concerned, it is soon completed. Sound effects have been added, everything else is working as it should. the only thing to do now is the Instructions screen and Credits screen.

So be on the lookout for that game in a new topic.

untill then, be cool and awesome using ENIGMA.  (Y) (Y) :cool:

Tips, Tutorials, Examples / Mithe.....a Flappy Bird clone or underwater game
« Last post by hpg678 on September 26, 2019, 05:10:31 PM »
I am doing a two part series on converting one game type to another. For this i am using a Flappy bird clone i created today and will convert it into an underwater game. you can check the Youtube video here for part one. if you are interested in doing  it yourself, download the source at the EDC or Games section. With a few additions like a Start Menu, some effects and additional graphics, one can make a full game of it.

Converting the game should be too difficult since the type of underwater game uses the same type of mechanics. Stay tuned for an update.

 (Y) (Y)

I updated the screenshots to reflect some new functionality that is soon to be added to ENIGMA, and has already been added to my GameMaker extension's equivalent code. Please do not be confused, these are upcoming features, and they are not available yet. But it won't take long because most of the code is already written and will need minimal tweaking. These changes only apply to the macOS Cocoa and Linux X11 Widgets Systems. In the case of Linux, only the KDialog Widgets are effected. I updated the Zenity screenshots too, but only because the older ones were taken on a version of Ubuntu that had problems updating to Bionic Beaver, so there were some visual flaws with it such as using Unity instead of GNOME still, for the desktop environment, which was a huge eye-sore for me.

Changes Include:

- [macOS] A dirty subclass hack which makes some macOS dialogs display as sheets; while normally sheet dialogs are async, the subclass forces them to be modal, (unless you run the async equivalents via the async extension ofc). This relies on a small Objective-C++ *.mm source file that was not originally written by me nor was it written for ENIGMA in specific, however it was licensed under BSD, so it is permissive and compatible with both our GPL and upcoming linking exception. The dialogs that will be displayed as sheets include show_message(), show_message_cancelable(), show_question(), show_question_cancelable(), show_attempt(), show_error(), get_string(), get_password(), get_integer(), and get_passcode(). More information on what exactly a sheet dialog even is and its distinction from a child window dialog may be read in the next bullet point found below.

- [macOS] As for the rest of the macOS dialog functions, they will not be sheets, however, they will be child windows once this update is released. Child windows by Apple's definition is a window that moves when it's parent is being dragged by the title bar to move, relative to where the parent is being dragged. However, the child window will move independent to the parent window's position if the child window is dragged by the title bar to move and the parent window will stay at the same position uneffected. So, these dialogs are child windows, they will inherit this behavior. Sheet dialogs are almost no different except they can't have a title bar so sheet dialogs will always be at a position relative to the window they are attached to, more specifically at the top-center of the window it is attached to, i.e. the parent. The child window dialogs include the file, folder, and color pickers.

- [macOS] The functions widget_get_icon() and widget_set_icon() will be added, which will allow for setting an icon for the dialogs should you want an icon to be displayed that is different from the default, which is the icon you have set for your game in the Info.plist of your macOS App Bundle. This will require you to bundle your game manually as normal. Only *.PNG is supported. You can technically use other formats as well, such as *.ICNS but formats such these won't be compatible with the Linux X11 Widgets; not cross-platform.

- [Linux X11 (KDialog)] Once this update is released you'll notice that KDialog will have a more appealing icon in the title bar of each dialog that will either match the icon used in the client area of the dialog or the game's custom icon if there is no icon in the window's client area. This custom icon can be set once another important update of mine is merged. If you want the dialogs to have a different icon in the title bar than the one used for the game window, this update, as stated in the previous bullet point, will also introduce the new functions widget_get_icon() and widget_set_icon() to get/set the current icon to use for the dialogs. Again, PNG-only. There might be other formats supported but like with Mac they probably aren't going to be supported in a cross-platform manner.
Announcements / Native Linux Icon Support
« Last post by time-killer-games on September 03, 2019, 09:08:31 AM »
Well, for the first time in the roughly 10 years the ENIGMA game engine has been around, you can now natively set a PNG icon for your game that will show in the title bar, task manager, system monitor, and Alt+Tab process swapper. No thanks to those fat lards Josh, Robert, and fundies. No offense, I love you guys, but I couldn't take it any longer so I decided to step in and add Linux icon support.

Includes the following functions:

    - window_get_icon_index() returns the sprite index of the current icon

    - window_get_icon_subimg() returns the sprite subimg of the current icon

    - void window_set_icon(ind, subimg) sets the icon to use for the game from the given sprite resource

As a small side note - this pull request also allows capturing SDL's window handle on linux for widget use. Although I still haven't fixed the SDL bug where the game doesn't respond and then segfaults, if you click the close button in the main game window's title bar over and over while a dialog is open. Not many people will do that so it's not a huge bug.

The pull request this text was copied from can be viewed here, along with the actual code changes and additions:

For early access to this update, follow these set of instructions listed below:

1) download and extract this ZIP archive to the folder of your choosing:
(This dropbox link won't be available anymore after being merged into master officially)

2) Install these dependencies if you haven't already, (copied from the wiki):

Ubuntu/Debian-based distro's:
Code: [Select]
sudo add-apt-repository ppa:maarten-fonville/protobuf
sudo apt-get update
sudo apt-get install g++ libprotobuf-dev protobuf-compiler zlib1g-dev libglew-dev libglm-dev libpng-dev libglu1-mesa-dev libalure-dev libvorbisfile3 libvorbis-dev libbox2d-dev libdumb1-dev libepoxy-dev git default-jre default-jdk make pkg-config wget
Since you aren't installing this the normal way, some of those dependencies and tools are redundant in this case, but that's aside the point of this topic.  :smileycat:

Manjaro/Arch-based Linux (some dependencies are missing on the wiki I got this from - find out the rest on your own; I don't use Arch Linux):
Code: [Select]
sudo pacman -Sy git make gcc zlib glew glm glu mesa alure box2d dumb zenity openal patch wget fakeroot cmake pkgconfig
pacman -S jdk8-openjdk

3) Terminal this:
Code: [Select]
cd /path/to/extracted/enigma-dev
4) Terminal that:
Code: [Select]

5) Run LateralGM:
Code: [Select]
java -jar lateralgm.jar
...or install emake as instruncted from the wiki and use that as you would normally.

Please note the aforementioned linux extension has not been written yet. All it will be really is an optional Makefile adding the compiler/linker flags for statically linking the extra dependencies.

Happy coding!
Tips, Tutorials, Examples / ENIGMA on USB drive using UUI
« Last post by hpg678 on September 01, 2019, 08:59:45 AM »
For those who may want to try ENIGMA or LINUX, but don't want to use a VM(Virtual Machine), you can do so by installing it on a USB drive using this great software I came across named Universal USB Installer. I recommend using a 8GB or more one as i've recently tested one such drive. A 128Gb one is ideal for updates, creating your projects and copying resources over for use.

To create your USB, I refer you to this article here, where it instructs you on how to create such a device. Linux is not the only OS you can use, however. You can choose, Fedora, Arch, CentOS, Windows, Android, Cloning/REcovery Tools, Antivirus Rescue Tools, Security/Penetrating Tools and many others.

The one I created was Xubuntu, as I was using a 8Gb Sandisk USB drive. The one feature that sets it apart from others I've used before, like Etcher, Rufus etc, is the 'Persistence' setting, where you set how much of the drive space to use for storage. On mine, I created a 3Gb one, which after installing ENIGMA has 690MB free.

The instructions are simple. Choose what distro you want to install. Don't have the ISO? No problem. It directs you to the download link. Select the USB drive. You can format it as NTFS or Fat32. I recommend using Fat32 as it is more generic. I've had experiences where some computers Bios have trouble reading NTFS formatted USB drives.

Depending on your USB size it will take some time, but it is definitely worth the effort. After your USB is configured and gone through the process, it just a matter of plugging it into the computer USB port and starting up the computer.
When the boot menu appears, choose the option to try the OS.
When the desktop is up, make sure the network is working, open up the browser and go to ENIGMA's website.
Depending on the type of OS, you've chosen follow those instructions. If you choose a LINUX type distribution and is new to LINUX, dont panic. Its very easy to install ENIGMA.

LINUX users
  • Open the app named Terminal. It is very similar to Windows command prompt and will normally be in the Accessories submenu.
  • Next open up your browser and go to the website. (Some installations would have an icon on your desktop. if there is none, go to the Internet sub-menu. Note: the link carries you directly to the Linux installation page)
  • Select and copy all the text in the code.
  • Next we are going to paste the text into a script. Open the File Manager by clicking on the Computer icon on the desktop. If there isn't one, then you should find it in the Accessories sub-menu. With the Home Folder selected, go the right side of the panel, right-click and choose Create New....Empty File. Give it the name ''. Double click on that file and paste the contents you copied.
  • Next we have to make the file executable. Right-click on the file, choose Properties. Go to the Permissions tab and select 'make this file executable'.
  • With the Terminal window, you should be able to drag the file over into the Terminal window. If not then copy the file and paste it into the Terminal. You should see the path and name of the file at the prompt.
  • All that's left now is hit Enter in the Terminal Window. If all goes well, you should see a new folder in the File Manager named enigma-dev.
  • In that folder, double-click on the file named "'
  • in the Terminal window, type "./"
Hope you've found this useful! Any other questions, check me out on the Discord channel or ask away here in the forums.

 (Y) (Y)

Pages: 1 2 3 4 5 6 7 8 9 10