Since my last post I have found a new job. I am currently working as a holographic rendering engineer at Zebra Imaging (www.zebraimaging.com). I have been enjoying my new position and have been learning quite a bit. Holographic technology is very cool and the products that we have here are cutting edge.
It does make me a little sad that I am not working in games anymore (at least for now), however it has come to my attention lately that I have become quite bitter about game development and jaded as far as video games relevance on human culture and civilization. I find this most true when I look at the booming of social gaming and online gaming. I find that the lack of story or purpose to most of these games removes a key aspect that makes games interesting to me. I do not see the reason for putting in thousands of hours of you life into something with no goal. I feel that this is already the crux of life and that I play games to escape the pointlessness of life for a while. The epic feeling I get when slaying Satan in Castlevania: Lords of Shadow (a great game by the way), or defeating Bowser to save the princess, these are why I play games. I do not play games to receive an achievement for pressing the button 300,000 times to farm the same crop over and over again, merely to receive a glowing cow that simply sits on my farm.
I look at these latest trends and the amount of money that is going into the development of these social games and the associated recent closure of studios and cancellations of projects at some studios and it saddens me. (Edge of Reality being one, in regards to the termination of their Sims expansion project, most likely in lieu of the successful launch of The Sims Social and the noticeable trend of Sims players migrating to that service). Games are expensive to make, really good ones even more so. If publishers are not willing to risk the money to build something innovative and excellent, instead merely only willing to devote money to these social game experiences with no real depth or innovation (honestly there isn't any, its a formula, merely convincing players that they have an initial investment that they don't want to lose, thus encouraging them to come back), then what does this mean for games as an industry, or as a whole?
I know its not entirely the end of the games industry, there are still developers out there making great single player experiences. Some are still progressing in the aspects of innovative storytelling. However, I honestly do not believe that industry cares about the products it creates anymore, only the money is important to them. Strong arming reviewers, releasing day one DLC, micro-transaction models with devalued products, all of these are examples of this in my opinion. The only way this will ever change is if players stop putting up with the garbage and make a stand against poor quality practices. Unfortunately the human race has failed me once again and have whole heartedly bought into these atrocities at least for the foreseeable future. Until this changes (and I still have a job at Zebra Imaging) I don't know if I want to go back into game development as my full time job. We shall see though I suppose.
Regardless, this post as become more of a rant on games than the announcement of my new job. So I will leave it here with the thought that whatever happens, I'll still be a gamer, I will just be more careful with how I spend my gaming dollars, giving my money to companies that I feel still have a solid grasp on what gaming is and what it should become.
Showing posts with label Rant. Show all posts
Showing posts with label Rant. Show all posts
Tuesday, October 25, 2011
Tuesday, May 3, 2011
Art - Bathroom Starcraft Flyer
Something I whipped together today for our bathroom at work. We have noticed a large number of people who don't wash their hands... eww...
So a little Starcraft humor for the bathroom. Original artwork is owned by Blizzard.
So a little Starcraft humor for the bathroom. Original artwork is owned by Blizzard.
Monday, February 22, 2010
Recent Work, Lua Love, and My Weekend Retreat
It has been a while since I updated. Been a hectic February, life moves too fast and work is a pain at times. I had to pull an all nighter last Thursday to get a demo finished. I would normally have just asked for more time but this was my project and really my ass on the line. I wrote the research paper that was behind it, not really expecting the funding to come through and when it did, I got the work. I was very proud of the work I did but damn it was a struggle.
The project involved Lua, which I must say after working with Lua in both C and C# integration. I like C# much better. The .Net version of Lua integration is extremely easy to work with and the ability for C# to have attributes which can be put to use in registering exposed functions to Lua is a dream compared to working with Swig or writing your own function wrappers. I learned a lot though, about Lua and about C. I consider myself a good C programmer, a professional if you will, but there is never a shortage of things to learn. This project really stretched my expertise in DLL handling in windows in a C environment (not for Lua but still, I learned it because of this Lua project).
It is interesting to note that a DLL can be loaded into the program space more than once. Mind you this is generally not a good method of doing things, but sometimes a necessary evil. Care must be made though that DLLs are not loaded from multiple copies of the same DLL in the file system. All references to a DLL should be made on the same DLL file. If you do not you will give yourself problems because it will actually load two copies into program space and when you expect the DLL to have global variables that are maintained in the program space environment you will be rudely awakened to find that those global variables in your other DLL are in fact different than the ones you expect them to be.
Another interesting thing I picked up last week was the use of Lua userdata types. These data types are used to represent "objects" in Lua that are not considered one of the standard primitive types. These can be anything from C structs or pointers to C++, C#, or Java objects. It is basically just a pointer to memory in the Lua environment. The tricky things about these datatypes is that you can not create them in the Lua environment. You can only receive them from the main application. Thus the use of these data types are heavily reliant on the host application, functions that receive a pointer to something must be represented as a userdata type and not the primitive that it points to (if it is a pointer to a primitive of course). This obviously can cause some issues, especially when generating interfaces to pre-existing libraries. I found that Swig is not so good at handling this, so care had to be taken to fix some of my wrappings. Also, typedefs can be a cause of torment when dealing with Swig if the typedefs are not included in the header that is being "Swigged". The reason for this is that Swig thinks that these typedefs need to be represented as a userdata type which can cause problems when working with things like handles.
Finally, it should be mentioned that applications that use functions that have output parameters are also a very complicated issue when working with Lua. Lua has no concept of pass by reference. It only allows pass by value and as a result, any pointer passed to the function, when converted to a Lua wrap, is treated as a userdata type. Very inconvenient when Lua has a perfectly good multi-return mechanism built into the language. In fact this is so good that great care must be made to utilize it, unfortunately Swig once again fails at this because it does not know what is an input parameter and what is an output parameter. Now I don't know if I am just too thick skulled to know how to use Swig in all its faceted feature set, but I handled this by brute force modification of my generated Lua wrappings. I feel like modifying these wrappings not only gave me more control over what was being done in each function, but also provided better functionality and ensured that each function was being generated correctly. It took a bit more time but I was happier with the results, and I was able to fix all of the issues that possibly would have gone undetected for a few weeks, or months, or years, until those functions were used by a scripter.
Overall, I still love Lua, I think it is one of the best scripting languages out there. It is easy to use (on the scripting side of things) and not overly complicated to integrate. I was able to get scripts executing within a matter of two hours at the most, much can be said for that. The demo was a success and I am very excited to say that I was able to secure additional funding to continue my work. My managers were happy and thus I was happy. Glory day!
Oh and I beat Dante's Inferno this weekend... also a bonus, saw the anime for Dante's Inferno I was not impressed, more just a retelling of the game storyline. I think EA did a better job with Viceral when they made the Deadspace anime for that games release. It added something to the story that was not in the game. I also am not a fan of anime where they have a handful of different studios with different art styles writing different parts of one story. The change in art style confuses me, not that I am dumb, it just makes my eyes readjust to the changes in color pallets and the character movements. I hope to write a review on Dante's Inferno to finish up the trillogy of reviews (First Impression, First Look, and Overall review) but life is killer and I am super busy looking for a new job, planning my wedding, working at my current job, and working on side projects. As a result the blog always seems to fall to the back burner. Well... back to watching some anime before bed, and back to the grind tomorrow.
The project involved Lua, which I must say after working with Lua in both C and C# integration. I like C# much better. The .Net version of Lua integration is extremely easy to work with and the ability for C# to have attributes which can be put to use in registering exposed functions to Lua is a dream compared to working with Swig or writing your own function wrappers. I learned a lot though, about Lua and about C. I consider myself a good C programmer, a professional if you will, but there is never a shortage of things to learn. This project really stretched my expertise in DLL handling in windows in a C environment (not for Lua but still, I learned it because of this Lua project).
It is interesting to note that a DLL can be loaded into the program space more than once. Mind you this is generally not a good method of doing things, but sometimes a necessary evil. Care must be made though that DLLs are not loaded from multiple copies of the same DLL in the file system. All references to a DLL should be made on the same DLL file. If you do not you will give yourself problems because it will actually load two copies into program space and when you expect the DLL to have global variables that are maintained in the program space environment you will be rudely awakened to find that those global variables in your other DLL are in fact different than the ones you expect them to be.
Another interesting thing I picked up last week was the use of Lua userdata types. These data types are used to represent "objects" in Lua that are not considered one of the standard primitive types. These can be anything from C structs or pointers to C++, C#, or Java objects. It is basically just a pointer to memory in the Lua environment. The tricky things about these datatypes is that you can not create them in the Lua environment. You can only receive them from the main application. Thus the use of these data types are heavily reliant on the host application, functions that receive a pointer to something must be represented as a userdata type and not the primitive that it points to (if it is a pointer to a primitive of course). This obviously can cause some issues, especially when generating interfaces to pre-existing libraries. I found that Swig is not so good at handling this, so care had to be taken to fix some of my wrappings. Also, typedefs can be a cause of torment when dealing with Swig if the typedefs are not included in the header that is being "Swigged". The reason for this is that Swig thinks that these typedefs need to be represented as a userdata type which can cause problems when working with things like handles.
Finally, it should be mentioned that applications that use functions that have output parameters are also a very complicated issue when working with Lua. Lua has no concept of pass by reference. It only allows pass by value and as a result, any pointer passed to the function, when converted to a Lua wrap, is treated as a userdata type. Very inconvenient when Lua has a perfectly good multi-return mechanism built into the language. In fact this is so good that great care must be made to utilize it, unfortunately Swig once again fails at this because it does not know what is an input parameter and what is an output parameter. Now I don't know if I am just too thick skulled to know how to use Swig in all its faceted feature set, but I handled this by brute force modification of my generated Lua wrappings. I feel like modifying these wrappings not only gave me more control over what was being done in each function, but also provided better functionality and ensured that each function was being generated correctly. It took a bit more time but I was happier with the results, and I was able to fix all of the issues that possibly would have gone undetected for a few weeks, or months, or years, until those functions were used by a scripter.
Overall, I still love Lua, I think it is one of the best scripting languages out there. It is easy to use (on the scripting side of things) and not overly complicated to integrate. I was able to get scripts executing within a matter of two hours at the most, much can be said for that. The demo was a success and I am very excited to say that I was able to secure additional funding to continue my work. My managers were happy and thus I was happy. Glory day!
Oh and I beat Dante's Inferno this weekend... also a bonus, saw the anime for Dante's Inferno I was not impressed, more just a retelling of the game storyline. I think EA did a better job with Viceral when they made the Deadspace anime for that games release. It added something to the story that was not in the game. I also am not a fan of anime where they have a handful of different studios with different art styles writing different parts of one story. The change in art style confuses me, not that I am dumb, it just makes my eyes readjust to the changes in color pallets and the character movements. I hope to write a review on Dante's Inferno to finish up the trillogy of reviews (First Impression, First Look, and Overall review) but life is killer and I am super busy looking for a new job, planning my wedding, working at my current job, and working on side projects. As a result the blog always seems to fall to the back burner. Well... back to watching some anime before bed, and back to the grind tomorrow.
Thursday, December 17, 2009
What Happened To Scores in Games
I know I have been doing a lot of game reviews lately on the site, but this time I would like to talk about a design decision that I think is something that has subtly changed in games over the last 5-10 years.
High Scores in games...
Looking back over my game collection, this is one thing that has gradually been removed from games as time has progressed. I think a large part of this is the gamer points and trophy system that the new consoles have provided players. Now it is not so much about high scores, it is about number of gamer points and trophies that you have collected. We have turned into a society of completion gamers, trying to achieve a 100% goal everytime, instead of the society of competitive gamers that we once were, striving for a higher and higher score.
I believe the root cause of this is that the arcade environment is no longer a common meeting place for gamers, where people can come together in a dark, slightly smelly room, and compete head to head for a coveted place on a high score list. To see ones initials displayed in technicolor glory for the world to see on a publicly displayed system was once a grand achievement.
On one hand I think it could be argued that this has improved the design of games and has taught us that not every game needs to be about competition against others, that co-op missions and single player campaigns can provide better entertainment value. However, with the number of multiplayer deathmatch shooter games out there, Call of Duty Modern Warfare 2 being the most recent in the long chain of these to come to market, that the level of competition is still there. I noticed that even though the game had been out for only 3 weeks, there were those that had been playing the multiplayer aspect of that game for a total play time of 15 days. That would require you to play for almost every waking minute given an eight hour sleeping cycle each night.
The thing is, games like CoD MW2 still have a point system. Characters have a kill count and a death count. Also, CoD has added a leveling system to multiplayer that allow people to rank against each other. Thus I argue that games like these still require scoring, even if the score is no longer arbitrary. Also by providing these scores available to everyone who owns the game, we still see the display of personal prowess and skill to the greater public. It could almost be said that non-arbitrary point systems, such as experience or leveling has improved game design in a competitive sense.
I think there is still a place for arbitrary scoring though in the game space, the place I see this is with social networking games, or games that provide interfaces for score display to communities such as Facebook and Twitter. Games such as Canabalt and Bejeweled can be used as good examples of this. Bejeweled displaying scores of those in Bejeweled Blitz group being able to compare scores directly on Facebook, or Canabalt, with its option to post your high score (or low score if the case may be) to Twitter directly after dying.
Being that for the most part, I am a single player game type of gamer, I find myself being left out of these situations for the most part. The competition is not a driving factor for me, and as a result I tend to measure completion of games by their storylines. On the other hand, games such as racing games and platformers, I would actually appreciate a score. Regardless of the fact that I am not playing against anyone, I think that by having a score, I am in essence playing against myself. That competition keeps a game more enjoyable for longer. While playing Guitar Hero, the only reason I kept playing that game was because I could physically see myself getting better by the amount of points I would receive for a given song or the percentage I could complete before losing decreasing as I learned the patterns. The same holds true for my self admitting addiction to Dance Dance Revolution when I worked in an arcade for a while. By breaking my previous high score, I am in essence beating a game again that although it has not changed as far as story line or character development, has become more challenging.
Another method that could be said scores game progress is collectables. In platformers especially this holds true. Games such as the Sly Cooper series, or Ratchet and Clank, Jax and Daxter, even Assassin's Creed, has a system in place for tracking your completion progress throughout the game via collectables. Any game that says you have collected 50/100, whether it be gems, flags, bobble heads, what have you, is indicating a score. This score is the percentage of the game you have completed. Granted, with the new trophy system/achievement system on the modern consoles, these tend to correlate with awards for 100% collection in modern games, but the in game mechanic itself provides the challenge that a player would normally associate with achieving a higher score.
Overall, I must say that I believe that scores in games are not gone, they have just evolved. We may have become a society of completionists, and in some cases non-completionists when it comes to not having the patience to collect everything in a game, but is this really a bad thing? I would argue that perhaps not. The high score in a game may only be 100%, but 100% still feels good.
I believe the root cause of this is that the arcade environment is no longer a common meeting place for gamers, where people can come together in a dark, slightly smelly room, and compete head to head for a coveted place on a high score list. To see ones initials displayed in technicolor glory for the world to see on a publicly displayed system was once a grand achievement.
On one hand I think it could be argued that this has improved the design of games and has taught us that not every game needs to be about competition against others, that co-op missions and single player campaigns can provide better entertainment value. However, with the number of multiplayer deathmatch shooter games out there, Call of Duty Modern Warfare 2 being the most recent in the long chain of these to come to market, that the level of competition is still there. I noticed that even though the game had been out for only 3 weeks, there were those that had been playing the multiplayer aspect of that game for a total play time of 15 days. That would require you to play for almost every waking minute given an eight hour sleeping cycle each night.
The thing is, games like CoD MW2 still have a point system. Characters have a kill count and a death count. Also, CoD has added a leveling system to multiplayer that allow people to rank against each other. Thus I argue that games like these still require scoring, even if the score is no longer arbitrary. Also by providing these scores available to everyone who owns the game, we still see the display of personal prowess and skill to the greater public. It could almost be said that non-arbitrary point systems, such as experience or leveling has improved game design in a competitive sense.
I think there is still a place for arbitrary scoring though in the game space, the place I see this is with social networking games, or games that provide interfaces for score display to communities such as Facebook and Twitter. Games such as Canabalt and Bejeweled can be used as good examples of this. Bejeweled displaying scores of those in Bejeweled Blitz group being able to compare scores directly on Facebook, or Canabalt, with its option to post your high score (or low score if the case may be) to Twitter directly after dying.
Being that for the most part, I am a single player game type of gamer, I find myself being left out of these situations for the most part. The competition is not a driving factor for me, and as a result I tend to measure completion of games by their storylines. On the other hand, games such as racing games and platformers, I would actually appreciate a score. Regardless of the fact that I am not playing against anyone, I think that by having a score, I am in essence playing against myself. That competition keeps a game more enjoyable for longer. While playing Guitar Hero, the only reason I kept playing that game was because I could physically see myself getting better by the amount of points I would receive for a given song or the percentage I could complete before losing decreasing as I learned the patterns. The same holds true for my self admitting addiction to Dance Dance Revolution when I worked in an arcade for a while. By breaking my previous high score, I am in essence beating a game again that although it has not changed as far as story line or character development, has become more challenging.
Another method that could be said scores game progress is collectables. In platformers especially this holds true. Games such as the Sly Cooper series, or Ratchet and Clank, Jax and Daxter, even Assassin's Creed, has a system in place for tracking your completion progress throughout the game via collectables. Any game that says you have collected 50/100
Overall, I must say that I believe that scores in games are not gone, they have just evolved. We may have become a society of completionists, and in some cases non-completionists when it comes to not having the patience to collect everything in a game, but is this really a bad thing? I would argue that perhaps not. The high score in a game may only be 100%, but 100% still feels good.
Sunday, October 11, 2009
Harshness of Old Game Reviews
I have been reading many reviews as of late, especially since I have started reviewing more games for this blog. I suppose it is just a means of trying to improve my writing based on styles of other professionals in that space. Its not like I'm trying to do it for a living, my job is a programmer through and through. However, I do like to read good reviews, and I love to play video games, thus this site.
My problem is with reviews of older games. Especially ones from gen 2 and 3 of video game systems. You know, NES, Genesis, Super Nintendo... I have noticed that games reviewed from these genres are overly harsh if they are reviewed anytime since 2000 and on.
#1 reason for this, poor graphics... DUDE! These games were made in the late 80's to early 90's, give these guys a break. I think a review should be subjective based on the system/era that it is being reviewed for. Castlevania for the NES is not going to compare to Castlevania for the NDS... its just not going to happen. Applications like Photoshop were not as good or didn't even exist back then. I'm sure many of these games were either done using raw pixel manipulation or using applications like MS Paint. Also, most of the guys doing art back then were not artists, most of them were programmers, nerdy computer scientists that loved making video games.
#2 Nostalgic impression over hyping actual game play mechanics. Many people are deathly attached to the feeling a game gave them when they played them the first time when they were a kid. Now going back and playing these older games, many people are like "WOW, that game was not very good. The jumping is choppy, movement is sluggish, and oh man, the screen flickered on me while I was playing it."
I think people need to keep in mind that these systems were not that fast, and people putting effort into optimizing their game for the system did a good job most of the time. Granted, compared to other games of the same genera, if the game was slow then say it was slow. I'm just saying, do not compare that systems frame rates/control responsiveness to today's games. Remember that nostalgic feeling you had as a kid and put yourself back into the same mind set you had back then. I think this is great advice for anyone playing an older game of their childhood, I think you will be less disappointed by your child hood favorites if you do this.
#3 Do not review a game less harshly because of the effects of #1 and #2. I know this seems counter-intuitive to the general sense of my article, but I see this a lot too. Just because you love a game, and you realize that the hardware is older, game play mechanics were not as refined due to iterations of a franchise and genera, do not let this affect your review. Again, keep in mind the era that you are reviewing for. Do not give Zelda: A Link to the Past a 10 out of 10 just because it is your favorite game of all time, be critical of things such as game play mechanics, color schemes (which i think were sometimes poorly picked for this title), and sound, just keep them relative to the space in which they should be reviewed.
Look at things like Game Informers Then and Now sections and see how games rated back in the day they were created compared to where they are now. I think most of the time Game Informer does a decent job of reviewing older titles, but they are even a bit overly harsh or under critical at times. Realize how far games have come from then till now, it is actually quite amazing how far the industry has progressed in a mere 25 years.
The reason I bring this up is that many reviewers fall into these pitfalls, myself included at times. Yet as a gaming fan, and one who has not played EVERY good old game out there, I do read reviews to try and judge where to spend my precious gaming hours, and I would hate to miss a great older game that I have never experienced before, simply because I was turned off by some reviewer who thought that Need For Speed Hot Pursuit should be like Need For Speed Shift in terms of quality of AI, handling performance of vehicles, music quality, and visual representation of cars/levels. Now if you said that it didn't hold a flame to Grand Turismo as far as realism of the vehicles, yet it held a nice charm when it came to car customization and simply had fun game play experience, not to mention the El Nino (which was an awesome video game car imho), then I would respect that and would find a review of this nature a bit more informative.
Now on the other hand, I totally think that past games can be used as reference in a new games review. If your new iteration of a franchise sucks compared to your past successes, that's a problem. Games are suppose to get better with each iteration, if they don't, do not ruin your franchise with some crap. Shame on the developers for allowing your publisher to push you into running your franchise name through the mud just so they can line their pockets with money that is garnered by your fans loyalty (I'm looking at you Will Wright/EA).
My problem is with reviews of older games. Especially ones from gen 2 and 3 of video game systems. You know, NES, Genesis, Super Nintendo... I have noticed that games reviewed from these genres are overly harsh if they are reviewed anytime since 2000 and on.
#1 reason for this, poor graphics... DUDE! These games were made in the late 80's to early 90's, give these guys a break. I think a review should be subjective based on the system/era that it is being reviewed for. Castlevania for the NES is not going to compare to Castlevania for the NDS... its just not going to happen. Applications like Photoshop were not as good or didn't even exist back then. I'm sure many of these games were either done using raw pixel manipulation or using applications like MS Paint. Also, most of the guys doing art back then were not artists, most of them were programmers, nerdy computer scientists that loved making video games.
#2 Nostalgic impression over hyping actual game play mechanics. Many people are deathly attached to the feeling a game gave them when they played them the first time when they were a kid. Now going back and playing these older games, many people are like "WOW, that game was not very good. The jumping is choppy, movement is sluggish, and oh man, the screen flickered on me while I was playing it."
I think people need to keep in mind that these systems were not that fast, and people putting effort into optimizing their game for the system did a good job most of the time. Granted, compared to other games of the same genera, if the game was slow then say it was slow. I'm just saying, do not compare that systems frame rates/control responsiveness to today's games. Remember that nostalgic feeling you had as a kid and put yourself back into the same mind set you had back then. I think this is great advice for anyone playing an older game of their childhood, I think you will be less disappointed by your child hood favorites if you do this.
#3 Do not review a game less harshly because of the effects of #1 and #2. I know this seems counter-intuitive to the general sense of my article, but I see this a lot too. Just because you love a game, and you realize that the hardware is older, game play mechanics were not as refined due to iterations of a franchise and genera, do not let this affect your review. Again, keep in mind the era that you are reviewing for. Do not give Zelda: A Link to the Past a 10 out of 10 just because it is your favorite game of all time, be critical of things such as game play mechanics, color schemes (which i think were sometimes poorly picked for this title), and sound, just keep them relative to the space in which they should be reviewed.
Look at things like Game Informers Then and Now sections and see how games rated back in the day they were created compared to where they are now. I think most of the time Game Informer does a decent job of reviewing older titles, but they are even a bit overly harsh or under critical at times. Realize how far games have come from then till now, it is actually quite amazing how far the industry has progressed in a mere 25 years.
The reason I bring this up is that many reviewers fall into these pitfalls, myself included at times. Yet as a gaming fan, and one who has not played EVERY good old game out there, I do read reviews to try and judge where to spend my precious gaming hours, and I would hate to miss a great older game that I have never experienced before, simply because I was turned off by some reviewer who thought that Need For Speed Hot Pursuit should be like Need For Speed Shift in terms of quality of AI, handling performance of vehicles, music quality, and visual representation of cars/levels. Now if you said that it didn't hold a flame to Grand Turismo as far as realism of the vehicles, yet it held a nice charm when it came to car customization and simply had fun game play experience, not to mention the El Nino (which was an awesome video game car imho), then I would respect that and would find a review of this nature a bit more informative.
Now on the other hand, I totally think that past games can be used as reference in a new games review. If your new iteration of a franchise sucks compared to your past successes, that's a problem. Games are suppose to get better with each iteration, if they don't, do not ruin your franchise with some crap. Shame on the developers for allowing your publisher to push you into running your franchise name through the mud just so they can line their pockets with money that is garnered by your fans loyalty (I'm looking at you Will Wright/EA).
Wednesday, October 7, 2009
Why I WIll Never Buy a PSPGo
See all these lovely UMD cases? 29 Games and 4 video disks. Since The PSPGo was announced, it was believed that Sony would be handling the conversion of UMD to digital downloads through some sort of program where game-owners would be shipping in their old UMDs in exchange for a ticket for a digital download through the Playstation store. However, recently it was announced that at release data, this program would not be offered and anyone who owns a UMD would have to re-purchase their beloved PSP games if they wanted to play them on their new players.
Now, I don't know about you, but I don't have boat loads of money (especially in this economy) to go out and drop a few hundred dollars on a new hardware system without some sort of trade in compensation from my old hardware. Thus, it would be un-economical for me to keep my old fat PSP1000 just so I can play all my old games without having to pay for them again.
UMDs aside, there is a whole slew of other reasons I would never purchase the PSPGo.
Reason 1: It looks like a third graders cell phone that can not make calls unless on WiFi using Skype. Not that I don't like skype functionality, I really do. Yet, if you are going to make it out of cheap cell phone plastic and give it the slide open look that a sidekick has, then let it make phone calls. Sony claims that this is going to compete with the IPhone market... Well, let me tell you what, my IPhone can also make phone calls and surf the web on 3G networks. Which brings me to reason 2.
Reason 2: No 3G support. If this device is suppose to re-revolutionize mobile gaming, then you better have 3G support because what if I am walking around the city and I just NEED to get my God of War fix, then I do not want to have to walk around for 20 minutes to find an unprotected WiFi router to hop onto so I can download my game. I would really rather just turn it on, download it quick, and start playing. No 3G support? Well, I guess I'll just go buy a new app for my IPhone. Sorry Sony!
Reason 3: SDK for PSPMini apps should have been made more accessible. Apple did the right thing when it introduced its app developer program. Anyone with a mac can make applications for the IPhone. I took a brief look at the requirements to make a PSPMini application... It seemed like you basically need to be a full time game developer, with an office, and an LLC behind your name before Sony will let you touch the SDK. Not a smart move Sony, look at the numbers of IPhone applications that Apple is making bank off of that were made by indy game/application developers in their bedrooms.
Reason 4: No touch screen. The phone, I mean PSPGo, has a beautiful big screen on the front of the device. However, this screen is practically useless when the device is closed. Another big downfall of an already failing system. My biggest complaint about this though is that with the device closed, the screen is basically useless in this state. Maybe they should have had the screen fold in to protect it instead of being exposed to the elements and my scratchy jean pockets. Would this have made the PSPGo too much like the Nintendo DS? At least my Nintendo DS screen is protected when I'm not using it.
Reason 5: Old operating system and an old processor. I would have liked to see the PSPGo have a faster processor in it than what they put in. I'm sure that it wouldn't have been much more expensive to speed up the OS, maybe even add some more ram so my web browser doesn't crash on me every other page like the older PSP systems are known to do. In this age we have a more diversified web with applications that are rapidly growing in complexity. The system needs to be able to support more hardware intensive operations. I just feel that this hardware is not going to be able to keep up for much more than a year, and perhaps its time has already passed.
Sony... If you ever read this, take my words into consideration. Quit alienating your customers. They are the only reason you're still in business. There are many of us that are very loyal to the brand, but loyalty only is granted through a continuous relationship of trust and understanding. I am starting to lose faith in your products, and I can not bring myself to buy a new PSP under these circumstances. Wake up!
Monday, September 7, 2009
The Origins of DK
So about once every month or so, I get the same question. "What does DK stand for? Does it mean Donkey Kong? You know that's not very original..." So I want to set the story straight.
It doesn't stand for Donkey Kong, plain and simple. I am a bit more original than that (at least I think so) and would never, ever, ever, use a name from a character in a game as the title in my blog.
What it does stand for is Dranco Karanth. I'm sure you are all saying to yourself, "Who?". Let me explain.
When I was about 10 years old, I used to play this game called Legend of Kesmai. Google it if you are unfamiliar with what it is. It was an awesome MMORPG around the time of Ultima Online. The servers were originally hosted on GameStorm before the company went toes up. Anyways, Dranco Karanth was my first character ever in an MMORPG, in this case he was basically a warrior priest (they called them "Thaums" for short, I can't for the life of me remember why). Anyways, as the years progressed and I started playing D&D, the character changed from a priest to a red mage and he picked up some back story. A few more years later and I designed my first "World" around him and his friends and even wrote the beginnings of a book that some day I hope to finish. He has always been in my head and in my heart and is my biggest inspiration for making games and designing worlds. The DK identifier is a simplification and unfortunately holds a general connotation with a big furry monkey from Nintendo and that is unfortunate, but who would want to visit a blog called Dranco Karanth Game Studios???
That's all I have on that matter, if you don't care for it I'm sorry, but it is something special to me and well, frankly, this is my blog so tough :).
It doesn't stand for Donkey Kong, plain and simple. I am a bit more original than that (at least I think so) and would never, ever, ever, use a name from a character in a game as the title in my blog.
What it does stand for is Dranco Karanth. I'm sure you are all saying to yourself, "Who?". Let me explain.
When I was about 10 years old, I used to play this game called Legend of Kesmai. Google it if you are unfamiliar with what it is. It was an awesome MMORPG around the time of Ultima Online. The servers were originally hosted on GameStorm before the company went toes up. Anyways, Dranco Karanth was my first character ever in an MMORPG, in this case he was basically a warrior priest (they called them "Thaums" for short, I can't for the life of me remember why). Anyways, as the years progressed and I started playing D&D, the character changed from a priest to a red mage and he picked up some back story. A few more years later and I designed my first "World" around him and his friends and even wrote the beginnings of a book that some day I hope to finish. He has always been in my head and in my heart and is my biggest inspiration for making games and designing worlds. The DK identifier is a simplification and unfortunately holds a general connotation with a big furry monkey from Nintendo and that is unfortunate, but who would want to visit a blog called Dranco Karanth Game Studios???
That's all I have on that matter, if you don't care for it I'm sorry, but it is something special to me and well, frankly, this is my blog so tough :).
Sunday, August 23, 2009
Dante's Inferno - First Impressions
I perused the EA site today after listening to one of the podcasts that have been done by EA and Visceral. They had mentioned that they were working on the Dante's Inferno title, and the thought of making a game based on that old literature intrigues me. I think it is a fascinating concept and setting for the type of game that they are making. Looking at the game play footage, I have no doubt that the title will be fun to play.
The game play, reminiscent of God of War or Heavenly Sword, looks to be fast pace and action packed. However, my concern is that like the other two titles mentioned, it will be a button smashing game with no real strategy to the attacks. Although, the attacks may look nice and pretty, these types of games tend to bore me after a while, and usually end up causing me some hand cramping. I generally prefer a little more strategy in my combat, titles such as Hitman, Mad World, or The Mark of Kri. All of these titles did more than just provide a button mashing kill fest. However the game did provide a brutal feel that I think that many new games are going for. The difference is that even though the brutality of these titles were present, it wasn't mindless killing (well, its pretty mindless in Mad World, however the fighting system led more to some quick thinking to perform the brutal kill you were going for that would provide you with more points).
Hitman and Mark of Kri relied more on assassination, the silent kill, to complete the mission. These allowed you to avoid the all out frenzy of being detected, and rewarding you as such for doing so. The interesting thing is that these titles also still allowed you to experience the frenzy of many on one combat, and did not really punish you if you wanted to run through the mission and be detected by everyone. I think that Assassins Creed tried to have this mix, but I felt as I played it that it was not very good at allowing you to do the stealth kills as well as I would have originally expected. At times it felt clunky and what would seem like an obvious kill would go unnoticed, where as a well planned and executed kill sometimes set off alarms.
I am hoping that Dante's Inferno will have a good balance of the brutal combo kill, button smashing, and the strategic areas where more skill and finesse is required. I am realizing that game developers, with their multimillion dollar budgets, have a need and desire to appease a wider audience of gamers, and providing "easy to understand" control schemes goes a long way to doing this, and by uncomplicating the combat system also pushes a game into more hands. I just feel as if players who wish to learn complex combat systems and strive for perfection in their gaming are being ignored due to them being in a much smaller demographic. I mean, where are games like the old Tenchu?
The game play, reminiscent of God of War or Heavenly Sword, looks to be fast pace and action packed. However, my concern is that like the other two titles mentioned, it will be a button smashing game with no real strategy to the attacks. Although, the attacks may look nice and pretty, these types of games tend to bore me after a while, and usually end up causing me some hand cramping. I generally prefer a little more strategy in my combat, titles such as Hitman, Mad World, or The Mark of Kri. All of these titles did more than just provide a button mashing kill fest. However the game did provide a brutal feel that I think that many new games are going for. The difference is that even though the brutality of these titles were present, it wasn't mindless killing (well, its pretty mindless in Mad World, however the fighting system led more to some quick thinking to perform the brutal kill you were going for that would provide you with more points).
Hitman and Mark of Kri relied more on assassination, the silent kill, to complete the mission. These allowed you to avoid the all out frenzy of being detected, and rewarding you as such for doing so. The interesting thing is that these titles also still allowed you to experience the frenzy of many on one combat, and did not really punish you if you wanted to run through the mission and be detected by everyone. I think that Assassins Creed tried to have this mix, but I felt as I played it that it was not very good at allowing you to do the stealth kills as well as I would have originally expected. At times it felt clunky and what would seem like an obvious kill would go unnoticed, where as a well planned and executed kill sometimes set off alarms.
I am hoping that Dante's Inferno will have a good balance of the brutal combo kill, button smashing, and the strategic areas where more skill and finesse is required. I am realizing that game developers, with their multimillion dollar budgets, have a need and desire to appease a wider audience of gamers, and providing "easy to understand" control schemes goes a long way to doing this, and by uncomplicating the combat system also pushes a game into more hands. I just feel as if players who wish to learn complex combat systems and strive for perfection in their gaming are being ignored due to them being in a much smaller demographic. I mean, where are games like the old Tenchu?
Developer Podcasts
I've recently bought an IPhone, and I was never exposed to the podcast community until I was forced into using ITunes (not that its not a good piece of software, sometimes I just have some disagreements with it :) ). Since I have been browsing the ITunes store I have discovered the beauty of the podcast as a means for me to listen to something different than the 2 cds I have ripped on my phone, or the pandora app that I use on a nearly daily basis.
The biggest thing that I am geeked about (and surprisingly so) is the couple of game company podcasts that are out there for listeners. EA is the big one that I have been listening to. They only have 5 episodes out as of right now, but the interviews that they have done have been very interesting, especially to someone like me who works in a corporate atmosphere (at GE Aviation) and has an interest in getting into the gaming industry. I can relate to the corporate day to day that these people have to deal with, and yet it is fascinating to hear about the inner workings of a large publisher and its sub-derivative developers such as Visceral.
I wish that other larger developers, such as Capcom, Atlus, or SquareEnix would do this as well. I would be a devoted listener of any of these three major companies if they were to do a podcast of this nature. I would really like to hear more from coders and level designers on these podcasts to hear what they go through on a day to day basis, working with 3rd party engines or building their own. I think there is also some room for growth in these areas when dealing with play testing a game and how bug tracking and feature planning are handled in the development cycle. I think that interviews like these could help independent game developers, and aspiring corporate game developers learn techniques and behaviors and strategies that can not be learned in a academic setting with professors who have never been in the fast pace industry.
I would also like to see some podcasts be created that follow speaker sessions at some of these larger conferences. I am aware that there are feeds that are broadcasted at events like the Apple conference and some of the coverage of E3, but there are many of these conferences such as siggraph and GDC, that I feel do not receive enough outreach to the public. Obviously a podcast could never replace actually going to one of these conferences, as I have been to a few conferences and the experience was always breathtaking. However, due to the cost of travel and the cost of admission, it would be nice if some of the speakers were covered in a publicly accessible forum.
I recommend anyone who is interested, check out the EA podcast, they are interesting to listen to and much more interesting than any political talk radio that you are going to get listening to the real radio.
The biggest thing that I am geeked about (and surprisingly so) is the couple of game company podcasts that are out there for listeners. EA is the big one that I have been listening to. They only have 5 episodes out as of right now, but the interviews that they have done have been very interesting, especially to someone like me who works in a corporate atmosphere (at GE Aviation) and has an interest in getting into the gaming industry. I can relate to the corporate day to day that these people have to deal with, and yet it is fascinating to hear about the inner workings of a large publisher and its sub-derivative developers such as Visceral.
I wish that other larger developers, such as Capcom, Atlus, or SquareEnix would do this as well. I would be a devoted listener of any of these three major companies if they were to do a podcast of this nature. I would really like to hear more from coders and level designers on these podcasts to hear what they go through on a day to day basis, working with 3rd party engines or building their own. I think there is also some room for growth in these areas when dealing with play testing a game and how bug tracking and feature planning are handled in the development cycle. I think that interviews like these could help independent game developers, and aspiring corporate game developers learn techniques and behaviors and strategies that can not be learned in a academic setting with professors who have never been in the fast pace industry.
I would also like to see some podcasts be created that follow speaker sessions at some of these larger conferences. I am aware that there are feeds that are broadcasted at events like the Apple conference and some of the coverage of E3, but there are many of these conferences such as siggraph and GDC, that I feel do not receive enough outreach to the public. Obviously a podcast could never replace actually going to one of these conferences, as I have been to a few conferences and the experience was always breathtaking. However, due to the cost of travel and the cost of admission, it would be nice if some of the speakers were covered in a publicly accessible forum.
I recommend anyone who is interested, check out the EA podcast, they are interesting to listen to and much more interesting than any political talk radio that you are going to get listening to the real radio.
Thursday, July 2, 2009
Why No Subtitiling In Games???
It has occurred to me that there is a missing area of game development that has yet to truly be tapped. Subtitling, yes I know what your thinking. "What do you mean, there is almost always dialog text in cut scenes and anytime a character is running through their dialog." This is not what I am referring to, true this is where subtitling would go, and the text wouldn't change, however, what I want to change is the language of the characters.
I am a big fan of anime, and the biggest pet peeve of mine is not being able to watch the anime in its natural language. Sorry American voice actors, you suck. The Japanese have been doing it for much longer, get paid better for it, and are overall better at it. Why do game developers think that American audiences do not want the choice of what language to play a game in?
I realize that originally it was a space concern, game media just didn't have enough space to store multiple audio tracks. However, in this new age of high capacity media such as Blue Ray, there is really no reason to not include multiple audio tracks. They do the different language tracks for the different regional encoding anyways, thus it requires no additional voice acting to create.
In this new age marketplace, people want choices, and I personally would rather choose the bad ass sounding Japanese guy voicing my hero's dialog than some pansy who does voice overs for Saturday morning cartoons.
I am a big fan of anime, and the biggest pet peeve of mine is not being able to watch the anime in its natural language. Sorry American voice actors, you suck. The Japanese have been doing it for much longer, get paid better for it, and are overall better at it. Why do game developers think that American audiences do not want the choice of what language to play a game in?
I realize that originally it was a space concern, game media just didn't have enough space to store multiple audio tracks. However, in this new age of high capacity media such as Blue Ray, there is really no reason to not include multiple audio tracks. They do the different language tracks for the different regional encoding anyways, thus it requires no additional voice acting to create.
In this new age marketplace, people want choices, and I personally would rather choose the bad ass sounding Japanese guy voicing my hero's dialog than some pansy who does voice overs for Saturday morning cartoons.
Saturday, January 17, 2009
Japanese Clock - Long Time No Post

Two reasons for posting today, one - it's been a while. I think this has been mostly due to work and the holidays. Although, I must blame some of it on my lack of interest in game development. Not so much in a lack of wanting to better myself in the field, but more a lack of wanting to learn... It is a weird feeling to be stuck on a development team where you don't feel like you are wanted, or even worse, feel like your talents are being wasted.
Beyond that, however, I have decided to get back on the boat and I have decided to output some simple apps to get me back in the swing of things. This one is kinda stupid but fun at the same time. I was playing around with rotating sprites in the NDS PALIB development homebrew environment. So here it is: JapClock App by DKCHRIS... Yay...
Download here
Tuesday, August 12, 2008
Update
Hello world...
Ah the great line of any good first application in a new language or with a new API. I have written you so many times I can not even begin to count. The truth is though is that you are boring, so much in fact that I despise your presence. I want more, I want to create and to develop something beautiful and imaginative.
Thus leads me here, an update on my progress into the world of NDS homebrew and my side scroller game. Actually, progress is going well. I have the basics of an engine now and I will be working on incorporating my own art soon (hopefully this weekend ill get something visible I can post screen shots of). The PALib library is very versatile and easy to work with and I believe it will make a game like mine extremely easy to develop. More updates on this soon.
As far as school goes, I am dropping out of grad school for sure. It really has been a waste of my time. The classes for an MBA are completely useless unless you have great plans of being a manager and I don't think I could handle not working with code every day. I am not a bean counter, bottom line... So anyways, this is my last week of class (lots of busy work - including a take home final exam that weighs about 10 lbs.). I am hoping that finishing off the class and going back to a normal life will give me more time to work on my game. We will see...
Thats all for now, check back soon for more info. Oh I almost forgot, I have put together a little puzzle game for the NDS, it is almost done, I will try to put that up tomorrow.
Ah the great line of any good first application in a new language or with a new API. I have written you so many times I can not even begin to count. The truth is though is that you are boring, so much in fact that I despise your presence. I want more, I want to create and to develop something beautiful and imaginative.
Thus leads me here, an update on my progress into the world of NDS homebrew and my side scroller game. Actually, progress is going well. I have the basics of an engine now and I will be working on incorporating my own art soon (hopefully this weekend ill get something visible I can post screen shots of). The PALib library is very versatile and easy to work with and I believe it will make a game like mine extremely easy to develop. More updates on this soon.
As far as school goes, I am dropping out of grad school for sure. It really has been a waste of my time. The classes for an MBA are completely useless unless you have great plans of being a manager and I don't think I could handle not working with code every day. I am not a bean counter, bottom line... So anyways, this is my last week of class (lots of busy work - including a take home final exam that weighs about 10 lbs.). I am hoping that finishing off the class and going back to a normal life will give me more time to work on my game. We will see...
Thats all for now, check back soon for more info. Oh I almost forgot, I have put together a little puzzle game for the NDS, it is almost done, I will try to put that up tomorrow.
Tuesday, July 29, 2008
Game Review - Song Summoner : IPod : SquareEnix
I know that I just reviewed a SquareEnix game yesterday on this site, but I ran across Song Summoner for the IPod that has just recently been released on ITunes. I must say that SquareEnix is really trying to expand their market. I have not actually played this title yet (as my IPod is broke... hard drive crash).
I was a bit sad to see though the limited selection of IPods that this title works with. Apparently a click wheel model is required, IPod nano w/video, IPod classic, and 5th gen IPods. Apparently the touch isn't supported.
The game play reminds me of monster rancher as the premise is to use external media (in this case songs from your ITunes library) to create units called "Tune Troopers" to fight for you in a very FFTactics like system. Listening to your music outside of the game also levels up your units, presumably using the listening count feature on the ITunes/IPod players.
It's really a novel idea and I hope that it is a good game and does well for SquareEnix. I would love to see some other major developers do likewise. Simple games that are sold for cheap using hand held devices functionality is really something that we have not seen much of yet. Most games for hand held are between 40-50 dollars. Which, understandably is a much more desired market, also require end users to purchase specific devices used solely for gaming.
I think that with systems like the IPod and the Zune, there is a much larger market for developers to target, as these devices are purchased by anyone for their music and video playback capabilities and not only by hardcore gamers. Also, at 4.99 from the ITunes store, this is something that I think many people may buy just because it is cheap and really one of the only larger titles out there (other than your traditional Sudoku/Bejeweled style puzzle games).
I was a bit sad to see though the limited selection of IPods that this title works with. Apparently a click wheel model is required, IPod nano w/video, IPod classic, and 5th gen IPods. Apparently the touch isn't supported.
The game play reminds me of monster rancher as the premise is to use external media (in this case songs from your ITunes library) to create units called "Tune Troopers" to fight for you in a very FFTactics like system. Listening to your music outside of the game also levels up your units, presumably using the listening count feature on the ITunes/IPod players.
It's really a novel idea and I hope that it is a good game and does well for SquareEnix. I would love to see some other major developers do likewise. Simple games that are sold for cheap using hand held devices functionality is really something that we have not seen much of yet. Most games for hand held are between 40-50 dollars. Which, understandably is a much more desired market, also require end users to purchase specific devices used solely for gaming.
I think that with systems like the IPod and the Zune, there is a much larger market for developers to target, as these devices are purchased by anyone for their music and video playback capabilities and not only by hardcore gamers. Also, at 4.99 from the ITunes store, this is something that I think many people may buy just because it is cheap and really one of the only larger titles out there (other than your traditional Sudoku/Bejeweled style puzzle games).
Monday, July 28, 2008
Stance on Homebrew
For a while now I have been debating on how to approach the issue of homebrew. For many companies such as Nintendo and Sony, the concept of homebrew has been a black spot that has been fought viciously and lost by the worlds largest console developers. The lack of embrace and down right rejection to nearly a legal standpoint has discouraged me in my pursuit of implementation of homebrew applications for any console that I own.
It is strange how these companies, without accepting homebrew are competing with Microsoft, whom, although expensive, have allowed users to develop for their console through a supported API designed with the hobbiest in mind. Although, I have stated my opinion of the XNA platform in the past, decent as it is, lacks some more complex functionality without extensive rework. It is useful for smaller scale projects. I am of the opinion that if Microsoft were to make a hand held system that ran XNA based development projects and supported the community who uses the development platform, homebrew would have a much better place in the legal hand held market.
However, the companies that do have their hand helds, restrict the developement of homebrew so much that it makes it almost impossible to develop for the systems unless you are a licensed developer and have proven yourself in the industry as a mult-title releaser. How does one go about proving this without the ability to develop for the system in the first place? How does one go about making demo games to show off to companies who would potentially hire developers if they do not have a platform to build these demos on?
Fortunately, there are dedicated groups out there who have developed homebrew APIs for the leading hand held consoles. Buggy as they may be and questionably legal, they do allow for developers to build applications for release, and although homebrew communities have been notorious for piracy, they have also shown an avenue to developing applications to fill a niche that large scale developers have found non-cost effective to develop. I don't believe in stealing from programmers, I am one myself, but I do believe in open source, and I do believe in open platforms. So homebrewers out there, keep at it. The PC community has already embraced this ideal, so should console developers. The only way to show them that they should is to show them how impressive it can be.
( Hint Hint... look for some homebrew apps for the DS here VERY VERY soon ;) )
It is strange how these companies, without accepting homebrew are competing with Microsoft, whom, although expensive, have allowed users to develop for their console through a supported API designed with the hobbiest in mind. Although, I have stated my opinion of the XNA platform in the past, decent as it is, lacks some more complex functionality without extensive rework. It is useful for smaller scale projects. I am of the opinion that if Microsoft were to make a hand held system that ran XNA based development projects and supported the community who uses the development platform, homebrew would have a much better place in the legal hand held market.
However, the companies that do have their hand helds, restrict the developement of homebrew so much that it makes it almost impossible to develop for the systems unless you are a licensed developer and have proven yourself in the industry as a mult-title releaser. How does one go about proving this without the ability to develop for the system in the first place? How does one go about making demo games to show off to companies who would potentially hire developers if they do not have a platform to build these demos on?
Fortunately, there are dedicated groups out there who have developed homebrew APIs for the leading hand held consoles. Buggy as they may be and questionably legal, they do allow for developers to build applications for release, and although homebrew communities have been notorious for piracy, they have also shown an avenue to developing applications to fill a niche that large scale developers have found non-cost effective to develop. I don't believe in stealing from programmers, I am one myself, but I do believe in open source, and I do believe in open platforms. So homebrewers out there, keep at it. The PC community has already embraced this ideal, so should console developers. The only way to show them that they should is to show them how impressive it can be.
( Hint Hint... look for some homebrew apps for the DS here VERY VERY soon ;) )
Friday, June 6, 2008
Timers and Direct X
Does anyone know how to get timers to work with Direct X? I have been having one heck of a time getting it to work. Strangest thing:
This is what I got so far... I have a Non-Modal MFC dialog, this is my main dialog. It is using Direct X to draw to the CWnd object of the dialog to control my Editor View. It also launches another Non-Modal MFC dialog that is my properties window. This has nested dialogs associated with tabs on an MFC Tab Control.
Now, I want some CEdit controls attached to these custom dialogs to update every x number of milliseconds. To do this I was going to use a timer. However, it seems that I am doing something wrong. I set up the ON_WM_TIMER handler and create the void OnTimer(UINT_PTR nIDValue) function to handle my timer event. I called SetTimer(1, 100, NULL) to set the timer in the OnInit() function and call it again in my OnTimer function. However, it doesn't seem to ever call the OnTimer function. I can get this to work in a new project on a single dialog. I have also tried to get this to work on all the other dialog classes in the project to no avail.
Is there a conflict with timers and the Direct X loop? Please feel free to comment on this if you think you might know what the problem is... I will love you forever if you can help :)
This is what I got so far... I have a Non-Modal MFC dialog, this is my main dialog. It is using Direct X to draw to the CWnd object of the dialog to control my Editor View. It also launches another Non-Modal MFC dialog that is my properties window. This has nested dialogs associated with tabs on an MFC Tab Control.
Now, I want some CEdit controls attached to these custom dialogs to update every x number of milliseconds. To do this I was going to use a timer. However, it seems that I am doing something wrong. I set up the ON_WM_TIMER handler and create the void OnTimer(UINT_PTR nIDValue) function to handle my timer event. I called SetTimer(1, 100, NULL) to set the timer in the OnInit() function and call it again in my OnTimer function. However, it doesn't seem to ever call the OnTimer function. I can get this to work in a new project on a single dialog. I have also tried to get this to work on all the other dialog classes in the project to no avail.
Is there a conflict with timers and the Direct X loop? Please feel free to comment on this if you think you might know what the problem is... I will love you forever if you can help :)
Friday, May 30, 2008
Moving Time Again
I will be moving this weekend (woo hoo...). I hate moving, it reminds me how much stuff I have. About how much stuff I don't need, and about all the stuff I don't have that would make moving my stuff I don't need easier. It's not like I am moving that far though, I am moving from Houghton, MI. to Hancock, MI. and for anyone who doesn't know where they are, they are across a small body of water from each other. My work actually is right between the two next to the bridge.
The best part about moving is that I will not have internet right away (note the sarcasm). My roommate and I have not yet decided what type of internet to get, DSL or Cable. Neither of us want television since we watch most of our stuff online (I watch a lot of anime and he watches comedy sitcoms which most of air on the net for free). Also, the great thing about moving this weekend is that my car is overheating again. It is going to be a joy trying to get to my new house without my car dieing on me.
Needless to say, my development is going to come to a crawl with my internet down. No looking up good reference material or sdk documentation. Oh well, I'll just have to borrow the interweb from friends on my laptop in the meantime. My girlfriends new place has internet so I suppose I'll have to work there.
The best part about moving is that I will not have internet right away (note the sarcasm). My roommate and I have not yet decided what type of internet to get, DSL or Cable. Neither of us want television since we watch most of our stuff online (I watch a lot of anime and he watches comedy sitcoms which most of air on the net for free). Also, the great thing about moving this weekend is that my car is overheating again. It is going to be a joy trying to get to my new house without my car dieing on me.
Needless to say, my development is going to come to a crawl with my internet down. No looking up good reference material or sdk documentation. Oh well, I'll just have to borrow the interweb from friends on my laptop in the meantime. My girlfriends new place has internet so I suppose I'll have to work there.
Thursday, May 15, 2008
Week #1 End
Ah... First week of grad school finished, only... (counts to himself under his breath) too many left. At least Accounting will be over in 6 weeks.
Moving to a new department of GE Aviation soon temporarily. More than likely till the end of summer. Unfortunately I will be working in Java again. I had really thought I had finished with that in college. Its too bad really, I really can use the C++ experience more and in all actuality I don't even think I remember Java all that well anymore. I am confident that I will be able to pick it up again very quickly but that is not the point.
Fortunately, I will be working with a SQL database, something I have had little experience with as of yet in my professional career. I can't imagine it will be difficult though, and who knows, perhaps it will help me understand large scale MMO game database management.
So, here is to next week... Exam number 1 of Accounting, and the rest of my summer. Woo hoo...
Moving to a new department of GE Aviation soon temporarily. More than likely till the end of summer. Unfortunately I will be working in Java again. I had really thought I had finished with that in college. Its too bad really, I really can use the C++ experience more and in all actuality I don't even think I remember Java all that well anymore. I am confident that I will be able to pick it up again very quickly but that is not the point.
Fortunately, I will be working with a SQL database, something I have had little experience with as of yet in my professional career. I can't imagine it will be difficult though, and who knows, perhaps it will help me understand large scale MMO game database management.
So, here is to next week... Exam number 1 of Accounting, and the rest of my summer. Woo hoo...
Sunday, May 11, 2008
Devistation
Sometimes life isn't fair...
Let me explain: I have been working on my editor in unmanaged Direct X, in Visual Studios 2008 Express Edition. I have it displaying as I want it to. Now I want to create a separate window that shows parameters of selected objects in the Editor.
Now there are two problems:
Let me explain: I have been working on my editor in unmanaged Direct X, in Visual Studios 2008 Express Edition. I have it displaying as I want it to. Now I want to create a separate window that shows parameters of selected objects in the Editor.
Now there are two problems:
- Windows Forms are managed, and they can not be mixed with unmanaged code *Easily*.
- Standard windows controls (MFC) can not be edited in the express edition of Visual Studios.
- Spring the cash for the Professional edition of visual studios 2008, port my project over.
- Start my project over again in Managed Direct X.
- Do some funky file mapped memory stuff and create the parameter window as a separate project and pass messages between the two applications.
Back To School
Oh the joys of summer... Nice weather, pretty flowers, clean air, and the first Grad class towards my MBA...
Ok, everything in that list is good, except the last one. I am excited to be pursuing my MBA as I would really love to run my own software development company some day (preferably in game development - obviously), but in truth I am not really looking forward to going to class 4 days a week on top of working 40 hours a week. Not to mention it is a class on accounting.
Obviously there is nothing wrong with accounting (or business classes in general) in fact, I think that it will give me an opportunity to work in a more interesting field, as I should be able to do Software Architecture for large scale projects. For this type of work you need to be able to manage a team of engineers in performing smaller parts of the big picture. No one creates large scale applications on their own these days, its all done using team management. Software needs to be designed with this in mind, it is the basis of OOP (Object Oriented Programming). Also, with the dream of owning and running your own software development firm, it might be a good idea to know how to do some accounting.
However, this does not leave me much time for socializing, traveling (which I have been trying to plan this summer without much luck), video game playing (which I have a few on my list that I would like to play), or most importantly, work on my level editor, let alone the other projects that I have started. Also it is important to get a good nights rest (if I get the opportunity).
Bottom line... to succeed in life, you can never sleep.
Ok, everything in that list is good, except the last one. I am excited to be pursuing my MBA as I would really love to run my own software development company some day (preferably in game development - obviously), but in truth I am not really looking forward to going to class 4 days a week on top of working 40 hours a week. Not to mention it is a class on accounting.
Obviously there is nothing wrong with accounting (or business classes in general) in fact, I think that it will give me an opportunity to work in a more interesting field, as I should be able to do Software Architecture for large scale projects. For this type of work you need to be able to manage a team of engineers in performing smaller parts of the big picture. No one creates large scale applications on their own these days, its all done using team management. Software needs to be designed with this in mind, it is the basis of OOP (Object Oriented Programming). Also, with the dream of owning and running your own software development firm, it might be a good idea to know how to do some accounting.
However, this does not leave me much time for socializing, traveling (which I have been trying to plan this summer without much luck), video game playing (which I have a few on my list that I would like to play), or most importantly, work on my level editor, let alone the other projects that I have started. Also it is important to get a good nights rest (if I get the opportunity).
Bottom line... to succeed in life, you can never sleep.
Friday, May 9, 2008
Joys of Life
So I have an amusing story to share. Last night, I was working on my Direct X Editor, trying to get the initial polygons on the screen to test my viewport/learn a little about vertex buffers in direct x. Needless to say I learned something about Vertex Buffers.
So the plan was to create a grid of verticies for the purpose of creating a reference grid on the xz plane about the y axis. Simple enough right? I thought so. Anyways, I get my verticies set up and I create my Vertex Buffer (so I thought) and set up the function to do the drawing. Nothing appears...
Well shoot! What did I do wrong? Am I drawing the Polys in the wrong direction (Counter clock wise instead of clock wise). So I try a simple test, I rotate the grid using an x transformation of 180 degrees. Still nothing.
Hmmm... I think to myself, that is strange. Time for some debugging. So I step through my vertex declaration and convince myself that my location of verticies are correct. I check my viewport declaration, its correct. And now I am frustrated.
I get out some sample code, add it to the project, and give it a try. Sure enough, the sample code appears on the screen as two annoying little spinning squares right where my grid is suppose to be. So there is obviously something wrong with my code. I compare and compare to no avail. I try to insert my vertex buffer into the sample drawing code, no luck. I even try to redefine my vertex points exactly as the sample code, no luck. Now I am really confused.
Finally! I figured it out, apparently when you create the vertex buffer. Normally you have to create a void pointer object for use in referencing the memory that the vertex buffer will use to hold our vertex information. Then we use this pointer to lock the vertex buffer, copy the memory and unlock the vertex buffer and all is good.
Well... let me tell you, sometimes life has a way of playing small games with your head.
Frustratingly enough, the memcpy function used in this procedure doesn't care much what type of pointer you place in its parameters. We want this definition: memcpy(void*, Verts, sizeof(Verts)); where Verts is the array of vertex structs that we want to put in the buffer. Yet it turns out that I was using this: memcpy(void*, VertexBufferObject, sizeof(Verts));
What this means, I really do not have a clue, but once I fixed the memcpy, life was good again, except for the mess I made in my editor code trying to debug... Oh well.
So the plan was to create a grid of verticies for the purpose of creating a reference grid on the xz plane about the y axis. Simple enough right? I thought so. Anyways, I get my verticies set up and I create my Vertex Buffer (so I thought) and set up the function to do the drawing. Nothing appears...
Well shoot! What did I do wrong? Am I drawing the Polys in the wrong direction (Counter clock wise instead of clock wise). So I try a simple test, I rotate the grid using an x transformation of 180 degrees. Still nothing.
Hmmm... I think to myself, that is strange. Time for some debugging. So I step through my vertex declaration and convince myself that my location of verticies are correct. I check my viewport declaration, its correct. And now I am frustrated.
I get out some sample code, add it to the project, and give it a try. Sure enough, the sample code appears on the screen as two annoying little spinning squares right where my grid is suppose to be. So there is obviously something wrong with my code. I compare and compare to no avail. I try to insert my vertex buffer into the sample drawing code, no luck. I even try to redefine my vertex points exactly as the sample code, no luck. Now I am really confused.
Finally! I figured it out, apparently when you create the vertex buffer. Normally you have to create a void pointer object for use in referencing the memory that the vertex buffer will use to hold our vertex information. Then we use this pointer to lock the vertex buffer, copy the memory and unlock the vertex buffer and all is good.
Well... let me tell you, sometimes life has a way of playing small games with your head.
Frustratingly enough, the memcpy function used in this procedure doesn't care much what type of pointer you place in its parameters. We want this definition: memcpy(void*, Verts, sizeof(Verts)); where Verts is the array of vertex structs that we want to put in the buffer. Yet it turns out that I was using this: memcpy(void*, VertexBufferObject, sizeof(Verts));
What this means, I really do not have a clue, but once I fixed the memcpy, life was good again, except for the mess I made in my editor code trying to debug... Oh well.
Subscribe to:
Posts (Atom)
