• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
  • entries
  • comments
  • views

About this blog

A walk through the game dev process from my eyes

Entries in this blog

[font=arial]The screenshot remains the same as in phase 1, only this time we added some physics to the mix to bounce the ship off of it. This took a little bit of playing around...[/font]


[font=arial]The first thing that I had to do was get my ship model loaded in. I'm using the basic ship from the Direct X SDK that Microsoft provides. This is just a basic model... added a reflective material to the surface. Spent time positioning the camera over the cockpit (and in the bottom render you can see the nose of the craft) and then added mesh colliders to both the ship and the space station.[/font]

[font=arial]The majority of this phase was figuring out Unity and how to get colliders to work.[/font]
[font=arial]I set the station and the ship to both have a collider, to have rigid bodies, and to not be kinemetic. This was very important... as this is how the OnCollision trigger is fired. If the colliders are kinemetic then you must use the trigger properties instead, which I chose to not implement because I actually want my ship to be able to collide with things and not necessarily destroy them.[/font]

[font=arial]Once that was done I created a new script called "ShipPhysics" and added that to my ship (the motor script is attached to the camera, that may be changed in the future but for right now the camera still controls the movement of the parent body). I inserted a simple event handler that would check the tag of the object I collide with, and if its a space station, to run a custom method to end my app if my current speed is over 40m/s.[/font]private void OnCollisionEnter(Collision collision){//rigid bodies collidedif (collision.gameObject.tag == TAG_STATION){CollideWithSpaceStation();}}private void CollideWithSpaceStation(){//if current speed is slow, nudge the station//if current speed is not slow, the ship will be destroyed for right nowif (this.GetComponentInChildren().CurrentSpeed > 40){Debug.Log ("Quitting");Application.Quit ();}}
[font=arial]Testing the code confirms that it works. I can now fly around the station and run into it and it bounces my ship off of it, and if over 40 m/s will end the app (blowing me up)[/font]

[font=arial]Now I need to start constructing a GUI...[/font]
I have my project broken into milestones, which I call phases... and the first phase is nearing completion. The first phase is simply to be able to render a space station of appropriate scale, and then be able to "fly" around it.

This involved a few things:

1) finding a good space station model and then rendering it (done)
2) creating a camera
3) mapping my XBox controller's DPAD to the game (by default, the xbox dpad is not part of the project, it follows the 6th and 7th axis from the input object so I had to go into the input manager and add this)
4) create a new ship class which would be tied to the camera which would have the code required for making it move

As of right now the ship will turn on its x and y axis (i will add rotating on the z later as currently that's not vital). Still to do is add acceleration and max speed.

I have a few variables in line to hold this information... a maxSpeed which will represent meters/second and a throttle which will allow the player to incrementally raise the speed up by 10% each time to a max of 100. This was mapped to the DPAD up and down.

Challenges ahead:
Working with acceleration. Spacecraft shouldn't just start moving at X meters per second, it needs to build up.

Stabalizer code. Pure space means with no friction that once moving in a direction you will continue to move in that direction indefinitely. I have added stabalizer settings which a ship will have to counteract zero-gravity. However... perfect stabalizer should not exist. If I rotate right on the X axis I should slowly continue to rotate on the X axis when I release my joystick for a short time while the stabalizers kick in to stop the motion.

Once this is complete I will add rotation of the Z axis and my phase one will be complete: a moving camera in first person mode flying around a space station set on a black backdrop of nothing.

I also added some point lighting to the station to light up some of the features from interior lights. I discovered a thing called lightmapping last night but I'm not sure if its relevant at this point as there is no real scenery in space... at least not at the moment. It appears that UNITY doesn't light map objects... when I put my station's objects STATIC and tried to lightmap the mesh it told me there was nothing to lightmap.
I could also be doing it wrong. Which is a likely possibility.
I've spent the better part of the week analyzing continuing my work in XNA for my game development, or moving into a system called UNITY 3D.

When I first started hearing about Unity and researching it, a lot of people were saying that its nothing more than a design tool and that people were better off sticking with XNA or Monobuild to create their game. It took a couple of days to really start analyzing the whys and what ifs.

First it is true, Unity is an engine... one that seems to be wrapped around an XNA-like framework. The thing is, the more that I think about it, the better that sounds because quite honestly I have discovered that I am not a fan of having to write engines.
I've never written a 3D engine. Most of me is not excited about having to write one. There is the cool-factor of having done one that would be nice, but really my main interest is putting the ideas in my head on screen and sharing them. Unity lets me do that.

I was able to do a couple of simple shooters in Unity in about 1/60th the time it would take me to do in XNA. The downfalls are that I don't understand the matrix math underneath the hood but honestly, I don't care about that.

As such, I will be moving forward with using the Unity 3D engine for the projects I have going on for the forseeable future.

There are two main projects that I am toying with at the moment. Both are ideas I have had for a long time but the lack of time and willingness to commit to writing an engine were the roadblocks that have kept them off the table for me.

The first is Project Genesis which I dub the beginning for me as a game developer using 3D engine to develop a game. Genesis is a mix of space dogfighting ala the old XWING series of the 90s mixed with galactic management akin to Civilization mixed with a little EVE. I would ultimately like the end product to be able to support mutliplayer... as that was the initial catalyst for wanting to do this... dogfighting with (or against) your friends!

It is also a sandbox in that the galaxy is never the same twice. It can quickly be fairly ambitious and large so to keep my scope down... Project Genesis Phase 0.1a will simply be about piloting a transport from a moon orbiting station, around dockyards with the earth in the backdrop.

To accomplish this, I have found an excellent set of assets found here: http://forum.unity3d.com/threads/147954-Space-Graphics-Toolkit-RELEASED
I am excited about this project and look forward to starting to roll it out.
The second project that i will be developing concurrently is much simpler but utilizes a different style of game. Whereas Genesis is about space combat and freedom of movement, Project Crucible is a virtual gaming table that has a ground and scenery and models that can move around on the scenery.

Project Crucible's end product will be a gaming table that utilizes basic pawns to play games such as Warhammer, Warhammer 40K, Flames of War, etc on. It will enforce no game rules, and will simply let you roll dice, move pawns, remove pawns, and have some basic effects. The idea with Crucible is to incorporate my own game system in with a campaign akin to the Total War series only Turn-Based combat instead of real time combat and where you build your empire up.
Both of these will have basic prototypes that I hope to kickstart to fund Unity PRO as well as more detailed assets. With Genesis that will be ship models, space station models, etc. With Crucible that will be the dozens of models needed for game pieces. There are some nice ones in the asset store right now that I am eyeing but these all cost money and I need a way to fund the project.

Exciting times ahead.
Sign in to follow this  
Followers 0