MechaSource Wiki:Development

From MechaSource Wiki

Jump to: navigation, search

The below is unofficial updates yet to be published. It is the development log of MechaSource.

Contents

29-06-2010

tex files!

15-06-2010

Added point_linear and point_mark. Additionally added spirit:setPlatform(boolean) which is an AMAZING feature that allows you to set ANY collision object to only count collision downwards. This new feature is revolutionary in a lot of ways I never thought of before. As a result there might also be a better solution to easy collisions rather than creating masks... time to investigate!!

04-06-2010

New Eedit. Will be handed out for beta testing later today or tomorrow.

25-04-2010

here have some 3d http://img194.imageshack.us/img194/3391/allpurposeimager.png

08-04-2010

It appears it wasn't as easy to solve as I thought below. I completely forgot anything about parameters being passed in events. Being a bit non-specific is a bit of a problem with hooks, I'll have to look into a filtering method.

07-04-2010

Added createTimer(value, function, ...) which is super cool as it is a great alternative to aly spamming! Already took it into use with coins in Coz! Should also be a huge performance saver. Additionally I think I've found a way to improve hooks by adding the individual categories to a table when triggered and then at the end of the render loop through those.

30-03-2010

Fixed the texture loading issue. Additionally added image:setFilter(filter, mipmap) which sets if the image should be filtered upon rescaling. Additionally a mipmapping aliasing feature. Both are on by default.

edit: Added advanced 3d support with ms3d models. Need to simplify it all.

edit2: Having troubles with hooks yet again. Too many objects calling for "physics.collision.bottom" at once, dragging the fps from 1000 to 200. Need to think of a solution.

29-03-2010

Coz now works using a simple key system. Once a key changes, the status of the key is sent to the server where it is then applied to the client. This is very useful, easy and simple, and should make online so much easier. Players also have variable jumping now.

edit: Thought of a new design theory while eating breakfast (where I think the most). In online, a feature to add selected objects to a table where it will then remain consistent in a server->client connection. This would work perfect for everything. Example: players. The player gets his position and velocity transmitted in a constant stream. He requests a change in movement to the server and it then changes the variable, which is then streamed to the client. Might or might not work well with how lua handles variables. If its a tad dodgy, I suppose I could always look into strong variables in the _G.

28-03-2010

Motion blur now supports rotation! http://www.forums.mfgg.net/viewtopic.php?p=182781#p182781

26-03-2010

Good news! A new OpenGL implementation update made the game go directly to 60 fps without any changes! Aw yeah!
Next step: 200 fps!

edit: Managed to find the problems with some textures not displaying! It appears I accidentally sat the alpha bytes for the texture buffer to 0 when rendering textures. This might take a bit to fix but it solves a lot of issues!

18-03-2010

Minor performance boost. Turns out Coz had collision overlays with the brick blocks in Battle Mode which caused a minor slowdown. But it's still not the main memory leak...
Minor update on the new SDK aswell. Added an inbuild config editor (goodbye ConfigEditor!) which is a lot more comfortable. Gonna add maps next and just completely rule out Eedit as a factor.

17-03-2010

No progress. The guy who's helping me with the opengl implementation hasn't responded for over a week. This worries me quite a lot as he has all the source code files.

14-03-2010

Added engine.images.inRender that forces objects in view to only be rendered. Removing hooks now make the engine go from 10fps to 80fps on a relatively large map. Next I'm going to reconsider the use of Hooks.

edit: a test showed that ~280 hooks were in use at once. That means for every time a hook is called (at least once a step), all of these needs to be looped through. Looks like it's time to categorize the hooks so it only loops through the relevant hooks.

Additionally I also need to get back to Kyori on a non-MechaSource DLL implementation of the MechaSource features. It's a bit tricky because by opening up information I'm also leaving the system vulnerable. I need to think of some security measures and then that should be ready.

edit2: categorizing the hooks made it go from 10 fps to 25 fps. Still not satisified until I hit at least 200 fps. New output data shows a total of 7 hook groups. ...how can 200 hooks be stuffed into 7 groups? Probably some function that continuously hook (bad habit from callback system).

edit3: Fixed a hook performance leak with physics.collision.bottom. Fps has increased to 40fps.

edit4: Fixed the rest of the hook performance leaks. Fps is now 50. Still not satisfied, though!

edit5: Battle mode in all it's glory: http://img14.imageshack.us/img14/2821/allpurposeimagef.png Noticeable errors: Some textures not displaying, physics messed up (objects overlapping) and a noticable fps drop on a relatively simple level. What bugs me the most is the fps drop since the level is simple and all hooks are optimized. What could cause the fps drop...?

edit6: Tried disabling aly's, which have shown to increase performance majority on games like Portal on previous DirectX tests, but that revealed no major change. This is good because that means it's some minor thing that's clocking up all the memory, and not some very important feature.

13-03-2010

External image loading complete. HD and widescreen (16:9, 16:10). Managed to boot the main engine of Coz. Major performance issues. Removing hooks boosted fps from 10 to 50. Forcing no render will most likely put it back up to 1000 fps. This means the methods used for maps is currently terrible. Having many small parts produce a lot of lag. Solutions:
1) Check for object out of view
2) Improve opengl render commands
3) Make a new Eedit that focus on large objects rather than functions and sprites.

http://img704.imageshack.us/img704/8357/allpurposeimagex.png

clearly the results are nowhere close to decent and a lot of reconsideration will have to be made.

25-02-2010

Not much progress, waiting for a solution for external image loading.

01-02-2010

I've encountered one individual who reported a problem rendering textures not the power of 2. I don't get why but this let me a bit confused as to how many has this problem. As such, I made a testing application. Please try it out and report back the results in the topic: http://www.forums.mfgg.net/viewtopic.php?p=127927#p127927

31-01-2010

Made a fully working and simple platform movement test: http://img30.imageshack.us/img30/1378/allpurposeimagez.png trying to get more of Coz translated to work with the new render.

Added motion blur through image:setMotionBlur(x). edit: it appears there are minor bugs with it that I need to look into in regards to the buffer.

30-01-2010

Community now supports multiple authors for apps.

25-01-2010

Managed to load the titlescreen of Coz. Had to perform minor modifications to meet the new ogl standards but it was all worth it! Spirits are now functional, aswell as bodies and joints. Only few elements left to add.

Image of the Coz titlescreen in ogl: http://img33.imageshack.us/img33/25/allpurposeimagey.png

Still need to add external image loading, but I need that added to the ogl implementation I'm using, so that's out of my hands. It shouldn't be hard to add once it finally arrives, though! Network, sound and world has been added aswell.

14-01-2010

Success. New hooks are now "physics.collision.bottom", "physics.collision.left", "physics.collision.top" and "physics.collision.right". Might put them into an easier function at one point but this is pretty rocking.

13-01-2010

I have just gotten the greatest idea ever on how to make collisions in regards to physics so much easier and user-friendly. It involves masks and could be a lot of fun or a lot of pain. This method won't support custom shapes unfortunately, though if you're gonna go ahead and make a custom shape, I doubt you'll need these simplified collision methods. May work on it later tonight.

12-01-2010

New render. All images are now default center-based rather than 0,0 based as previous. World is now based in 0,0 with a width of -400 and 400, and height of -300 and 300 by default. Still unable to render anything but images due to a luagl limitation, but hopefully it won't be long.

Personal tools