Advanced C2 - Building a Online Browser Game With C2

0 favourites
From the Asset Store
Buildings - Isometric view - PNG transparent - multi styles, multi fonctions buildings
  • *Moderators - this is a How to thread but is ever evolving like a presentation thread. If you feel it is more appropriate elsewhere on this site feel free to move it.

    My Current Issue<< Starts on page 3

    Hello all its been a minute but let's get back into this. I have found a solution to how I want to handle the players unlocked items. Instead of a very large CSV file that I am pulling from my server. Which is both slow and expensive. I simply have a JSON of a C2 Dictionary that list which items are locked vs unlocked. I then after loading the dictionary use it to change a master CSV that I pull from the project folder that has everything locked as default. Seeing as right now my one faction has 125 characters one can choose from plus each having unique stats and abilities this I found is a great solution.

    Now the thing tripping me up at the moment is more basic to C2. In my menu I have six instances of my officers I can choose from. Also instances of text items for their name, various stats and abilities. This is something that I have always had a time of wrapping in my head. How does one translate how one object functions by using a different object?

    I have a "For each Row in Column" Loop with the Compaire Two Items "CSVOfficer.At("Unlocked",CSVOfficer.CurRow). I also have a Pick instance just selecting instance 0 of one of my six sprites that show the portrait of the officer in question. I then want to change the frame of that sprite to equal the row (which is indexed numerically) of my CSV.

    That works all well and good but now I am attempting to do the second sprite (the other five as well) Where it is the same only i Pick instance 1 of my sprite. But without knowing how to increment to the next option those five sprites end up being the same as Sprite number 0.

    I've tried adding the sprites IID number to the option when setting the frame but that will not work since it is possible for the next row to be false so if they were on row 3 and I add one it then would display row 4 but if row 4 was false then that is not right.

    And that is not even taking into account flipping through pages of all the officers.

    CrazyVulcan

    The Goal<<

    This is going to be a continuously updated thread as I have decided against making a number of different but related threads. I will do my best to keep this post Up to date on the current issue I am focusing on.

    My game is meant to bring the table top miniature war game to the easy access of the Internet. It is a Space Navy war game of my own original design meant to be played with two players using small to large scale fleets. Using a cost system I will hope to balance out players who bring powerful ships worth lots of points to any player who dose not have the rare or other wise expensive ships/officers/equipment

    The game will be free to play with a cash shop monitization system where players can chose to buy in game currency with cash. This currency will of course be grindable by players who chose to not pay for their items. Things you could buy are things like new ships, special crew, access to new factions, and other things that while game effecting. Will be assigned a apropate number of points to balance them. Players win currency for playing online match's and a auction house that will allow players to sell their won items for their value in currency.

    Players can gain new items for completing missions (more later) and winning games at random. These packs will be random and will need a key from the shop to open and unopened packs can be sold to earn currency faster. These packs will not be hard to come by so selling them is a viable option. Simply the more you play the more currency you get and buying currency for real money is simply a way to get what you want faster.

    The business aside the game will be a large undertaking and I intend to see that a alpha will be done within the end of the year. This game will take place on its own web site and I am learning to code HTML, CSS, PHP, and MySQL as fast as I have time to learn. Its frustrating at times and often I have run into problems that while I could ask for help I had determinedly stuck to my own ability. But I came around to not only wanting help but to share what I am working on as I really am trying to push C2 to its limit.

    Oh and for those that do not like to play online I intend to once I have the alpha done and move into beta I will make a single player campaign that you can play solo and even make your own ship and officers. that will then be available to use in online match's.

    And once all these "small" tasks are done I will be launching a physical version that will allow you to play with your friends in your own home. Hopefully will get the ball rolling on that by next summer.

    ps yes....yes I am crazy but it is what makes me so charming

  • Good luck! Its going to be tough especially the time it'll take for one person.

    I am working on a similar project, The website for my game is http://keo.land/ and a video at

    Subscribe to Construct videos now

    .

    I've tested passing data into the C2 game from the website as well as website data into C2. I purchased an icon pack and drew 800+ images to equip onto the avatar. The player's equipped items are in the database and the items on the inventory can be equipped. The "Explore" page shows a map that is map in C2.

    I've been working on this on and off casually for about 4 months and at this rate, its still going to be miles away!

  • Here is another similar topic.

  • Good luck! Its going to be tough especially the time it'll take for one person.

    I am working on a similar project, The website for my game is http://keo.land/ and a video at

    Subscribe to Construct videos now

    .

    I've tested passing data into the C2 game from the website as well as website data into C2. I purchased an icon pack and drew 800+ images to equip onto the avatar. The player's equipped items are in the database and the items on the inventory can be equipped. The "Explore" page shows a map that is map in C2.

    I've been working on this on and off casually for about 4 months and at this rate, its still going to be miles away!

    Looks great, This is very much what I am trying to accomplish. Think of each ship as a character with officers being equipped to it, and equipment equipped to it. And each officer is a character with Ability's, so its a group of characters grouped to another character, which is one of many characters you control. <img src="{SMILIES_PATH}/icon_e_confused.gif" alt=":?" title="Confused"> Its simpler than I am making it out to be but my game is a character Turduckin.

    Do you mind going into a little more detail on how you passed data into C2. Like For that Dragon Sword. What file type did you use and what were some difficulty's you came across.

    rexrainbow , I owe a big thanks to you as your CSV plugin has carried me this far. If I had a way to edit those CSV docs on the fly I would be in great shape but now I am ready to move on to more advanced means of data storage. Thank you for all the work you do here

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • CSV plugin 's "Action:Set entry" could change the value in event sheet.

  • This thread has some awesome links and info! thanks rex!

    [quote:2x3vhpux]Do you mind going into a little more detail on how you passed data into C2. Like For that Dragon Sword. What file type did you use and what were some difficulty's you came across.

    Right now it is only loaded into the C2 project with url parameters like?a=b&c=d. So it is a one time thing when loading the iframe url, if i can pass a userkey into the C2 file, then it should be enough to communicate from C2 to the server with the user's identity. Rex's plugin looks like it will work better than this method!

    The dragon sword isn't shown through C2, its just html+javascript+php, i changed the item system from database to json and back to database. Ultimately to do it properly, i guess a database would be the correct solution.

    My difficulty is the lack of planning. I just had the ideas in my head so i keep on changing stuff! I should really create a plan like you have

  • I need to move my first question to here so my first post would be just my game synopsis and the current question. The Op will have links to each subsequent question.

    03/06/2015 UPDATE[03/25]

    Thanks to Rex I have managed to use the CSVplugin with AJAX to upload a debug CSV with 10 people on it with their stats. I feel comfortable using the plug in to pull data and push updates back to that file. Problem is that it is stored with my website. And I still do not know how to make a system of user accounts who each have a copy's of master CSVsheets and be able to change them though their unique gameplay.

    I know I am on the right track with this but I must admit I am intimidated about MySQL. Currently I am using a simple note editor and bitballoon. I have on the top level all my web pages for my site with a sub folder for things like images and data, and another folder containing my latest version of my game. But where do I put all the users files? In a sub folder which each user having a folder of their own? I know that is wrong and way too big to work with hundreds of users.

    I am looking at firebase but I cant get files to upload (see below question). And I will not build it by hand when my whole goal is to automate it as much as I can.

    as always thank you all for your help.

  • Edit b: Solved! the JSON of a CSV should look like

    ,Skill01,Skill02
    Bob,AA,AB
    Ted,BA,BB
    Mike,CA,CB
    
    Needs to be
    
    {"table":{"Skill01":{"Bob":"AA","Ted":"BA","Mike":"CA"},"Skill02":{"Bob":"AB","Ted":"BB","Mike":"CB"}}}
    [/code:3mxalw8m]
    
    Edit a: I seem to be trying to put a JSON into Rex's CSV plugin which of course will not work. But I still have questions on how JSON should be formatted into C2
    
    JSON, after what seems like weeks of pondering and reading JSON's finally clicked and now I am able to wright them in theory. I however like many things seem to be running into a problem with syntax. I have a JSON file that I am loading into the CSVplugin Provided by Rex and I am running into issues with C2 reading the JSON. C2 wants a string containing the JSON but I have yet to figure on how it wants it.
    
    I have a JSON example of 
    CODE: SELECT ALL
    "Men":[
    {"Name":"Bob","Skill01":"AA",Skill02":"AB"},
    {Name":"Ted","Skill01":"BA",Skill02":"BB"},
    {Name":"Mike","Skill01":"CA",Skill02":"CB"},
    ]
    
    From my understanding this is a properly formatted JSON, but loading it raw into C2 gives me a number of errors mostly due to the double quotes ". After searching the forum and tutorials I am amazed that I can not find something that says simply "This is how a JSON should look when loading into C2". So either I needed to look for more than a hour or two. Or its such a simple thing that everyone knows it.
    ---
    Given my difficulty with loading it into firebase it has to be something wrong with my writing of the .json My thinking is that I should be able to have all my data in my website folder under their own subfolder. But they should be loading using the import button but alas it keeps saying my file is not validated
    ---
    Ignoring firebase for the time being I am simply trying to AJAX a JSON from the project folder then loading that string into the CSV table using the "Set from JSON" feature. I how ever keep getting javascript crashes once it loads because the JSON is not properly formatted for use in C2. So what should the above JSON look like if placed into any given C2 feature. 
    
    "{"Name0":"Key0","Name1":"Key1","Name2":"Key2"}"
    ?
    
    If i drop the " from the start and end it will not go though saying { is invalid. so confused
  • Working with Database along side C2

    I have migrated my site from Notepad++ to the more versatile WebMatrix3. Along with this comes with the feature that I am greatly needing and that is a database. I have made a table and have a good understanding on how to pars and edit it though my website. But getting it to work with C2 and in particular AJAX is giving me some trouble.

    Although it is a pain to export and upload to a 3rd party web hosting site like Bitbaloon I have been able to call a .txt file with a CSV in it and post back changes to my website with not too much difficulty. But I do not know how I can access this new table inside my website from within C2. I can seem to access the file using a MySQL query form with in the HTML page for the website but I do not see how I can do such a search in C2.

    And while on the topic of editing database tables can anyone tell me how I can make a user profile that when created makes a new entry of the table and creates a copy of the master tabel that they can then edit with their own unique player data? rexrainbow is there a way to use your firebase plugin without using the firebase site? If not do you have or know of a plugin that will allow C2 to make MySQL calls?

    I would like to just be able to use in C2

    AJAX get form URL> "../"&varusername&"mydata.txt" then load that JSON into my CSV?

    In this way each player when the make a account on my site in that first form they will choose a username and when registration is complete it makes a copy of my mastertable object and renames it to [playername]mastertable. I can then pass that into C2 AJAX calls.

    I am getting by right now just having AJAX call project files that have my CSV.txt files and am able to work on other parts of my game but I need to get this nailed down before I go too far into it as really this game is a website that happens to have a HTML5 game built in.

    Thanks for all the help.

    -CrazyVulcan

  • CrazyVulcan

    My firebase plugins only could work on firebase service.

    There are some services like parse which supports datebase-in-service.

  • CrazyVulcan

    Use Yann 's JSON plugin to parse JSON string.

  • CrazyVulcan

    My firebase plugins only could work on firebase service.

    There are some services like parse which supports datebase-in-service.

    https://www.scirra.com/forum/plugin-parse-cloud-data_t115108

    So far this was the only plugin that looked like what I am wanting but the pricing is waaay out of my budget. And considering I can probably do much of that myself given time and a point in the right direction I need to look at other options

    Any one have any suggestions. I can do the coding myself if necessary and learning is not a issue. But I don't know exactly what I need to do first.

    Lets start with how do you call a database table in AJAX?

    -edit-

    Rex, thanks this seems to be something I can use. I will need a bit of time to learn it first but I dont see why it wont work. Downloading now

  • I posted this on Yanns page but mabe someone here can help,

    I seem to be having a issue with C2 working with JSON data. I am simply trying to load a JSON raw into your plugin

    {
    "Bob":{
         "Skill1":"AA",
         "Skill2":"BA",
         "Skill3":"CA"},
    "Ted":{
         "Skill1":"AB",
         "Skill2":"BB",
         "Skill3":"CB"},
    "Mike":{
         "Skill1":"AC",
         "Skill2":"BC",
         "Skill3":"CC"}
     }
    [/code:pz4qdmxu]
    
    What is wrong with this syntax? The first "{" has a red line under it so there has to be something wrong with how I am wighting this JSON. Your plugin seems to be just exactly what I need but I have no clue as to why my code is getting this error.
    
    I'm sure its something that I am doing stupid
    
    I can get it to work by changing it to
    
    [code:pz4qdmxu]
    "{
    ""Bob"":{
         ""Skill1"":""AA"",
         ""Skill2"":""BA"",
         ""Skill3"":""CA""},
    ""Ted"":{
         ""Skill1"":""AB"",
         ""Skill2"":""BB"",
         ""Skill3"":""CB""},
    ""Mike"":{
         ""Skill1"":""AC"",
         ""Skill2":""BC"",
         ""Skill3"":""CC""}
     }"
    [/code:pz4qdmxu]
    
    But then its not a JSON and having too many " means just that much more likely that I will miss one and screw the whole thing.
  • If you are putting the JSON into the C2 event sheet directly it has to be a string enclosed in quotation marks and so you have to escape any quotation marks inside the string with an extra pair. That's fine. If you load the JSON from a file, you don't need the extra quotation marks.

  • If you are putting the JSON into the C2 event sheet directly it has to be a string enclosed in quotation marks and so you have to escape any quotation marks inside the string with an extra pair. That's fine. If you load the JSON from a file, you don't need the extra quotation marks.

    Thanks ramones, AJAX is still something I am trying to get a handle on. I have the next two days off so I intend to get this nailed down by Thursday. Is their a particular way C2 wants to JSON formatted when it is brought in through AJAX? I have tried putting in a file in my projects folder and using Yann's plugin just use that to load the JSON. It however gives me errors when I try it. I will try to post a capax of what I am saying. That should help.

    I have tried pulling the file as both a .txt and .json with little success though in my browser preview debug I did see where AJAX managed to load the text. But getting that text to work with that plugin has been a we bit of a headache.

    Do I just have a .txt file with {"ThingOne":{"A":"1","B":"2"},"ThingTwo":{"Y":"1","Z":"1"}} ?

    I promise once this clicks I will wright a nice in depth tutorial about handling JSON as I can find little on it. This either means its not a common thing or its so simple that most assume that everyone knows it.

    !-- Edit

    Yey ok so I managed to get the AJAX to load into the JSON Plugin. Don't know what was not going right. Maybe just needed to look at it with tired eyes after a long shift, usually when I do my best work anyway.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)