XYG STUDIO
eXperience Your Game
eXperience Your Game
What is it?
XYG Studio is a runtime-based game development kit that uses SDL and the Squirrel scripting language. When it is done, the editor will run on Windows, Mac, Linux, Open Pandora, and Pyra. The runtime environment itself will be open-source, allowing it to be ported onto any platform, and even rewritten to run using different languages (it's being written in C++, but could be rewritten in C# for XBox or Java for browsers and whatnot). It can even be rewritten to work with other graphics APIs like SFML, OpenGL, SDL2, etc. so it'll work on virtually any platform.
What does it do?
The editor aims to feel as much like Game Maker's as possible while addressing a few issues and adding a bit more control to the way the game works. Although the game structure will be different, the required skill level will be about the same. Rather than mislead users by saying they can make a game without a single line of code (action icons follow the same logic as code, so they're really the same, just with different presentation), the included tutorials will teach how to code in Squirrel while building a game from the ground up.
Some issues found in Game Maker include things like always-on code that does not always do as the developer wants, and causes bloat and overhead when circumvented. XYG solves this by being as minimalistic as possible. Actors, the objects that are placed in a map via the level editor, will only start out with the most essential variables, and leave everything else to the developer to define (i.e. gravity, speed, direction, etc.). Components are like actors, but they have no physical body, so variables like x, y, sprite, shape, etc. are free to be redefined.
The room editor is split into two: a map editor and a level editor. The map editor is just for tiles and solid geometry. The level editor is where actors and components are placed, allowing multiple levels to use the same map. For instance, houses could share a common design and just use different characters to live in them, so recycling maps becomes an effective means of saving file space.
How much will it cost?
Nothing. You don't even need to pay for a license to make commercial games. You are, however, allowed to redistribute it, so long as you don't try to sell the editor or runtime. The project will be entirely donation-funded.
How do exports work?
Games can be exported by building a .xyg file that the runtime will open and play from. This file contains the game's resources and game-specific code, but does not include the standard code the runtime uses, which helps trim down file size. If you're worried about players not having the runtime installed or that a new version may make your game unplayable, simply distribute the required version with your game. The editor will feature an option to create a batch/shell file to handle launching your game for you, so you don't have to reassociate with the old version every time you want to play your game.
Can I help?
The code has not been released yet. I'll post a link as soon as it's up.
Currently, the runtime is stable. I'd been having trouble with a few things earlier, but that's all fixed, so I'm progressing once again. The sprite class is working beautifully, and even cleans itself up at the end of execution. The RE also produces a log file that lists events and their time of execution. Shape classes are almost done. I'm working on using the separating axis theorem for hit detection, since it looks fast and reliable. Keyboard controls are working perfectly now, and I'll be working on the map editor after I've done hit testing. Essentially, I'm doing it in this order:
*Graphics
*Keyboard
*Collision
*Files
*Maps
*Levels
*Scripting
*Joystick
*Sound
*Networking
The editor will be written in Qt, and I'll start that once I've gotten maps implemented. Oh, also, levels will be able to have their own variables as well.