Buried in Plastic – Piracy and Children

No Gravatar

I’ve been doing a lot of thinking recently. I know it’s rather dangerous but I’m at the stage where I’m starting to firm up some thoughts, figure out plans of attack etc. One of the issues is piracy and how to combat it’s effects / is it worthwhile spending that time. You all have heard the arguments for and against so that isn’t the point of this column. I’m looking at another impact of piracy currently unseen. So to begin let me tell you what I overheard yesterday.

I was in a major chain store, one of those ones with the incredible discounts and with a toy sale on the games were even cheaper than usual. In fact here in Australia you can grab Rhythm Heaven for $30! That’s $40 off retail! A wide majority of the titles are priced between $20 to $40 with the shovelware for kids being at the lower end and Pokémon being the higher, but that’s still at least a $20 discount for platinum. So right now is the best time to purchase those DS games you have been putting off, right?

Well what horrified me was a mother with her four young girls looking at the DS games, all of the girls looked between six and fourteen. Now a couple of the girls were running up to their mother going “I want this one”, nothing unusual there. However what horrified me was the line that came next, the very next words out of the mother’s mouth in response to purchasing some damn cheap games was

“No, I won’t buy the Nintendo games, Daddy will download what you want when we get home”

I was dumbfounded, shocked and it took every bone in my body to resist walking over to the lady and giving her a piece of my mind. More violent thoughts also raged through my mind, but I just kept to myself and continued to walk, ashamed to be anywhere near the lady with the bad ideas. Piracy is not a victimless crime, it’s just that when you do it all you see is a line on a screen and an option to download. But that isn’t the issue here, the issue is “what does that teach the children?”

Now I’ll be the first to admit that I have done piracy in the past, when my family got our first PC (a 386dx, we quickly upgraded to 486 with math co-processor!) my father “borrowed” software from friends at work on 3 1/4″ floppies. Jill of the Jungle, Worms, Duke Nukem, Commander Keen 4/5/6 etc etc. Hell when Pokémon came out I didn’t have a Game Boy so I grabbed a emulator and played on that, not quite the same but it was still fun. But when I did that I made those decisions myself and when I got my Game Boy and later my N64 I was constantly saving and hunting down gaming bargains to play on my system. But in terms of those four girls, what message does it send that they can goto daddy and he’ll download the game onto a piracy cart so they can play what they want on their DS without putting out cash? Isn’t saving and purchasing one of the earliest and easiest lessons for parents to teach their children? Isn’t stealing wrong?

I don’t know about you but I’m feeling that this is disappointing, if parents will not encourage their children to save their money and purchase even the cheapest of games aimed at them, what hope do we have for the future. Do we need to start educating people that there is real people they are harming with the blasé attitude towards piracy? I have always been of the opinion that you should only make the actions that you are prepared to accept the consequences for. If the kids can figure out how to get a R4 to work, where to download the ROMs from and can explain to me what they’re doing? I’ll give them that. But there is a better solution for raising gamers with a cheap wallet.

And that solution is my uncle. He has brought up his kids rather awesome, he’s taught them about ratings, went with a N64 rather than a current gen console and been cheap ass gamer the entire time. The kids still enjoy the games and can play to their hearts content. Hell he bet his son on swimming lessons that if he completed to a certain level he would purchase a Xbox 360 (and is now eating his words after his son completed two courses in three weeks) but the major difference is there. His kids save and scrimp to buy the games they want, they recognize things beyond them and hell, they are excellent gamers.

The morale of all this? Piracy is robbing more than the developers, it’s also hurting your kids too. Can you really afford it?

Boo scenery and ideas

No Gravatar

Managed to get some time and some pictures done, sadly all on note paper and stored in my back pocket for two days. In the scribblings are some scenery ideas, buildings and a general feel for what it could look like. Also is an idea for the ghost hunter, some sort of crazy old british huntsman. If I end up drawing him again, he’ll probably have a pith safari helmet. Also is an image I was getting some ideas from, a town picture of puddle lane of all things.




P.

Michael’s Update: VIPM mesh generation (FINALLY)

No Gravatar

Yep. Finally! Its been fully completed. I remember some time a few months ago I went and implemented about 80 – 90% of this thing in my game engine only to be hindered by a bunch of run time errors. At that time I had a very good idea on how things should be done but not completely. I decided then to just not worry about it since I already had frustum culled VBO terrain that was loaded from an external file. But knowing me it just wasnt enough. I wanted quad tree formations and I wanted it now!

There really wasnt that many run time bugs to get through, mainly logic problems. That, and I had to create a new class which allowed me to generate my own heightmaps on the fly in my game engine. This is a lot more useful than just loading an external file and using that. Theres the added fun that no matter how many times you load the game now. It’ll always generate a different terrain. Not to mention you can generate three different types of terrain using three different algorithms.

I also went about and fixed up the rendering of objects some more. I still want to get that scene graph finally going but nothing is going to happen until I get some solid work done on my I&J assignment. I’m planning to really get into it this week coming. I’ll try knocking out my part of the design document, then get straight into the design and implementation of the website. And after all thats been set up, just simply work on the coding for the assignment. Should be all good.

And now my log summary of the whole thing:

Outlining changes made to the project…
1) First off. Finally fully implemented VIPM terrain generation in the game engine. Its about fucking time!
2) Modified AppModel to reflect the loading and passing of the new terrain…
3) Modified Vector3 to not include a vector like operation. This was instead moved and is now contained in the Terrain class. It is an embedded terrain specific function call for its own vector struct thats used in the quad mesh.
4) Modified RendererOpenGL to harbour the rendering of the VIPM mesh. Also changed around how things are rendered. (For the better).
5) Modified CurvedSkyplane (minor).
6) Created a new class called HeightmapGenerator which does what its name suggests, that is, creates heightmaps for us from the choice of three different heightmap algorithms. They are: Midpoint, faultline, hill. Does a lot of other cool stuff.
7) Changed Terrain.cpp and .h significantly to harbour these changes. There was also a lot of code that was fixed in order to display the mesh correctly etc.
8 ) Updated stdafx.h to reflect some std::max and min definition problems…
9) Updated vcproj.
10) Updated project exec.

Surprised that it was only that big?

I bet you were. I have a video demo on my skydome stuff but I cant exactly show you what I’m doing until after we get permissions and all that other crap granted.

So I’ll leave the notice here just to notify my team members that theres a video waiting for them if they want to see what I’ve been up to…

Michael

Michael’s Update: Sweet sweet sky domes & Finite State Machines!

No Gravatar

NOTE TO JON: Fix the avatar and personal pic upload problem please!

Hey there, I’ve finally managed to completely implement skydomes into our game engine. It took me a while to finally get rid of all the kinks that were slowing the final product from being finished but now its all working! The visual display is quite good, but theres a bit of re-working to be done on making it look good a long with any scene we wish to use. The hard-coded scene we have now isnt really going to be used if I can do anything about it in the coming weeks. I’ll give you a summary on what I’ve done to finally get it working in the last couple of days:

Outlining the changes made to the project…
1) Modified AppModel considerably to reflect the changes made with SkyDome and how its handled. Also got rid of a lot of misc crap that was unnecessary.
2) Modified WinMain to reflect changes made when shutting down game content.
3) Made some changes to Vector3 in regards to how its public variables are handles and so forth. Also added in a bunch of new methods and operator functions I thought were necessary for future works.
4) Made minute changes to RendererOpenGL.
5) Changed the formatting and handling of if statements in ColourStructs.h
6) Made some considerable changes to SkyDome as necessary to stop the buggyness of the code it was before.
7) Made a minor change with SkyShader and the handling of if functions
8 ) Made a minor change in TGALoader which now allows the user to specify whether or not they want a texture (rather than just the file) flipped when loading content.
9) Updated vertexSkyBox since I thought the use of glDrawRangedElements() was unnecessary and I think I was doing it wrong anyway.
10) Updated the project exec.

NOTE: Sky domes now work in our game engine! This is quite a step forth in the production in our game and the look we’re looking to go for when dealing with out door environments. I for one really wanted this thing working and so spent a lot of time slowly (very slowly) debugging through code and finding every single problem there is with the code and rectifying it.

It took a fair while, but I’ve finally managed to get it done. Hooray!
Yeah, I’m quite pleased with the result although when the stars are generated the do something weird, I’ll figure that out later after I’ve fixed other things.

Onto another cool feature that I’ve managed to successfully implement into the game engine. FINITE STATE MACHINES (FSM)!

Yeah this one was a bit of a bitch to get going but it all worked out nicely. It was also for an assessed workshop we had in our class and so that mostly motivated me to get things done. It took a while and I practically spent an all nighter to get it done since I had to do it my way and my way is the best way (in my opinion =p). Overall it was a success but the logic was shit since I couldnt be bothered making it any better, we just had to demonstrate its usefulness, theres no way I’m going to be spending a lot of time on workshops and so forth overdoing them when all you need to do is just demonstrate the basic principles and get full marks anyway. Thats one thing I learned the hard way last year. Do things, do them right, meet the assessment criteria, don’t do anything more or unnecessary and think you can scab more marks. It doesn’t work that way and you’ll just end up burning yourself out…

Anyway a summary of what I did in order to get the FSM working!

outlining the following changes to the engine…
1) Updated GuiManager, it was linking RendererOpenGL when it clearly didnt need to.
2) Ditto with MainMenu
3) Updated RendererOpenGL.h it had some minor errors.
4) Added the LUA dlls to the project
5) Updated the debug version of the LUA libraries again. It still was giving me build errors, hopefully this one wont!
6) Added two new classes which will be helpful in determining the usefulness of LUA in our game engine (taken from the week 5 workshop)
7) Updated the project exec.

Outlining changes to the project…
1) Updated several classes (formatting was incorrect in some parts and other things….)
2) Still developing a FSM (Finite State Machine) that will incorperate LUA into the game engine. This involves a lot of work and there is still much to be done. There have been an abundant amount of classes created with more to be included soon. After all is done, the FSM should run fine….

Outlining the changes made to the project….
1) Made MASSIVE / EXTENSIVE / INSANE changes to the Project.
Everything now compiles fine without link errors but I have still yet to test the bloody thing! Hopefully it will work! and no run time errors will occur! HERES HOPING!
2) Made changes to several files. Basically changed every LUA file I’d created and then some.
3) Updated the GameTimerHighPerformance class to be the one and only timing instance.
And thats about it! A LOT OF FUCKING CHANGES HAPPENED, NOT TO BE UNDERESTIMATED!

Outlining changes to the project…
1) Modified everything so that there are no problems with the finite state machine, only logic errors….
Works well and suffices for the workshop, when implementing the proper stuff, logic will need to be changed completely.

I wont bother listing the amount of classes I wrote, but overall I wrote around 20 classes and somewhere close to 2700 lines of code to get this thing working.

This marks another step towards my game engine and the usefulness it will offer when we start making our game. I’ll be endeavoring to actually getting the scene graph working as well as fixing up a lot of the rendering problems associated with it. I think that once I’ve successfully implemented the scene graph it will help solve a lot of problems that I’m currently facing and allow for a more robust engine.

I’m also thinking of getting spherical frustum going in order to blot out any other geometry that I’m rendering to the screen since the game is still quite slow on other computers. I’m also going to be spending time on finding out the reason why my game runs so poorly on lower spec computers. There is a tremendous bottleneck somewhere and I’m going to find it out.

I’m also going to switch my view on a lot of things and how aspects of the game are currently handled. I’m going to be switching some of the stuff which can be considered as ‘environment’ variables and change them to singletons if feasible. This is because singletons are useful depending on what you need to do and are better for lower spec machines as they don’t create the need to re-create objects, its not a design that I favour but its useful in games programming.

Heres a screenie of the game so far (NOTE: It looks kinda crappy since I have all the debug stuff going and the floor is black at the moment, real-time viewing is a must since its animated and so forth).

skydome pic

My art for the T-shirt comp

No Gravatar

Well, this was my art inspired from our lectures name and the funny thought of SPARTA while I was at it!spartanMasek
Quote to be put underneath image:
“Follow this spartan to glory and graduation!”

stock photo used: dr martin masek

I hear Martin is willing to pay $200 for a T-shirt with this pic on it!
hahaha, Jon was against it since printing such a thing would cost a lot of money, but its just so funny to look at.

The image was photoshopped by yours truly, it took me around 20 mins to get it looking like that. My brother was quite picky in wanting me to do it more perfectly, but I couldn’t be bothered. lol enjoy!

Michael’s Update: New GUI System Implementated!

No Gravatar

Hi all, posting here again to update you on my progress!

Its been the topic in our team for a while now and seeing as an RPG game really does call for a diverse GUI management and efficient system, I decided to prototype the first revision for specific use in our game. There is a total of ‘one’ mostly complete GUI that has since been implemented in the system to demonstrate its full abilities. The GUI system that I’ve implemented is OpenGL specific and hence would not be usable in Direct3D, porting over to Direct3D maybe a consideration for us later in this projects life, but by then I’d have improved on the system and maybe even implemented an even better one (The current one, though it is OpenGL specific, makes too many function calls for my liking but is the most correct way to do it).

To summarise the last few tiresome days of working on it to finally get it working heres my SVN commit summaries lol:

Outlining some MAJOR CHANGES to the project
1) Began paving the way to a GUI management system that will take care of all our problems and fusses that we have over GUIs and their practicality. I’ve only just got the foundation down and am now working on getting things to correctly render out.
2) Added a new bunch of classes, GenericMenu, GuiDefs, GuiManager, MainMenu (implementation of an actual GUI), all in the Gui folder. NOTE: Gui system is polymorphic!
3) Spent a shitload of time refactoring and adding new code to harbour this new concept of GUIs. Over 8 hrs of solid work, I also took breaks and timed out a few times. But basically I’ve spent an all nighter on this one!
4) Updated other classes which I saw needed a little bit of cleaning (nothing major)
5) Implemented a timer accumulator variable which keeps track of total game time, as well as a timer variable which just stores the current game time, it was better than just calling a method over and over and over for each method that needed time as an input.
6) For now you can build the solutions and test to see what I’ve done. But you’ll just get a black screen. Hit the F1 button to bypass the GUI that will be implemented later on when I get the time.
7) Oh, and I made a menu screen and everything that will be edited / changed / implemented in time to come.

Log 2:

Outlining some significant changes throughout the game engine…
1) Extensive work was carried out to get the Gui system properly implemented. I had a lot of problems when including files around the place. I discovered that inlining too many function calls can be both bad and good, but that also translates that the design of my game engine is poor. Old code on new code, what are you going to do? Like hell i can be bothered making a new game engine!
2) Modified code paths to reflect the extensive work carried out to get the Gui system working properly. Its about 80% functional right now, and im deciding on whether to implement methods elsewhere. Most probably will.
3) RendererOpenGL.cpp has 2 new methods. One sets up the Main Menu to be used, the other renders it!
4) MainMenu.cpp is now fully bodied and generates the desired output.
5) GuiManager, now actually ‘manages’ all menu type entities and has add, delete, retrieve functions that actually work!
6) Modified AppModel to reflect the changes of MainMenu (to send it to our renderer and make the call) as well as defining ‘setup’ methods to get the menu running on start up without affecting anything else…
7) Modified WinMain to reflect the loading changes.
8 ) Modified WindowCreator.cpp to reflect ‘object selection’ of GUI buttons with the mouse button. Its about 80% working and I’ll most likely change how things are done. It should be working but it isnt!
9) Modified GenericMenu to force another implementation method which ‘tells’ the system that its been clicked or whatever.
10) Adding new textures to the SVN since they get rendered along with the menu =p
11) Added a GuiManager.cpp to handle function call procedures.
12) Updated the project exec

Log 3:

Outlining changes that I’ve made…
1) Added DeleteMenuObjects() method which aims to delete menu specific items if the user exits the program before actually loading up any game content.
2) Cleaned up some stuff in windowCreator.cpp and fixed up more support for the retrieving of rendered objects.
3) WinMain was complaining that when I was deleting (trying to) the instance to AppModel, that it wasnt there and had already been deleted (or so I’m lead to believe, otherwise, why would it be complaining?!?!) So I modified one line to fix that problem =p.
4) Took out “RetrieveObjectID” from GuiManager, and shoved it in RendererOpenGL since it makes render calls and so forth…
5) Played around with ObjectIDs and fixed up most of the menu system (its around 80 – 90% done with fine tuning needed).

Log 4:

Outlining changes made to the game engine!
1) First off the bat, WE HAVE FULLY WORKING GUIs! Yes, I’ve finally managed to successfully implement everything into the engine and am very pleased with the result. Everything has worked out the way I wanted to with OOP included! I’m quite happy with my successful debugging practices as I found that the reason why objects were being returned in a weird fashion was due to the fact that it thought my gluPerspective fieldOfViewAngle was 45 degrees, instead of 90, also it didnt take into account my actual near and far clipping planes. Once those were fixed everything worked like a beauty, I fixed up some logic problems and wala instant perfection!
2) Modified windowCreator.cpp to have it so that when we ‘mouse over’ our buttons they change colour!
3) Modified windowCreator.cpp to have it so that when we click off a button, it fires the actual event!
4) Fixed logic problems in MainMenu and added set methods to appropriately render correct textures when ‘mouse over’ing’ and so forth.
5) Updated the problematic RetrieveObjectID() method as it was using incorrect data.
6) Updated the project exec! View the awesomeness of the GUI guys! =]

There you have it, a summary of what I’ve done in pretty much FULL detail! I wont bother going into too many specifics, only that I’ve spent a lot of time on this in a short amount of days and I’m really really tired as of now.

On another note, I’ve dyed my hair a more vibrant and cool red (of 2 different shades, a base colour and a highlight colour). Bought some new clothes over the weekend, and bought a stack of colour contacts to make my eyes go all sorts of colours. On Tuesday, I went to Uni with green contacts and on Wednesday I’ll come with purple ones! =]. I look hell cool with them I think =]. Azn looks ftw!

Now for a little more information

No Gravatar

When Paul and I came up with the Adrenaline idea we wanted something fast paced and fun where the gameplay revolved around being fast on your feet.  But we decided we wanted a Danny Glover crossed with Bruce Willis kind of character.  Frazer was the result, and as you may be able to see from this sketch, Jess almost completely nailed it first try.

 

Now we need to head off for the convention, but I will leave you all with two of Simon’s concept drawings.  They’re pretty damn good. So good in fact now he’s paid to do this stuff 🙂

 

In progress v2

No Gravatar

Work on a scene for Nullabor hits a stand still! Namely I’m not sure whether it’s good enough or not. Here’s a low res version. Take a look, and try and pick what’s wrong, because I know there’s something wrong, jsut not sure what.

test render

In progress

No Gravatar

Working on: Adrenaline scenery:
street
can’t see it too well, but there’s a hamster in one of the pipes.

Also, if time permits before Nullarbor, a scene with this guy.
snake