Jump to content

  • Log In with Google      Sign In   
  • Create Account

Sean T. McBeth

Member Since 11 Sep 2000
Offline Last Active Yesterday, 04:19 PM

Topics I've Started

An important day today, 9/11

11 September 2014 - 06:42 AM

As it marks my 14th year as a member of gamedev.net!


Cardboard VR

19 August 2014 - 07:57 AM

If you've done any reading about the Facebook, nee Oculus, Rift, there are a lot of people who are taking Virtual Reality very seriously these days. At Google's IO conference this year, they announced Cardboard, a template for a head mounted display made out of lenses, a cardboard box, and an Android smartphone. There is even an official Google+ community that is very active. It's sort of based on a Durovis Dive-like concept (and I think they even used the lenses from the OpenDive kit), and all of the Durovis software works with it. Even a cursory search on Kickstarter/Indiegogo and you'll see everyone and their brother has a 3D printed smartphone HMD rig project they are trying to hock.

 

I would say--at least on the hardware side--the situation today is significantly different from the first, early 90s debacle in VR to warrant not dismissing this as a passing fad out of hand. For the first time, VR is accessible to hobbyists and not just relegated to expensive, probably-snakeoil-selling startups.

 

So I'm posting here to see if any other GDNet users are playing with VR right now. Seems like the natural place to be for this sort of stuff. The G+ group can get kind of bogged down with product announcements sometimes, and there isn't a good way to discuss programming or design.

 

I'm somewhat interested in exploring VR UX paradigms. Oluseyi and I have been having a discussion about it for a little bit. I don't think many people have given a lot of thought to the user input side of the UI equation. My own experience has been that a Bluetooth gamepad is the most comfortable way to interact with the system, for a variety of reasons that have more to do with the relative inappropriateness of every other input system I've had available to me than anything specifically good about the gamepad itself. This is a minor problem for me, as I'm writing my own demos as WebGL apps in HTML5 (both to make it easier to test and to avoid having to take time out ot get setup with and learn to program Android apps), and the current builds of Google Chrome and Firefox do not support gamepads on smartphones, only desktop computers.

 

There are a lot of demos in the Google Play store, and most of them are complete garbage. I would say the best ones are the official Cardboard App (there are some very neat demos, but nothing of lasting use), the porting of the Oculus demo "Tuscany" to Durovis Dive (and mostly only because it works as advertised), and SpaceTerrorVR (a stupidly simple game that is just compelling enough, given the complete lack of other content right now, to convince me to play it all the way through). I did get a good laugh out of VR Toilet Simulator, which is appropriately priced at Free. VR Flight Demo was itself quite bad, but bearing with it one can see the big potential for VR flight simulators.

 

Some of the issues with these apps are time-to-market related. There just hasn't been enough time to make something good yet. There isn't enough content, and testing across a plethora of devices is hard. Some of it is just bad software development, like a complete lack of any attempt to do sensor calibration or provide configuration settings to enable different input devices and button layouts.

 

But there is a lurking issue of accessibility. Getting people into a headset is one thing, and a huge thing at that. Getting them to also have a bluetooth gamepad is a completely other issue, and one I'm afraid is going to really be a detriment to VR adoption. In general, the attempts I've seen and experienced at VR are far too piecemeal to be able to bring VR to wider adoption.

 

 

 

 

Sidebar/brief bit of history: I have always been very bad about finishing projects, especially game projects. Occasionally I'll knuckle down and get something slapped together like a Tetris clone that you play against an opponent by arm wrestling them, or a completely audio based "sub hunter" game that is more a physical set piece than it is a "game". But my interest in game programming has always been more one of tinkering, the enjoyment of problem solving, than of project completion, business, or even having fun playing the game itself.

 

So when, almost exactly three years ago, I slapped together a cardboard box to make a stereo photo viewer out of a smartphone, with the hopes of animating the image, I didn't think much of it past "look at this weird thing, isn't it fun?" 

 

stereo1.jpg

 

After seeing the design, and seeing the number of people complaining about how long they were going to have to wait to get their official kits (from both official and unofficial vendors), I immediately ran out to a store, bought two magnifying glasses, and slapped together my own rig by the end of the day.

 

20140819_091034.jpg

 

20140819_091119.jpg

 

The point of all of that is not to brag (okay, just a little), but to point out that these things are really easy to make and you should not wait for shipping for a $20-30 cardboard box to be delivered to you in... a cardboard box. At most, you should spend about $10 or less on lenses (just about anything in the 35mm to 55mm focal distance should work, maybe more, I just haven't tried yet) and use the cardboard box they come in to measure and cut your own setup. The official template is for one lens type and one size of smartphone only, so if you have an iPhone that is smaller than the typical Android phone, or a Samsung that is larger than typical, then you're probably going to have to adjust the size of the box to suit, anyway (NOTE: if you have a Samsung Galaxy Note 3, then you'd be using the same display module as the Oculus DK2). Also, you can get a marginally better image by custom tailoring everything to your own head shape and interocular distance. The NFC tag is unnecessary and most developers aren't using it. I'm also of the opinion that the magnetic "clicker" that the official kit includes is a bad idea, I don't want neodymium magnets anywhere near the magnetometer in my phone.


Small Town: a modern MUD

04 January 2014 - 06:46 PM

I wrote a Multi-User Domain in Node.JS! http://seanmcbeth.com:8080/

 

The content is pretty thin right now, but it features:

  • Scriptable AI: there is a basic tutorial at the beginning that is driven by a scripted bot, and there is a room with two bots reciting Shakespeare at each other.
  • Craftable items: though I've unfortunately not put most of the crafting materials in the game world yet.
  • Dynamic map layouts: exits can lock and unlock, or go visible or invisible based on time or keys that the user holds.
  • Open source code and content: you can fork the shit out of it!

 

I've had a few dozen people try it out, but so far nobody has given any feed. I'm afraid the tutorial might be too dense for them to get through. I'm at a loss for how to fix it. Most people quit after a few seconds, and for the people who stick around and complete the tutorial, they never leave the first room. So perhaps you folks who seem to may possibly understand the history of games better than randos on reddit can check it out and leave some feedback. Thanks!


Database change management

21 March 2013 - 11:35 AM

I'm curious about how other people use and live with databases, specifically the types of tools they use around their database to simplify work with it. For background info, what database(s) do you use, and what is the scope of your project? What kind of tools do you use to manage change with your database (implicit or explicit schema, server deployments, etc.)? What kind of "generator" tools are you using (thick- or thin-ORM, data access layers, whatever)? What pain points do you still experience? Thanks!

 
For myself, I have worked on a lot of custom enterprise resource planning systems over the years. Data is generally small, and highly relational. It's been mostly SQL Server, but there is some MySQL in there too. In other words, all pretty basic RDBMSs. I've played around with ORM systems like NHibernate and Entity Framework, found them quite useful for designing the initial database, but lacking something in the long run for any time changes were necessary after a nontrivial amount of data had been recorded. As a result, I've tended to try to leave the database changing in the database realm and use only a thin ORM (direct table mapping) with classes automatically generated from the schema. This seems to avoid lost data problems, but comes at a high development cost for constantly repeating yourself and not having change management ala source control in place.
 
Redgate has a tool called SQL Compare that I've used in the past that makes diffing and merging databases a snap, but it is very expensive. Without a SQL Compare-like tool, it's really easy to miss changes to tables and stored procedures without extremely comprehensive testing (and really, who does that?) when deploying from a development- to testing- or production-environment. And still, that is a uni-direction move. Unlike source control, you never get to see the past again (unless you're restoring from backup, and that is just not automatic enough or simple enough to be a workable solution).

A highly commented Pong game in JavaScript

07 August 2012 - 12:56 PM

Just wanted to put this out there for any beginners looking for some source code to read and learn from
https://github.com/capnmidnight/JS_Game_Programming_Class/

This is where I will be posting all of the materials for a programming class I'm running here in Philadelphia. Over the next few weeks, I'll be breaking this file down and showing everyone how to rebuild it from the ground up.

This is a DHTML game right now, but eventually I'll upgrade it to HTML5 Canvas. By the end of the series, you should be pretty well versed in how to write browser-based games.

This game runs in Internet Explorer (7 - 9), Google Chrome (latest), Opera (latest), Mozilla Firefox (latest), and Safari (5.1, they haven't released 6 for Windows yet, so I can't check it). It *also* runs on the iPad version of Safari and Android 2.3 Gingerbread browser.

PARTNERS