I recently had a thought provoking discussion with my girlfriend regarding video games and education.



She graduates in a few days and she has been telling me all about how excited she is to be done with collage. No more tests, no more homework and no more papers written in MLA format. (She is an English major. )
With a sigh I expressed my jealousy because I have at least 1.5 years of school remaining provided I pass all my classes. I droned about how the classes I have to look forward too are mostly boring or extremely difficult (so I assume.) She asked if there was anyway for me to incorporate my love of video games into the projects i have to do for my homework over the coming year.

In the Computer Science department where I go to school there is little interest in computer gaming among the majority of the teaching staff. As such it is very doubtful that there will be any way to apply my enthusiasm for games to my CS education. I do rather wish that They would take a more game focused approach to things. I believe it would help many of us be more interested and more motivated to do the assignments and learn the material. Alas, old men stuck in their old ways.

My girlfriend then got talking about how game developers need to start slipping educational aspects into their video games. I responded in the negative. Thats not really a good idea. While learning is great it does need to be seperate from recreation. Realize that I dont see that as the grand over-arching ideal of video gaming. But i do believe that if a game is intended to be educational or have aspects of it that teach you things about the real world, then the game should be advertised and sold as an "Educational Game." If Bethesda or Square Enix started adding little elements that told them about the usual habitat of the animal they have spent the last 3 hours killing over and over again so they could make a leather jerkin to sell for 2 gold pieces, they would loose money on the time spent researching and adding that information and maybe even loose customers because they are not interested in being fed facts about the real world.

Now I must say, that the concept of merging video games and learning is totally lost on me. If there was some colonial RTS that I could have played that legitimately taught me about the Revolutionary war (in the US) then I would have paid MUCH more attention. As it was I no doubt remember just as much as the next person who slept through it all.

The problem with educational games these days is that they are generally designed by teachers NOT by actual video game designers. I believe that If a game designer were to apply his/her knowledge of game design to making something that taught you rehttp://www.blogger.com/img/blank.gifal world information then (and then sold it as an educational game.) I believe that a quality educational product would be the result. And whats more important, it might even be fun.

I offer as an example A game I encountered when I was looking around at learning HTML5 and how to use it for web based game development. Its a game that helps you increase your typing speed and I have spent far more time playing it than I should have. but its fun, and I have seen a noticeable improvement in my typing skills as a result. Give it a try its free. oh, and I made it to level 35. can you beat me?

Z-Type
WE HAVE SEMI-FUNCTIONAL NETWORKING!!!
That doesn't sound like much you say? well before passing such harsh judgment you should understand that this is a significant barrier that has been defeated. From here it SHOULD (and I emphasize should.) Be a short ride to having the game playable. (not done, just playable) This is because we have working code for almost every other main feature of the game.
I for one am quite excited about this progress and shame on you for being so callous towards our success...:P
GM here,

I've been busy and promising evidence of my work for some time now. Supposedly I was going to show some video and screenshots for several weeks.

No more waiting I am presenting my procedural terrain engine.

It uses the incredible PolyVox library (http://www.volumesoffun.com) to store voxel information and several types of fractal noise to generate lowlands, highlands, mountains, and caves.

It has been a fun learning experience. I got to experience the frustrating recursive principal of shaders (you have to know how to do shaders before you can learn how to do shaders) I also got to play around with paging and set up a mesh pager in Ogre. I also got to play around with Voxels. They are the hot thing right now and I hope they get more popular.

On that note this project is being shared open source on Google Code.

Check it out at (http://code.google.com/p/senior-project-voxel-terrain-generation/)

Still figuring out the exact license I want to use, but I don't care if people want to use it or make money off of it. Later I might change that but for now dig in and surely you can make it better.

Also on another exciting note. I AM GRADUATING THIS WINTER! WOOT! Just had to get that out. I'm so excited to be done with school. Maybe I'll change my mind after working for a while. We shall see.

Pictures after the jump!


So I came across this game a few months back and thought I ought to share it. It is, in my opinion, a prime example of good design and innovation in a puzzle game. sadly I haven't seen much out there that has impressed me lately, this game being the exception.
Hallo All's!!
I am pleased to announce that we are now looking for an artist. Yah we finally decided we were getting really sick of looking at ugly 'place-holder' graphics. so we are calling out to all artists that may be interested.

The announcement will also go throughout the art department here at school as well. So we expect to receive some applications. We have also found out that we may be able to count this as an internship for the art student that we 'hire.'
I put hire in quotes because we dont actually have money to pay anyone so if money ends up being involved it wont be promised, and it wont be until the game makes money.

If you are someone who would be interested in filling our artist position for this game, go to our website and apply using the contact form. What website you say? well let me tell you...

I have just finished putting the final changes on a legit website for our company. (We are awesome) If you would like to go take a look, please do. it contains a description of our current game project, and a contact form where you can get a hold of us or apply for the art position. or just throw insults at us. whatever floats your boat.

Heres a link: http://www.novaboxgames.com

And last but not least, an actual project update:
We have come to our senses and started developing a serious storyline for this game. It occurred to us that it might behoove us to have an engaging single player campaign on release. (no duh) so we have started story writing and listing the various arts we will need. And heres the really interesting part:

We have set a goal to have the game released by end of Quarter one 2012. To this end, I have been working my butt off the last two weeks to try to get this game playable. At one point I had the networking down and working but it was brought to my attention that the networking architecture I had implemented may not be sufficient for multiplayer over the internet.

When we first started this project we did it with a fun game to play at LAN parties in mind. It has grown quite a bit since then, in many ways. but we still feel it is achievable. Part of that growth was that we wanted to make this game available to a wide audience and as part of that we wanted to allow for an online multiplayer aspect.

So when I found out we needed A different architecture for the networking I let out a sigh and rewrote the thing from scratch. We are now using a design that should allow for smooth networking over the internet. Testing is still underway but progress is being made. I hope to have the game playable by the end of the thanksgiving break. (Unfortunately, Skyrim caused a bit of an...unfocused period...but I seem to have got a handle on that addiction :P)

I will be talking about the process I went through in deciding on a networking structure in the next blog post.

Until then, don't die. just think of all the fun you would miss out on.
You have heard the rumors, You have waited on baited breath, and now, you FINALLY get to see some kind of actual progress. Something more than just words...
Ok im done trying to be dramatic. Anyway here it is.

http://www.novaboxgames.com/temp

This is a prototype for the game that I wrote using javascript. its just an example of the major gameplay feature that we are planning.

Move around with AWSD, target with the mouse, attach modules by pressing E and detach them using Q. Sorry it doesn't have enemies or actually shoot. but it does calculate the speed based upon the total mass of the ship and all attached modules. Modules also store their own angle which will allow them to shoot at whatever angle they are attached. this will allow the player to have guns attached that shoot behind the ship as well as front and sides.

THIS IS NOT A FINISHED GAME. its not even a game. its a proof of concept, view it as such. If you happen to have any suggestions or ideas. feel free to post a comment.
So you might be wondering if you are reading this blog where the videos I promised are.

Well I decided to implement a small seemingly insignificant feature to make the video look better. This ended up breaking the entire code base, and I just barely fixed the problems I created.

It came down to threading issues between Ogre and OpenGL.

It turns out Ogre is not thread safe (should have seen it coming) and OpenGL is even less thread safe. OpenGL is a state based language. It has one state where rendering can take place and another where objects can be created.

When creating a manualObject in Ogre. One must call the end() method to signal the completion of the manualObject. This call makes several rendering calls in order to place the created mesh into the Ogre rendering Pipeline.

Unfortunately this means if you try and make a second thread which creates your manualObjects, then the end() call could be made in the middle of the main thread's OpenGL rendering sequence. As you can't start the same state twice in OpenGL this causes a nasty exception and a crash of the engine.

There are some ways to get around this but it requires some crazy synchronization of GL state sharing. Trust me it gets nasty.

I decided to take the easier way out. I synchronized all rendering operations on the main thread. The second thread creates the manualObjects but does not call end(). It then passes the objects to the main thread which calls end() and loads them into the rendering pipeline. This fixed all my errors with threading and OpenGL. I have some optimization issues I need to address, but that can wait until a later time.

Now I am working on terrain generation and preparing some videos to show my work. I also might walk through some of my code once I clean it up a bit.

In other news Corndog has been hard at work and prepared some prototypes of our asteroids clone. (The title is still being discussed. He should be posting some links to the javascript prototype he created soon.


GM here, fresh from one internship into another and deep into my senior project.

One might say I'm motivated and dedicated and seeing as I only have until mid-December to finish, that would be a correct assessment.

Don't get me wrong I do enjoy working on my project, and the engine I am creating will likely be used in several Novabox productions in the future.

I am working on a procedural terrain generation engine using voxels. No, not a minecraft clone! This engine features smooth rather than cubic terrain and provides a more realistic appearance. Also minecraft is limited to two dimensional paging where I am working on implementing three dimensional paging.

Recently I've made several advances on the engine, and it is ready to be demoed. Currently it only produces flat terrain and only pages in two dimensions, but it is a start. I hope to post videos, design, and some coding tidbits over the next week.

On another note, Corndog has been at work on another one of our projects that does not have a name yet... He has made great progress, and it is likely we will be seeing some video posts from him soon.

Till next time!
Hey everyone. I'm here to give a brief update, just so people will stop thinking we died, and have stopped working on the projects. Not true, we are completely alive just occupied with summer internships and video games. I have recently become a fan of Fable 3, and just so shortly after escaping the grasp of Crysis 2. Of course Minecraft also has its pull. However we continue to work. Corndog is working on his 2D physics engine, just trying to work out a couple tricky math details. I am waiting for him to post his changes to our svn.

While I am waiting I have been busy on my senior project (which might morph into a future Novabox title) and adjustments to the Gunslingers storyline script. If my wait continues I will move back into the code for Gunslingers.

I lookforward to presenting demos, and allowing readers to test our work. Hopefully soon.

Until next time!
The last few weeks all development time has been spent in the pursuit of writing a simple physics engine that uses sprites. I'm taking this approach because we found that Farseer and other 2D physics engines will not accomplish what we need. there are certen limitations in their "joints" systems that prevent them from being useful in this application.

By way of explanation: Farseer was working great until I got to the point where we wanted to use a "weld joint" (the Farseer rigid joint) to attach two bodies for constrained rotation. It seems that this joint is not, in-fact, totally ridgid. when you apply a rotational force to the bodies, the joint tends to bend. I spent many hours attempting to find a solution to this issue, but alas I have been left to my own devices.

Currently, things are looking up. I have most of data needed for the physics calculations being set up or retrieved, and the only thing left before I can apply the various maths that are required is to calculate the surface normal for the surface thats doing the colliding. In all my searchings I have found the Stack Overflow forums to be invaluable and the people there, more than willing to help.

If all goes according to plan, I believe I may have the physics finished being implemented by the end of this week. but then again, when do things ever go as planned?
Based upon the title you can no doubt guess what has slowed down our update and production rate.

*cough!*

We are however making progress on the current project and if things go as planned we should have a playable version (albeit ugly) by sometime in the next few weeks. *fingers crossed*

Back to coding with me.
If your completely out of your mind, then you may have previously read our blog that we were using the Farseer physics engine. And while we may still be using it for the Gunslingers project, we have recently decided to give it up and write our own physics for this side project. I know you are all disappointed but it seems that what we were using it for just was not working out. I will say though, that I now know more about using Farseer than I thought would ever happen.
So as far as a status report for the last month or so, we have moved back to square one. and are starting from scratch with a better vision in mind.

Woot.
I feel responsible to tell you about NovaBox's current project change. Gunslingers will be completed (we sure hope). For now it is being put on the back burner. Reason? We have recently been placed in charge of our university's ACM (Association of Computing Machinery) game project. It will be a super awesome version of asteroids that will take place in the middle of an old spaceship scrapyard containing the remnants of a long forgotten war. What? Another asteroids clone you say? No, my friends, there is a twist to this version that makes it quite different and infinitely more interesting. We are pretty excited about this project. On top of its awesomeness its also fairly simple, and should allow us to complete it in a fairly short amount of time.

EDIT (GM Riscvul) - Hey Guys! I know I promised more information on Gunslingers and it will come! I have recently been informed that the first half of my senior project will require roughly 30 hrs a week in order to get an A. This has been crippling my free time. I am going to be in charge of networking for this small side project. Hopefully this code as well as many other pieces of code from this project will benefit Gunslingers. Hold on for more updates on the ACM project, and Gunslingers.
I have wonderful news. but, to increase the tension and make you squirm with excitement about what it may be, I will first offer a public apology to any aliens, time travelers, espers, pretty girls (I hear they actually exist) , single celled organisms, animals vegetables, inanimate objects, or the unthinkable, actual humans, that my have at some point asked the universe why we have failed to post for the last month (or however long its been) because they are insane enough to follow OUR BLOG. Disclaimer: should any of the aforementioned groups or individuals feel in some way insulted, debased, degraded, ridiculed or in any other way injured, by the above statement because they actually do follow the blog. We, the board of directors at Novabox Studios Inc, officially and finally disown, renounce, reject, sack, and ultimately, fire, the individual who goes by the name "CornDog." We would also like to state that "Corndog' Is a stupid name.
...OOOOK you all tensed up now? good. CAUSE WE HAVE STARTED MAKING PROGRESS AGAIN!!!
I have just succeeded at getting the camera to move with the character. turns out it was something really stupid. And so we can now get down to business.
Well thats really all for the update.

CornDog

PS. I constitute 50% of the board of directors.