collapse collapse

* Who's Online

  • Dot Guests: 67
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.

* Board Stats

  • stats Total Members: 88
  • stats Total Posts: 11163
  • stats Total Topics: 1699
  • stats Total Categories: 4
  • stats Total Boards: 76
  • stats Most Online: 248

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Celestialkey

Pages: [1] 2 3 4 5 6 ... 20
Misc / Interesting Look into the ALU
« on: April 28, 2015, 01:10:51 pm »
I found a very good video explaining how computers use the basic transistor component to do multiplication. I'm currently working on a project for college that requires something along these lines. Figured I'd share it since it was such a good video.

Tutorials / C++ Basic RLE Compression
« on: January 11, 2015, 07:48:31 pm »
Code: C++
  1. #include <iostream>// std::cout
  2. #include <fstream> // std::fstream
  3. #include <sstream> // std::ostringstream
  4. #include <random>
  5. /*
  6.         Run Length Encoding - RLE Example to Compression
  7.         Http://
  9.         You can go lower level then this tutorial. I will
  10.         only be looking at each byte and checking for duplicates.
  11.         You can do something similar at the macro
  12.         level (look for repeating collections of binary datasets) or even at the lowest
  13.         binary level (look for repeating binary datasets)
  14. */
  16. // Used to generate a ~50 meg file for compression
  17. void GenerateRandomFile(){
  19.         std::fstream fout;
  20."myfile.txt", std::ios::out);
  21.         for (int i = 0; i < 50000000; i++){
  22.                 int out = rand() % 2;
  23.                 fout << char(out+65);
  24.         }
  25.         fout.close();
  26. }
  28. int main(){
  29.         GenerateRandomFile();
  31.         // Create a file handlers.
  32.         std::fstream uncompressedFile;
  33.         std::fstream compressedFile;
  35.         // Open the file to compress, check for errors
  36.         // Not we are opening in binary mode
  37."myfile.txt", std::ios::ios_base::in|std::ios::ios_base::binary);
  38.         if (!uncompressedFile.is_open()){
  39.                 std::cout << "Unable to open file.\n";
  40.                 return -1;
  41.         }
  43.         // Store the entire file contents for later iteration
  44.         std::ostringstream fileBuff;
  45.         fileBuff << uncompressedFile.rdbuf();
  46.         std::string     sContents = fileBuff.str();
  48.         // Close the handle to the uncompressed file.
  49.         uncompressedFile.close();
  52.         // Start of the compression algorithm
  53.         // First, create a handle to a new file to write the compressed contents to
  54."newFile.txt", std::ios::out | std::ios::binary);
  55.         if (!compressedFile.is_open()){
  56.                 std::cout << "Unable to create file.\n";
  57.                 return -2;
  58.         }
  60.         // Iterate through stored data and look for repititions
  61.         // Start looping through the data to get the first data to check for
  62.         unsigned                uBuffSize = sContents.size()-1;
  63.         unsigned char   ucCurrentByte;
  64.         unsigned char   ucCompareByte;
  65.         unsigned                uCurrentPosition = 0;
  67.         while (uCurrentPosition < uBuffSize){
  68.                 // Select the byte to look for repeats
  69.                 ucCompareByte =;
  71.                 // Keep track of how many times the character repeats.
  72.                 // Never go above 9 repeats
  73.                 unsigned                uRepeats = 0;
  75.                 // Find all repeats
  76.                 while (true){
  77.                         // Increment the position by 1
  78.                         uCurrentPosition++;
  80.                         // Make sure we don't go over the buffersize
  81.                         if (uCurrentPosition > uBuffSize)
  82.                                 break;
  84.                         // Grab the next byte
  85.                         ucCurrentByte =;
  87.                         // Check if it repeated
  88.                         if (ucCurrentByte == ucCompareByte){
  89.                                 uRepeats++;
  90.                                 if (uRepeats >= 9)
  91.                                         break;
  92.                         } else {
  93.                                 // If it does not, then we need to break out of this
  94.                                 // check, write what we found, then continue on to the
  95.                                 // next character
  96.                                 break;
  97.                         }
  98.                 }
  100.                 // Prepare the data for writting
  101.                 std::ostringstream strOut;
  102.                 if (uRepeats)
  103.                         // If there were more than 2 repeats write the number of instances
  104.                         // and the byte that was repeated
  105.                         if(uRepeats > 2) strOut << uRepeats << ucCompareByte;
  106.                         // Otherwise, just write out the 1-2 repeats
  107.                         else for (int a = 0; a < uRepeats; a++) strOut << ucCompareByte;
  108.                 else
  109.                         // If there were no repeats, just print the character that was affected
  110.                         strOut << ucCompareByte;
  112.                 // Write the reults to file for this comparison
  113.                 compressedFile << strOut.str();
  114.         }
  116.         // Close the file we were writting to.
  117.         compressedFile.close();
  119.         std::cout << "Compressed!\n";
  120.         return 0;
  121. }

Reading and decompressing the file is not show in this, but it is a simple matter of looking for identifiers (numbers 3-9 in this case) and then just repeating that data in memory to decompress the file.

Misc / CelestialCoding Redesign
« on: January 08, 2015, 10:47:38 pm »
It is going on 7 years this year that CelestialCoding has been hosted by Nathan. Over those 7 years, we have compiled and created many tutorials for anybody who happened to stumble onto this site and had a desire to learn. During the 7 years though, issues have begun to crop up and I thought it was time to nip them before it became cancerous.

Before I get into why this is happening, please understand this does not in any way affect the nature of this website. This site always has and, as long as it is within my power, always will be a free opensource tutorial site dedicated to helping the everyday guest learn programming or similar practices.

I mentioned before that some issues were starting to crop up. Most of these issues revolved around tutorials being either deprecated, inaccurate, superfluous, useless, incomplete, or otherwise aimless. The website's shoes were also starting to become a little too big to be filled by itself. Many categories were empty, or have only a single tutorial in it while others were the main area of interest. This redesigned is aimed to fix those issues.

I do hope that active users will respond to this post and lend me their input or ideas on how to categorize the website. I would love to hear some ideas but for now, here is the idea.

1. Focus the site around Tutorials with 1 tutorial area that has what can be called "high quality" or "complete tutorials".
2. No more categories for different languages, they can all be grouped together since only 2 languages were actually common in the 7 years of the websites activity. All languages and tutorials are still accepted, but there will be no more segregation of the languages.
3. A trial area for common tutorials that are good, but involve incomplete series, or is somehow inaccurate or causes some sort of issues will be created as well. This will be a "trial" area for tutorials until they get moved to the other zone.

Those 3 points are what the site is now based around. I intend to revamp the main page as well after I am settled with the current design.

Project Advertisment / Game Engine Sneak Peek
« on: October 11, 2014, 12:23:41 pm »
EDIT: I've updated the sneak peak to include new features such as a very basic GUI/HUD/Settings system. Most of the modifications are behind the scenes,so you will not see much change from the previous demo aside from some HUD elements and some new GUI menus. A few points of interest you may want to look at...
1. Look through the template/layout files inside the GUI subfolder in resources.
2. Look through the settings file located in userData folder.

By customizing these files, you can pretty much create your own GUI. I've made it pretty simple to understand in my opinion. All GUI elements get resized dynamically during load time to fit the resolution. This will preserve the location, width, and height of the element while it is on screen. It also preserves the collision box for each GUI element with the same scaling.

Tell me what you think, ideas and critics are welcomed.

DOWNLOAD: Bottom of the post...

So I've been promising Shishka I'd post something to show the progress. I've attached a sample build of the program that may or may not work... There is a lighting issue I've not yet tracked down where the bug is located at. If you run the application, see the intro, and the entire scene looks black, then just alt+f4 out of the application and attempt to run it again. It is set to run in fullscreen mode by default. There is no windowed mode quite yet.

'~' - Brings up command console + shows mouse
'Ctrl' -Crouch
'Space' - Jump
'WASD' - Move around

Commands for command console:
'toggle_fps' - turns on fps
'program_quit' - Exits application

Tell me what you think, there is a level file as well you can checkout and try modifying to adjust the level. test2 is the currently loaded model since it's the largest map I've made so far.

Challenges / Challenge: Custom Zip File
« on: April 11, 2014, 05:04:04 pm »
Challenge: Create a simple class that works similarly to WinZip or Rar. No compression is needed for this challenge. The goal is to implement your own version of grouping multiple files into 1 file while still preserving the data.

Any extras you add in are up to you. There requirements to full fill are below.

1. Must be able to combine at least 6 files into one
2. Must be able to preserve folder structures
3. Must be able to extract files
4. Must be able to preserve files of different types

Lets do it!

Project Advertisment / New Age OpenGL Engine/Game
« on: March 08, 2014, 07:53:40 pm »
Many of the examples and tutorials on this site rely on OpenGL 2.1 and lower. Since Opengl is now on version 4.4+, I figured it was hightime to update some things. I've only got about a month to accomplish this since I'm currently on hiatus for College. This gives me a month to relax and talk to you guys since I've sort of been missing around here with my life being busy with school, military, and whatnot. I do promise to have some results in return for my absence.

Without further excuses, I present the beginnings of a game I like to call "GameCraft" which is going to be a persistent world with a new type of crafting/combat system. It is going to be tailored to my type of gaming experience and it will have the items I feel many current MMO's do not have. It will be online and it will look extremely cheap. I don't quite care about the quality of graphics (although I will make it look decent where possible), but more so about the gameplay quality. I intend to have this up and running as soon as possible so you guys can hope onto a private server asap, but asap is looking like it will be about 2-3 weeks at minimum. I am currently building all the back end systems and settings things up to properly run once it is connected to the network. Some features of the game that I can guarantee will be in the game are below. These are items I wish I saw in current games, but for some reason no one is willing to take the chance to do.

1. Remodeled Crafting System
THE PROBLEM: In most games, the crafting system is very linear. If you are x level you can make x items that perform x stuff (damage, healing, etc...). This system is very broken if you ask me and some games have even broken the material gathering process or crafting process itself. Terra is a good example of this broken sort of crafting system. This annoys me because I am a very crafting oriented individual. I enter into games hoping to be able to relax and enjoy myself from time to time without having to partake in RAIDS. It's a simple mans job who enjoys the small things in life. It tears me apart to see systems requiring blueprints to create items repeatedly when you would obviously learn how to create something after 2-3 attempts. There is no need to buy 99 blue prints to make 99 swords. This is simple stupidity and makes the entire process very boring and resource intensive for no reason at all. Note that virtually all MMO's do not use a quality system for items created. They either require you to insert gems of some sort to enchant a item to make it stronger or something similar. In my opinion, this is okay, but it can be made far better.

THE SOLUTION: What I intend to do is change this from a linear systems to a 2D system of some sort and remove the leveling system altogether. I firmly believe that if I took what makes crafting fun, and simply emphasized that part of it, crafting would be much, much better. To do this, I intend to implement the system below:
A. Crafting system is not level based, but experience based
B. Crafting items repeatedly makes stronger items of that sort. The more you make something, the better you should get over time at making it, thus quality increases.
C. Crafting system will not be 1:1 per ingredient. Instead, if you craft in bulk, it should cost less than the initial investment of making 1. Aka, if it takes 1 iron to make a dagger, then instead of having 99 iron make 99 daggers, it will instead make 120 or something similar. This ensures that users harvesting materials have an important market share worth the value of what the craft can sell it for. This helps prevent what I like to call 'Runescape Syndrome', or the practice of buying and selling with a fixed price point per item or material.
D. Building new items typically reserved for "higher levels" can be discovered through mistakes in crafting a current item, (e.g. someone making a dagger makes the blade too long and boom, you now can make short swords) or through buying 2-3 blueprints of an items and learning it that way.

I've a few other ideas for crafting,but those are the main points I wanted to implement.

2. Combat Systems
THE PROBLEM: So, combat systems currently in MMO's are kinda... iffy. Terra for example has some pretty useless damn tactics such as dodging when many of the games monsters have lockon abilities. Other games tend to slow users down when in combat mode to have prevent you from performing hit and run operations and force you into fights with little chance of escape. Games are actually getting better at fixing this, Blade and Soul, Vindicutus, and GunzOnline addressed these problems very well and they have my respect. The worst problems with games right now though? THE LEVEL SYSTEM!

I intend to implement the combat system as something not related to level. I would rather this game be skill based instead of who has the biggest boot in one giant kickout. Now of course level will has some implications with certain aspects of the game. It wouldnt make sense to have someone who has been fighting constantly to be beaten by someone who joined yesterday. So I instead propose minor gains with level. Just enough to give a obvious advantage such as raising health and damage output slightly, but not by so much that a level 99 can 1 hit a level 1. I think Gunz online was an absolutely amazing game where a level 1 could take down a level 99+ as long as that level 1 had the skills to out play the higher level. Systems like that appeal to me since I don't tend to grind levels and I instead rely more on tactics and skill in most MMOs to bring down my enemies. Enemies tend to be pretty stupid in games these days and they work off an aggro system that will cause them to stick to whoever has the most damage output. Although this works for older games, it makes for a very predictive fight with a very set strategy. I intend to remove the class system where you are locked into one role. Instead all players can be all roles as long as they know how to play those roles without the perks they have in other games. Instead of play a tank who has aggro aggressive moves and lots of health/armour, you will instead be of similar health to the others around you forcing you to stick closer to the target and distract it from your team mates. I have not yet fully discerned how to accomplish this, but I have some ideas in the back of my head.

Those are the two main attributes I intend to create in this game.

Tell me what you think of my ideas and if you have any of your own, let me know. This is going to be a project I work on for a few years while I am in college. After I accomplish what I want, I'd like to have other ideas to implement.

So far, here is a few statistics of the game engine and where it is at
- Uses MD5 model format with bone animation
- Loads 90% of textures out there using DevIL
- Uses UDP string packet style for command deliverys
- Uses crypt++ to encrypt outgoing data so user data is secured
- Uses HTML for GUI
- Fully Opengl 3.3+ compliant, NO LEGACY CODE
- Will be completely opensource. Version releases will occur after each feature is implemented. A GIT hub or SVN will be opened eventually.
- Mostly cross platform compliant, my logging system is the only thing not currently compliant, I imaging the networking portion will not be either.

I'm not quite sure what else to talk about... So here is a SS of the engine loading a .obj, .md5, and a custom file format. The engine is mostly being developed in parts right now. The modeling portion is currently being worked on.

Project Advertisment / Math parsing engine
« on: January 11, 2014, 08:46:18 pm »
So... I've been in calculus for a while now (pre cal, calc 1, calc 2, etc...) and it is sort of killing me that I can't do anything programming related with the knowledge I have, or so I thought. The idea came to me recently when I was checking out online calculators such as wolfram, desmos, mathway, etc... These engines are amazing but they are all web based. There are, of course, libraries that can be used to interpret scripts and perform the math, however I've noticed that these are all severely limited in the features I am looking for. For example, almost all of the libraries currently out there will only return approximate answers. sqrt(2) for example will return a large decimal instead of simply sqrt(2) as the exact answer. Since we already have a math library in the works [ ], I figured I'd add to it and create a engine to walk beside it. This will be an opensource project as all my projects are and I intend to update it as I travel through my classes.

Any ideas would be appreciated.

C++ / C++ First Program
« on: January 25, 2013, 04:05:09 pm »
Code: C++
  1. /*
  2.    Welcome to the first chapter of this book.
  4.    I will teach you how to program from the ground up (excluding setting up projects) in
  5.       the way I learn best. In my opinion, hands on examples you can modify are the
  6.       best methods to teach a new concept. Because of this, the tutorials will follow
  7.       a very simple set of rules.
  9.    1. Only new code will be commented.
  10.       This keeps the code clean and less confusing.
  12.    2. All tutorials will be short and to the point.
  13.       Tutorial one will have the most amount of comments since it is also introducing
  14.       syntax which is harder to show more often then explain.
  16.    3. There are NO errors in this code.
  17.       If your code is not compiling, then you most likely made a typo. All tutorials
  18.       and text in this book is precompiled before being entered into PDF format to ensure
  19.       code accuracy.
  21.    4. Tutorials are designed for a Windows machine.
  22.       This does not mean the tutorials do not transfer over to other platforms. It
  23.       means that these tutorials have been tested specifically on a Windows machine.
  24.       Programming concepts and the majority of these tutorials can be carried over
  25.       to a Linux distro or a Mac machine.
  27.    5. All tutorials have a help page.
  28.       All tutorials presented in this book have a website equivilent. If you have questions
  29.       pose them to the site included in each lesson.
  31.    6. All tutorials have a project to go with them.
  32.       If you have downloaded this book from online source aside from our site (
  33.       then there is a chance the code is not included. This books newest version can be downloaded from our
  34.       site as well as the source code to go along with it.
  36.    7. All tutorials are geared toward games.
  37.       This keeps the interest alive as well as shows real world examples.
  39.    With that, welcome to programming, lets start on lesson 1...
  40. */

Code: C++
  1. /*
  2.       In programming, there are different ways to teach. One way is to have you read a book
  3.          and test you at the end. Another is by hands on examples. I prefer the latter of the
  4.          two teaching philosophies. This sentence you have been reading is called a
  5.          'Block Comment.' Notice how it starts with a \* and ends with a  * /. This
  6.          type of comment allows for multiple lines of comments to occur.
  7. */
  9. //
  10. //   This is a single line comment. Anything typed after the double slash is considered to be
  11. //      a comment. This will allow us to do line by line commenting which will be the bulk
  12. //      of the comments you read in the following tutorials.
  13. //
  16. #include <iostream> // Include the contents of iostream
  17. /*
  18.    #include <>
  19.       The include keyword is what we call a preprocessor command. The IDE will
  20.       replace this command with the contents of the file we asked for. It
  21.       essentially copies and pastes the file above all the code below.
  23.       There are two ways to use the #include keyword. One way, which we used above,
  24.       is to use the greater than and less than symbols. This means the file we
  25.       are requesting is located in the default folder set by your IDE. When installing
  26.       a IDE, all the default files are copied automagically into this location. The other
  27.       way to use the keyword is quotation marks. For example
  28.          #include "myCustomHeader.h"
  29.       The quotations tell the IDE that the file is located in the project folder. This is
  30.       what you will use most often for when you create custom header files for your projects.
  31. */
  34. int main()      // Main program entry with no parameters. Returns a type of int. Functions will be covered later.
  35. {            // Opening bracket for function main()
  37.    std::cout << "Hello world!" << std::endl;
  38.    /*
  39.       std::cout << "..." << std::endl;
  40.          This is what is called a stream. For now, think of this as a way to
  41.          print output to the console window. The command is made up of
  42.          multiple parts explained below.
  44.          std::
  45.             This is what we call a namespace. The namespace is essentially a container that
  46.             holds variable types and commands that should be divided from other code chunks.
  47.             To use code from inside these namespaces, you have two options. The first is to
  48.             use the way we did above. This keeps your code nice and clean if you only have
  49.             a few commands from that namespace to use. The otherway is to declare that you
  50.             will be using that namespace and you can then leave out the std:: and simply
  51.             type 'cout << ...'.
  53.          cout << "..." << std::endl;
  54.             cout is a command we use to print data to the screen buffer. This can also print
  55.             to a stream variable, but that is beyond the scope of this initial lesson. The
  56.             '<<' symbol shows the flow of data. You can think of it as this anyhow since you
  57.             will not by modifying this anytime soon in these tutorials or even in real life.
  58.             Following the '<<' is the string "Hellow world!". This should be self explanitory.
  59.             We then have another '<<' which is just stating that more data is following the previous.
  60.             'std::endl' quickly follows. We cna remove the std:: since that is the namespace that
  61.             contains the endl command. 'endl' simply means "endline." It allows us to have
  62.             the equivilent of an enter press and move down to the next line in the console window.
  64.          ;
  66.             Conditional loops, defines, macros, and functions are the only exception to this rule.
  67.             That is all.
  68.    */
  70.    return 0;   // return 0 meaning 0 errors
  71. }            // Closing bracket for function main()
  74. /*
  75.    *********************** NOTE *************************
  76.    If your program flickers very fast, it is because it
  77.    is running and exiting very quickly. Many IDEs will
  78.    prevent a automatic close while in debugging mode. If
  79.    you intend to use release mode, the code for pausing
  80.    a program is located in the next lesson.
  81. */

Project Advertisment / AI Bananza!
« on: November 11, 2012, 08:48:13 pm »
I invite everyone who reads this to jump in to the fire with me for a intense studying session on AI. This is expected to last 1-2 months and  I intend to start with the absolute basics of AI and follow through to the end of the trail with this. I'll document my progress for those who want to check out where I am. I hope others will take part in this and also document their projects and progress.

Hardware Hacking / Raspberry Pi controlling a LDP8806 LED Strip
« on: November 11, 2012, 12:56:39 pm »
Bah! I have to fix the youtube linking. For now here you go...

OpenGL / Using VBO's to render a Cube
« on: November 09, 2012, 10:36:15 am »
Below is a example of how to render a cube using VBOs. The entire project can be downloaded. The main file that matters is below though.
Code: [Select]
#include "CommonHeaders.h"
GLfloat vertex[];
GLuint m_vertexBuffer =0;
int The_Main_Loop(){
return 0;
float rt =0;
void GameRender(){
//    glLoadIdentity();
    glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer);
glRotatef(rt, 0, 0, 1);

glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 36);

void GameUpdate(float f){

void GameInit(){
#ifdef _WIN32
    glGenBuffers = (PFNGLGENBUFFERSARBPROC)wglGetProcAddress("glGenBuffers");
    glBindBuffer = (PFNGLBINDBUFFERPROC)wglGetProcAddress("glBindBuffer");
    glBufferData = (PFNGLBUFFERDATAPROC)wglGetProcAddress("glBufferData");
    glGenBuffers = (PFNGLGENBUFFERSARBPROC)glXGetProcAddress((const GLubyte*)"glGenBuffers");
    glBindBuffer = (PFNGLBINDBUFFERPROC)glXGetProcAddress((const GLubyte*)"glBindBuffer");
    glBufferData = (PFNGLBUFFERDATAPROC)glXGetProcAddress((const GLubyte*)"glBufferData");
    if (!glGenBuffers || !glBindBuffer || !glBufferData)
//        std::cerr << "VBOs are not supported by your graphics card" << std::endl;
    glClearColor(0.5f, 0.5f, 0.5f, 0.5f);
GLfloat vertex[]  = { 1, 1, 1,  -1, 1, 1,  -1,-1, 1,      // v0-v1-v2 (front)
                       -1,-1, 1,   1,-1, 1,   1, 1, 1,      // v2-v3-v0
                        1, 1, 1,   1,-1, 1,   1,-1,-1,      // v0-v3-v4 (right)
                        1,-1,-1,   1, 1,-1,   1, 1, 1,      // v4-v5-v0
                        1, 1, 1,   1, 1,-1,  -1, 1,-1,      // v0-v5-v6 (top)
                       -1, 1,-1,  -1, 1, 1,   1, 1, 1,      // v6-v1-v0
                       -1, 1, 1,  -1, 1,-1,  -1,-1,-1,      // v1-v6-v7 (left)
                       -1,-1,-1,  -1,-1, 1,  -1, 1, 1,      // v7-v2-v1
                       -1,-1,-1,   1,-1,-1,   1,-1, 1,      // v7-v4-v3 (bottom)
                        1,-1, 1,  -1,-1, 1,  -1,-1,-1,      // v3-v2-v7
                        1,-1,-1,  -1,-1,-1,  -1, 1,-1,      // v4-v7-v6 (back)
                       -1, 1,-1,   1, 1,-1,   1,-1,-1 };    // v6-v5-v4
glGenBuffers(1, &m_vertexBuffer); //Generate a buffer for the vertices
    glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer); //Bind the vertex buffer
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertex), &vertex[0], GL_STATIC_DRAW); //Send the data to OpenGL

Updates / Improving Site
« on: October 16, 2012, 07:09:54 pm »
The site may look a bit confusing for a while, I am going to be reorganizing it to be cleaner, and easier to navigate.

Humor / Amazing Dance
« on: July 12, 2012, 07:31:56 pm »

Humor / Airforce Party
« on: July 12, 2012, 05:54:58 pm »
Here is a video I took during GoKart racing at a going away party for our Major. We hunted down a guy who was wearing a mask and chasing little kids.

Project Advertisment / Gunz The MMORPG [ Updated 6/3/2012 ]
« on: April 28, 2012, 12:44:05 pm »
I figured I should put this up here since we already started a week ago and made some pretty good progress. Essentially we are converting Gunz Online from a instance based TPS to a TPS MMORPG with open world roam ability.

We have goals set out on the project page, if you want to join in and help us out, by all means, just ask and tell me what you are willing to do. Right now two of us are taking the blunt force of the entire project from converting the structures into proper naming conventions, making the files readable, translating, and de-spaghettifying the code.
I'll post some pictures and updates as we go through it when we have something to show for our work.

If you want to see how far we got, the link is below.


After a few months, we are now at the final stages of getting the source code to build. In planning, I am posting some python source code created by 'Phantom*' for Blender. This script allows you to import, and export gunz models and modifying them. It does not allow for the create of animations though, so animations will have to be mapped to preexisting animation files. When I get the game up and running, I might continue off of his script and create the animation portion. This is being posted here without his permission, but at least credit was given where it was due.

Check the version you want to use.
* (5.26 kB - downloaded 775 times.)* (16.17 kB - downloaded 495 times.)
* (30.86 kB - downloaded 511 times.)* (26.67 kB - downloaded 574 times.)

For more information on how to use the files above, check out these links.
(Installing Importer)

(Installing Exporter)

General Talk / My new setup :)
« on: April 13, 2012, 07:28:39 pm »
So I bought my new alienware, check out my new setup.

My new alienware

The laptop is my media device that streams hd wireless to my tv. All 10 terrabytes are hooked up via usb3.0 usb hubs and one firewire.

New wireless setup with my laptop transmitting wireless hd to tv.

Theory Central / World Domination Thesis
« on: March 29, 2012, 06:59:36 pm »
I intend to write a thesis on how to take over, control, and create peace in the world. And ideas on methods for controlling the human psyche would be appreciated, as well as and ideas on how you would go about doing it.

Beta Releases / Very basic memory scanner
« on: February 11, 2012, 02:53:50 pm »
My intro project to get back into programming is finished. This only scans 32 bit programs correctly since I didn't use the x64 memory block structure. That is a pretty simple fix, but a little more work then I wanted to do for a introductory project.

* Memory Scanner.rar (458.83 kB - downloaded 727 times.)

Project Advertisment / Memory Scanner
« on: January 29, 2012, 08:54:08 pm »
So, I've decided to start on some projects to help get me back into programming since I took a insanely long vacation due to the military. First step on my list, is to create a memory scanner. Commonly found ones are artmoney, TSearch, CheatEngine, and a few more lesser known ones. Anyhow, I haven't quite decided if I am going to do it as a console application or a Win32 application. Just pumping this information out to whoever stayed active in the past 6 months to show that I am indeed still alive. Lol.

Project Advertisment / FPS Engine
« on: November 26, 2011, 01:12:31 pm »
I know it has been a while since I've posted anything. The reasons for that are that I've been in military training, tech school, etc. I finally made it to my new base and I've started to settle down. Thanks to that, I can start back up on my projects. This is a continuation and preview of what the engine is currently capable of. This engine is what is being built in the walkthrough I started about a year ago. I've been frozen in progress on it for about 6 months now thanks to bmt and school, but I'm free to continue it now. I've been running into a lot of issues with release vs debug builds. I literally had to scrap parts of the project because for some ungodly reason, the STL vectors continued to crash on me in release mode, yet worked perfectly in debug mode. Thanks to that, I've rebuilt my model loading and management system 5 times now. I literally have 6 different ways of loading in md2 files at the moment. Regardless of the situation, I am here to show off what it currently is capable of. Some of the highlights are below.

1. AABB collision detection budded with OOBB to create fast collision detection at low performance costs
2. Supports transparent images
3. Supports all major image formats
4. Supports md2, obj, asc, md3, md4, md5, 3ds, sstl model formats. However, for standardization and freely available models, I will probably only stick to md2.
5. Supports 3rd and 1st person cameras.
6. Shitty AI.
7. Ingame debug menu.

1. Incomplete collision detection. You cannot stand on objects without being teleported off to the side. Inherent risk when using OOBB's. Can be fixed eventually.
2. No networking.
3. Lack of input validation or input prompts in general. Not created yet. I'll probably use the system I created a while back for GUI's in OpenGL.
4. No terrain height. The ground is 100% flat. There is no heightmap support as of yet.
5. Limited movement system. Nothing near gunz online nor as closely rigged just yet.

Humor / Hell Explained by a chemistry Student (hilarious)
« on: May 14, 2011, 03:21:58 pm »
Emailed by a friend...

The following is an actual question given on a University of Arizona chemistry mid-term, and an actual answer turned in by a student.

Bonus Question: Is Hell exothermic (gives off heat) or endothermic (absorbs heat)?

Most of the students wrote proofs of their beliefs using Boyle's Law (gas cools when it expands and heats when it is compressed) or some variant.

One student, however, wrote the following:

First, we need to know how the mass of Hell is changing in time. So we need to know the rate at which souls are moving into Hell and the rate at which they are leaving, which is unlikely. I think that we can safely assume that once a soul gets to Hell, it will not leave. Therefore, no souls are leaving. As for how many souls are entering Hell, let's look at the different religions that exist in the world today.

Most of these religions state that if you are not a member of their religion, you will go to Hell. Since there is more than one of these religions and since people do not belong to more than one religion, we can project that all souls go to Hell. With birth and death rates as they are, we can expect the number of souls in Hell to increase exponentially. Now, we look at the rate of change of the volume in Hell because Boyle's Law states that in order for the temperature and pressure in Hell to stay the same, the volume of Hell has to expand proportionately as souls are added.

This gives two possibilities:

1. If Hell is expanding at a slower rate than the rate at which souls enter Hell, then the temperature and pressure in Hell will increase until all Hell breaks loose.

2. If Hell is expanding at a rate faster than the increase of souls in Hell, then the temperature and pressure will drop until Hell freezes over.

So which is it?

If we accept the postulate given to me by Teresa during my Freshman year that, 'It will be a cold day in Hell before I sleep with you,' and take into account the fact that I slept with her last night, then number two must be true, and thus I am sure that Hell is exothermic and has already frozen over. The corollary of this theory is that since Hell has frozen over, it follows that it is not accepting any more souls and is therefore, extinct..... ....leaving only Heaven, thereby proving the existence of a divine being which explains why, last night, Teresa kept shouting 'Oh my God.'

Humor / New gen super hacker
« on: May 13, 2011, 10:26:36 pm »
A hilarious video Samo showed me.

Technology / Mind Reading Technology at its cutest!
« on: May 09, 2011, 11:35:22 am »

Beta Releases / My OBB Collision class
« on: May 03, 2011, 11:35:05 pm »
Just a beta demo video of my class showing off the collision detection. It works... mostly. There is a strange glitch I am trying to work the kinks out of. But this is the class that will be used to detect collision in cooperation with AABB collision detection in my FPS walk through.

Technology / Android Anatomy
« on: May 02, 2011, 08:10:00 am »
Lol. This is true explosion view of advanced technology.

Updates / Updated youtube tags
« on: April 27, 2011, 08:47:53 pm »
Updated the youtube tags to allow using HD and fullscreen mode while on this site.

C++ / 3D FPS Walkthrough
« on: April 26, 2011, 02:05:39 pm »
Video 1 has been uploaded. The software I was using does not like OpenOffice's powerpoint feature, so it crashed mid record. I patched the video with a new recording, but it is painfully obvious after a few minutes in where it happened. This video is in low quality since it is a powerpoint only for the first one. Anyhow, enjoy.

Planning the game
Download PPT(.obp): * 3DFPS_Walkthrough_Pres.odp (868.12 kB - downloaded 699 times.)

The Initial Code
(After reviewing how youube converts the videos, recording fullscreen is a bad idea. The next video will be recorded at a lower resolution so you can see the text better. Learning as I go.)
Download Windows Source: * 3d_FPS_Shooter_1.rar (95.87 kB - downloaded 710 times.)

The cWindow class
Video on the left is the tutorial. Video on the right is the debugging session.
Download Windows Source: * 3d_FPS_Shooter_2.rar (106.34 kB - downloaded 660 times.)

Point.h Subclass
Tutorial is on the left. Debugging session is on the right.
Download Source: * 3d_FPS_Shooter_3.rar (108.55 kB - downloaded 630 times.)

The cMatrix
(No source code released for this video... Check a few videos down.)
Download Windows Source: NONE

Point.h Subclass(Refurbished) and Utilities.h Header
I cover the additions created in the Point.h class as well as program the Utilities header from scratch. Most functions will not be commonly used in this header, but are nice to have just in case we need them later on. The Utilities header was done quickly, so I may have missed some explanations. If so, please do tell me so I can explain it properly to you. Also, make sure to download the source code for this version. There were some bug fixes in the Point.h class that I forgot to mention, so get the updated version here.
WARNING: The source code in the attachment contains ALL of the code you see in the video. Even the parts we have not covered yet. I suggest ignoring them since the code is still in the alpha stages and has not been thoroughly tested and could cause random crashing, and or infinite loops. It is best to ignore it and follow these tutorials to gain a understanding of what is actually going on. That being said, the tutorial will NOT compile. Do not worry about that at this stage as we are still covering the basic systems first. These have already been debugged and are 100% working.
Download Source: * 3d_FPS_Shooter_4.rar (194.47 kB - downloaded 692 times.)

Our First Visual Progress
We get a working example finally to see. I go over the CommonHeaders.h header as well as the Main.cpp source file. I also show a sneak peak of what we will be doing in the near future. Check it out, and ask questions if you don't understand something. There was no source code released for this video. Once we finish up the collision detection classes, I will upload a new source code rar file.
Download Windows Source: NONE

Working from the Sky down -> Collision detection classes
We start creating the collision classes. We start from the wrapper and work our way down to the bare bones. There is no source code for this video. There will be once we finish up the collision code in the next video.
Download Windows Source: NONE

Working from the Sky down -> Collision detection classes
Covering the AABB and OBB classes. I also get a working visual up and running to see the results. Check out the site for the latest source code. Remember to download the right one! It should be located RIGHT above the video!
Download Windows Source: * 3d_FPS_Shooter_5.rar (239.47 kB - downloaded 737 times.)

cCamera Class
Quickly going over the camera class for viewing the virtual world.
Download Windows Source: NONE

All about Input, Images, and creating a demo

Download Windows Source: * 3d_FPS_Shooter_6.rar (1509.93 kB - downloaded 707 times.)

[edited name=Celestialkey date=1303893178][/edited]
[edited name=Celestialkey date=1303952169][/edited]
[edited name=Celestialkey date=1303952987][/edited]
[edited name=Celestialkey date=1303953098][/edited]
[edited name=Celestialkey date=1303954594][/edited]
[edited name=Celestialkey date=1303954878][/edited]
[edited name=Celestialkey date=1303955110][/edited]
[edited name=Celestialkey date=1303955163][/edited]
[edited name=Celestialkey date=1304207604][/edited]
[edited name=Celestialkey date=1304207763][/edited]
[edited name=Celestialkey date=1304289108][/edited]
[edited name=Celestialkey date=1304530046][/edited]
[edited name=Celestialkey date=1304532407][/edited]
[edited name=Celestialkey date=1304548585][/edited]
[edited name=Celestialkey date=1304550135][/edited]
[edited name=Celestialkey date=1304550476][/edited]
[edited name=Celestialkey date=1304553752][/edited]
[edited name=Celestialkey date=1304644873][/edited]
[edited name=Celestialkey date=1304644980][/edited]
[edited name=Celestialkey date=1304737041][/edited]
[edited name=Celestialkey date=1304737083][/edited]
[edited name=Celestialkey date=1304831576][/edited]
[edited name=Celestialkey date=1304913083][/edited]

Vote away.


When this thing fires, it sounds like God slamming his car door.

Oh... Freaking impressive. I want one!

General Talk / Rap Battle - Me vs ?
« on: April 15, 2011, 04:13:16 pm »
I am literally bored out of my mind. Because of that, I am starting a rap war. Of course, insults are appreciated, it is a war after all. Only a few rules...
1. Computer Related (Not limited to programming)
2. Address the person you are directing the rap to (e.g. -> Celestialkey - Start rap on next line)
3. Just something to kill time and make some people exercise their creative side!

-> All people who ask for help on their homework without ever even attempting a solution or trying it themselves.

I'll start this rhyme,
so pound in time,
to the beat of these words,
as I insult nerds,
with a complex chime.

Screw all the logic,
do embarrass yourself,
I'll be a demagogic,
and appeal to the shelf.

You sit and you ask,
without any hesitation.
so many of you fuckers,
could group and form a nation.
You ask and then you plead,
until till some poor sap breaks down to concede,
to give you a solution to a problem you need.
No matter how simple,
you seem to ask for more,
to a question from your class.
I thought you were a fucking sophomore?

Since when has the mind
of thousands of people
start to get bind
with the lack of effort.

A simple Google search
or even a little trying
gets so much more then a lazy bitch crying.

Out of pity I help,
but inside I scream,
at how helpless you will be
when your ass works for me.


Pages: [1] 2 3 4 5 6 ... 20


* Search

* Recent Posts

Image Comparison by Shishka
[May 15, 2017, 01:18:02 pm]

Re: srchub - free source code hosting by Nathan
[December 14, 2015, 11:37:02 pm]

Re: srchub - free source code hosting by Celestialkey
[November 27, 2015, 08:51:42 am]

Updates by Nathan
[October 30, 2015, 08:27:36 pm]

Re: Client-Server Messaging by Nathan
[October 25, 2015, 05:48:57 pm]