Mikal's Recent Forum Activity

  • Hi, many more updates have been done to 3DObject, details over at kindeyegames.itch.io/c3-3dobject-alpha

    I am now proposing a project to make the 3DObject addon free and open source enabled by some funding from the Construct community. It is already more than 1/3 funded due to a nice contribution from dev PixelMetal.

    Details are below, contributions are welcome.

    opencollective.com/construct-community/projects/3dobject-open-source-and-free

    The project is to release the 3DObject Addon to Open Source and make it free to all in the Construct 3 Community. The addon is now considered complete and further funding is not need to add more features. In appreciation of the wider Construct 3 community, I want to release it back to the community for free and open source. The addon will also be added to the C3 addon page.

    I will maintain the github repo and will happily accept PRs for optimizations, documentation, tips or new features.

    The 120 Euro goal is to fund the work of moving most of the 3DObject itch.io content over to github (devlogs, tips, sample projects.)

    The addon itself provides support for gltf/glb 3d models with animation.

    I want to thank all the supporters who have bought the product and made this possible, including the big tippers and folks requesting commissions (you know who you are, I appreciate you!)

    If needed for a project I will also be open to doing commissions for added features, etc.

  • There is no version for 3.7, but you might try the 3.8 version converter (look for Spine Formatter link) and then try the latest 1.x release version which supports Spine 3.8

  • I would definitely like some functionality in each node, in general when I see this, I think of behavior trees and fsms and how useful it could be to visualize. In terms of functions, they could be a drop down selection of all available functions. Passed parameters of inputs and outputs. They could do other actions or override the output. For UI there could be a right click option to jump to the current function definition. On enter is the minimum. On enter, on input could help doing a Behavior Tree. Think selector and sequence nodes. I hope you take a look at behavior trees and visual libraries and implementation. This is a very obvious real world use for AI in games. There are books series on the subject covering real shipping use cases gameaipro.com (you can directly read chapters on this site for free)

    I know the functionality of the above is possible with the current ACEs, it is having the visual UI and identifying the functions called per node visually and being able to jump to the function in the event sheet from a node that would up the game of flowcharts.l significantly.

  • mOOnpunk - it has been discussed many times, no implementation yet.

  • Press F12 to show dev console and share the error.

  • Might be interesting to create a little class that does this. Keeps track of picked list and filters down with subsequent picking conditions. Also has a reset picking mechanism. Just as a helper for folks coming from events to JS.

  • 1.7.0

    Add very basic steamworks network messaging for testing. Requires correct SteamID to communicated between clients.

    To get the correct SteamID: In the Steam desktop application, select your Steam username in the top right corner of the screen. Select ''Account details''. Your Steam ID can be found below your Steam username.

    Networking must be enabled before communication. In the example project click on 'Enable Networking' this enables polling each tick for incoming messages.

    In the example app, the steamId should be added to the top box and the message to the other box (right now a random number is appended in the example project, easy to change.)

    When communication first happens between two clients, the receiving client must accept the connection before messages can be sent between them. The example project automatically accepts all incoming connections/sessions. Right now the channel number is hardwired to 0, but will change. Please try it out and let me know your experiences!

  • 1.6.0 Add GetFriendPersonaName

  • Ah, could be an issue with what version of JS the C2 export supports or it could be async nit supporyed at top level, not in module. Does it still work without async?

  • Added to C3 addons, so we don't lose access to this awesome tool:

    construct.net/en/make-games/addons/1140/easystar

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ah, yes this is a traditional canvas. I assume this function will be used multiple times, so I would also suggest creating a single canvas outside of the function and pass it to the function to be reused (so you are not creating a canvas per function call.)

  • I can give the basics, but I don't use c2 anymore. Here's generally how I would do it (untested):

     async function GetFriendAvatar(e) {
     return new Promise((resolve, reject) => {
     const requestResult = this._greenworks["requestUserInformation"](e["steam-id"], false);
     console.log('*** INFO *** domSide.js _OnGetFriendAvatar requestResult', requestResult);
     console.log('*** INFO *** domSide.js _OnGetFriendAvatar', e);
     var handle = this._greenworks["getSmallFriendAvatar"](e["steam-id"]);
     console.log('*** INFO *** domSide.js _OnGetFriendAvatar handle', handle);
     var data = this._greenworks["getImageRGBA"](handle);
     console.log('*** INFO *** domSide.js _OnGetFriendAvatar data', data);
     var size = this._greenworks["getImageSize"](handle);
     console.log('*** INFO *** domSide.js _OnGetFriendAvatar size', size);
     const result = {size, data};
     resolve(JSON.stringify(result));
     });
    	const e = {"steam-id": "483094812098"}
    	const result = await GetFriendAvatar(e);
    
    function createImageDataUrl(pixelArray, width, height) {
     // Create a canvas element
     const canvas = document.createElement('canvas');
     canvas.width = width;
     canvas.height = height;
    
     // Get the 2D context of the canvas
     const ctx = canvas.getContext('2d');
    
     // Create a new ImageData object
     let imageData = ctx.createImageData(width, height);
    
     // Set the pixel values
     for (let i = 0; i < pixelArray.length; i++) {
     imageData.data[i] = pixelArray[i];
     }
    
     // Put the image data onto the canvas
     ctx.putImageData(imageData, 0, 0);
    
     // Convert the canvas to a data URL and return it
     return canvas.toDataURL();
    }
    
    const imageData = result
    const height = imageData.size.height
    const width = imageData.size.width
    const pixelArray = imageData.data.data
    
    const dataURL = createImageDataUrl(pixelArray, width, height)
    
    console.log('dataURL', dataURL)
    

    replace this._greenworks with your pointer to greenworks

    I can help debug, if you try and it is not working for you. Just post the code.

Mikal's avatar

Mikal

Early Adopter

Member since 22 Apr, 2016

Twitter
Mikal has 112 followers

Trophy Case

  • 9-Year Club
  • Entrepreneur Sold something in the asset store
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Popular Game One of your games has over 1,000 players
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x10
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

21/44
How to earn trophies