#💀 Cortex Engine
1 messages · Page 4 of 1
🤣
how do you have your tablet setup
i've currently got it mapped 1:1 to screen
but it feels odd
i think the last time i used this thing was probably over 10 years ago and i had a custom shrunk down ratio and a smaller monitor
will keep it at 1:1 on main screen for a while
you shouldnt worry, it's just your hand-eye-coordination needs to adapt
takes a bit of time

I only seem to grab it for joke sketches 🤣
hehe, for me it's like meditating, brain's off instantly
I used to do a lot more smaller stuff during my flashgame days, kinda miss that

what's smaller stuff
just objects or mini things?
woah a tree!
🤣
;D
that last one is great
the idea was weird, i wanted to make a small obstacle racer with animals and violence
yeah, it was edgy. But tried to innovate too much and fast triangle rendering wasnt a thing in flash then
that's early nape, btw
ahh I remember a game like that
it's funny how I sucked at gamedesign back then
reading the comments on armorgames is hilarious though 😄
in a similar vein
I never thought i'd be as good as i am at programming
I can think through most of my problems in my project without much external help or research
for sure, its gonna be dependent on the project, but that's still something nice for me x)
DUI: The game
Not gonna lie, make that a 3D game
and it would sell like hotcakes in this day of age
Also man all of that art is super cool
Nice stuff @void condor ! I used to draw a lot too when I was in high school actually. I still have piles of drawings somewhere at my place
That's the thing, there are many things that, with work, practice and dedication, become something you can be good at. No need to be intimidated by "lack of talent" or I don't know what
thx! Awesome, explains a lot 😄
100%. It really depends on your drive. IMO, if your goal is to get good at something then you are on the wrong track. Getting good or earning money is a secondary effect of purposeful pursuit
Does it? xD
ok, i decided to be stupid and create the worst html parser ever
then I added another stupid idea: tokenize PCData into <span> Elements
now my general purpose layout code can just layout full on text paragraphs
hmm, looks like a found a bug related to the css wildcard selectors
This is madness, I like it
indeed. Feels like a vacation on a different planet. Im challenging myself with every feature to keep it small and rethink stuff where possible
Like there is literally no widget/component specific code at the moment. you get layout, input, event handling, text, styling/rendering, .. out of the box for everything.
I have to admit that after all the complicated native-stuff I've been doing for Ceramic, it feels a bit refreshing to rely on an actual web browser to make UI (https://discord.com/channels/162395145352904705/1297978372529586207), but it doesn't fit in every use case of course
yeah I have been following you there. I think it could easily be used with cortex.ui. But i ignore reactivity completely atm. I'm mentally preparing for my endboss: The TextInput
The reactivity part is totally optional anyway. wisdom doesn't need tracker to make a vdom patch 😄
And yes, TextInput is definitely the endboss 💀
And also, if you wanted to profit from the reactivity part using tracker + wisdom, I don't think that would need any changes to your UI framework, as long as you have fields for each ui element to update them. The reactivity part can just lie in the markup and patching, then it's re-routed to the backend where you just have to do the actual field changes
yep, I have been reading your code 😉
It's just not a prio at the moment. We are still solving the task of adding a cool ingame developer console to my project (while also reinventing shit along the way) 😄
(I'll have to check that wisdom compiles for static targets like C++ though 👀 , didn't try yet)
(but if there is anything, that will be easy fix for sure)
ALERT! ALERT! WE ARE HAVING FUN! SEND THE FUN POLICE!
Since any element supports text, you can just plugin an icon font and stop worrying about images
Kenney!
yes!
filters are now working and I might also activate the css animations. But first I need to understand where this tiny precision error that the slice9s occasionally have stems from
dazWebview
Hi. Sorry but… What's Cortex? 😄
Cortex is the result of my hxcpp & cppia experiments, linc_bgfx and several other libs like important parts of my former haxe 3D engines that I never released. This time I throw everything into a blender and see what sticks. This thread will serve as the little progress log.
source: attached reply :D
Cortex is a lie invented by the government to trick you into thinking that haxe is real
Thanks
There are a nearly endless set of engines to choose from out, from massive AAA behemoths like Unreal to much smaller engines like Godot or even RenPy. Each of these engines offers a starting point, but they all come at a cost. The alternative is to build an engine from scratch, which is often seen as completely untenable. This 2024 Independent G...
Half of the Haxe community folks:
- Yeah I'm making my engine
- Yea me too
- Me as well!
- ...
it has always been like that 😄
Anyway, using haxe is already a strong bias 😄
I wanna do a game, releasing libs is kinda a secondary effect for me. I usually dont care about other users 😛
That's alright
at least that is my copium
if you tell this yourself every day it's bound to come true at some point
in reality im like a kid in a candystore and I want everything
Yeah I also clarified this with Ceramic #ceramic message
Basically I'm creating things for me, and if relevant, I release it for others, but I don't owe anything to anyone
(of course it's very cool to see others enjoy what you are creating too)
I mean the reason I'm making my thing is because I want to know everything about the tooling I use and because I want to learn.
I also do want it to be a viable option to others (if I do alot of work why not make it capable enough to be useful to others)
But at the core, I make my own tools because I want to do things my way
If that makes sense.
The end goal is a pretty specialized, moddable 3D game (which ive tried to make before with other tools but I absolutely hated it)
At the end of the day the main goal is learning and making the things I want in the way I want.
With some "side-quests" to just make it a viable (maybe even good) option for more people than just me.
Altough as you guys said before
this is probably just an extremely severe case of copium
lol
i've got a project that i'd like to consider open sourcing at some point
but trying to build it for me and with the thought of "how others would like to use it" makes developing it for myself, very long winded
so i kinda just gave up on thinking about on how "others" will use it
i'll build it for me, which will progress its development further cause i get to use it faster
and obviously as you get through things, how to actually improve things crop up anyway
Yea I think no matter whether you open source it after, it's a good thing if you are the first user in mind. That's the reward of making things yourself
Yeah I guess so.
gonna rename this channel to "ENGINEDEV ANONYMOUS"
true
Lol
honestly, there could be an engine-dev channel tho
there are more people developing engines than nme users
@!billy give us engine-devs channel for smart people
Oh yeah that's a good idea, a dedicated channel
it's encapsulated with #gamedev
but realistically, these are your spaces
run them how you want
i basically only really cover the haxe q&a category excluding haxeui
the rest are basically up to the primary channel peeps
like ian for haxeui, george for flixel, jeremy for ceramic etc etc
@ionic badger I'm afraid gamedev and engine dev are not exactly the same thing so it's a bit messy to have the two in the same thread, but at the same time, we have the "projects" forum so we could also just create a new "Engine Dev" thread there if we wanted to 😄
it may be true but I do intend for that channel to be a more 'general' like channel
we already have fnf thread
fnf thread is an echochamber for the fnf kiddies lol
i have my own framework/engine in mind but i dont have the knowledge to make it
Looks like we need an enginedev thread within the cortex thread lol
i feel like here or manaframework are the best place to ask these questions
when i DO make my framework, i'm planning on making externs for glfw, glad and miniaudio to start (for windowing, graphics and sound)
should i use these libraries? are there other libraries i would need to make a complete game/media framework?
Idk that question does lean pretty hard into a different channel tbh, even if it doesn’t exist yet
@!billy 👿
#gamedev 😠
#enginedev 😡
we don't need to be that fragmented
channels will arise with a need, engines are related to game development
depends on what you wanna accomplish & your game / framework requires. I wouldnt create externs for these basic things if I can avoid it, it's usually very boring and timeconsuming and someone else has already done it for you
2d, somewhat flixel-like
And i want to in case i di have to extern other libs
ok, dont wanna sound arrogant since facts are facts, this is legit the most insanely fucking cool UI system I ever wrote
Don't worry you don't sound arrogant
It's always good to give yourself credit where credit is due xD
I mean your UI system looks really nice to work with
Very flexible
If you had to name the best thing about your UI framework
the thing you are most hyped about
im currently unlocking some more stuff and it's magic
what would that be?
:O tell me about it
(If you want of course, maybe you want to keep it a surprise :P)
it's soo lightweigt and simple.. layouting and rendering controllable through css feels like a super power
oh, not sharing yet
:P
Well I'm sure future me will be surprised
I mean at this point I can't even be surprised by you anymore lol
I know at this point that if you say its magic, it defo is.
xD
lol
I could defo imagine that, I might give having a html-like dom a try aswell at some point (not adhering to the full standard ofc)
I can be fascinated by the most trivial shit
Sometimes having to add layout code for every kind of special layout thing I want is starting to piss me off
don't we all XDDD
we are simple creatures after all lmfaooo
like i can be fascinated by simple wheels of a car lol
dont get me started. I used to have custom layout and rendering everywhere. Now it's just 4 layout and 2+1 positioning modes in the core-class and the CSS
like you know how some cars these days can measure the tire pressure
its like a small thing inside of the tire
and it like remotely syncs up
yep
like no physical connection
i learned that yesterday
and i was fascinated by that lol
so simple
yet so clever
know these sensors. my old car used to pick up tire pressure of other cars next to me on the highway
dude you're practically hypnotising me into following your tracks here
XD
LOL
That happens?!?
That might also be why the car in question I learned this on requires you to drive like 100m before it saves the tire pressure.
yeah, certain brands share components
chrysler + mercedes for me
That is probably the most unfortunate example imo (the bmw and toyota collab on the z4)
Yeah i see
I mean its nice
because if you have something big like volkswagen
good chance is that on one of their expensive cars
you can get a cheaper (but likely still expensive) part
yeah, i know. actually i know more about car parts that I like to admit. I need to mess with that shit in my job all day (automotive aftermarket ecommerce)
I probably sound really stupid now saying this to you xDDDD
all good 😄
Do you personally like the automotive market?
I could imagine it is quite nice but can be extremely frustrating at times
true
Now what if I imagined my (future, currently non-existent) girlfriend
Then you're probably going to get in trouble with your future, existent girlfriend
damn
Now imagine
Now or in the future
someone will cheat on their wife with AI

100% already happend... i can promise... somewhere there is a divorce filing with "AI and VR" cited as "irreconcilable differences" :/
rofl
in other goods news, I had a bug in my dom event handler. Solved it by digging up a 12 year old C-version of the algo. Turns out I forgot one fucking line..
hmm, typo or double negation, I wonder if cancelling click actually must affect firing dblclick ? 😛
Lmfaoaoaoao that would be both funny and sad
Ayeee
ok, things are starting to snowballing now that the event handling is fixed. global focus handling and input events are working. Now everything is in place to port the textinput
Didn’t look at that, but well, I already have something fairly solid in Ceramic anyway
There might be the day, where Im gonna be soo drunk and wasted that I signup for Haxe Foundation's Enterprise Support Plan and use the Board Seat to figure out how the foundation actually works. I should prolly mail them so they send me the paperwork
lmao
lmfaooo
#haxe message still happy about this
Lemme get this straight: you forked someone else's complete GH & rebranded it under a new name?
while the original author is still working on it?
no?
He basically used my discord_rpc fork from hxdiscord_rpc and made a hl implementation
Nothing really special
ig technically?
both are discord_rpc bindings for hashlink
major frontend and backend differences tho
i did base some of the extension code off of hldiscord_rpc
that's what I understood. But there is another hldiscord_rpc
so theres 3?
D-electra/hldiscord_rpc, what mine was gonna be (now CCobaltDev/hashcord) and whats the third?
hxdiscord_rpc
hxdiscord_rpc is cpp-only
i "borrowed" the discord_rpc fork
Im trying to understand what im looking at #1019922106370232360
why am i dizzy
Since you brought it up here I jump on it. To me it looks super confusing. The hldiscord_rpc even asked for a pr from you..
Anyway, do guys do you. Im still not clear on whats happening
i dont know how to fix it.
they are doing some weird stuff in the extension tho
from what i can tell it (the discord-side objects) just gets destroyed?
but hashcord/the one i'm working on is NOT a rebrand
i don't copy entire repositories and rebrand them.
i did reference some extension stuff from hldiscord_rpc but i didnt steal the ENTIRE thing
so.. mb
Ok, thanks for clearing that up. For a sec, I was mentally ready to install hl, fork your code and release it as hldazcord_rpc 😛
And now im happy that you are happy making progress there
Hey daz, would you happen to have a sample or resource about glTF (or haxe-gltf)?
I'm extremely confused about how what I should do with the parsed data
I think I kindof got an idea of how it works but there is alot going on.
Did you check the tests? https://github.com/cortex-engine/haxe-gltf/blob/master/test/gltf/TestLoading.hx#L9
Yes I did- But I'm specifically confused about the overall structure of a glTF file.
There are alot of things in a glTF file but I do not know how these relate and how I should correctly implement them.
So I was wondering if there are any good and simple practical examples of how glTF data should be used
Or perhaps a good guide expalining it
Wait I missed something it seems like
Ah it makes alot more sense now I think, thank you for your help!
Yeah starting to slowly get somewhere now, thank you very much.
This would be a cool aethetic for a horror game
wonderful 🙂
ok, not sure I like that h2d.TextInput
in the logic it's doing a shitton redundant calls. Like every call to get the current lines of text splits the text down to the chars from scratch, even if the split-width and text havent changed
hmm
it does the same to determine the cursor position from its index every frame
gaaah
maybe i should approach this from the side of form handling
Ian has a text input implementation for kha here https://github.com/haxeui/haxeui-kha/blob/master/haxe/ui/backend/TextInputImpl.hx
ahh wrong link
oh I already touched this. ported it to cortex for the haxeui backend
it's too complicated for my taste
textinput is complex though, no? Esp. multiline, and in reality, that one isnt that featureful
that said, im certainly not saying its "the best way"
https://github.com/ceramic-engine/ceramic/blob/master/runtime/src/ceramic/EditText.hx here's jeremy's implementation but I think it might be more involved than kha's 😆
edit text is a component that tacks onto a normal Text visual, selection is done in another component as well
😈 yes fall into the rabbit hole
Hard to make a suggestion, OpenFL’s is the best/most Chromium-like, but also the slowest and most confusing
Lars’ in Flixel-ui maybe?
Thanks for the suggestions folks
It has to be simple, have most features and be maintainable
So Im gonna shoehorn this together
render agnostic text input lib incoming? 👀
maybe, for the moment Im sooo sick of it. Decided to make it good enough to actually build the app
I had an idea for a pure haxeui-core text input
so backends wouldn't 'need' text input
I still think that it's possible but #work
ok, it feels good to port code back from godot to cortex, that's for sure
First you want to keep the text input simple, then it ineluctably get’s more complicated because that’s actually not trivial. But so far I’m happy with what I came up in Ceramic. Each part is well defined, but it’s designed to work with Ceramic concepts, so not sure that can be ported easily
Then it gets slow so you start caching the shaping results of all words under 16 characters 🙃
not my first rodeo, I have written custom native haxeui-level stuff ages ago in another life. I just hate text-inputs
For a moment I was able to conquer my urge to scream, then I decided to do something different
ported my ingame console over to the new ui. includes hscript, history and autocompletion
yeah, dont wanna write a cmd parser, so I just plugged it in to call functions that stuff all over the engine can register
is it a lot of boilerplate to set that up?
just the mapping for internal things
ahh i thought you had exposed a lot of your framework
misread the sentence
how does the hscript console work?
what do you do when a new command is sent?
Oh the hate, I can understand 😄
I just parse the string and then try to interp it
Ah I remember having something like this
I think my approach was to use macros to get all classes for use in the console
What is your approach?
Oh, nothing special, just really just storing string+function
Ahhh that works too I guess
ok, reworked the style system a bit more, added support for rgba colors, testing https://github.com/haxeui/haxeui-core/pull/540 and cleaned up my fonts
This will unlock quite a few things for me
accidental hscript awesomeness. returning the renderer from the bound function allows access to the object and I can fiddle around in the renderer & passes 😛
the fact that this just works, is incomprehensible when looking at other languages
now, the last thing really missing is some unified scrolling behavior for every element, controlled by css
as the say: you gain some you lose some
ohhhhh, cppia hscript has little sideeffects! it causes functions with no explicit return to return the object the function resides in
hence why it was returning the renderer instance above
You mean the whole hscript runtime lib is running via cppia? 😄
That is weird...
Sounds like something that would happen with a stack
HScript isnt stack-based right?
Let me check
naturally 😄
killer, another 8 issues across the engine fixed
guess it's finally time to take a closer look at the fonts
ok, this almost feels acceptable
if you gonna nitpick the type now, I slap you
😛
Std.string is not needed since it Array<String>
Oh no im not confused about that
text? This is macro code
Oh
Wait that makes it more confusing lol
Im used to having to do something like ${...} or idk {} to get stuff to evaluate
man that is brain twisting
Altough It also feels like a pitful
I would expect text to be plain text
so having to do '...' is kinda confusing
but eh
addXmlTo is a macro and reads the xml code to assemble the actual code
And you can just intertwine haxe expressions and xml wherever?
wait heh
ah whatevs
Looks cool though 😄
in macros the compiler is a bit more friendly concerning xml-strings.
Instead of passing '<xml/>' you can pass <xml/>
Right
but how is it that the haxe expression in text just runs
Like if I did style="margin-right: itm.offset" (if itm.offset was a thing)
would that just work
Surely not right?
style is special, it assumes string (coz of css), while all other fields are just holding expresssion. If I wanted to inject something into the style I would do style="margin-right: ${itm.offset}px"
I see
Although considering all other fields are expressions
that would mean you'd have to do something '...' for every string?
like what you've going on here
For strings yes. Didnt wanna bother with field-type sugar there
I see
yeah personally I'd have done something like:
<someEl text="hello" /> (macro will type as string)
<someEl text="10" /> (macro will type as int)
<someEl text="10.0" /> (macro will type as float)
<someEl $text="10" /> (macro will type as expression, that eventually becomes an int lol)
<someEl text="Std.string(item)" /> (macro will type as string, with the defined contents)
<someEl $text="Std.string(item)" /> (macro will type as expression, that runs)
to me having attributes of xml nodes be expressions just seems be a bit confusing lol
nice, i might do that at some point, but atm I dont worry
yeah I think that is a good call
First worry about the more relevant things kekw
Looks really cool though!
thx
slowly getting a feeling for the whole thing. almost too many things are unblocked now
What do you mean by unblocked?
I have quite a few things wired into the console now and I can validate a lot of things now
Ah like that
Also speaking of which, the workflow of using a console during development for validating stuff and testing stuff is one I don't see that often these days
Did you acquire that workflow from an older project?
Because I know alot of source games had consoles
Altough I don't really see it in modern games
inspecting & tweaking states of the subsystems, controlling the resourcemanager, resourcepipeline and its DB, creating, editing & deleting resources, ...
duuuude, all kinds of engines use such a system, All ID Tech * based engines, Cryengine, ...
like in Doom3 all the UIs actions were routed through the console, the UIs themselves had little to no connection to the systems they controlled
Oh
You can expose the APIs early, before there is any UI and once you need UI you just use whatever is available via the console
Yeah I guess that is pretty handy
Altough alot of people use imgui these days don't they?
If you used the same architecture you described it would be just as trivial to add it to imgui than to add it to a console I think?
With the added bonus of having a GUI to quickly do the things you need
Altough that depends
some people remember all commands from the console
other prefers a GUI with all options neatly ordered
So I guess its preference?
it depends on what you looking for. A console has another bonus people think rarely off or design it that way: you can use console commands as config files or cmdline-parameters.
like scripts?
I guess that is one huge bonus...
simple example I could think off is like
cl_create_lobby
sv_set_event 1
sv_start_match
or something like that
lets say your engine has a function to convert a model from gltf to whatever. just expose it as console command and allow it to run as cmdline argument, suddenly your engine can run standalone as a model-conversion tool
if you just build UI for that function, you cant use it outside of the human workflow
That is actually pretty clever
damn
I need that now
Do I also fall down the console rabbit hole :P
form your own opinion 😄
Well you've convinced me
I used to like consoles in the past
Then I stepped away from them
And now you've convinced me to make one again by telling me about some benefits I didn't know they had
Anyway
This was a really insightful discussion
xD
This will cause atleast 4 days of getting sidetracked 😛
wtf, M$ Flightsimulator uses nanovg as default to render all the gauges
waaaaah, nanovg supports compositing inspired by html5 canvas..
I totally missed that and forgot to expose it
you almost made me imagine you as a furry
looks like your brain helps itself
fuck, ok that was easy to add and expose in css.. 😄
Oh hey I remember that problem :P
added a freelist mechanism to my nanovg fork, now fonts can be created, deleted and ids get reused. finally no more leaking
now I can promote fonts to real hot-reloadable resources that can be used from css
font-face support done 🙂
ah I really dig this
very cool - i find that, somewhat surprisingly, fonts are like the number one thing that can make an app look totally different
its probably "common knowledge" to the designer types, but for me, it never ceases to amaze me just what a difference fonts / good text rendering in general make
100% my reaction as well
the list of engine-must-haves for my game slowly shrinks. need to mess with some more externs soon. My vacation is going to be a blast. I might test wasm builds and see if I do the haxe jam inofficially.
nice, would be super nice to see it all in action...
15 mins to prototype a checkbox dom+layout and making it functional as its own control/component ❤️
now i need another 2 hours to make it look cool
Here is how you can easily wire up the UI to the console API
this is how it looks in action
Hey daz, if I have questions regarding tracy, where would you like me to ask them?
i'm triggering the assert when I use
-D HXCPP_TRACY_MEMORY
Same issue occurs with
-D HXCPP_TRACY_INCLUDE_CALLSTACKS
https://github.com/cortex-engine/hxcpp/blob/4cbc4ab4f4fccbbfa44e4ca34d39b352ad8a639e/project/thirdparty/tracy-0.11.1/client/TracyCallstack.hpp#L88 I'm using ceramic, but, any additional info you'd like me to track down let me know
oh, that means essentially you have a huge callstack depth
it's a technical limitation with tracy since it's quite a bit of data. But it should be visible in the zone view as high zone-stacks whan tracing without these defines
This can happen easily when you have a deep hierarchy of objects and use recursive function-calls to process the graph. I usually avoid that by using an iterative approach
if you want, send me your trace without the mentioned defines and I take a look
Lol, had to upload it https://file.io/XqF8ROK0eDLR
54mb for secs 😄
well, looks like here is one of your problematic stacks
looks like haxeui during the ceramic load grows the stack quite a bit
@ionic badger That's kind of a workaround, but you could create your MainView inside a app.onceImmediate(() -> ... ); in order to split the stack trace, but that's interesting to see that stack trace anyway, maybe I can also improve things a bit in Ceramic initialization
lol
that's massive 😂
currently i'm initiating haxeui toolkit when i've loaded all the assets
which makes total sense given the stack
oh, style invalidation loop 😄
this got past that assert, thanks!
I keep tripping callstack depth issues with tracy and the following defines
- HXCPP_TRACY_MEMORY
- HXCPP_TRACY_INCLUDE_CALLSTACKS
how can I investigate the source of the issue?
like, i'm not sure what to do with this as there's no direct link to my code
I thought this was a game at first
Oh that looks lovely!
If i understand it correctly, the websocket lib i'm using has a massive recursion chain
wtf
this is what happens when you use libs i havent even nearly finished yet 😄
jokes aside, defo good info - will certainly keep it in mind when i look at it next (this is pretty much exactly the place i was screwing with as part of the migration to core-haxe)
lol
maybe I'll try the old one again and see if I can fix whatever issues I had with it
or contribute to core-haxe :D
there's threading stuff in here and I have no proper experience to help with that
Well then take this as an opportunity to learn :D
it will be wasted time because, anything I do will likely improve my skills but not be of quality for the library
maybe
I have plans to look into threading for my own project, so learning will be inevitable
can you also confirm that this happens in a blank core-haxe/ws app? Just to make sure its not something else messing with the event loop?
(i doubt it is, but just to be totally sure)
will check in a bit
prolly also makes sense to move convo to https://discord.com/channels/162395145352904705/1057306134534443048 🙂
vaaaaacaaaations!!! 😄
what a ride! super happy to chill with some code for the next 2 weeks

quick test of cortex + physx
no visuals in the engine atm, but the physx visual debugger connects and shows the simulation
hmmm
What Physx version?
4.1.1
yep, currently pluging in different libs to see what extern patterns work best for linc_jolt with cppia support
linc_jolt :O
Personally I really like PhysxHx
Feels very natural to use
Doesn't feel like I have to do stupid bs to get normal things to work
And I've never had problems with it
Maybe this feedback helps with your decision regarding this.
we'll see
time to break the whole engine
bet
im about to smack SDL
but does SDL love you
what is in your case the frustration with sdl, daz
SDL is very
all good. turns out there is a difference between OS Cursor coords and SDL cursor coords
wait what?
cause input and cursors are hard
ok, finally, cursors are tamed.
lol, when looking for connected controllers, it definitely helps to do that after SDL is initialized 🙂
ah that might help yeah
ok, the input system is reworked. now lets look at the scenegraph & asset libraries
finally found a way to leverage the blender's asset libraries. No more need for the engine to worry about that shit
fixed some more things, now the elaborated resource management is really showing its worth ❤️
hmm, looks like I need to patch haxe-gltf to support arbitary extensions. shouldnt be that hard
the blender integration will be super nice 😄
also been researching a shitton about latest rendering techniques. Finally got a rough idea of what setup in terms visuals, lighting & shadows to run with.
awesome!
will also drop this here
read this 2 days ago and it seems doable and looks AMAZING
旨在学习,共同进步。. Contribute to Calence/BookContainer development by creating an account on GitHub.
totally. it's what godot is doing with volumetric fog and volumetric volumes
ok, reached a point where I find myself thinking too much about how the systems should work and be laid out. Time to create a little project and see how everything flows together
haxejam? 😉
👀
Ohhh thats sick
gonna have to put that dazspeed to the test
gonna write a cortex version of https://github.com/HxGodot/squash-the-creeps-3d-hxgodot
wont look as nice at first but I can already tell it's super simple
like the statechart is already done, just wiring up things now and then I have to add some UI
a match in fucking heaven
doesnt look like much atm, but I hooked up cameras in the scene export/import so I can tweak shit easily. It's magic
and I can switch between editor and the game via the console 😄
aaahh I have unused debug visualizations exactly for this case!!!
deg vs rad.. cant believe that just fucked me for 45mins
@void condor enabled access to #updates
if you're streaming haxe stuffs, feel free to post it over there
I just post there or is it a bot shortcut?
post it over there, no bot shortcut
thx! lets see
i like your music daz 😄
AHAHAHAHAHAHA
Happens to all of us
In 2d it's funny because stuff usually just spins very fast
In 3D I would cry
xD
What did it cause (visually) in your case xD
the camera had a tooo narrow fov
you bet
ok, this is awesome. hmecs is really killing it when combined with statecharts
your engine already looks complete lol
it's barebones atm
but a good start
^^
this is the 💀 Cortex of all time
Gotta love that
ok, there are already some nice takeaways from last night
my input layer system needs more work(multiple mappings, one action), obj -> gltf -> iqe produced artifacts(HAXE LOGO WTF)
using bgfx has been the best decision so far
@vapid mortar ❤️
ah, coordinate systems. my math really got a bit rusty
the very fact that I can add a statechart instance as a component to an entity feels soo friggin dirty and awesome
rofl
The real beauty of statecharts is that state-logic and implementation is clearly separated, I just took a part out of my godot fps controller and we got a jumping logo 😄
you guys tell me if you cant hear about statecharts anymore! 
same! will release it as part of the engine
Mine is secretly released inside my hai repo
Which I don’t document because i don’t want to keep it stable yet
I export my graphs from Omnigraffle on the Mac and parse Visio files to generate the graphs
I’ve switched to hxcpp , so I’m now going to start using hmecs in it. I’ll see if i can make any improvements for hxcpp
I’ve abandoned HashLink because it’s not debuggable on my Mac m1
It just got too annoying
oh! I do it the other way around. I use macros + xml to generate them in the code and then I use elk layouter during compilation to store layout-visuals
hah! super stoked about that. Im mixing both as well atm. I feel unlocked
aaaand we got a gameplay loop 😄 ❤️
understandable, Ive never understood the hype given how stable hxcpp is
I use a state chart to define my UI/UX flow (among other things)
I did have to rewrite the build step to output a CMakefiles.txt, but that didn't take too long
ah that's pretty cool! in my case I make it interactive visuals i can reason about in-game. I have to still port some stuff to over to cortex, but here is how it looked like in hxgodot
I love it!
what's the relationship between hxgodot and your runtime?
it's simple: I use a common haxe-based game-library for everything. I just plugged that into hxgodot based projects. But fuck Godot. These days I have gone on to merge some more old projects into this lib and I made it a full native 3d engine called cortex
add bgfx, cppia scripting and a crazy ui-lib to it and you have a nice engine that allows for fast iteration
what ui-lib?
it has no name, it just comes with the engine. i reimplemented a DOM model + web-events + css
emphasis on css, I wanna style and layout shit in realtime
it could be ripped out. atm it has some minor dependencies into the rest of the engine, things concerning text measurement and resource management (images, fonts, styles, etc). rendering is completely external
but I have to review it. cortex' resource management is quite elaborate since all assets/resources can/must support hot-reloading and optionally dependencies. Maybe I just invite you to the repo and you can check for yourself since I'm still a bit off on when I open it for the public. Some shit is just a little advanced and requires docs/hand holding
what's the license on your code?
not locked in yet. But most likely it will be something liberal like bsd2
https://www.twitch.tv/dazkind
doing some ui work atm
I didn't realize state charts could be parseable/createable
what do you mean?
Like if I do one it's in visio and there's no actual connection to the code
There is a huge background
https://statecharts.dev
The world of statecharts describes what statecharts are, their benefits and drawbacks, how they differ from state machines, and practical examples on how to use them.
And then I never look at it again after making it 😭
The rovers on mars are zipping around, driven by them 😄
you mean, cppia is slow doing a for loop? 😄
just wrote some custom ui controls, rendering this perfmon is super expensive
I use a macro that parses the visio file and creates the transition code.
looks like this when used:
@:build(ai.sm.macro.StateMachineBuilder.build("src/sd/logic/graphs/gamestate.vdx", "game", false, false))
#end
@:sm_tick
class NetGame {
...
@:while(S_NACENT) function boostrap(_, _) {
fire(T_START);
}
@:enter(S_ENTERING_OVERWORLD) function onEnterOverworld(_, _) {
// need to switch to overworld experience
}
}
the functions are called based on the markup, i.e. while in that state or upon entry.
huh neat
is there an open source alternative to visio?
or could I use something like draw.io with it?
nice! personally i prefer the code-first approach instead of a visual editor
I directly code statecharts as macro xml and visualize them as they run. Here is the one for the door in the video
I like your visualizer, but I need to author them in a tool or I get confused
You might wanna look at XState. It's pretty easy to translate the graph back and forth
My goto solution for state machines is the one I have in Ceramic (inspired from c# StateKit) https://ceramic-engine.com/guides/state-machines/ I’d like to make it a standalone library some day
cool, I have 2 similiar ones. in the end statecharts won for me esp. with complex behaviors(character controllers, etc). And dont get me started on behaviortrees... 😛
I might have to change the approach with my cppia setup
for smaller projects it's perfect but as projects become bigger I dont wanna reload the whole thing completely, also certain parts cant be moved to the native-side easily. hmmm
the real good shit: it's all rock-solid stability and performance-wise(lower with cppia ofc). Native builds especially kick ass
the test game runs in a stresstest for several hours now, haxe-logo bouncing to the beat
Niceee!!!
[showcase] Sunday Mood: Bouncing! 😄
It is actually sunday, yes? omg, lost track for a sec
ok, im a bit torn atm. when it comes to scene-/level-editing I feel like I shouldnt depend on blender that much. Instead have a dedicated scene-editor in cortex and only use blender for prefabs or something. hmm
Would the built in scene editor be similar to the hide approach where you move / scale prefabs, add and position lights, and add and adjust sounds to provide location and distance information?
pretty much
but with a twist: the editor is included in your game during development and you can switch between editor and game any time
Seems like a good approach which could also ensure that if someone built, for instance a material shader node editor tool add on, the end user wouldn't have to export the code as text, then add it to a class, and then rebuild to incorporate it since you could have a method to directly serialize it and then only have to store configuration data to disk that keeps the structure for the configured nodes to reconstitute the material shader for editing later on.
oh, that actually works differently in cortex. In cortex materials/shaders are resources that can be requested by anything and be hot-reloadable. The engine also doesnt compile shaders at runtime, so if we had a node-based shader editor it would have to emit shadercode that gets compiled via shaderc(external bgfx tool) via the included asset pipeline of the editor and would automatically be reloaded in your app/editor/game
Ah interesting, looking forward to learning more about the set up.
cortex has a shadersystem that precompiles all possible permutations for all targets(dx11/12/vulkan/ogl) beforehand
switching a material on a mesh is really just changing a resource-url-string and the engine takes care of the rest
how will cppia play out in this approach?
my first thought would be to have editor modules that can be loaded.
but are you planning to add cppia in some form or capacity to cortex?
if so, how? (what will cppia be able to add in terms of value for both devs and artists)
also btw, on a different note
when you built out your resource pipeline, did you look at any resources that inspired you?
ahhh the explosions. Just tried to compile to emscripten. Turns out I have to gut everything concerning multithreading
not the end of the world for release builds, but not something im in the mood right now
we'll see. There are a few things I need to validate concerning the setup first
I dont remember all the resources, it's been almost 10 years since I wrote this. I think there was a cool article in one of the game programming gems books that I took and ran with initially
oh wait, are talking about the resource pipeline that converts the assets or the engine's resource manager?
Well the entire system
how you handle dependencies is what i'm most interested in
and I assume somewhere in the whole pipeline is the conversion aswell
well, it's 2 multithreaded systems that work in conjunction. The engine's resource manager is the backbone, the resource pipeline is the one that manages a DB of content addressable sources and destinations and converters. both include the concept of dependencies
it sounds complex, but it's not that complicated. the resource manager maintains a list of resource types and answers requests for resources. if not already loaded a new resource-instance of that type is created and its data is pulled, parsed & provided.
the resource pipeline monitors the project's source asset folder for resource-descriptor-files and checks if it needs to be (re-)created in the projects export asset folder etc
the resource manager of your game/app monitors the export asset folder and reloads any change for resource instances that it has in memory/on the gpu
dependencies add a little complexity to this, since there can be hard and soft dependencies. E.g. a material has shaders as hard-depedencies and the resource manager will not only reload a changed shader but also all the materials the shader is used in. on the other hand, textures of a material are soft dependencies, meaning the material and shaders dont refresh when the texture changes
again, a bit hard to outline all this in a nutshell. There are a few concepts at play there, but it's not a lot of code. The resource manager + resource types == 1.3k loc, the resource pipeline+converters == 1.1k loc
resource management is the most important system of the engine and at cortex' core, contrary to some other engines out there
hmmm that makes sense
aaahhh wtf?! , i have multiple UIs running and they respect eachother in terms of zIndex?!?!
it's separated entities & canvases sharing the nvg context. how the actual fuck does this work? I cant have that much foresight when I wrote the renderer months back, can i
no, im just an idiot and things are random 😄
sooo fucking good!
😳
it needs a shadow so you can judge the jump height
man, 3d looks so cool
flappy haxejam 😮
glad you guys dig it!
I KNOW RIGHT?! Problem is that I didnt find any 3d models or other premade assets. I didnt feel like making that from scratch
ROFL
The Python Programming Language.
The textures are aluminum. blue and yellow.
Donations would be a big help for me to keep making more 3D models and to survive https://www.paypal.com/donate?hosted_button_id=H49EUE876D842 - Python - Download Free 3D model by AnshiNoWara
i like the rust crab more tho
kinda a sick model
looks like i found a bug in my model-converter!
this gave me some ideas
also need to add a combo meter
for other language logos
but scrolling through those reminded me of an old 3d game I wanted make, Kenny has such a great style 
I'm less a fan of his 2d assets with doubled outlines but yeah the 3D assets are very cool
the 3d asset are great, indeed!
maybe I just make it small angry people with speech bubbles containing other languages
it feels sooo good when a plan works out
with the core in place now, it's time to polish and do more pojects now
although, one important thing is still missing: streaming resources
this will be required for models, textures and audio
I’m waiting for one of you guys to make a complete 3d engine in haxe so that I can make Ceramic run on top of it 😄
I feel challenged
why not make ceramic run on a toaster at this point xD
it would probably be possible
Would web export support be possible?
can ceramic run doom
ceramic on heaps, when?
ceramic or cortex?
Cortex of course!
it's not high on my priority list but definitely possible
Ohhh I hope it can happen. Would love to use this in the next Haxe Jam 
Assuming it would even be out in another half year 
Currently the most doable would be ceramic on heaps I guess, but heaps is HL and HL doesn’t like mac
Who wants to make that happen
I actually seriously considered that in the past
Do toasters have a nice gpu?
if you find a smart toaster on some chinese website (aliexpress) it will probably run on android
can't confirm BUT
alot of dumb shit from aliexpress runs on android
a 10 dollar calculator can even run android
Happy new year folks!
happy new year (im still stuck in the 2024 dimension for another 8 hours)
I thought you were kidding. why would you do that?! soo many layers
happy new year
Happy new year everyone
lets make this year the year where many haxe frameworks and engines will run on toasters
i stopped uploading since last year /j (terrible joke)
yes...
When I took a look at heaps, I checked if I could plug ceramic backend API to their lower level rendering layer, so you skip all the higher level things. Not that bad, similar to using Unity’s CommandBuffer. But yeah right now I’m still kidding because I’m still focused on 2d
The « why » would be if I wanted to have access to 3d without making a whole 3d system myself, while still keeping Ceramic for the 2d parts, or any general purpose utility that could be useful in 3d too. That kind of setup is already possible if you export your Ceramic project to Unity. Unity API is just a few C# externs away
…but it would be nice too if instead of Unity the 3d thing was in Haxe 😄
ah ok I get it. Let's see then 😄
in terms of audio, I just reviewed the options there and holy mother of fuck, it's the same shitshow since 2002.
all the libs I looked at are literally multilayered, bolted together abstractions
the leanest & meanest setup I identified is literally sdl_mixer + steam_audio
OpenAL is a mess, especially if you need to deal with openal-soft and its lgpl licensing
oh no, seriously fuck openal & portaudio
What about soloud?
soloud looks nice on the surface. all it really has going for it is the api, but I dont see myself debugging shit down to miniaudio when things need a closer look
Soloud has a nice backend system, so you could plug it to whatever you want so far
(not necessarily miniaudio I mean)
thing is, I dont want to plug in anything. I wanna load and mix samples(memory&streams), for 3d positional audio I'll use steam audio
occasional custom effects can be added directly into sdl-mixer
when it comes to my perspective, im a bit extreme again
basic 2d/3d positioning can be done in sdl_mixer, anything more complex and steam audio is the better option. anything between the 2 is just complexity, I'd argue, gets in the way
these core layers have to be as thin as possible, since there will be complexity on top, e.g. 3d rendering, physics & audio need almost the same data management for meshes, lods and streaming of their scene representations
but this the crazy scientist in my brain talking
So, steam audio works ouside of steam games I guess
it has a confusing name. it has nothing to do with steam. it's just a lib that was part of steamworks at some point
it's just an advanced spatial mixer
no backend
xD
found it! turns out I was not validating the gltfs correctly and tried to create empty buffers for uvs&tangents in case models didnt have actual uv data!
isnt this like the godot tutorial project or whatever lmao
im reusing the assets xD
ok, this hackjob evening was interesting
I setup a new project using the same pattern for cppia usage as cortex has
super fast interation time, I love it.
then I went ahead and rewrote the statecharts so they persist in sqlite
there is some stuff I have to figure yet, but I can stop and resume a chart now
even delaytimers for transitions work
now that I have the behavior persisted, i have to bring business logic into the mix, hmm, maybe I just add hscript
rofl, I can just add https://github.com/rainyt/hx-http-server
lol i have thought about using that before, tell me how it goes
it works out of the box. I start it during startup of my cppia app and now i can send events into the statechart via http requests
waaaah, i can just a htmx frontend to this now
lol, I could add this to cortex and have a web-api for syncing shit between tools like blender and the engine
baha that would be kinda neat
holy shit
I was thinking about particle systems & editors and then I remembered that I used TimelineFX back in 2011, even had a license for it, turns out that shit still works and the author is even working on a 3D version of it
unbelievable how println slows everything down
oh it does alot
i've never really understood why
ahhh, im such an idiot. Remember, if you have threads, fucking use them.
closest you can get to moddable macbook pro like machines
yeahhh that is a nice plus xD
when i bought my laptop i was considering a razer blade
but ended up going with the Zephyrus G14
Also very macbook-y
soldered ram though
and mediatek wifi :(
but rlly nice piece of kit
ability to upgrade was a must for me
looks nice
the trackpad is my fav
insanely large trackpad on a 14 inch
hehe, I know that one. other must haves i had: apple like trackpad, thunderbolt support(run external gaming gpus+extra screens) and good cpu
yeah that is most of my requirements too xDD
I have like 3 gpus available 😄
on-die intel, integrated 3080 TI and an external titan
It drives the 4 extra screens and I use it for various cuda shit, these days mostly LLMs
damn
i dont have a titan xD
but i do have 2 gpu's
and an "APU"
imo APU's are useless
rtx 4070 and AMD Radeon™ 780M
its genuinly insane how powerful laptops can be these days
nice, I always wanted razor to do full stack amd laptops, but they never got around or had support for thunderbolt
damn :(
ok, time to think about the next big leap
we need animations everywhere
also got another idea concerning the missing 3d models of other languages
wahh finally, got an idea concerning the scoring and combos
instead of points by sqashing other languages: you collect users on squashing, then the haxe discord will show up randomly on the map and you need to bring the collected users to the discord converting them into the actual score. doing more jumps will lose you some of your collected users
this feels alot like a game jam idea... I love it!
and instead of gameOver when touched, the discord shows up and the users bail from the discord again, if you are quick you can recover some of them.
you lose if you are touched and have no more users on the discord
this should be a cool sample game
omg 3d semmi
oh god
nothing about all this machine learning shit is humanfriendly
all those python suckers celebrate the day node.js & npm was created, bc the world stopped caring about the absolute clusterfuckage these snakes have been doing ever since
fuck, it works
lets do the unthinkable
ok, all this takes is a set of quick drawings or some prepared prompts for an image generator and you have instant placeholder models
try semmi
it's trained on this mobile style
mhm nah
that is really impressive
does it generate new textures too?
seems like it does better with translating existing 3d objects to glb
refactoring is soo easy now
I think I have mentally unlocked ecs now
although I wont do it pure it's so flexible, that I can see myself building all kinds of things with it
How’s the fan noise?
the turbines are turning
One of the main reasons that make me stick to using a macbook pro are the fan noise. The M1/2/3 macbooks are incredibly quiet. I have also a windows laptop for work too because I need to test things on windows, but the noise is driving me nuts
in my case it doesnt really matter since I listen to loud music on noise-cancelling headphones 😛
xDD
surprisingly relatable
my AIO pump is kindof broken
so it makes a "brrrr brrrr brrr" noise 24/7
I really love how cortex is looking out for me
:O I added something like this too
really easy to forget to free resources
I see I see 😂
turns out I forgot to release the hud stylesheet
ah, making materials and shaders interop with gamelogic is always such a joy
(when it works xD)
poor logo 😄
waaaah I forgot I wrote a complete animation system
[showcase] having fun with ecs, statecharts, animation mixing + shaders ❤️ 😄
haha, yeah. most likely they will change though. we'll see
what is this song 🤣
send me that
as a flac
that's going in my flac collection
it's an old thing
#announcements message
Just rewrote the lyrics a bit, here is an update: https://suno.com/song/febc58d7-38f0-42c2-8944-d804d982aa7f
Asking here as @void condor you are probably one of the devs who worked most with CPPIA: what happens when you reload a CPPIA module, does it erase any existing class previously loaded from a previous version of that same CPPIA module?
yes and no
in cases where you retain instances of your classes in the host, the "old" version will stick around
meaning instances wont be "upgraded"
I see
one of the reasons I just do full app reloads atm
Makes sense. I guess being able to update class instance would mean come up with some additional runtime logic that takes care about remapping all the instances and copying the previous instances data. Doable but definitely more complex than just app reload 😄
So I have been reading and thinking a lot lately. Turns out that concerning Haxe and the Foundation I have done a 180 mentally... I was completely wrong concerning my criticism towards what the foundation should be and how it is run
How so?
Anything Haxe has more in common with a living system than an architected process on a linear path.
Most commonly you hear that noone knows about Haxe, or that it is much more lacking compared to other sponsored technologies. Haxe feels like something small, a diamond in the rough, a niche product with huge potential for people that buy in, libs feel outdated, etc.
Now, what changed it for me: Why is all that a bad thing?! Would Haxe be really better off if it was evangelized&preached like Rust?
People have the misconception that popularity means "better"
This is how I see it as well
All these questions come from a single thing: insecurity & deflection. People flock to tech that is backed by enterprises, cause that means security for them. Someone is helming that shit and things will develop for the better. Well, since when has putting your trust in a 3rd party enterprise like Adobe, Microsoft, Meta, Google gained you any security when it comes to tech? Adobe killed a whole LIVING ecosystem with people screaming at them, Meta reinvents React every 4 weeks, etc...
People are looking for someone else to give shit to them... They dont wanna own what they foot their fate on.
So I argue you dont wanna create an ecosystem where you invite these folks. On the contrary, the nature of Haxe attracts and fosters a decentralized interest where self-organisation emerges naturally.
In the end, not a single part of Haxe's tech is soo complicated that it cant be "owned" by a single person
Also with those other companies, the "desire" or primary objective is often something "other" than the language, they're trying to hit or game some kind of objective
in haxe, the language itself is the objective
this is why i kind of like nic as the owner
he understands the problem he wanted to solve with the language more than anyone
true. Haxe does not need to be a quantized token of value in a company sheet
the fact that something like reflaxe can exist on the haxe stack kind of shows how flexible it can be
but it's also just very stable
doesn't change too much
users can change it if they want to
That's one of the antipatterns as well, that doesnt compute in most people's brains. there are no updates.. Yes, you fool, there are no updates bc so far it was good enough! You need improvements? Here is the code, do something about it
You give a lot of this stuff up when you try to cater to large audiences
other languages work better in various ways, but, I never really "stuck with them"
What really did the trick for me is drawing the lines to my dayjob where i managed to build a highly productive, self-regulating and -reliant team out of nothing.
i'd always just return back to haxe
wdym?
same patterns emerge: You want highly engaged people that think on the spot and get shit done? Well, they take ownership, explore and run with the things that work
It's a living interconnected system that is able to adapt
It's hard to boil it down into some few messages here, maybe i need to take more time to organize all my notes and experiences a bit more
fact is: Things are good, and they are due to natural causes
something along the lines of
when you know the way broadly you see it in all things
people project
if you wanna read a good book, then I can recommend Surfing the Edge of Chaos
Eh, I like a growing community. If it isn't growing then it is shrinking. I think Rust would be a good example of growth being bad, it just made it unwelcoming, but OCaml for instance has had a huge renaissance recently and imo it has been for the better.
if you grow by attracting the right crowd ofc that is wonderful
Im just saying it's the nature of the beast: the only folks that really stick are the ones being able to cope with the nature of the community, projects and the amount of oneself' responsibility they require
a growing community isn't dependent on a growing "product/thing"
and a growing community isn't represented by the count on the discord page
I agree with growing Haxe in ways that aren't corporate
no, it's represented by the interactions of peers
this community could still be growing even if we capped the server to no new members from this point forward
But running events (i.e HaxeJam, HaxeIn, etc), modernizing portions of the ecosystem (cough cough haxelib), and being more openly transparent about what is going on (move some stuff from GitHub to the blog) should be prioritized to keep the community healthy
imo that happens organically
if its the right thing to do, it will just happen on its own
people wanna have fun together, they link up. sometimes it takes a catalyst but it should never be pinned on a person that doesnt feel it
but these things as a kind of "blanket statement of correctness" isn't accurate
org even
transparency in something like haxe, i think isn't necessary
i totally see that now
what exactly is there to be transparent about?
it will just get in the way of things moving forward at its natural pace
The future of the language, stuff like hxb and asys
The haxe.org blog is full of really neat things, and it is kinda sad that is slowed down
it makes people think the language is stagnant even if it is very much not
asys ask aidan
hxb was a spur of the moment development to solve completion problems (kind of)
there's no real plans for these kinds of things here
simon's been working on his album 😄
haxe isn't trying to achieve something
it's just natural growth
it's not bad though, because the kind of people who look at the "surface" isn't necessarily the kind of people we'd want around here
think of it like a natural "introduce yourself" channel like on the kha server
I find growth fun
do you think we're not growing tho
I think we are neutral, gaining people at the same speed as we lose them
if you like growth, then maybe we should put you in charge of Haxe's SEO so we can win against Schweinshaxen in the image search
from a purely numbers perspective that may be true
which should be the official meal of any future Haxe event
Anyways, this conversation is kinda useful for a small project I am currently working on
there always will be turnover. I think we are doing good
I guess developer growth isn't really what I am too worried about, it is mostly enthusiasm
don't underestimate "staying even"
oh we defo disagree here, i see both of these all day here
oh, what project
I'm trying to redesign the main page of Haxe. Not necessarily going to implement it, but mostly want to use it to kinda start a conversation.
If people are enjoying the language, they shouldn't be talking about it here, they should just be using it 😉
VERY rough right now as I just started today
mostly just a fun design exercise for myself tho
casually smacking random visitors with pattern matching 
lol i thought the same when i saw the example