-A remake of this is currently being done, I ask that you don't use the previous releases as it does not represent the reworked programs' features in anyway.
Here is older OP for beta 1 to beta 4 :
Spoiler
PlatformMe Beta Version 4A set of utilities for any user to create easily and smoothly almost any game he/she desires!
I intend to strip the need for programming knowhow.. Eventually once enough frame work is written I can implement the PlatformMe Builder.
The builder is a sort of "worldEdit", where using an assortment of GUI's the creator can make a game easily!
*Currently all Tile Events and Key events require programming knowledge.*
There is currently a bug in version Beta_3 where the maps wont render tiles correctly :
Any tiles that skip other tiles (ie at pos 1_2 ; 1_3; 1_6) will instead render after the last tile in that row.
A fix has be made in the coming version Beta_4. The fix also re-enables colorable tiles with added unique coloring per tile.)
I made a remake of bret122798s' game moneybags! (with permission ofcourse!) using PlatformMe!
Details in the spoiler!
Spoiler
So I got permission from bret122798 to replicate his game using PlatformMe :And thus in just one hour of entering AI and such :
It is the closest replica i can get in one hour…
pastebin get 42MUWqH4
Just save it as any file and run that file.
It will automatically create the pme and moneybags map.
Once unpacked run pme, and choose map moneybags!
Makes use of oeed's packager, expect massive use of his packager in future updates. specially to compacting map files and save games!
*Do note that the package must be run in ROOT "/" else pme will not work properly!
Todo List and planned features :
Spoiler
Version Beta_4 :–
–
-
—————————————————————————————————————————————————–
this will not be done, due to the remake in progress, instead see the remake as the next update.
——————————————————————————————————————————————————
Updates and Downloads :
Spoiler
NEWEST VERSION :Version Beta 4
[attachment=1203:PlatformMe BetaV4.zip]
Spoiler
Whats been Added/Changed! :1. |Created Builder program, allows creators to easily edit Tiles and maps with ease and without text editing themselves.
2 |Created Tile Builder - Create and edit Tiles for placement in a map.
3 |Created Map Builder - Create and edit Maps easily with a simple gui.
4. |Fix Tile render bug
5. |Add color Support to tile render.
6. |Improved Tick system*. *See bug #1.
7. |Added "Gravity" variable to entities to allow the ability to disable vectors on them.
8. |Added map focus shifting, allows for maps larger than screen.
9. |Added sloped tiles variable for slopes and steps.
BUGS :
1. |The rendering of the map flickers alot, this is due to how the tiles are rendered, can not be fixed. Though can be lessened by decreasing the ticks.
Version Beta 3
[attachment=1179:PlatformMe BetaV3.zip]
Spoiler
Improved comments and help lines in Pme file drastically,1. Maps are now more harder to "build" by hand due to the new rawMap feature (see below)
2. Maps now use a rawMap system, where within a rawMap file goes the Tile data in the format { NAME | POSX_POSY | GRAPHIC }
2.1 There can be NO white-spaces within the tiles "{}"
2.2 The NAME is the name of the tile and is where the tiles default variables come from.
2.3 The POSX_POSY use my coordinate system, where POSX is the tiles X value and POSY is the tiles Y value.
2.4 The GRAPHIC is the tiles character used, this means that tiles nolonger share a graphic (ie all "grass" tiles do not use a single graphic).
2.5 AGAIN no white-spaces!
3. The map system now places all data unique to that map in a folder in the folder "Maps". This means that Entities, Tiles, Tilesets etc are unique to that map.
4. Tile and AI scripts now have arguments called with them.
4.1 tArg[1] is always the name of the Entity, or Tile. ie, grass; monster; NPC_Merchant etc.
4.2 tArg[2] is always the index of the Entity(should he have one), or Tile. ie 1,7,2.
4.3 self is now the named index, ie : grass_1, monster_3, NPC_Merchant_5.
4.4 NOTE : these are not automatically inserted into script files, But it is reccomended to insert them or to take note of this feature.
4.4.1 as a piece of advice here is the block of code you should allways add (in future the Builder will auto add these)
Spoiler
local tArgs = {...}local name = tArgs[1]local index = tArgs[2]local self = (name .. "_" .. index)
5. Some functions are disabled as they have no use as of yet or are not yet ported over to the new system for handling map data.
6. Changed how map data is rendered, absolutely 0 blinking when rendering the map, yet entities still stutter. Note that mapdata rendering will be changed again as the current system is a half-complete system.
7. New functions were added, many functions removed or rewritten. Especially those regarding map handling.
8. sadly Ticks had to be slowed down, and key-events are not as responsive as before, i tried fixing this but no success. (got as close to fast rendering yet responsive keys as possible)
9. setData/getData functions' arguments' for Tiles are now different, the entity argument requires the INDEX of the tile concatenated with the files name using a "_". ie : NAME_INDEX.
10. Example map now renamed to "ExampleW"
11. On startup of Pme the program now lists all Directories in root/Maps folder.
12. Tiles no longer support color due to new map render code. (If coloring is to be added, then the non-stuttering map feature will be lost) (i may implement an optional part for stutter vs color)
Beta Version 2
[attachment=1174:PlatformMe BetaV2.zip]
Spoiler
Added many functions into framework for easier access to tile char types or Variable fetching.Improved movement system to use Vectors, collison. Simply modify the Players VectorX,VectorY values.
Added World folder, contains vecotr handling file. the contents of World are called before anything else.
Created Entity folder, holds the files that store Entities variables, ie the players HP.
Created TileData folder in Tiles folder. Holds all variables to do with tiles.
Example map1 is now completely external.
To run the program just execute Pme. For example map use world2 when asked for map name.
Documentation -Completed-
Documentation :
Spoiler
V2Spoiler
BetaStartUp()[
Runs a simple map launcher.
This is purely for alpha/beta. In later versions a more definit GUI will be used.
]
INIT()
[
This is the ticker. Every millisecond the renders and world events are executed.
]
renderMap()
[
Reads the map file, loads into a buffer for easier reference and renders the map on screen.
]
renderPlayer()
[
Renders the player, later this will handle animations and entities.
]
getFlags()
[
This will create a timer and then listen for events ;
Should an key event fire then its code is executed and the function continues on.
All tiles adjacent the player have their respective events called.
]
getData(entity,Type,toFind)
[
entity- Entity name, ie for player entity "Player" is used.
Type- the Type of object we use, "Entity" refers to Entity folder, "Tile" refers to TileData
toFind- What we wish to find, ie the "HP" of Entity Player.
Gets the value of [toFind] from the entity [entity] of type [Type]
]
setData(entity,Type,toFind,with)
[
entity - Entity name, ie for players entity "Player" is used.
Type - the Type of object we use, "Entity" refers to Entity folder, "Tile" refers to TileData
toFind - What we wish to edit, ie the "HP" of Entity Player.
with - What the new value is.
Sets the value of [toFind] to [with] from the entity [entity] of type [Type]
]
tileAtEntity(entity,tilePos)
[
entity - the entity whom we wish to refer to, ie "Player"
tilePos - unique string of format "x_y"
returns the [CharType] at postion X and Y in relation to entity [entity].
ie : tileAtEntity("Player","0_1") - returns the [CharType] at {the X position+0 and the Y position+1 of the entity [Player]}
]
doEvents()
[
Executes all the files in the "World" and "Graphic" folder.
This will be used to run world events such as entity spawning or "GUI" rendering.
-Currently GUI is not implemented
]
posTileAtEntity(entity,tilePos)
[
entity - Entity to refer to.
tilePos - format "[x]_[y]"
Returns the true coordinates of the tile at the position [tilePosX] and [tilePosY] from the entity [Entity]
2 values returned :[X] integer , [Y] integer
]
replaceTile(tilePos,with)
[
tilePos - the true cordinates of the tile. format "[x]_[y]"
with - string to replace the character with.
]
Other :
NOTE :
When ever setting a variable in a variable folder the format is :
VarName = {VarValue}
the {} MUST exist!
–
When creating a new Tile, first create a blank text file in the Tiles foler, name the file "Tiles_[#]". replace [#] with the Tile ASCII character it will render as.
In the TileData folder, create the same file.
In the First Tile_ folder you insert code that interacts with the game. It can be blank!
in the TileData Tile_ file you insert Variables that the get/setData() function can interact with.
–
In the Player folder should sit a Player text file.
NOTE :
Any entity that moves should ALLWAYS have the following variables [case sensitive]
positionX
positionY
vectorX
vectorY
The Player file contains variables that the get/setData() can interact with
–
To create a key event :
in the Keys folder, create a text file and name it format : Key_[X] , where [X] is its Number. (ie for ENTER its 28)
inside the File goes any code that is run on key press.
–
Any files in World folder are run before any other event. In here goes any file of Any name style.
Useful for making a variable adjuster on tick.
CREDITS :
Spoiler
–I'd like to credit wraithbone for his GUI functions, they really sped up making a GUI for the Builder!
wraithbone's GUI
–
Credits to brett122798 for allowing me to duplicate his game MoneyBags with my program!
–
Any suggestions are welcome, any ideas or systems to implement are welcome.
You are free to edit any code but may not distribute the program(s) or edited program(s) without my permission.*
*You may post any maps you have created along withthier required Tile and Key files.
PlatformMe is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.