Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Utility: RPGenerator v0.7.23 - Build your own RPG in Codea



  • Posts: 60

    Yeah I bet it is. I will be here to test when the next update arrives.

  • Posts: 60

    Hey Slashin8r, were you planning on adding character classes ( rogues, shamans, warrior, etc)? I was looking at the party section of the main menu and it appears you are quickly running out of space for class info there.

    Let me know if classes was in scope or not for your design.

  • Posts: 391

    @Aalok, I was originally thinking of adding a job system, but I thought that would distract me for too long since jobs can get pretty complex. A simple class determination could easily be added though. I could just add a class variable to the characters and make stat increases on level up differ between the classes. To make some room for the class to be displayed I could make the face a bit smaller and put the name under it on top of it, then in place of the current name location I could display the class instead.

    Classes will definitely need to be added since there would need to be a way to determine which characters get which skills or spells, unless we do something like FF7 and you equip your skills and spells.

  • Posts: 437

    I Think in terms of unification by generate only based on themes...

  • Posts: 60

    @slasin8r I think a simple class / job system would work. Like you mentioned, you can just link the skills and abilities to each class as needed. I also like the idea to augment abilities like FF7 but that may be overkill.

    So when do I get to see the next build? :)

  • Posts: 391

    I have been pretty sick since Sunday and haven't spent much time on the project. Also over the next two weeks I will be helping out with softball tryouts since I am a board member of the organization. Hopefully this weekend I will have a new build out, but it most likely won't include anything new that you would be able to see in game, I'm just hoping to have the new tables and variables setup. I will also try to include any formulas I plan to use, such as damage calculations and experience to level.

  • edited August 2013 Posts: 391

    Just wanted to let everyone know I am still working on this. I pretty much stopped work on the menu system for now and am working on monsters instead. Along with setting up monsters, I am creating a list of some of the basic spells and skills that I will be adding in for defaults. Once I have those finished up I will release what I have. Then I plan to work on some simple AI for bosses. Basic monster AI is completely random based off their list of moves and the rate they use them. Boss AI will get more specific, utilizing their health, party member health, status ailments/buffs, etc.

    Edit: I am also setting up CiderControls7, so that will be updated in my next release.

  • Posts: 391

    Here is the basic experience to level formula I will be using for testing purposes.

    level = math.floor(math.sqrt(experience/100)+1)

    This is a very simple formula and I am also making more complex ones so that experience can go beyond 1 million without going into triple digit levels. With the formula above, it takes 960400 experience to get to level 99.

  • Posts: 60

    Awesome... Excited to see the next update.

  • Posts: 4

    @Slashin8r I just want to say thank you very much for the time and effort you put into this project. Ihave only been developing games for around 8 months now and this really helped me get a step (or quite a couple of steps) into the right direction to making an RPG for my next project.

    The Codea community really never fails to impress me on the sheer helpfulness it provides. Please keep up the great work and, again, thank you!

  • edited August 2013 Posts: 60

    Hey @Slashin8r. Not sure how big of map you have created yet but I tested out one that was 130 tiles x 40 tiles. I noticed with a map that large that my FPS dropped to about 43. This was a simple map with just green grass drawn.

    Maybe there is a limit to the map size? I was testing this as World Map (map1).

    Have you seen this yet? Let me know if you want a copy to test on your end. It may just be me.

  • Posts: 391

    @Aalok, I haven't messed around with making large maps yet myself. It most likely lags because it is rendering everything (even tiles off screen). I will take a further look into this and make it only draw what needs to be rendered. May have to create temporary meshes on the fly that will include each tile that needs to be drawn and then have it draw this temporary mesh instead of the mesh that includes the whole map. Since we know that maps the size of the screen have little to no lag issues, this will definitely solve the lag issue on larger maps. Thanks for the heads up. I will focus my work on this fix and release it when done. Since my current updates are pretty lacking and I've been stuck in a rut, this might give me the motivation needed to continue work on this project.

  • Posts: 60

    Hey slasher. Sorry to hear you are in a rut. I'm sure if you look back at these post you will see a lot of people who love this project. I'm a huge RPG fan myself and have had a great time adding elements and testing your updates. I for one hope you continue work on it.

  • @Slashin8r, this project is outstanding. It has taught me so much in the few days I have been using codea. Please keep up the great work.

  • edited August 2013 Posts: 391

    @Aalok, so I tried to make it render only what needs to be displayed, but that made each movement choppy. I made a new thread to ask the community for some help and will hopefully have a viable solution soon. In the meantime it is possible to make a world map split into zones and look seamless. Each zone would have to have shared borders and teleport events going all the way around the borders.

    I could possibly make a new teleport event called zone or zoneTeleport that will take into account zone size and automatically figure out where to teleport the player on to the next zone. This will substantially cut down on the number of teleport events you would have to create.

    I will wait and see though. Hopefully won't have to make zones since to make 20x20 maps look seamless using 32x32 tiles you need to actually make the maps 52x44 with over 80% of the tiles being used as borders to make it look seamless. Would be a lot of redundant work, lol.

    Edit: I think I will rewrite the generateMap function to use sprites instead of meshes. When I started the project, Codea was on version 1.5.2 and sprites were very laggy when being drawn in bulk. One version later that was supposedly fixed, but since I had meshes working by then I never thought to go back to sprites. Using sprites would give me full control of what gets drawn, where its drawn, and when it's drawn. I will keep both versions of how the maps are generated, just in case meshes change in a future version of Codea.

  • Posts: 391

    So I tried going the way of sprites and..... No Dice! That was much slower, much much slower. Went back to meshes and changed how often a new mesh is created. This allowed for a decent fps increase on larger maps. If I cram most of my tilesheet sets together then I can lower the number of meshes even more. A minimum of 4 meshes will be required though, since each tilesheet in a tileset have different dimensions (floor/objects/animated, walls, roofs, and decor). Going from 23 meshes to 11 in the large map I used for testing gave a 10 fps increase, so going from 11 to 4 should hopefully give another 5-6 fps. This would put the large map at an average of 50 fps or so which is acceptable IMO.

    I will have the new tilesheet sets and code out by this weekend. Time to take the rest of the day off as I got a headache from sprites, lol.

  • Posts: 60

    @sashin8r Thanks for the update. So, after you update and I have custom sprite sheets, I will just need to make a single sheet or add them to your sheet? Is that what you are referring to? Thanks for the update and support.

  • edited August 2013 Posts: 391

    @Aalok, you would want to combine your custom tilesheets. Just make sure you are only combining tilesheets with the same tile format. Floor, object, and animated tilesheets use the same format. Roof tiles use another format. Wall tiles use their own as well. Lastly, decor tiles as their own too.

    Floor/Object/Animated: 64x96 tilesheet

    Roof: 64x128 tilesheet

    Wall: 64x160 tilesheet

    Decor: 32x32 tilesheet (since even larger decor objects are broken up into 32x32 pieces)

  • edited August 2013 Posts: 60

    @slashn8r Ok, that is good to know. Is there a specific size for character sheets? Reason I ask is I am using this one as an example. The character is huge compared to the default ones you used. I thought they would be scaled o fit. Any ideas? Here is the character sheet I tried to use.

  • Posts: 391

    @Aalok, looks like I have to check out the character scaling. I think I have it based off of width only, so I will have to add something for if it surpasses the recommended height.

    Also I will be adding a customized direction variable (d) like I did for character movement order (m) since your charaset direction order is ordered like a 4x4 but is a 3x4. With the new variable, any order both horizontal (movement order) and vertical (direction order) will be allowed and customizable.

  • edited August 2013 Posts: 391

    Some really good ideas have popped up on the question thread I started related to rendering large maps. After I send out the current update I am working on, I will start work on switching maps to use a chunk system. Chunks will be limited to a size of 40x30 (might be changed when I actually write the code). At most, 4 chunks will be loaded at any one time. This limits rendered tiles to 80x60.

    Edit: On screen 33 tiles (32x32 in size) are displayed horizontally and I need a buffer of at least 1 on each side, so 35 tiles are needed. 25 tiles are displayed vertically and I need a buffer of 1 on top and 4 below (roof textures are 4 tiles tall), so 30 tiles are needed. So, I think I can make chunks to be 35x30 and everything will continue to look seamless (35x30 maps are generated very fast and at most 2 chunks will need to be rendered at any given time). New limit would be 70x60 tiles rendered at any given time (1000 tiles less than the map @Aalok provided me which alerted the issue).

  • Posts: 391

    Updated RPG and RPGenerator. After quite a while I finally got another update out. This update includes modifications to generateMap so that maps run more efficiently. Also added a player.allParty variable since you will be able to collect more than just 5 party members and swap them in and out as you see fit. Other changes allow more customization to charasets.

    I updated the Roadmap, so the next update will be a major update that includes a rewrite of how maps are generated. I will be adding a map chunk system that will limit how many tiles will be rendered at any given time. This is to allow for huge maps and a high fps when using those huge maps. All chunks of a single map will be generated when the map is first entered, however, only up to 4 of those chunks will be displayed at any time. The chunk system will also allow for wrap-around maps since each chunk map will need to reference the next chunk to the left, right, above, and below.

    In the update I just announced, map3 is an example of a 70x60 map (4 loaded chunks) so you can test the frame rate on your device. You can get to this map by walking through the only doorway. There is no exit from map3, but feel free to add one, hehe.

  • BriarfoxBriarfox Mod
    Posts: 1,542

    @Slashin8r looking good!

  • @Slashin8r looking good! havent tried it yet, because i have no acces to my ipad at the moment :(

  • edited August 2013 Posts: 391

    A new idea for chunks. Let's say map1 will use 16 chunks setup in a 4x4 grid, with wrap-around. You go about making each individual chunk the same way that you would make the current maps (minus some variables like name, tileWidth, and tileHeight). Then map1 would be defined like this:

    map1 =
        name = "World Name", tileWidth = 32, tileHeight = 32, wrap = true,
        chunks = {
            { 1, 2, 3, 4},
            { 5, 6, 7, 8},
            { 9,10,11,12},

    Chunks themselves will have to be assigned an index by putting them into a table of their own. I'm thinking something like mapChunks would work. Similar to how all of our maps are stored in the maps variable.

    By setting up a map this way, each map could still have one coordinate system (instead of 16 in the example). This can be accomplished using simple math. So now player coordinates determine the chunk they would be in, which means that other functions such as the teleport event won't have to be rewritten to accommodate for chunks.

    Also, I'd love some feedback on average FPS rates from the community. When you all get a chance, test out map3 and let me know the results. Please include the device you are using as well as the average FPS. Thanks in advance.

  • Posts: 60

    @slashin8r. Nice update. Here are the results of my test.

    Ipad 2
    41 Average FPS in map 3 with rain effect level 3.
    50 Average FPS in map 3 with no rain.

    Being there isn't much need for weather in a world map, this is a huge improvement.

    You really knocked this update out of the park. All of my custom changes that I ran on the old map generator is shows a minimum 10 FPS gain.

  • edited August 2013 Posts: 391

    @Aalok, yeah that rain was due to a weather map event that turned it on before entering the doorway. I forgot it was there when I sent out the update, lol.

    I'm glad to see the iPad2 running at the acceptable 50 fps with no weather effects in map3. When chunks are done, it should average 50 fps for any size map then.

    My iPad4 runs it at 59 fps with weather. I'm assuming the iPad3 would then fall somewhere between the two.

  • Posts: 60

    @slashin8r, Hey there, I was wondering how to add stairs or a slope to a higher "elevated" tile? Take your example map in your project. Say I wanted stairs up to the cliff in your map behind the building.

    I tried everything form making the cliff and stair tiles as autotile and passable. Tried as objects as well.

    I'm sure I am just missing the solution. Any help would be greatly appreciated.

  • @Aalok, currently the only way to accomplish this is to use decor objects as the walls, since you are unable to walk on wall tiles.

    In a future update I will try and make it possible to walk on wall tiles by adding some sort of altitude variable. Wall tiles would then need to specify their altitude and a map event would be needed to trigger the altitude change. I'm thinking this could be accomplished by adding the option to use a colon in the 2D grid maps to specify altitude of a wall (wallid:altitude). I may also need to add another mesh specifically for roof tiles so that houses can be built on top of walls.

  • edited September 2013 Posts: 391

    Error caused double post...

  • Posts: 60

    @slasin8r sorry it took so long to get back. Yea, this works for now. An altitude var may be nice when doing bridges that can be walked on and under.

Sign In or Register to comment.