MSOE Game Dev Crew

March 2014 Previous month Next month
Jacob McKay

Meeting 1 Recap: 17MAR14

Posted by Jacob McKay Mar 18, 2014

First of all, thank you to all who took the time out of their day to come and contribute to our ideas.  Specifically thank you to AJ, Sam, Dylan, Hardip and Louis; had you not shown up this group might not have taken off!  I was also very impressed that everyone spoke their mind and were engaged for the duration of the meeting, if we can keep that going then there is no doubt in my mind that we can do great things!  But back to business...


It was mentioned that the Hub was an ineffective/dreaded means of communication among us yesterday.  With that in mind, it is currently the best solution for me to get information to you guys and prospective members/talent, and the email I get email notifications whenever someone tries to contact me, or posts on our page, is very convenient.  It is for those reasons that I ask, at least only temporarily, that you folks get a little involved with the Hub page.  Please comment on our posts, participate in the polls, ask questions, and make questions of your own.  It may be arduous now and beneficial now, but the new blood that comes here next year seems to have taken to the hub and I'd like to include them as part of our target audience.  Your involvement with our Hub page is however not mission critical, in my opinion, and if you think a better use of your time would be to investigate technologies or formulate ideas then by all means don't force yourself to make posts if they'll be "just for the sake of doing them".  My last point on this topic is that I am working on a better means of communication/member acquisition.  A campus-wide email will likely be sent out Friday as that is when I am meeting with Mr. Gagliano to discuss the formalities/informalities of our organization.  That email is likely to include a link to our hub page, which is another motivation to make it pretty or enticing.


We are currently seeking an adivisor for our student org.  After our discussion yesterday the candidates that stick out in my mind our Dr. Livingston and Dr. Urbain.  They stand out both because of the recommendations I have received by other faculty in their favor and what they would bring to the table as our advisor(s).  I will be reaching out to them today to see if they are available/interested.


We need a constitution to officially become an student organization.  Originally I thought "OK lets get that out of the way quick and never look at it again", but after some thought and our discussion yesterday it seems like a good vehicle to introduce a little order and fun into our group.  All who showed up yesterday appeared competent and motivated, as our meetings progress we'll acquire more members and unfortunately even at an engineering school like ours incompetent and lazy members will be introduced (trust me, I've dealt with a few personally).  I will send out a link to the Google doc and ask a question on the Hub regarding our constitution; this will be your constitution, it would be beneficial to you to get involve with its creation!


My favorite part of the meeting was our discussion of the Hound game!  That got everyone talking and the ideas flowing.  I was impressed by the points many of you made regarding the development process and design decisions, and I hope you all continue to stay involved and play devil's advocate when necessary.  What was also awesome was that some of you seemed to like the idea of the game, and I would absolutely love it if we adopted it as one of our first projects!


Meeting times were discussed and as we found out, of all the rooms in the whole **** school I seemed to pick the one that someone was using during free hour, go figure.  For now, it looks like Mondays at 1 in CC47 will work, at least until we figure out a better time that coincides with those who weren't able to make it, and gain the benefit of room reservation for student orgs.


One thing that I think wasn't stressed enough during the meeting was the importance of the Midwest Game Development SummitThe potential benefits to our members/organization of attending/participating are simply too much to ignore, for me at least.  However, the timefame is a little disheartening.  I plan on doing my best to see at least one of our ideas become polished/developed enough to have something to showcase at the Summit, and I think it would be a fantastic goal for us to work towards as an organization.


Something I didn't talk about during the meeting was our affiliation with other organizations.  I think branching out somewhat and looking for talent at other schools we could source people that have skills in artistry or music that perhaps we couldn't find here with our highly technical students (note that I'm not saying MSOE students are incapable of excelling in those areas, but that it may be easier to acquire help from those who's career choice is in the arts field).  That said, there are groups internal to MSOE that may be able to partner with us, for example, I'm sure AE/CM, and ME's have some experience designing structures either on paper or with the aid of modelling software.


Last topic on my list related to our meeting yesterday, I'm almost done blabbing!  Kudos to Hardip and Dylan for stepping up and taking ownership of creation/distribution of our flyers!  Your involvement is definitely appreciated, and it got me thinking...  My nature is that I like to do everything.  The problems with that are that I do not have nearly enough time to do everything, and while I am great at many things, I'm not good at everything.  If my senior design team noticed my effort in was lacking due to the MGDC they might have me drawn and quartered!  Also, one of the many skills I believe a leader should have is the ability to delegate, and to help members use their talents in a manner that best benefits themselves and the organization.  That said, this organization needs your help and for you to get involved.  On any team I've been on lately (SDL, Senior Design) I've taken meeting minutes, kinda hard to do if it's my computer hooked up to the projector.  I generally love to take minutes because it keeps me focused during the meeting, and gives me an overall feel for how the projects are going as I record the minutes and prepare the agenda for the next meeting.  If anyone wants this responsibility, let me know!  As we grow I think we'll discover and create more useful roles for members to fill, let me know if you have an idea of a position you'd like to fill.


See you guys next time!

As I think I've mentioned somewhere before, deciding what to use to develop your game requires at least an idea of what platforms you're developing for, your specific needs, and your budget (among other things).  I'm just going to throw out some links to pages I'm finding useful as I decide on technologies I plan to use to make my games.  If you know of tools (engines/IDEs/3D modelling/audio/etc) that are better than the ones I'm posting, or that would fit the needs of a particular group of developers then please post in the comments!


There are (probably too many) cookie cutter 2D game creator apps, and quick and dirty FPS makers out there.  I wouldn't make a game unless I felt I was able to deliver a truly unique and engaging experience, and that would my game would be on par with that of those currently being released.  I think that in order to accomplish this, one requires tools that offer a high degree of freedom and functionality.  And it is for that reason I won't mention any "easy-bake-oven" game creator applications, but if you find they suit your needs then go for it.



The Unreal Engine

Brought us Unreal Tournament, Gears of War, and is behind many other great games.  From what I can tell, it is also a joy to develop with and you can develop a full game with it for free(ish).  The folks at EPIC set you up right with a host of tools immediately at your disposal to start generating content.  Download the UDK for free, or if you've got fat stacks look into becoming a licensee so you can gain access to the full sources and develop uninhibited (which may not be necessary as some claim you should be able to do whatever you intend to accomplish without becoming a licensee!).  You've also got the Unreal Developer Network, or UDN, that hosts plenty of tutorials and sample content to help you out as you go along!

JMonkey Engine

A free, open-source engine written entirely in Java!  Seems to have a decent community and in a similar manner as the Unreal Engine, comes with a lot of goodies.  Also recently announced support for Android devices, an advantage it may actually have over the Unreal Engine.  The only thing is that I don't see any really notable (IMO) games that have been developed using JMonkey, and during one of their demos that was supposed to wow us into loving their engine I noticed the game was running at 15 frames per second (which is lousy for a game of today's standards).  Still I am intrigued by JMonkey and would like to give it a try for Android development or simply as a learning experience.

Promising List of Other Engines


Modelling Tools

From my research the are three big players in the 3D modelling world, and which one's you'll use depend mostly on your budget.  It looks like whatever tool you pick, you'd be wise to make sure it can export in file types your engine supports (common types seem to be .FBX and .OBJ).  Many people I've come across in the many development forums say that the best tool for you is the one you're comfortable/skilled with.  It also seems like one of those religious wars that always seem to be waged among programmers concerning similar languages.  At any rate here are some options:


From Autodesk, a 3D modelling tool used frequently in industry that have seen recommended numerous times for it's animation capabilities (over other tools).

3ds Max




Audio Tools

- more to come later, this is WIP

Here's a list of courses that I've taken or plan to take that I believe would be helpful to the would-be game developer (in no particular order).  Some are obvious and required courses of most SE and CE students, like software development I, II, data structures, etc and will not be mentioned.


  • CS 321 - Computer Graphics

    I took this course because as a kid I always wondered what was actually happening to generate the pictures I was seeing on the screen.  Was each pixel set manual by some programmer?  How in the world would you keep track of each pixel on a two dimensional screen that shows a three dimensional model?  I thought that had to be a ridiculously complex problem, and took the course mainly out of interest in the topic.  Also, you learn c++, the language you'd likely need to use if you had to extend the Unreal Engine from full sources.


  • CS 421 - Advanced Computer Graphics

    I'd say this one is pretty relevant, and unfortunately I haven't been able to take it yet.  You do not need an in depth knowledge of how lighting in a 3D scene works, or how to write shaders for probably most development tasks.  However, I believe it would pay dividends to posses that knowledge, especially if you're going to create gameplay/visuals/assets your engine/dev kit don't support natively.


  • SE 3250 - Introduction to Game Development

    Uh, this is the game development class...  Mainly student driven (at least when I took it), you are asked to come up with an idea for a game and see as much of it to completion as possible.  I saw guys put together nice 2D scrollers throughout the course, and others were more ambitious but didn't get too far (myself included).  In the beginning of the course you're taught what makes games fun, and maybe that'll be reasons you hadn't thought of.  You also get practice refining your idea and presenting it to a group of people.  It was for this class that I gave a presentation for a time-waster game I wanted to develop, and according to at least one of my fellow students it was the WORST presentations he's ever seen.  It was pretty **** funny though, and perhaps I'll show it to you guys and we'll decide how bad it really was (I still think the project is a good idea).


  • CS 2851 - Algorithms

    A required course, and a pretty heavy duty one.  While you learn the basics of algorithms in your datastructures class, this course will really force you to think about what's going on when you code up a solution to a problem.  You may think you're being efficient with your solution, but this course will teach you to analyze your solution and determine for sure if there are areas for improvement.  And you'll also be able to spot inefficiencies and make optimizations to code (which could become very useful when interfacing/extending someone's game engine).  There are also many different algorithms used in the game development world that would make fine candidates for the course presentation you will have to do.


  • CS 4881 - Artificial Intelligence

    I haven't had the chance to take this one, but I remember a few gaming problems coming up in my classmates' conversations about the course.  Don't you think the ability to program NPC's to behave certain ways and respond to certain situations would be a valuable skill?


  • SE 2820 - Human-Computer Interaction (or HCI)

    One of my favorite courses and certainly important if you are to design the input/interface system for a game.  You'll study good UI's, **** UI's, design your own, and learn interesting stuff about how the human interacts with electronic devices.  Dr. Urbain does a good job of keeping the course current by lecturing on "natural" means of HCI, such as the Kinect and gestures/motions on mobile devices.


  • SE 4910(I) - Mobile Application Development

    I have taken both of these (iOS and Android) and I found both very informative and helpful.  In iOS I noticed that we focus more on natural input in the form of gestures and motions.  And in Android I noticed we covered the various sensors (that may be) available to an Android device.  If you plan on developing for either platform I'd suggest taking the one for your platform.  If you're at a loss for electives I'd recommend taking them both, as seeing both schools of thought was interesting and potentially useful when deciding which platforms to support.  What if iOS users expect different functionality or look and feel than Android users?


  • MS 3425, 3427, 3429 Entrepreneurship Overview Classes

    I have taken all of these, they are a set of one credit courses that you take over three terms (usually).  The reason I recommend them is that a running theme is idea development or "finding your zebra".  Browse for indie games, can you really tell them apart?  Your games should be different.  These courses also cover a little bit of marketing, financing, and kinda lets you know what to expect if you're going to start your own business.


  • MS 361 - Marketing

    This one I took as a stinkin' Saturday class (yes, those exist).  But it still made this list, must be important huh?  It makes the list because it drives home the notion that you need to understand your target audience.  What are their needs?  What are their wants?  What are their capabilities?  And on and on.  Useful not only for game development, but for any software product.  You'll take a requirements course that asks you to get inside the head/shoes of your stakeholders also.


If you think there are other courses that would be beneficial then by all means, comment away.

Jacob McKay

Automatic Level Design

Posted by Jacob McKay Mar 12, 2014

See related article: Ascii Dreams: The Death of the Level Designer: Procedural Content Generation in Games - Part One

As for it being the death of the level designer?  Absolutely not, this guy is just trying to get views on his site.


Anyway this was something that I thought of years ago (tyvm), and I think it'll be interesting to see how gamers react when someone finally does it right.  "But Jacob, it's already been done right!  I've played games where the terrain was randomly generated, and where whole dungeons were created randomly which gave the game unlimited replayability."  I call BS, at least in the games that I've played, I'm hardly impressed with this random level generation.  Sure, if there's a game that randomly builds rooms/dungeons by reusing/rearranging cubes then technically the user will have a "unique" experience everytime they play, but it still feels like I'm playing the same levels.  I'm still encountering variations of the same twists and turns, textures and enemies and eventually (and it doesn't take long) but I start realizing I'm doing the same **** thing just slightly re-hashed.


As someone who's played video games like crazy since NES, I've become incredibly self aware of the tipping point at which playing a game becomes boring/monotonous.  I think we've all experienced the gamer's attachment lifecycle.  An upcoming or existing game piques our interest, it impregnates our minds and thoughts until the moment we get our hands on it, and if it's a good game, we binge like crazy for days, weeks, or months on that one game.  That is our game and every chance we get we play it for any number of compelling reasons (it's fun, new and engaging, there are weapons/items we are striving to attain, all our friends are still on it).  This is akin, in many ways, to "new couple love".  You were just going through life aimlessly sampling the playing field, getting your heart broken along the way until your night in shining armor (your new game) came along.  Now you've got a new "crush" and love is in the air.  Man, you've never seen a game with graphics like this, and every time you play it you fall in love all over gain.  And this goes on, for a while.  But at some point something happens...


All of a sudden the game doesn't offer the same high it once did.  The novelty is gone, playing is no longer an engaging experience, we don't give a **** about any new weapons/items we could get, and maybe too many of our friends have moved on.  Playing a game during this stage is like being in a relationship that's going nowhere.  In the beginning you two had loads of fun, everything was brand new, it was like a god damned fairy tale.  Now there's no ****.  Those graphics you once adored are hardly stimulating anymore, and in fact you're tempted by the graphics of other games (don't feel guilty, we're all human).  Lastly, every time you play it you're simply reminded of all the little things you hate about the game and would love to change.  It's time to move on, and you do, starting all over again.


What I mean about doing automatic/random level generation right, and the purpose for my whole ridiculous tangent, is that cookie cutter rearranging of the same stuff is not enough to "keep the love alive" or "rekindle that lost flame".  If it was done in a way that created the sensation of actually getting new content, then the replayability and value of a game would drastically increase.  This is of course a very complicated problem to solve algorithmically.  The level generator would need lots of sample content (and the ability to generate more?), and the architect of this system would need a thorough understanding the current level design and what the players are looking for.  This system if developed for one game, may be in fact so closely tied to that game that it may not be easily extended and used for others.  But I still think it's an idea worth toying with.


Imagine a game where it's shipped with NO levels.  Lets put it into the context of a first person shooter.  Everytime the players go to join a game, the level is generated right there on the spot.  No one knows where all the best spots are, and players will need to actually think strategically about the positioning of their team and the enemy.  Camping would actually be skill that would need to be learned, you couldn't just know that some building is great for posting up and mowing enemies down because everytime you've played that level you've seen someone else do it!  Spawn camping would be a thing of the past.


And what about real-time level generating in-game?  Ever play a game where you're moseying around the map and BAM, you've hit an invisible wall?  That's the edge of the map, how realistic.  What if you could just... keep going?  It'd certainly be a pain for someone chasing you who in the past might have known the level better and cornered you because you're new.  And wouldn't it be exhilarating darting off into uncharted territory with someone on your tail?


This sounds computationally expensive, and hard...  But being able to solve hard problems is something that can reasonably be expected of MSOE students, and new technologies emerge at a rate that I certainly have hard time keeping track of.    To me, nothing is out of the question, and if you're to compete with all of the indie game devs and industry powerhouses, you better bring something new to the table.