O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

RPGStudio - Antigo projeto de JAVASCRIPT (cancelado)

Iniciado por Crixus, 08/09/2015 às 23:29

08/09/2015 às 23:29 Última edição: 30/04/2019 às 23:10 por Crixus
A idéia era criar um rpg maker para rodar como APP de Google Chrome assim portabilizando para qualquer plataforma, até mobiles. Eu inspirei no RMXP por que ele é bem mais simples que o Rm2k/2k3 na organização dos dados e bem mais fácil que o RMVX/ACE.

CitarAntes desse eu fiz um gerenciador de clientes inspirado no Rpg Maker com banco de dados JSON:

Funciona:

  • Google Chrome
  • Opera (Chromium)
  • FireFox
  • IE11

Falta testar:

  • IE8~9
  • Safari (IOS e Desktop)
  • Opera antigo
  • NetScape (antigo navegador que deu origem aos atuais)
  • navegador padrão de Android 2.3 (muito comum entre os usuários).
  • Mozilla Antigo (antes do Firefox)

Só pra constar, o projeto foi cancelado quando descobri que um alemão apresentou um Software chamado "Rpg Studio Kortex" que estava bem avançado.



Claro que isso era só a estrutura do banco de dados em JSON.

Com isso poderia chamar facilmente qualquer dados através das ARRAYS, segue alguns exemplos:

proj.ProjectName

Resultado: "My Game"

proj.heroparty[1].name

Resultado: "Ash"

Em sub-arrays:
proj.tilesets[1].autotiles[0]

"001-G_Water01"

A estrutura do banco de dados no EDITOR seria assim:
var proj = {"ProjectName":"My Game","initparty":[1,2,7,8],
"skin":"001-Blue01","titlegfx":"001-Title01","gameover":"001-GameOver01","transition":"003-Blind03","titlebgm":"064-Slow07","battlebgm":"001-Batte01","victorybgm":"001-Victory01","gameoverbgm":"005-Defeat01","cursorse":"001-System01","confirmse":"002-System02","cancelse":"003-System03","buzzerse":"004-System04","equipse":"005-System05","shopse":"006-System06","savese":"007-System07","loadse":"008-System08","startbattle":"009-System09","escape":"010-System10","damagealie":"011-System11","damagene":"012-System12","vocabulary":["Gold","HP","MP","Ataque","Defesa","Agilidade","Inteligência","Força","Def Física","Def Mágica","Arma","Escudo","Elmo","Armadura","Acessórios","Atacar","Habilidade","Defender","Item","Equipamento"],
"heroparty":[null,
{"name":"Ash","class":1,"level":1,"maxlevel":99,"inithp":1,"maxhp":9999,"initmp":1,"maxmp":9999,"initattack":1,"maxattack":9999,"initdef":1,"maxdef":9999,"initspeedy":1,"maxspeedy":9999,"initmind":1,"maxmind":9999,"chargfx":"hero001","battlergfx":"hero001","arm":1,"shield":1,"elm":5,"armour":13,"acessory":0},
],
"heroclass":[null,
{"name":"Aventureiro","equips":[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"attributes":[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"status":[3,3,3,3,3,3,3,3,3,3,3,3],"skills":[[1,57],[9,58],[17,59],[25,60]]},
],
"skills":[null,
{"name":"Cura 1","icon":"045-skill02","description":"Cura nível 1, recupera 15 pontos do HP","target":1,"scene":1,"animationself":0,"animationtarget":0,"menusound":0,"commonevent":0,"mpcost":80,"power":-150,"strong":0,"escape":0,"attack":0,"defense":0,"speed":0,"mind":50,"acerto":100,"fisdef":0,"magdef":100,"grau":15,"attributes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"status":[0,0,0,0,0,0,0,0,0,0,0,0]},
],
"items":[null,
{"name":"Potion","icon":"021-Potion01","description":"Poção nível 1, recupera 50 pontos de HP","target":1,"scene":1,"animationself":0,"animationtarget":0,"menusound":0,"commonevent":0,"moneycost":50,"consumo":1,"param":0,"quant":0,"perchp":0,"pointshp":50,"percmp":0,"pointsmp":0,"acerto":100,"fisdef":0,"magdef":100,"grau":15,"attributes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"status":[0,0,0,0,0,0,0,0,0,0,0,0]},
],
"weapons":[null,
{"name":"Espada de Bronze","icon":"001-Weapon01","description":"Espada simples forjada em bronze","animationself":0,"animationtarget":0,"moneycost":50,"strong":112,"fisdef":0,"magdef":0,"attack":0,"defense":0,"speed":0,"mind":0,"attributes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"status":[0,0,0,0,0,0,0,0,0,0,0,0]},
],
"armours":[null,
{"name":"Escudo de Bronze","icon":"009-Shield01","description":"Escudo simples forjada em bronze","slot":0,"autostatus":0,"moneycost":39,"fisdef":0,"magdef":0,"escape":0,"attack":0,"defense":0,"speed":0,"mind":0,"attributes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"status":[0,0,0,0,0,0,0,0,0,0,0,0]},
],
"enemys":[null,
{"name":"Fantasma","gfx":"001-Monster01","animationself":0,"animationtarget":0,"exp":2,"money":16,"item":0,"hp":54,"mp":41,"attack":41,"defense":39,"speed":41,"mind":41,"strong":10,"fisdef":9,"magdef":9,"escape":0,"actions":[[1,0],[3,0]],"attributes":[2,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3],"status":[3,3,3,3,3,3,3,3,3,3,3,3]},
],
"enemygroups":["terrain01",
{"name":"Fantasma*2","enemy":[1,1]},
],
"status":[null,
{"name":"Sono","animation":95,"restrition":1,"acerto":5,"power":10,"maxhp":100,"maxmp":100,"attack":100,"defense":100,"speed":100,"mind":100,"strong":100,"fisdef":100,"magdef":100,"escape":0,"attributes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"status":[0,0,0,0,0,0,0,0,0,0,0,0]},
],
"animations":["hero001",
{"name":"Especial","gfx":"001-Action01","position":"down","frames":16,"frame":[1,2,3,4,5,6,7,8,9,10],"sounds":["086-Action01",],"flash":[0,0,0,[1,255,255,85,170,5]]},
],
"tilesets":[null,
{"name":"Campo","gfx":"001-Grassland01","autotiles":["001-G_Water01",null,null,null,null,null,null,null],"paralex":"001-Sky01","fog":null,"background":"001-Grassland01","blocks":[0,1,0,0,0,0,1,1,],"directions":[],"prioritys":[],"grass":[],"counter":[],"terrains":[]},
],
"atribues":["Fogo","Gelo",],
};

26/01/2017 às 21:08 #1 Última edição: 26/01/2017 às 21:13 por TanatosMaker
Apesar de ser um projeto abandonado, o código de exemplo, o qual eu usei de base, foi corrigido pra funcionar no Internet Explorer.

Acredito que da maneira que fiz deve funcionar na maioria dos navegadores ainda usados, mesmo os mais antigos.

Segue o feedback dos testes:
Funciona:

  • Google Chrome
  • Opera (Chromium)
  • FireFox
  • IE11

Falta testar:

  • IE8~9
  • Safari (IOS e Desktop)
  • Opera antigo
  • NetScape (antigo navegador que deu origem aos atuais)
  • navegador padrão de Android 2.3 (muito comum entre os usuários).
  • Mozilla Antigo (antes do Firefox)

Apenas atualizei caso alguém tenha gostado da ideia de como listar dados numa página web de maneira rápida e queira compreender como tornar mais próximo dos Cross-Browser (funcionar na maioria dos navegadores).

Essa é a mesma base que eu usei para desenvolver aplicativos de smarthphones Android, IOS e até WindowsPhone.