2014-01-12 02:24:26 Posted by RetroZelda

Code Samples

I know, I havnt posted anything in a while. So I thought I would be a little productive. So, I installed GCC and code:blocks and I made a quick Byte Queue. But, how could I share that I did it without making an entire post about it? What if I had other small things I wanted to share? Well, i figured it out! I added the new Code Samples section for just that. So, when I make a small script or do an exercise to keep my other language skills, I will put it there. It will mostly be used to show my code style and any small accomplishments I do that isnt significant enough for a full post. So... Enjoy! Ciao fur niao!

2015-08-16 03:32:36 Posted by RetroZelda

C++ Memory Management

So, with my lack of time with my good friend, C++, I have decided to make a Memory Manager. I was playing around with a different coding style, and I think I like it. It seems more of an explicit style, and I think I like programming is this way. Anyway, this manager is similar to my MIPS memory manager(found here, and it is definitely easier to read and use. The usage is simple. I have every function static, and held in a namespace. That can easily be changed depending on whatever my next project needs are, but it is still self-sufficient. You have to call RetroZeldaMM::Init() and RetroZeldaMM::Shutdown() to allocate and free the actual memory, or if on an embedded system, to start using the given heap memory. Then, to allocate simply use RetroZeldaMM::New<>() and RetroZeldaMM::Delete<>(). Yes, they are templated functions. Deal with it :) There are 3 helper Macros to help with the amount of data to allocate: KBToByte() MBToByte() GBToByte() And then there is a function called RetroZeldaMM::AllocationCount(). You can call it to get the allocation/deallocation count as a primitive way to check if you are not releasing your pointers. Please note that the data alignment is kept on a 4byte boundary. I am not sure of I did it correctly, or if there is a keyword I need to use. Regardless, enjoy! Ciao fur Niao!

2013-06-02 22:01:18 Posted by RetroZelda

Vita Remote Desktop

Recently, I have been working on roughly 4 projects(2 being personal projects), and one of which is the Vita Remote Desktop. Once the Playstation Mobile SDK became free to licence, I have been getting swarmed with requests to get it to work. Therefore, I have worked and I did get it to work! But something in the SDK made it work much much slower. So, I started from scratch on the server, and I updated the client even more so. Now, I have the screen getting sent over and it is still faster than what it would have been. Although, because I have been doing so many projects, I was running out spare time as I was trying to juggle too much, so I have decided to stop working on this. I have added the source to a google code GIT repository, and I hope someone else will finish it off. what is left to do? Well, clean disconnects is really needed, but there is also the server handling vita button presses and screen touches. The packets are already being sent and received, just not handled. Also, the server crashes sometimes as it runs out of memory. Also, the server doesnt have a GUI, and mapping it to my previous's GUI wont be hard at all. So, naturally, it isn't quite finished. Anyway, the repository is here: https://code.google.com/p/vita-remote-desktop/ I am now going to focus my time on more important projects, but I may stumble back. All I ask is to keep the project hosted publicly and to potentially keep this alive. Ciao fur niao!

2012-11-30 01:52:48 Posted by RetroZelda

Programming and Me

It has been a while since I posted anything on here that was just my normal ranting/typed garbage, so I am here to share what I really enjoy about programming. And that, my non-existent reader, is animation. In my opinion, animations is what really makes a game come alive and providing the main part of the games life is really fulfilling. Then, after the projects gets birthed out of the womb that is anything between the first working build with the animations to alpha and beta builds, you begin to help it grow. So, to talk about the first animation classes I have done, I will start with the 2D animation I developed for "e;Monster Descent Dungeon"e;. The first time I got the sprites to animate was simply having a fixed frame width and height jump down a "e;static"e; sprite sheet that I had to modify to make sure each frame would fit properly when it was rendered. Then, that is when I could have fun. I then expanded it to provide the "e;anchor point"e; where the frames would be based upon, so then each frame could be a different size. Then, adding events that a frame could trigger and dynamic frame timing, really brought out the beauty that animations can provide. Now, having these events wouldn't provide anything near as sexy as like God of War, but just having that ability really expanded on the capabilities of the look and feel of the main gameplay. Especially when, in the game, you would cast spells or in the battle scene between Xanthor and an enemy. But, there is only so much you can do with 2D animations, and so when I took on the task of the 3D animations during final project - "e;Sugar Rush"e; - I learned so much about how State Machines for animations are really important, how interpolations and blending make things look so much smoother, and especially how much of a hit to the frame's processing time gets taken away because of the entire skinning process. Unfortunately, this was my first real skeletal animation system, and when I went and coded out the PSM project I have, I noticed a lot of issues that I either was completely ignorant to during the time of Final Project, and how big of a memory footprint I created with the animation files I would be loading in. The big thing was, and it is fairly embarrassing to have to say this, but when I would interpolate each bone, I was using the pre-baked bone world orientation("e;world"e; being the absolute position before transforming into the game objects position) and I was iterating through the bones. Ignorance really is bliss I guess because it worked and I was happy, but it only did work when the animations were "e;baked"e; in maya before exporting. I only realized that this could have been done better when I interviewed with Paul Jossman for a gameplay coop position at Vicarious Visions. He and I were going through the programming test I had taken, and I did a question recursively. When we got to the question, he said something that really made sense to me and really cleared up the question of why we use recursion. He said that recursion is best for systems that are designed for recursion. When he said that, I literally had an epiphany of how I could fix this animation system. So, with a similar system on PSM, I spent time to restructure it so I would be traversing down the tree, and applying the local matrix to the matrix of the parent, and I can now use unbaked animations, which would trim down the file size drastically by removing 95% of the frames, an entire 4x4 matrix for each bone, and I also was able to clean up the design to work swifter and smoother! So, it's true that you do learn something new all the time, and for this is want to thank Mr. Jossman. But from that, where do I move animations onto next? Kinematics? I want to, but I have always had a hard time with learning advanced subjects online, so I think the best way for me to learn is from the basics of calculus and move up. I also thought about working with HumanIK, but getting a licence for that is probably next to impossible for an individual. Or, I could use either axis-angle representation in stead of 4x4 transformation matrices, or maybe even quaternions. I have done my research on other people opinions on axis-angle vs. quaternions, and I am still not really sure of the best approach that is suited for me. I guess only time will tell. Anyway, I think I am finished ranting for now. Ciao fur Niao!

2012-10-16 05:40:29 Posted by RetroZelda

Mips Memory Management

Halfway through October, and not a word of what my abundant spare time has brought to this lovely world. Well, I have been reading a lot of articles on random things like occlusion culling, hardware emulation, and different CPU pipelines and instructions. I first started reading about SH-2 and SH-4 processors(found in the Sega Saturn and Dreamcast respectively), and after giving me an aneurysm of knowledge, I decided to find a cleaner CPU set to build upon. x86? Screw x86! With a vita that has a psp emulator that has just been introduced to the existing "e;psp hacking scene"e;, I decided that maybe working with that stuff first would give me a nice foot in the door. So, after reading about low level PSP hacking crap, I now understand buffer overflows and I think i have a few things I know I can do to not allow those(because I do love me some file I/O), and I was introduced to MIPS assembly. The instructions are simple, and the registers are even simpler, so why wouldn't mips be a good starting point? Well, it was great! I am fairly glad that I put off working on Nyanimals(idk if I mentioned that side PSM project or not, but hit me up on twitter or linked-in if you really care) for a week to put my time into MIPS. Well, after just screwing around and figuring out how to actually use the stack(lack of push and pop instructions), I decided a couple days ago to try a math library. Obviously I gave up on that fast and decided to handle dynamic memory allocation. So, with this post, I give you my MIPS malloc and free. Next on my list is calloc and realloc, but I will need to do some other functions first(e.g. memset), then I think I will be able to handle math stuff and I can dive into the FPU. Anyway, I have the malloc and free routines attached so download and enjoy. I have been using Mars as my simulator, so I will provide a link to that somewhere... anyhoo, if you do decide to try it out, good luck reading it. I have the normal massive ammount of comments that ASM requires, but, especially in the free routine, its still... well... you will see :) So, to conclude, I plan to do some MIPS as well as work on Nyanimals(as it is the longest side project I have had the attention for). And I think I am going to make it build for PSM and XNA so I can play around with compiler settings. Although I have been lacking time with the super cute C++, so I might do some data structures or even look into CUDA(probably not...) Anyway, before this turns into another rant... ciao fur niao! Mars: http://courses.missouristate.edu/kenvollmar/mars/

<--Prev 0 1 2 3 4 5 6 7 Next-->