Jump to content




PlatformMe - creating platform games with ease. [re-make in progress][expect no update for long time!]]

game utility

20 replies to this topic

#1 ArchAngel075

  • Members
  • 149 posts

Posted 23 May 2013 - 11:39 AM

[REMAKE IN PROGRESS]
-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

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.

Posted Image
PlatformMe is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

#2 nutcase84

  • Members
  • 711 posts
  • LocationIn My Lonely Little Computer Corner

Posted 23 May 2013 - 07:24 PM

  • Pastebin. No one wants zips.
  • Screenies to show your work.
  • More info on how to use it.


#3 Engineer

  • Members
  • 1,378 posts
  • LocationThe Netherlands

Posted 24 May 2013 - 01:41 AM

View Postnutcase84, on 23 May 2013 - 07:24 PM, said:

  • Pastebin. No one wants zips.
  • Screenies to show your work.
  • More info on how to use it.
  • He put in a folder, so pastebin is not an option.
  • It are utilities, so no GUI.
  • If you are a decent programmer, an you browse through the code. You will know to use it

learn to f-ing read and dont wine because somebody does not have screenies.

#4 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 24 May 2013 - 01:50 AM

View PostEngineer, on 24 May 2013 - 01:41 AM, said:

If you are a decent programmer, an you browse through the code. You will know to use it
That being said, developer documentation of sorts would really come in handy when there becomes more code, functions, etc.

#5 ArchAngel075

  • Members
  • 149 posts

Posted 24 May 2013 - 05:08 AM

EDIT ##Removed typos, added/removed lines##

ill be making a documentation of use once I have created enough framework to satisfy the need for it.
This seems to actully be true for the next version, as the built-in functions in adding warrent it.

the next update {Beta2} will include :
[
Blue - adding
Red - to be added
purple - added
]
a more vector based movement system.
built in functions for refering to tiles around the player.
external variable folder and files for entities
basic world event handling
built in functions for replacing a tile in map.
built in functions for shifting map focus.
--
Features, systems and functions at the time of this post :
Spoiler
----
If you wish to see a system implemented. such as being ble to delete or create a tile using a built in function please feel free to post.
If you have suggestions for bettering my code please feel free to share.

Dispite above mention of documentaion i will include some basic comments in the code.

#6 nutcase84

  • Members
  • 711 posts
  • LocationIn My Lonely Little Computer Corner

Posted 24 May 2013 - 10:30 AM

View PostEngineer, on 24 May 2013 - 01:41 AM, said:

View Postnutcase84, on 23 May 2013 - 07:24 PM, said:

  • Pastebin. No one wants zips.
  • Screenies to show your work.
  • More info on how to use it.
  • He put in a folder, so pastebin is not an option.
  • It are utilities, so no GUI.
  • If you are a decent programmer, an you browse through the code. You will know to use it
learn to f-ing read and dont wine because somebody does not have screenies.
  • Pastebin installer.
  • Show a example program made with this.
  • Why would I waste my time looking through code?


#7 ArchAngel075

  • Members
  • 149 posts

Posted 24 May 2013 - 12:15 PM

View Postnutcase84, on 24 May 2013 - 10:30 AM, said:

View PostEngineer, on 24 May 2013 - 01:41 AM, said:

View Postnutcase84, on 23 May 2013 - 07:24 PM, said:

  • Pastebin. No one wants zips.
  • Screenies to show your work.
  • More info on how to use it.
  • He put in a folder, so pastebin is not an option.
  • It are utilities, so no GUI.
  • If you are a decent programmer, an you browse through the code. You will know to use it
learn to f-ing read and dont wine because somebody does not have screenies.
  • Pastebin installer.
  • Show a example program made with this.
  • Why would I waste my time looking through code?

1. Will create a pastebin installer once a self installer is made (one that generates the default files)
2. An example of code is included with the zip, at present it is a hardcoded example.
3. Why would you waste time looking through not very detailed or complete documentation?

The next update is allmost done, although im having issues with the variable playerHP somehow repalcing the yVector of Player.

#8 Engineer

  • Members
  • 1,378 posts
  • LocationThe Netherlands

Posted 24 May 2013 - 03:36 PM

View Postnutcase84, on 24 May 2013 - 10:30 AM, said:

View PostEngineer, on 24 May 2013 - 01:41 AM, said:

View Postnutcase84, on 23 May 2013 - 07:24 PM, said:

  • Pastebin. No one wants zips.
  • Screenies to show your work.
  • More info on how to use it.
  • He put in a folder, so pastebin is not an option.
  • It are utilities, so no GUI.
  • If you are a decent programmer, an you browse through the code. You will know to use it
learn to f-ing read and dont wine because somebody does not have screenies.
  • Pastebin installer.
  • Show a example program made with this.
  • Why would I waste my time looking through code?

View PostArchAngel075, on 23 May 2013 - 11:39 AM, said:

-snip-
includes a concept map i put together for testing the framework.
(Just run Pme) (for concept test try map1)
-snip-
The second part: Really, are you kidding me? Do I have to make a sample program if I have made an API? get lost
and the third: Get off this forums, because you are wasting your time reading this sentence.

And now finally on topic:

Im excited to see this completed. As of now, I cant really give it a rate if I must give a rate.

#9 LDShadowLord

  • Members
  • 115 posts

Posted 24 May 2013 - 03:56 PM

If you could somehow work with Nitro to create some form of CC-based game engine that would be awesome.
Anyway, looks good from here. Have yet to try it out to its full extent yet though.

#10 ArchAngel075

  • Members
  • 149 posts

Posted 24 May 2013 - 04:18 PM

Updated V2, now calling Beta since the concept has passed.

See OP for update log.

I forgot to add a function that changes map focus, it will be added with V3.

V3 planned :
Shift map focus.
CreateEntity (basic AI)
DeleteEntity
SimpleGui handling.

V3 Hopefull (what i wish to hopefully be able to include)
A really basic form of the MapBuilder, with an attempt at adding non hand-programmed events.
--should allow the ability to for example write a Tile Event :
{Conditions}
+ IF [This Tile Char] IS [Tile Position Under [Player]] THEN
{Start Actions}
+ SETVAR [Player].playerHP TO [Player].playerHP - [<INTEGER>1]
+ CHANGETILE [Tile at Postion [Player]] TO [<STRING>"="]
{End Actions}

In truth the above will look similar to the Tile_^ tiles code in map1 if read in the file itself.
Yet the Builder will read the code and translate it to blocks of simpler code.
By clicking on a Block a context menu is given.
ie anything in [] is a player changed variable. the Capatilised words are repalced with things like IF [] IS [] THEN = if condition = condition then

Hopefully ill be able to put it together.

--

I am requesting any advice on improving my Vector code, as currently you can only have one key executing at a time.
If there was a ay to flag keys true/false it would be easier to have fluent movement plus i can then add a condition function ifFlagged(key,state), returns true if flagged, flase if not.

Any suggestions are allways welcome! If you feel the need for a simplyfied version of a function to do something please state it. the more built in functions the more variaty!

#11 ArchAngel075

  • Members
  • 149 posts

Posted 24 May 2013 - 10:12 PM

Quick post on changes to come :

New folders will be created :
Globals , inside World folder.
Reference , inside Entity
AI ,inside root

renamed renderPlayer() to renderEntity()
renderEntity() now renders all entities at their respective positions.
All contents of World folder are executed, this is mainly for Spawning in new entities.
The contents Globals folder inside World are not executed, instead The Global file inside Globals handles any Global Variables.
The AI folder handles ticked ai code. Every tick the Main program calls the respective AI code for each existing Entity inside the Entity folder. Including player.
All AI files will be executed with arguments entityName. trgs[1]. renamed internally automatically to "self" for ease of use inside AI code.
Ai code can apply vectors and check the position of itself. But at present can not check the location of itself in relation to other entities. A set of unctions will be made to fix this. see Added Functions


Entities are now actual objects with thier own internal variables instead of multiple objects sharing one set of variables.

New functions :

createEntity(entity,entityName)
[
entity - the reference name of the new entity (see V2.1 documentation)
entityName - the new entity's file name - normally set to same as entity, unless the AI code is different but Variables are same.

creates a entity with variables from path "Entity/Reference/[entity]" and AI code used from "AI/[entityName]" in the folder "Entity" with name "[entityName]"
If the variable path "Entity/Reference/[entity]" does not exist or a file with name "[entityName]" in folder "Entity" already exists then the function fails.
]

createEntityN(entity,entityName)
[
entity - the reference name of the new entity (see V2.1 documentation)
entityName - the new entity's file name base - normally set to same as entity, unless the AI code is different but Variables are same.

creates a entity with variables from path "Entity/Reference/[entity]" and AI code used from "AI/[entityName]" in the folder "Entity" with name "[entityName]"
If the variable path "Entity/Reference/[entity]" does not exist or a file with name "[entityName]" in folder "Entity" already exists then the function fails.
YET :
if no other file of path "Entity/[entityName]" exists the created file name is edited to "Entity/[entityName]_[N]" where N is 0
if another numbered file of path "Entity/[entityName]_[N]" exists the created file name is edited to N+1

Numbered enities get their AI from their [entityName] AI file. Yet their variables belong to themselves.
]

posToCords(entity,Type)
[
entity - the Entity or Tile to fetch coordinates off
Type - Type of object the function interacts with. atm Only "Entity" can work.

converts the [positionX] and [positionY] variables from [entity] into the unique Coord format "[x]_[y]"
Useful for easily converting a entities coordsto the commonly used coords system Pme uses.

returns string in format "[positionX]_[positionY]"
]

xyToCords(X,Y)
[
X - integer.
Y - Integer.

Converts the two given Cords [X],[Y] into the unique Coord format "[x]_[y]"
Useful for when using a entity as a reference wont work.

returns string in format "[X]_[Y]"
]

allEntities()
[
Returns table containing all Entities in the Entity folder. Useful for systems that involve affecting all entities.
]

EntitiesInRangeCircle(ref,range)
[
ref - Unique Cords in format "x_y" - tip : Use the toCords() functions
range - integer.

Takes all entities from a table allEntities() returns and calculates true distance in a straight-line between [ref] and the Entities from allEntities() and adds t temporary table.
returns table containing the Entities within range [range] of reference point [ref]
formula used = [Calculate distance of straight line between two points]
-usefull for area events and AI code.
]


This post will be updated as features are completed, should a feature listed before disappear it means its broken or being improved/modified.
If a feature is in this post then it is part of the V3 update.
Main purpose of this post is to keep people up to ate with changes so they can be aware of code breaking updates or features they may want.

#12 ArchAngel075

  • Members
  • 149 posts

Posted 25 May 2013 - 09:53 AM

Shifting Map Focus is proving an issue, as it can render the map around the player and update on the go. Though there is a bug where you can force an invisible wall to your left.

Once map Focus shift is fixed up I will move onto simple GUI handling.
Once the framework for the GUI is made after mapFocus The WorldEdit will be started.

#13 ArchAngel075

  • Members
  • 149 posts

Posted 27 May 2013 - 12:30 AM

After Multiple attempts to create a camera system, I've decided to instead push it aside and revert to before the CameraSystem edits.

My next focus is to improve Tiles, a system where a single ASCII character can be more than one tile, have its own colour and allow for unique tiles.

Unique Tiles is a system where EACH AND EVERY tile within a map has ITS OWN set of variables inherited on creation from its reference.
Example uses of this system :

"Trees"
-=
If I were to create runtime a "tree" tile of character "-" above a ground tile "=". then 15 seconds later another tree tile in a new spot then onCreate set the treeTile1's variable [LifeSpan] = 10
and tree2 to [LifeSpan] = 3...
After 10 seconds the first tree will "grow" pushing a event to spawn more trunk tiles onto the tree as needed.
After 15 seconds the next tree spawns
After 5 seconds the next tree grows

This way a single defined tile [Tree] can be unique to all other tree tiles. Also colorization can be changed aswell as its ASCII character (tree 1 can be a "%" where tree 2 can be a "-")

Lastly this will majorly affect how maps are made. Thus to simplify map making I decided the first GUI based builder will be the TileMaster and MapEdit.

-----

BUT :
Exams have started in school and as such im working incredibly slow. Therefore don't expect any updates for the next three weeks --
(I may upload the current version of Pme to allow for some basic AI playing around-with and the testing of vectors ?)

#14 UMayBleed

  • Members
  • 122 posts
  • Location$house->Earth->MilkyWay->Universe;

Posted 27 May 2013 - 04:11 PM

Great work, this might be very useful.

#15 ArchAngel075

  • Members
  • 149 posts

Posted 27 May 2013 - 11:44 PM

Quick post update on the status of the new map system :

Spoiler

Criticism welcome - suggestions too.
-end-

#16 ArchAngel075

  • Members
  • 149 posts

Posted 30 May 2013 - 05:27 PM

A new update to version Beta_3 is soon to come (about 20 minutes!)

The update ,at the time of this post, contains the following changes :
Spoiler

Documentation for V.Beta_3 soon to come.

Tasks for next Projected Version [BetaV4] :
Spoiler

Tasks that may be done in next Projected Version [BetaV4] :
Spoiler

I am debating whether to make a video tutorial on hand writing out a map, to teach others how to use functions and to better understand how the systems work.

As usual :
Criticism welcome - suggestions too.

-Busy cleaning up and adding comments to Pme and Example Map.- Upload soon

#17 ArchAngel075

  • Members
  • 149 posts

Posted 04 June 2013 - 05:40 PM

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 noticed this during the making of the Map and Tile Editors of the Builder.

The bug has been solved, without coloring added yet. (Will be added after the builders are done)

The coloring system will use both Variables and rawMap.

A tile if provided no color at all ill default to white, the first thing the tile checks is its rawMap format for the color to use, next it checks its Default Variables should no rawMap color exist.

All tiles will now be given a variable "GraphicalColor = {white}" on creation, Using the TileMaster can edit the default color to use on startup.

This can allow creators to set colors on startup, but a variable edit can easily change it ingame.
----

Ill be uploading images of the editors soon enough, once the Map Builder is implemented, a copy Variable feature is given to the Tile Builder and new documentation of version Beta_4 is done ill release the update.

Moved the Script Builder of Tiles etc to version Beta_5.

I also would like any suggestions for internal functions anyone would wish to have implemented to increase functionality.

#18 ArchAngel075

  • Members
  • 149 posts

Posted 06 June 2013 - 11:11 AM

Quick post to let readers and users know of progress and features to come in the soon-to-be-released beta_4 as well as general info updates :

Firstly adding a new set of default variables to the tiles :
NOTE- Any words in [] are the type, ie [integer] means the variable only takes integers.
NOTE- Following the type declaration might be a set of values that may only be used, these will be blue. Values MUST be without quotations even if a string! ie, {right} , not {"right"}
NOTE- Remember, the following does not display exactly HOW variables are used in the data files, instead use VARIABLE_NAME = { VALUE } .

1. emitsLight = { [boolean] } -guess what this will be used for :D/&gt;
2. sloped = { [string] Left or Right or None } -realised slopes are not automatically supported so Ill get to work on this (putting aside the Builder till it's added)
3. transparent = { [boolean] } -remember emitLight?
----
Entities should have the following variables :
1. vectorX = { [integer] } -Vector X of entity, used by Vector
2. vectorY = { [integer] } -Vector Y of entity, used by Vector
3. Gravity= { [boolean] } -Temporary boolean for the limitation of vectors, this will prevent the entity from being affected by Vectors (good for self designed movement systems).
4. Graphic = { [string] } -Any character that can be printed, this includes words, but the positionX/Y only applies to the first character.
5. positionX = { [integer] } -Will control the X co-ordinate where the entity renders and exists.
6. positionY = { [integer] } -Will control the Y co-ordinate where the entity renders and exists.
7. GraphicColor = { [string] A color } -Sets the color of the entity, note use a color name, ie : green ; orange etc. the program automatically can convert string forms of colors to number form.
8. emitsLight = { [boolean] } -same as Tiles
Note that Beta version_4 will not have a entity editor that auto generates these variables, thus for now you will need to have to enter these your self. Should any of these be missing then expect bugs.
---

-I've added a TODO list to help track features.
-As seen a few variables related to lights exist, A possible feature in future may in fact be lighting effects, with transparency, flickering and realistic(in ascii terms) rendering. again this is a hopeful feature.

Ive just about finished up with the Builder Version_1 :
Can create, edit and delete tiles from the Tile list.
Can create,edit and delete Worlds from the World list.
-Both are fully GUI based, reducing any need to type out unneccesary bits of code such as the annoying map format used in rawMaps or tile variables.

Major Bugs:
-Pressing any key but F2 in the world editor will cause it to crash.
-There is currently no way to scroll the variables listed in the Tile Editor.


No idea when i can release the update though as im still ironing out annoying micro bugs such as faulty renders and ensuring no crashes occur on anything.

#19 ArchAngel075

  • Members
  • 149 posts

Posted 08 June 2013 - 06:35 AM

AND!
UPDATE!

NEWEST VERSION :

Version Beta 4
Download :
PlatformMe BetaV4.zip

Details :
Spoiler

Im pretty happy about this update, especially since i realised that i can implement map focus shifting.
I also updated the Pme file with more comments on new functions!
Note I altered the Tile rendering again, it now has full color support (both in the Builder and Framework_Pme).
I also added GUI implementation, so now you can create gui files that render only if their variable is true. More details will follow.
The Builder is pretty powerful, speeding up map creation drastically (i even abused it to test map Focus Shifting.).
Currently you cant do any script editing in the Builder, but that's to come! Lastly I will implement the Entity Builder with the Script Builder in Beta_5.

I'd like to credit wraithBone for his GUI functions, they really sped up making a GUI for the Builder!
wraithbone's GUI

I am also going to make a duplicate of brett122798s' game MoneyBags using this program. I have received permission to do so.
The power of PlatformMe expands immensely with this unique tile system, and I beleive that with time and effort one can even make a alpha version of terraria in it!

I am also looking into implementing SaveGames and compacting the files down. There are plenty of File Packaging programs out there and it should be fairly easy to make the "games" actually a single file with them.

As usual, please post any bugs or suggestions for features!

#20 ArchAngel075

  • Members
  • 149 posts

Posted 08 June 2013 - 12:57 PM

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 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!

This is also an example of how games will be distributed in near future. Ofcourse true future games will use many maps. But as a word of caution : allways supply Pme with packaged games along with the maps folder with your map in it!

enjoy the dodging!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users