Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 19, 2019
arrowPress Releases







If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 

Goat SimulatorÂ’s use of Unreal Engine 3 and PhysX for very fast game development

by Armin Ibrisagic on 03/27/14 11:27:00 am   Featured Blogs

7 comments Share on Twitter    RSS

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

Initially, Goat Simulator was a way for us to play around in Unreal Engine 3, try something new and train our new programmers in Unreal Engine 3. Like I described in my last article, we never expected we would end up making it into a real game, set to launch on Steam. Luckily, both getting a working prototype up, and finishing the game went extremely fast due to the tools we used.

Fast development for Goat Simulator has been crucial two times actually. The first time was some time in January when we decided to make the game as a joke, as we never would have decided to play around with the game from the start if it would take two years to get all the basic features working instead of two weeks. The other time we were saved by fast development was when we decided to make Goat Simulator into a real game that we would release on Steam. If the development of the game into a final product would have taken years instead of months, big chances are that we’d end up adding features that are really not necessary, we’d take the whole thing too seriously, and the the game would end up being bloated, or as we’ve been saying at the office; too “try-hard”. In fact, our design philosophy at the office has been “try really hard to make it look like you’re not trying too hard”.

kind of like this

kind of like this

Luckily, the choice of Unreal Engine 3 for Goat Simulator has been ideal. Because of the power of Kismet and the built-in features in the Unreal editor, we’ve been able to put our game designers and even some of our artists on scripting the level design content since day one, and already in the afternoon we had a table with props on it that you could run into with a goat. Unreal Engine’s built in fracture tool worked okay, but NVIDIA’s PhysX and Apex let us really make goat mayhem beautiful. We can’t make every single object destructible because of performance issues, but fracturing windows, fences, barrels and even an entire gas station was very fast to implement and worked like a charm. Creating fracturing objects was as easy as setting the basic variables for the fracturing, importing it to Unreal Engine 3 as any other mesh, and then placing it somewhere in the world.

an early alpha image of a barrel being smashed by the goat's horns and NVIDIA's Apex

an early alpha image of a barrel being smashed by the goat's horns and NVIDIA's Apex

Programmers have mainly been adding specific features like the tongue mechanic, the score system, and other non-scriptable content. This resulted in very few pipeline dependencies (waiting for someone else to finish their job so you can do yours is the WORST), which made it the first project we’ve worked on that didn’t need a project plan whatsoever (not even joking), and because of that creativity in the office flourished. We would have never come up with so many dumb ideas for Goat Simulator content if we had a strict project plan. For instance, one of our artists thought it would be funny to have a jetpack as a goat, so he quickly modelled a jetpack in Maya, jumped into Kismet, scripted for the jetpack to spawn particles and apply force in a certain direction when you press a hotkey, and it was done. The fact that we could do these kinds of things directly inside of the engine without having to close it and compile has resulted in countless small and quirky features that took just a couple of hours to implement, but bring a lot of charm to the game.

The iconic tongue mechanic was also implemented rather fast by using existing Unreal 3 features to enable the goat’s tongue to work as a grappling hook extension to the goat. For the interaction between the tongue and other objects, we simply have a bone in the tongue that is hooked to any object you want to grab.

A screenshot of the tongue in action. I don't know what happened to that woman's neck.

A screenshot of the tongue in action. I don't know what happened to that woman's neck.

To summarize, our choice of game engine and tools has been really ideal to this project, and sometimes its really worth it to bend traditional industry standards such as having an actual project plan in order to give more space for creativity and charm. If this article brings inspiration for other people to make dumb games really fast, then perfect! The game industry needs more dumb games.

 

Armin Ibrisagic, Game Designer

Line Jakobsen, Programmer

Mikael MĂĄrd, Artist

 

Related Jobs

Disbelief
Disbelief — Cambridge, Massachusetts, United States
[10.18.19]

Senior Programmer, Cambridge, MA
University of Exeter
University of Exeter — Exeter, England, United Kingdom
[10.18.19]

Serious Games Developer
Square Enix Co., Ltd.
Square Enix Co., Ltd. — Tokyo, Japan
[10.17.19]

Experienced Game Developer
Wargaming Sydney
Wargaming Sydney — Sydney, New South Wales, Australia
[10.17.19]

Senior C++ Engineer (Gameplay Programmer)





Loading Comments

loader image