Welcome to the personal blog of iyenal

  • iyenal

    PSP Homebrew Developer Conference 2020

    PSPHDC20: PSP Homebrew Developer Conference 2020

    Save the date! On the 28 March at 8PM GMT, the PSP Homebrew Developer Conference 2020 (PSPHDC20) will take place on both Discord (discord.gg/bePrj9W) and YouTube through this stream (youtube.com/watch?v=VmaThRXjCbQ)!
    Various topics from PSP-related projects and homebrew development challenges will be covered by multiple talentuous developers from the PSP homebrew scene, and a presentation intervention from me that will reach a broader range of consoles is planned :) Q&A sessions will be organized too on the same Discord server.
    See you there :P
  • iyenal

    Gen7 Engine Status Quo

    Gen7 Engine Status Quo
    or Conclusions and Roadmap


    Long time no see! Gen7 Engine development became more discreet and subdued with the passage of time, but be sure it's still being worked on. It's just that time being more and more rare I didn't yet had the occasion to provide updates in a frequent manner, and didn't released the new version (Gen7.2) yet on GBAtemp despite being ready for now 5 months so I wanted to make a point on the progress here.
    Have a good read!

    First part: Current shortcomings
    1. Current UI system

    Gen7 Engine's base UI system is totally managed locally, in opposition of system and other programs, the only thing the system gets are WebGL calls like a game where all the interface elements are made in sprites and not system calls to draw an UI which is way easier to implement but the drawback is that it gets entitled to a predefined system. The "multiplatform engine for multiplatform" approach or whatever you would call makes it de facto incompatible with that way to design the stuff.
    Currently, the engine's UI is implemented in an absolute view manner, making it unadapted for any other default screen size differences.

    The different elements position are calculated on a relative basis to the window start anchor, so everything is fixed to it and can't be resized easily. It has been like this since the first version, and that's why too I have to use black bars for borders instead of a proper scaling.
    It's a priority point to change that to a relative framing system, where all the UI subelements rescale and position themselves depending of the colateral elements, like this:

    Here, all the elements are treated independently, each group calculates its own position compared to the window start anchor (eg. from the parent position) then creates its own local position system based on its own anchor, so each group can be moved without breaking other as they'll not be anymore linked each other. That will allow the UI to be rescaled to the user's needs, and be adapted for mobile type screens where the ratio is not always the standard 16:9 or new 21:9 monitors for example.

    2.Global submodules restructuration to an API approach

    This is a global conclusion of what's currently happening in Gen7 Engine, everything is way too linked each other and not only the UI but the submodules too. In this scope, the submodules are the functionnal parts that drives the core and the features, for example the animation support driver, the compilation driver, etc... Currently, every submodule call another one if needed, without being managed by any system:

    The problem of this present approach is that the code can't be maintained easily, as if when working on one submodule that calls multiple something gets broken on this link, the problem can affect the other submodule that firstly make it a lot less efficient to maintain, and moreover a lot less bugproof than a structured approach where a submodule manages all the relations. Other reason is in this current approach, plugins for their functionnality have to themselves too call other submodules, so currently they run in a kind of sandboxed environnement where Gen7's Engine interpret plugins to then transcribe it using a wrapper to the local submodules needed. That makes plugins quite limited on extensibility possibilities.
    This is a large bottleneck for further developments; so that's why I have started to restructure all the submodules operation through a whole revamped system, like illustrated on this diagram:

    Everything is more structured this way, not like the anarchy previously. In that new approach, all the submodules are linked between by a manager module: that module redirect calls, and debug them if needed. The plugins can now access all the engine, and most of all is in case of a faulty submodule, all the other ones can continue their execution not like with the current system when it simply causes the full engine to crash. Life saved.

    Second part: Conclusions
    Plans for the future

    After the multiple releases, I have noticed that the engine target is simply not adapted to the aspirations of the homebrew developers. Most of that people can't firstly afford to pay monthly for a tool they're not sure it'll bring their ideas to life, and also because it has entered a vicious circle where developers want examples of projects made on Gen7, but so developers do not want to make examples of projects if there're none already. And I prefer to spend that time developing more the engine than to do large example which at end relies to the same base already present as small examples. And it's not a sustainable niche because you literally don't have any anchor points to stand on.
    Gen7 Engine will be so remarketed at new audiences, and so I've started to communicate with potential investors and some gamedev actors such as [email protected] and Nintendo but I can't say more about it for now :P And a new Gen7 version is being developed for quantum computational systems (as Gen7 Quantum) to be able to develop visually programs using quantum gates, as it's a technology getting an incredible expansion like Microsoft's new Quantum Development Kit which it's relying on, and quantum simulators. The way of designing quantum programs is totally different to the classic programming scheme, so it's very interesting to assist that changement with a visual engine.
    Also, Gen7 Engine now supports the Pride movement, as an equality and everyone's choices liberty vector in today's society :)

    Conclusion: Gen7 Engine a success so far?

    A success yes, a great one no. For now, Gen7 Engine generated ~250€ of direct revenues (Patreon, etc), and 1.5k€ in indirect. In few words, I've seen more rentable so it is more a mitigated success. From start, I have focused on a niche of potential users so the result should have been more expected. However most of these revenues being reinjected in investment, I am pretty confident Gen7 didn't reached yet its best point of deployment.
    Being involved in my own business that really has achieved an unexpected growth this year (something I am very happy of!) due to multiple factors and in another one with a friend in funding phase, my free time dedicated for Gen7 have really ran out making very difficult to deploy efficient plans for it whereas already having safer values to invest on, and engagements to meet. The development for sure will continue, but the problem is that I'm developing it alone, so if you can help please let me know. Meanwhile, the release of Gen7.2 is coming soon here!

    Real Conclusion:
    Can't back to the default font size after changing it manually so it needs to be fixed, and it's smaller than its PC counterpart.
    Brownies are better than cookies.
    And visit the new Gen7's website that got its own domain on gen7engine.com !

    Attached Files:

    Trash_Bandatcoot likes this.
  • iyenal

    Gen7 Engine: "M8 how things are goin'" Progress Report with updates!

    Originally posted on the Jan 4 2019: https://gbatemp.net/threads/gen7-en...-engine-for-switch.522648/page-3#post-8458895
    M8 how things are goin'? but updated with current progress in green: and now?
    or we didn't heard you for 2 months time what are you doing? (litteral version)
    or did you took the bounty and gone away? (implicit version)
    So yes, you probably wonder what is happening with Gen7 Engine development (well you definitely wonder if you're reading this) and you're right, it has been a long time I didn't updated anything about it here. But , you can always have the most recent updates with exceptionnal behind-the-scene contents in The Wii Hacking House Discord server: https://discord.gg/pXdeUqb . But well if you already filled your 100 Discord servers or just lazy to click an invite I can't blame you so let's have the first edition of " M8 how things are goin'? "! (still you can try to join the server!)

    First, why does Gen7 Engine doesn't anymore get updates? Just because I opted for a strategy change.
    Every update needs a substantial time to prepare, build, test and package which is... like I said substantial. So now, I will not anymore make minor updates for Gen7 Engine but instead save that time... to do the new Gen7 Engine, Gen7.1 Engine which is this time not anymore a placeholder oops not that not anymore only a proof of concept oops other fail but yes a true engine (with a very original name)!
    Gen7.1 Engine is a total new branch which brings a lot of new features that make it a true development environnement, and that's the topic of the first edition of "M8 how things are goin' "!:

    2D Sprites Editor
    Please don't use that on a Intel HD Graphics like us. We will not refund you if you get 5 FPS.
    View attachment 154235
    Sprites support, the most awaited feature! To not oblige you making ASCII games (althrough some ASCII art are great), this is the first feature we started to develop. And currently, it is almost finished! The Wii sprite support is powered using SDL, and we're still searching something to work out for the Switch. But well if we don't find you will be always able to ASCII games on your Switch, I can link you to an image converter. jk
    Also please try as well to be more creative than us when you will do sprites.
    Status: finished

    Node Programming Support
    aka Portal Bridge Constructor, you can do bridges now under Gen7 Engine
    View attachment 154237
    Developing with nodes is much more fun, so we made this minor priority a major one. Because having fun while programming is for us essential. Actually this component of Gen7 Engine was and is the most difficult to develop, as the program needs to "anticipate" further events and follow the flow you drawed. If you want more informations about how I developed it, you can find it on the server I linked at top.
    Your dream of making spaggets on your beloved engine is now true.
    Status: almost finished

    move! Animation Editor
    Welcome move!, the new animation workflow of Gen7 Engine that will be in charge to animate our sprites and objects! You just need to drag and drop animation block, then drag and drop the object you want to apply the animation on and you get your objects animated with ease. In the current state it is very experimental, but when it will be more mature move! will be providen exclusively for Gen7 Engine Patreon Edition.
    Status: half finished

    View attachment 154234

    So now what do you wait to move! (sorry for the bad pun I know)

    VisuXML Project Export for Custom Pipeline Builds (name length is proportionnal to the greatness)

    We thank our marketing team for that logo. We gave them a fake address and stole the PNG.

    VisuXML is a custom format based on XML which contains all your Gen7 Engine project when exported, in a form that makes possible to support other platforms, installations or configurations that are not supplied natively currently. So you can do your own interpreter and compiler to support whatever platform you want, and provide it as third-party compiler for Gen7 Engine for all the people that are interested to develop for that platform!
    If you want to start developing a custom compiler on VisuXML, you can PM-me on Discord (iyenal#4008) so I give you more details and send you specifications.

    Status: postponed, will be only used internally

    Thanks for your attention and your patience! I know you're all impatient to see the new release of Gen7.1 Engine, and I am working hard for it!
    View attachment 154247
    "Gen7 Engine will never stop to amaze you!" ;)

    Post-scriptum: This blog version have updated progress added to the original version (Jan 4), in green. Thanks again for your patience!