I'm a self-taught software engineer. I like C and Perl. Currently studying x86 assembly ;>
I read my emails, so you may contact me at [email protected]
the evil framework.
License: GNU General Public License v3.0
I'm a self-taught software engineer. I like C and Perl. Currently studying x86 assembly ;>
I read my emails, so you may contact me at [email protected]
9/27/20: Rewriting to reflect roadmap changes.
Currently, the render loop sits sort of awkwardly on the global update method. I'm fine with that, but it'll probably be cleaner to move it to it's own file.
Similarly, a lot of methods for input handling are pilling on on top of chmang
, which gives me this awful feeling that I'm being too disorderly about it.
So, I'm removing this from the SIN
milestone (which I now consider closed) and adding it to the next step: finally getting around to clearing out dsm
core and utilizing the additional project to combine the others.
Centralization: have one module that gives access only to stuff the user would have to worry about. So no lazily exposing internal SIN
methods to main like we do now.
Organization: put things in their place. Have core module handle the common routines, so the main game loop can be expressed more clearly. Less clutter on the stuff we have to see.
Tidy up: there's lots of old code from almost a year ago that is absolutely useless now as we've already copied, pasted and completely rewritten it.
Future Lyeb, I really do hope you're feeling like putting in work because I have some more for you.
Yours truly, your past self.
Alright, so while doing some testing I've realized that the timekeeping functions from Zajec might be slightly off. Since we rely on these to drive the framerate I'd prefer making sure everything is working correctly, so... let's fix this mess before we do anything else.
Gaoler
is pretty much done for our current needs. I have however forgotten (for some strange reason) to actually try running physics updates on game objects. So, work out the final details of getting neighboring cells more efficiently in DA_WorldManager
and throw a few dynamics on screen to see what happens.
(i*0.0078125 for i in 128)
byte
frac16
crk & crkraw
Refine the exporter using the Blender API. Though we already have a "good enough" method using game properties for export attributes and console commands to make BlackMagic calls, because I can't detect when the console is open nor force it to always open up automatically it's kind of an inconvenience.
Navigate through lybyte/file.cpp
and lytutils/evil.cpp
and determine possible sources of leaking.
Just to be absolutely clear, I know for a fact that the OS is freeing up all memory used during calls to Zajec
-- it always does so, eventually that is. The point to this is adding an additional layer of security so that a resource monitor won't fire off on a false positive, making future maintenance not as much of a pain.
For methods making use of malloc
, declare pointers before the call. We need those addresses to explicitly free up all memory on a non-fatal exit , which would be lost when we return early with a failure. Wrapping these methods may prove convenient.
USE FLAGS. With proper failure codes, we can do proper cleanup.
Oh, snap! SIN_END()
is leaking.
It happens within MeshBatch.c
-- the static global SIN_BATCH_SLOTSTACK
allocates memory dynamically, twice. Once for the stack struct itself, and another time for the array it contains.
Obviously, we deallocate the array first and then the struct. SIN
uses five such stacks to do housekeeping, four of them deallocate alright, and this one doesn't; the call to free()
throws an access violation when it's time for the last one to be fred. Sagon's beard this is annoying. I could swear it's the exact same procedure...
Rain, snow or thunder this must be fixed. I'll see to it.
As you know, SIN
is held together by duct tape and prayers. This must change. NAO.
The first step is recycling old code from dsm core into more neatly classified abstractions, fancy language for clean up your mess. Roughly speaking, we're looking at:
Last commit I made a ridiculous number of changes to the global update function and introduced object culling into the mix. It works well in a small test scene but I have no idea how well it's going to scale.
So, test, measure, test and test again, fine-tune, fix, cry, you know the drill.
BlackMagic
@Liebranca You are not an Engineer. You falsely claimed to be an "engineer" in of of your videos. Engineering is not about sitting behind a screen, and pressing keys on a keyboard to write code. No, engineering is far more serious . Engineering is about designing and building real entities, like turbines or buildings.
Software developers have this tendency to make huge and false claims these days. They are not engineers, and will never be engineers, not even close.
The current (wrapped) writing function for crk files IN_writecrk
is faulty at appending. Furthermore, insertion of a larger chunk in place of a previous one results in overwrites of data outside the range of the older chunk. Expanding on current methods to streamline reading whole chunks of bytes at a time would be a huge improvement. If we can also design these methods to facilitate copying/buffering of chunks for later pasting in, that'd great.
Chasm is currently an OOP mess. Time to step up my game...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.