[NOT]5734L3R - A community driven project
Printed From: Pixel Joint
Category: The Lounge
Forum Name: Diversions
Forum Discription: Get to know your fellow pixel freaks. Chat about anything to do with video games, comic books, anime, movies, television, books, music, sports or any other off topic bs you can think of.
URL: https://pixeljoint.com/forum/forum_posts.asp?TID=19401
Printed Date: 09 September 2025 at 10:24am
Topic: [NOT]5734L3R - A community driven project
Posted By: Yanrishatum
Subject: [NOT]5734L3R - A community driven project
Date Posted: 24 July 2014 at 3:13pm
Hello, I'm Soup, and I'm developing a small game with codename [NOT]5734L3R.
In first of all, I'm asking you, guys, DO NOT tell about this project to Winged Doom (original author of 5734L3R project). I already have his permission to do with this title anything I want, but he do not know, that I work on this project currently, and this is must be surprise to him, when he'll be ready to start work on 5734L3R project. Seriously, I don't want him to know about this project.
Okay, let's begin.
Why "Community driven project"?
That because I'm offering to you, yes you, to join this project as level designer. That's pretty easy. You only need a http://www.mapeditor.org/ - Tiled editor, any graphics editor and fantasy.
Currently there almost nothing to see, but please, if you want any feature included in the game, suggest them, and I'm mostly possible include it.
Note, that project is exploration-based, and any player-harming objects will not be included.
Current project specs
Version: 0.0.2
Objects:
- Any object
Tiled properties:
Any property with "g_" in start will be loaded as graphic. Syntax: g_<name> -> <path_to_image>. Sample: g_sprite -> img/objects/box.png
Note, that g_sprite will be used as main sprite for generic objects which don't have special graphics in settings file. Otherwise will be used graphic, that used in tileset (16x16 tile).
Any property with "ga_" in start will determines an animation for graphic. In property name after ":" symbol you determine an animation name. In value, you have to show that animation is looped (true or false) and write frame-delay pairs. Syntax: ga_<graphic_name>:<animation_name> -> <looped>:<frame-delay pairs>. Sample: ga_g_sprite:idle -> true:0,0.1,1,0.1
Any property with "gs_" in start will determine setting for graphic. You can set next values:
animation:String - an current animation of graphic
visible:Boolean - is graphic is hidden
flipped:Boolean - is graphic flipped horizontally
upsided:Boolean - is graphic flipped vertically
playing:Boolean - is graphic will currently play animation
red, green, blue, alpha:Number[0-1] - coloring tints.
x,y:Number - x/y position of graphic
Syntax is similiar to ga_: gs_<graphic_name>:<paramter> -> <value>. Sample: gs_g_sprite:playing -> true
Scripting methods:
Since 0.0.2:
animate(toX:Float, toY:Float, speed:Float, ease:EaseFunction = null, callback:Void->Void = null):Void
Moves object to selected position. Description:
speed - speed of motion in pixels per second.
ease - easing function of motion. All easing function can be accessed via Ease class (@See https://github.com/HaxePunk/HaxePunk/blob/dev/com/haxepunk/utils/Ease.hx - Ease.hx for available easings). http://easings.net - Cheat sheet for easing functions.
callback - Void->Void method called after animation end.
hide(duration:Float = 0, ease:EaseFunction = null, callback:Void->Void):Void;
show(duration:Float = 0, ease:EaseFunction = null, callback:Void->Void):Void;
Shows and hides object.
duration - Duration of fading in/out. By default it's just hide object.
ease - easing function for fading.
callback - function called after hiding/showing.
pos(x:Float, y:Float):Void
Sets position of object
- Player
Player model are recolored, to empharize, that this is not original 5734L3R.
No Tiled properties.
- Pushable object
This object used to all types of objects by default, if to object class do not set.
- Cutscene object (basic implementation)
Almost nothing to see there at the moment, just static object
Tiled properties:
hidden - if have this property, will be hidden at start. Can be changed by scripts via visible property.
- Interactive terminal object
Player can interact with them by pressing S key.
Will try to start "on" animation, when activated. When deactivated, tries to use "idle" animation, otherwise "default" (plays once, includes all frames of graphic)
Tiled properties:
interact_time - number in seconds, how long player will be stay near terminal "activating it". By default it's 1 second.
one_time - if has this property, terminal can be activated only once.
start - path to script, which will be activated at begin of interaction.
end - path to script, which will be activated at end of interation;
locked_time - Default lock time is 0.5 seconds. When terminal is locked, player can't interact with it. (since v0.0.2)
- Gravity reversor
Reverses gravity to any entity, that hits him.
No tiled properties
- Exit object
Provides transiting from level to level.
Tiled properties:
eixt - Name of level and exit, to which that exit points. Example: exit -> lonelyRoom:exit
Since v0.0.2:
- Conveyor object
Pushes all moveable objects to right or left. On map must be placed left part of conveyor and it's size must be set in object properties by "size" property. Minimum size of conveyor is 2.
Tiled properties:
size - Size of conveyor in tiles.
push_speed - Float, strength of pushing speed in pixels-per-second. Default = 16
direction - right or left - direction of conveyor. Default - left
Scipring vars:
direction:String - left or right. For manual change of direction.
pushSpeed:Float - pushing speed.
- Trigger object
They can be defined with geometry tools of Tiled. Now supported only Rectangle and Polygon trigger with some restrictions. Polygon hitbox does not work with Pixel-perfect hitboxes.
In scripts, you can access entity, that activated trigger by "target" variable.
Tiled properties:
target - name of group, which activates trigger. Default is "player". Possible values:
pushable - any pushable objects.
player - player object.
object - any other object.
cutsceneObject - any cutsceneObject
interactiveObject - interactive terminals.
triggerObject - other triggers
target_name - name of exact entity, which will activate trigger. Default is null.
first - Script path, which will be activated in very first activation of trigger.
first_leave - Script path, which will be activated in first activation after object leaves trigger.
enter - Script path, which wlll be activated every time trigger activated (include first time)
leave - Script path, which will be activated every time trigger deactivated (include first time)
Scripting vars:
target - same as target property.
targetName - same sa target_name peropery.
first - same as first property.
firstLeave - same as first_leave property.
enter - same as enter property.
leave - same as leave property.
activations - counter of activations. Can be resetted by setting value to 0.
Other features:
- Scripting engine
Function and variables available:
Constants - constants class. Now contains GRAVITY (Point, x/y) and DEFAULT_OBJECT
setTimeout(function, delay) - takes function and delay in seconds, and calls it in that time.
game - GameScene object. @See https://github.com/HaxePunk/HaxePunk/blob/dev/com/haxepunk/Scene.hx - Scene.hx to functions available.
Ease - Easing functions (@See https://github.com/HaxePunk/HaxePunk/blob/dev/com/haxepunk/utils/Ease.hx - Ease.hx for available easings). http://easings.net - Cheat sheet for easing functions.
SoundManager - Main sound engine manager. See SoundManager description below for available methods.
You can access other entities by game.getInstance(name). Name can be set in Tiled.
Possible scipring triggers:
Interactive terminals.
Trigger objects.
"start" property in Tiled level properties. Activates every time, when user enters level
"first" property in Tiled level properties. Activates only once, when player first enters the level.
- Decals
You can add to any tile animated decal. Just add to Tile properties in Tiled next property: decal -> path_to_decal
I'm not tested non 16x16 decals, results may be unexpected.
- Pixel-perfect level collider
Mark tile layer as collider, by setting in properties collide -> 1
- Non-gif file animations.
For those, who don't want use .gif files as animation sets or want full color palette/alpha channel.
Add .anim file with framed png file. e.g. door.png and door.anim
Also you can define multiple animations in single .anim file. That's pretty useful, when you need custom animated graphics.
Anim file have bigger priority, than .gif animation.
Syntax:
w/width - width of single frame
h/height - height of single frame
ratetype - type of framerate format. ms - milliseconds (1 second = 1000 milliseconds), ds - deciseconds (or so, I don't remember word, 1 second = 100 deciseconds). By default it s - seconds.
framerate - framerate of animation. But every frame can have it's own delay.
looped - true/false, sets selected animation looped or not. (since v0.0.2)
aniamtion - sets selected animation. At begin, selected animation is "default".
index[:delay] - defines animation frame. Delay are optional, you can add, or not add this.
Example:
w: 100
h: 100
reatetype: ds
framerate: 2
0
2
1:0.5
animation: idle
0
4
3
2:0.1
- SoundManager (since v0.0.2).
Responsible for sound and music.
Place all sound files to assets/sounds/
Use .ogg files for music, and .wav for SFX.
You can set level theme, by setting "music" property in level properties with path to .ogg file.
Scripting methods:
playMusic(pathToMusic:String):Void; - Plays selected music.
stopMusic():Void; - imiddiatly stop music.
setMusicVolume(volume:Float):Void - sets volume of music.
setSFXVolume(volume:Float):Void - sets volume of SFX's.
playSFX(pathToSFX:String):SoundEffect - plays selected SFX at all level, and returns sound effect.
playSFXAt(pathToSFX:String, x:Float, y:Float, radius:Float):SoundEffect - plays selected SFX at selected location and hearing radius, and returns sounds effect.
Other:
Positions of objects on Objects Tileset:
From 1-1 to 4-1: Exit objects.
5-1: CutsceneObject
6-1: IneractiveObject
6-2: ConveyorObject
5-7: Reversor up
12-7: Reversor down
TODO list:
- More objects
- More scripting features
- More complex cutscene objects.
- SoundManager: stopMusicFade(time:Float):Void for smooth fading out of music.
Grand finale
And finaly, there is the current build of my project. https://dl.dropboxusercontent.com/u/34170815/Projects/5734L3R/%5BNOT%5D5734L3R-V0.0.2.zip">Click:
http://www.youtube.com/watch?v=c936huOwPEw - And for inspiration.
gamedev.ru topic: http://www.gamedev.ru/projects/forum/?id=191501 - Forum
Pixeljoint topic: http://www.pixeljoint.com/forum/forum_posts.asp?TID=19401&PN=1 - Forum
P.S. Sorry for my english. :)
|
Replies:
Posted By: jalonso
Date Posted: 24 July 2014 at 3:58pm
His gallery http://www.pixeljoint.com/p/26848.htm - winged doom
------------- http://www.pixeljoint.com/forum/forum_posts.asp?TID=9378&FID=6&PR=3 - PJs FAQ <•> http://www.pixeljoint.com/forum/forum_topics.asp?FID=6 - Sticky Reads
|
Posted By: Yanrishatum
Date Posted: 26 July 2014 at 1:37am
Updated project to v0.0.2.
Changelog:
Version 0.0.2
- Added advenced .anim files. Now user can define multiple animation in one .anim file.
Now default selected animation is "default".
Added command: looped:<true/false> - sets current selected animation looped.
Added command: aniamtion:<animation_name> - set selected animation to this animation. All next frames definitions will be added to it.
- Added SoundManager.
Add "music" property in Tiled with path for .ogg file, to play music on level. Use .ogg for music, and .wav for SFX. .mp3 does not supported.
SoundManager is available in scripts.
SoundManager methods:
playMusic(pathToMusic:String):Void; - Plays selected music.
stopMusic():Void; - imiddiatly stop music.
setMusicVolume(volume:Float):Void - sets volume of music.
setSFXVolume(volume:Float):Void - sets volume of SFX's.
playSFX(pathToSFX:String):SoundEffect - plays selected SFX at all level, and returns sound effect.
playSFXAt(pathToSFX:String, x:Float, y:Float, radius:Float):SoundEffect - plays selected SFX at selected location and hearing radius, and returns sounds effect.
SoundEffect methods and vars:
stop():Void; - immidiatly stops playing. (callback will be called)
var completeCallback - Void->Void callback for scripts to be called after SFX completely played.
- Added locked_time parameter to interactive terminals. Default lock time is 0.5 seconds. When terminal is locked, player can't interact with it.
- Added weight to pushable objects. They now affects player speed relative to size of object.
- Added animate method to CutsceneObject. Moves object to selected position. Description:
animate(toX:Float, toY:Float, speed:Float, ease:EaseFunction = null, callback:Void->Void = null):Void
speed - speed of motion in pixels per second.
ease - easing function of motion. All easing function can be accessed via Ease class (@See https://github.com/HaxePunk/HaxePunk/blob/dev/com/haxepunk/utils/Ease.hx - Ease.hx for available easings). http://easings.net - Cheat sheet for easing functions.
callback - Void->Void method called after animation end.
- Added hide and show methods to CutsceneObject. Hides and shows object. Description:
hide/show(duration:Float = 0, ease:EaseFunction = null, callback:Void->Void):Void;
duration - Duration of fading in/out. By default it's just hide object.
ease - easing function for fading.
callback - function called after hiding/showing.
- Added pos method to CutsceneObject. Imiddiatly sets position of object. Description:
pos(x:Float, y:Float):Void
- Added ConveyorObject. Pushes all moveable objects to right or left. On map must be placed left part of conveyor and it's size must be set in object properties by "size" property. Minimum size of conveyor is 2.
Tiled properties:
size - Size of conveyor in tiles.
push_speed - Float, strength of pushing speed in pixels-per-second. Default = 16
direction - right or left - direction of conveyor. Default - left
Scipring vars:
direction:String - left or right. For manual change of direction.
pushSpeed:Float - pushing speed.
- Added "start" property to Tiled level properties. Use it by providing script path, which will be executed at every entering of level.
- Added "first" property to Tiled level properties. Use it by providing script path, which will be executed at first entering of level.
- Added TriggerObject. They can be defined with geometry tools of Tiled. Now supported only Rectangle and Polygon trigger with some restrictions. Polygon hitbox does not work with Pixel-perfect hitboxes.
Tiled properties:
target - name of group, which activates trigger. Default is "player". Possible values:
pushable - any pushable objects.
player - player object.
object - any other object.
cutsceneObject - any cutsceneObject
interactiveObject - interactive terminals.
triggerObject - other triggers
target_name - name of exact entity, which will activate trigger. Default is null.
first - Script path, which will be activated in very first activation of trigger.
first_leave - Script path, which will be activated in first activation after object leaves trigger.
enter - Script path, which wlll be activated every time trigger activated (include first time)
leave - Script path, which will be activated every time trigger deactivated (include first time)
Scripting vars:
target - same as target property.
targetName - same sa target_name peropery.
first - same as first property.
firstLeave - same as first_leave property.
enter - same as enter property.
leave - same as leave property.
activations - counter of activations. Can be resetted by setting value to 0.
- Rebased all methods of CutsceneObject to GameObject. Now this methods available for any entity. CutsceneObject now represent inert object without collisions.
- Basic initialization now going in separate Thread.
|
|