Sunday, August 13, 2023

Remembering the Dreamcast

Spent some hours today investigating what it would take to develop a game for the Dreamcast.  How feasible that would be.  Seems like it's more work than it's worth.  I shall stick with Godot as my first real attempt at making a game.

Nevertheless, that got me in the mood to turn on my Dreamcast again and play some Sega Bass Fishing.  I've been trying to hunt down a Dreamcast fishing controller and remembered that I don't have Sega Marine fishing.  More on that later.  But when I booted up Bass Fishing I noticed that there were some severe slowdown issues.  I don't remember that being the case back in the day.  Also, it's been years since I last played this game, probably over a decade.  One real possibility is the game always ran like that.

I couldn't help but worry that this disk was having some kind of issue.  The game disk is more than 20 years old at this point.  That got me curious about burning Dreamcast games into CDRs.  A friend mentioned last week he used to do that.  I decided to look more into how that is done.  After a little bit of research, it turns out the process is surprisingly easy.

All you need is to download imgburn and a few extra files from their website and find a CDI image for the game you want.  I burned Sega Bass Fishing since I legally own a copy and made the disk.  It took about 7 minutes and I so excited to see if it would actually work.  The CD I used is from an old batch I bought like 15 years ago, so I had very little hope of this whole thing working.  And to my astonishment, it did work - at least initially - and I was thrilled.

I played the whole Arcade sequence, but I noticed that when the time would run out on the game, pressing Start took a while to load and it made the Dreamcast spin more than I would like.  My suspicion is the CD is not good enough for this thing to work like it should.

From there, I proceeded to finally order a GDEMU from AliExpress.  It's something I've been meaning to do for a while.  And I will be performing the mod in my OG Dreamcast which I bought on release day.  The console died in 2005 or so.  It stopped reading disks.  This project is one that I'm super excited to do as I would be able to have a backup of all my games.  Maybe I'll do a post about the process once the part arrives and the results.

Anyway, going back to Sega Marine fishing.  I looked at some playthroughs on Youtube and it looks somewhat worse than the original two Bass fishing games.  Like the graphics are off, and the fishing mechanic seems more rushed than the originals.  What I saw kind of made me hesitant to buy my own copy.

Thursday, August 10, 2023

Const QMap Reference in C++

So recently I was helping a co-worker with one of his stories and one of the architects suggested that he could benefit from using QMaps to solve the issue he was having.  I know my C++ and most times I can think what the compiler is doing behind the scenes but the following I had a fundamental misunderstanding about how references work.

#include <QCoreApplication>
#include <QMap>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    const QMap<int, int> three = {{0, 3}, {1, 3}, {2, 3}};
    const QMap<int, int> two = {{0, 2}, {1, 2}};
    const QMap<int, int> one = {{0, 1}};
    const QMap<int, int> &cur = three;

    cur = three; // compiler complains

    qDebug() << cur.size() << "\n";

    cur = two; // compiler complains

    qDebug() << cur.size() << "\n";

    cur = one; // compiler complains

    qDebug() << cur.size() << "\n";


    return a.exec();
}
As you can see above re-assigning the reference is not allowed.  I think after many years of working with the language there are times where I forget the fundamentals, but there is a little more happening here.
When you make QMap const you are saying that the copy constructor is not enabled.  This is what is actually happening in this case with the reference cur.  So how do you solve this problem?
Well one of the easiest ways is that if you must have some set of N constant maps then you can use a const pointer to QMap.  But then that adds the overhead that now you must ensure that pointer is not null, which is why I think my first approach to this problem my brain thought about was to use a reference.

Saturday, August 5, 2023

Years later

So blogs aren't really a thing anymore.  Most people stick with social media these days.  It's been years since I last posted anything here.  Life has changed quite a bit.  But I'm still much the same in terms of what I use to write here.  Still love video games, still continue working towards being a game developer someday.

It is interesting to read some of my old posts and seeing where I ended up.  Back then I was working as a software tester and wanted a software engineer job.  Now I have several engineering jobs under my belt.  I accomplished my goals of working with C++ and Qt.  These days I spend a lot of time teaching others how to program and design good software for embedded systems.

Back in the early 2010s I was very insecure about my programming skills.  Nowadays I realize that I have come a long way but there is still much to learn.  A lot of my proudest achievements over the past couple of years is leading others, motivating them to achieve their full potential, and seeing them grow in their careers.  I would like to think I have played a small but memorable role in their lives.

My hobbies have expanded considerably.  Have delved into comics, action figures, cycling, traveling, photography, guitar playing, board games, even learning Japanese as of late.  But one has remained constant, and that is videogames.

I have all the latest consoles, and even though I don't game as much as I did a decade ago, I still enjoy games immeasurably.  Some of my favorite games from the past few years have been: Hellblade, The Last of Us Part II, Stray, Dredge, Mortal Kombat 11, Super Marion Odyssey.  Not to mention countless others I played for a few hours and then dropped.

I guess I felt inspired to write another blog after not logging here for years.  Maybe 10 years from now I will have this to look back on.

Some goals for the future are to do the following:

  • Learn more design patterns
  • Learn Japanese
  • Make a few games with Godot
  • Learn QML
  • Play more games
  • Read most of Stephen King's books
  • Go fishing more often
  • Have fun and enjoy life!
  • Cherish the time I have with my family!
Thank you for stopping by.


Sunday, February 2, 2014

In 2014, the Playstation 3 is the best console for pc gamers.

I have no qualms about the fact that I consider the pc to be the best gaming platform.  The reasons are many, and well known so I won't bother pointing them out in this post.  That said, whenever you restrict your gaming choices to a single platform you end up missing on a lot of great games.  And as much as fanboys try to downplay that fact, every system that has ever been made has had great exclusive games.  If you are a pc gamer, and are looking to buy a console, forget about the PS4, Xbone, WiiU.  If you don't already own one, the PS3 is the best console you can own to compliment a pc library.  In the following, I will try to explain why I believe the PS3, even in 2014, is the best console to own.  This has to do with having the best exclusive games that you can't find on pc, Sony's strong studio system, their inroads copying Steam with PS+ and having a more open system, the lack of games in next-gen consoles, and most importantly, the games.

For the past couple of years I had been contemplating the idea of buying a Playstation 3.  This past December, I finally took the plunge and bought the excellent Black Friday holiday bundle that came with both The Last of Us and Batman Origins.  Why I took so long was a combination of factors which included, a massive Steam catalog, the price being too high for a console that was released in 2006.  Yet, somewhat surprising, the biggest reason I was hesitant getting yet another console, was my experience with the Xbox 360.  Microsoft's last gen console was the biggest disappointment in videogame consoles I've had in my life.  The exclusive games had been ridden with sequelitis, and every single multiplatform game had a pc version that looked and run a hell of a lot better.  Not to mention having to pay to play online is something I despise.  With the exception of the last sentence, I firmly believed Sony's PS3 was plagued by the same problems.

One of the things that drove me to spend most of my gaming on pc was a sense that most big games on consoles were playing it too safe.  Everything had become too streamlined to minimize frustration.  It became obvious that in order to appeal to the mass market, the games had lost their voice.  A couple of years ago, I began to notice that what I had considered to be a similar problem with the Playstation 3 was completely wrong.  Games like Uncharted, God of War which had a relative high number attached to the title were made from a different mold than say the latest entries into Halo, Gears of War or multiplatform games like Call of Duty.  Why?  Because of a single word, "experiment."  All the studios working for Sony have from my perspective a hell of a lot more freedom to experiment in the "AAA" space.  You see, the thing is Sony has the 2nd strongest set of gaming studios, only surpassed by Nintendo.  It wasn't really until The Last of Us that I understood how great the exclusive Sony lineup has been in the PS3's lifecycle.  Why does this matter?

If you own a good pc rig,  ask yourself the following.  Starting with the last generation i.e. 360, PS3, Wii, which "AAA" experiences are harder to find on pc?  The answer I believe are most of the exclusives for PS3.  Many of these games have a unique take that perhaps can only be explained by having a Japanese company like Sony to fund them.  To illustrate this point, take for example Quantic Dream's game Heavy Rain.  It was clear from reading the reviews the game wasn't universally loved.  In fact it wasn't even a commercial success.  Yet Sony not only supported the game, but went as far to fund another game - Beyond Two Souls - in the same style from QD.  Why?  Because Quantic is on to something.  They are one of the few AAA studios experimenting how to tell a story through a game, and Sony believes in them.  Mind you, I have not played either game.  But looking from the sidelines, the creative freedom is evident.  Now, here is something that might shock you,  Quantic Dream is not a Sony first party studio.  And they are nowhere near the top in terms of quality to the cream of the crop of Sony studios superstars Sony Santa Monica, and Naughty Dog.  Yet all the games that Sony studios have made in recent years have been given the support to experiment, which is something the industry desperately needs.

Steam is loved by the vast majority of pc gamers around the world.  It is single handedly responsible from bringing back the pc from a zombie-like state into being the center of innovation in distribution, sales, community, and forward thinking for the industry.  Also, I will be the first to admit that is not perfect, and it has a lot of problems that Valve has to fix.  Overall, I believe is a great foundation of how to move the whole industry forward.  It is no surprise then that Sony has come up with a very Steam-like service called PS+.  It is not free, and it's not as good as Steam as a whole, but it's the best system of it's kind available on any console.  Here is a short example of how much value, PS+ provides.  I bought a 1 year subscription to PS+ for $35 while it was on sale during the holidays to extend the 1-month free-trial that came with the PS3 bundle.  In the span of about two months, I have received the following games for free through the Instant Game Collection:
  • Uncharted 3
  • Ico
  • Shadow of the Colossus
  • Borderlands 2
  • Hotline Miami
  • X-Comm Enemy Unknown
  • Resogun (PS4)
  • Bioshock Infinite
  • DmC
  • Brothers a Tale of two Sons
  • ... and a few others
I haven't even had a chance to play any of these games.  That's a ridiculous amount of value and best of all is that I have almost a full year with many, many more games to add to the collection.  The Instant Game Collection would be worth it by itself, but you get other benefits like access to betas, Steam-like discounts and a few other things.  This is starting to sound like an add, but PS+ is such a good value that is worth repeating all the benefits you get.

So let's say that you already own a PS3, or that you don't own one but rather skip to PS4 since it has more of a future.  Well let me try to convince you why you should keep your PS3 connected to your TV, or why you need to wait to buy the PS4, and get a PS3 instead.  Look at the current lineup of games available now on PS4 and ask yourself which of those game is an absolutely must play game, a killer app.  There is nothing.  If you own a good gaming pc, you can play Assassins Creed IV.  Resogun while good is not worth dropping $400 to me.  What about Infamous Second Son?  I'm sure it will be a fantastic game, but it won't be a revolutionary title.  Looking into the future I'm willing to bet, there won't be a single game that you need to get a PS4 for the next couple of years.  It took about that long until the PS3 got Uncharted, and longer until it got Demon's Souls.  Furthermore, go look online, and do a search for DualShock 4 analog sticks problems.  If we can learn anything from the past is that the first run of hardware for any product will have issues that are ironed out as the manufacturing process gets better.  For me personally, there is no reason to buy a PS4 in 2014.  But who knows, E3 might convince me otherwise.

In the meantime, there is a huge catalog of titles available for PS3 that when combined with PS+ make it a tremendous value.  Here is what I've bought so far:
  • The Last of Us
  • Demon's Souls
  • Uncharted 1, 2
  • God of War 3
Those games plus the IG collection makes for an awesome backlog that can provide entertainment for possibly years.  Then you have games like Dark Souls 2 releasing in March.  Best of all is that the majority of these games have nothing comparable on pc.  Sure, Metal Gear Rising, DmC available on Steam, but nothing with the level of quality of God of War 3.  There is nothing on pc today that is comparable to any Naughty Dog game.

In summary, the PS3 is the best console to own in 2014 if you are a pc gamer.  It complements, the superior multiplatform games, and the vast amount of indies we get every year.  The PS3 provides an avenue to experience games with incredibly high budgets that are only available because of consoles, with the a little of the  "experiment" factor that pc gamers come to expect from their games.  PS+ is a great value that allows you to build a library right away.  But most importantly, the exclusive games available for PS3 can be found relatively cheap, and the console still has some legs left with games like Dark Souls 2.  Buy a PS3 now, and let the next gen consoles build up a substantial reason why to buy them. 

Wednesday, January 1, 2014

My favorite games of 2013




1. The Swapper. Combine Metroid, Portal and the movie Moon and you get The Swapper. Without doubt this was one of the games that left a big impression on me because it tackles deeply philosophical issues; for example what is consciousness, can it be transferred, what is the value of life.  Of course the game doesn't provide answers, but I'm glad that it asks them and that it's the gameplay that poses those questions. The atmosphere in this game is simply incredible thanks in great part to the unique art style and superb ambiance soundtrack. The feeling of isolation this game evokes reminds me of S.T.A.L.K.E.R.  This game is above all a great puzzle game and it stands in the same company as Portal in originality and mind-bending mechanics.





2. Brothers. Just finished this wonderful game, two days before the year is over, and it has forced me to change my list. "Wow" is all I can say.  We need more games like Brothers in this world! Brothers is a perfect example of why I believe videogames can surpass film as a storytelling medium. It uses a extremely simple form of control that is tied to the narrative.  This is what makes a great game, having its rules and mechanics communicate to the player the story, and allow interaction with the world and its characters.  I'm completely blown away and was seriously considering making Brothers my number 1 game of 2013. Every single environment in this game was a work of art and the gameplay although on the easier side was very effective. There are so many moments that are Beautiful.  Not to mention here is a game that didn't overstay its welcome and it used every single second to deliver a very condensed, focused, story.





3. Guacamelee. Managed to squeeze this game in the last two days of the year and I had a really great time (It was actually a steam gift from one of my good friends). This is the only game this year that I couldn't put the controller down, and I actually wanted to play more when I was away from my computer. Guacamelee has superb game mechanics and extremely responsive controls.  Although you can fail a lot of times at a given mission, there is zero frustration.  There is no point where the game cheats, and every error is due to the player not mastering the controls.  Being Mexican, this game had me smiling at a lot of things, the humor, the surprisingly authentic portrayal of a lot of Mexican folklore, the subtle way that is was playing with telenovelas tropes. Drinkbox clearly did their homework. It is also by far the funniest games since Psychonauts.





4. The Last of Us. I like games that have quiet moments and this game has an abundance of moments like that. There is a serenity that leaves me in awe. In that respect, Naughty Dog is following the Valve approach to action. Having a big battle followed by exploration and interaction with other characters. Sure it's not perfect, but there have a few times where I'm completely immersed in. The gameplay is solid, and feels gamey enough. I highly recommend playing through TLOU on hard difficulty.

edit: After some consideration, I think TLOU has a very big flaw, its gameplay. The story is wonderful but it is just too disconnected from the gameplay loop. I know that Naughty Dog tried very hard, but it just didn't work for me.





5. Bioshock Infinite. Actually I struggled a lot putting Infinite behind The Last of Us. In terms of pure entertainment value, I think Bioshock has the edge. The story has a lot more layers than TLOU, and the world of Columbia is the best new gaming world created this year. These two aspects make Infinite campaign more replayable than TLOU I really don't understand the hate this game has been getting lately. The only reason why this ranks below the TLOU for me is that the game fails to take advantage of all the vigors, and that the emotial arch of its characters wasn't as strong as TLOU. Also, Irrational needed a lot more unique enemy types for a game of Infinite's length.  Furthermore, here is another game, like TLOU, where a lot of people complained that it's gameplay doesn't fit the story.  I disagree.  Infinite's gameplay is a much better game than the TLOU mechanically.

Tuesday, September 17, 2013

Progress Update 1

In a previous post I wrote down some goals I had for the rest of the year and I think this is a good point to report on the status on how things have gone so far.
    Work with C++ again.
This is still ongoing. I've been doing some small programs here and there but nothing substantial yet.
    Learn Qt.
Priorities have changed and this is no longer a goal for the near-term.  However, I believe I got a solid foundation of Qt if I ever want to develop a multiplatform GUI application.
    Learn OpenGL.
This is on hold at the moment.  The reason is that I found a really cool game framework called Monogame.  Since Monogame is designed to be used in conjuction with C#, I started getting really into .NET.
    Review algorithms
No progress on this.
    Code at least one game by December 31, 2013.
Ok, this is the goal where I have made the most progress, and the one where I had the highest expectations.  XNA/Monogame are really good.  I'm slowly making progress with a PONG clone.

With that in mind, here are the revised goals:
  1. Finish one or more games by December 31, 2013 - I'm confident I can make more than one game by years end.
  2. Continue working with C# - thanks to Monogame, I am now interested in learning more about the whole .NET ecosystem.  Next thing on the list is to understand MVVM for WPF, for a lot of the same reasons I wanted to work with Qt.
  3. Review Algorithms
  4. Learn more about computer graphics - OpenGL and mathematics needed in the field.
  5. Continue working with C++ and Python
  6. Take a few MOOC courses, especially in the areas that relate to the above items.

Wednesday, September 4, 2013

Favorite game developers

There is a thread on NeoGAF with discussion about ranking your favorite video games developers.  Here is the post I made on the thread.

  1. Valve - Half-Life 2 is my favorite game of all time. Everything Valve touches is great, and I really admire the way Gaben runs the company.
  2. CD Projekt Red - I actually consider these guys to be the European arm of Valve. The Witcher remains my favorite cRPG.
  3. FROM Software - Dark Souls was a revelation to me. It simply perfects everything that a game is supposed to be. It communicates story and its world through gameplay like no other game before it.
  4. GSC World - If these guys had polished S.T.A.L.K.E.R. and delivered their vision in its entirety, their FPS would have been a monumental achievement. There are parts of S.T.A.L.K.E.R. that surpass all other FPS I've ever played. Truly a flawed masterpiece.
  5. 4A Games - The successor to GSC World. Metro 2033 was a thinking's man shooter that unfortunately suffered from too much of that European jank. It looked amazing, and its sequel Last Light is the best looking game currently available on any platform.
  6. Bethesda - These guys are on my list because of Fallout 3 and because they allowed Obsidian to make New Vegas. I don't really care much for their Elder Scrolls series.
  7. Irrational - IMO nobody does atmospheric western shooters like these guys. I'm glad that their shooters are ambitious even if sometimes they don't deliver on the goals that they set out to explore
  8. Firaxis - They are the drug dealers of the gaming world.
  9. Everyone else