Skip to main content

GameDev on Steam Deck

I've got the 64GB og steam deck, After almost a year of using it i had to start using the deck as a development machine as well not just for gaming. I wasn't sure how it would pan out, theoretically everything should be possible but i had couple of major blockers ..

  • I was running out of internal storage
  • I needed to make sure that the engines i use work on SD.
    • Cocos Creator (Windows / Mac)
    • Godot Engine (Windows / Mac / Linux)
    • Unreal Engine (Windows / Mac / Linux)
    • Unity Engine (Windows / Mac / Linux??)

The Internal Storage:
Since this was a 64 GB version, i kept running into the disk space issues, i had to take the leap and upgrade the ssd. Fortunately i was able to find one on amazon which decently priced. I followed the IFixit's guide to upgrade the ssd: https://www.youtube.com/watch?v=GSvdsic4_dk

This was crucial if i wanted to use the deck without thinking too much about what i was going to install on OS. So if you are like me and are really afraid of breaking something while upgrading the SSD, you dont' have to worry.. if i was able to do it, im' sure most of you should be able to do it without any issues. The IFixt video is super clear and helpful.

Cocos Creator:

rich text editor image

I needed "Cocos Creator" which is only available for Mac and Windows to run on this setup as i had some games i had to keep working on.

Long story short, i was able to get the cocos creator to work on linux with proton experimental and works "okish" to get the work done. It wasn't as fast as on my previous windows machine but this was good enough for me keep working on without pouring a bunch of money to buy a new laptop/ pc.

Add to Steam was super useful to get the whole thing going. Was able to quickly add the setup.exe for the dashboard of cocos creator and install it, the problem was i wasn't able to download the editor through dashboard utility, i had to download the cocos creator editor on a friends machine and copy the files to steamdeck and got that linked up and it works great.

Caveat: its' unable to launch visual studio code directly from the editor, This is painful and i didn't want to install the windows version of VSCode so i open the project file directly in VSCode for editing instead of seamlessly opening from the Engine Editor.

Godot Engine:

I installed it from the Steam Store, and the dumb thing it installed the windows version on the Deck. I was surprised by this as Godot Supports linux. The quick solution was to uninstall from Steam and get the binary from their website

Once you do this you are good to go with Godot Engine on the Deck.

Unreal Engine:

I wasn't sure what to expect in the UE world as its' AAA and needs a lot of resources to work etc, but i was surprised at how easy it was to install it by following the guide on the Unreal's documentation around this.

Few downloads later i was able to launch the editor and was good to go.. one catch.. VSCode wasn't getting detected. I installed VSCode from the discover store using flatpak, for some reason the command "code" wasn't available in the path. To solve this i created a shell script that launches VSCode from flatpak and added the location of this file to $PATH and vola, i was able to seamlessly edit the c++ code in VSCode and get the Game Updated.

#!/bin/sh
flatpak run com.visualstudio.code

  • Add these above contents to a file named "code" and run "chmod +x code"
  • Add the above file location to $PATH in ~/.bashrc file.

The editor feels a little sluggish but thats' true in general for UE, it loads pretty fast compared to what ive' seen on other machines so thats a positive.


Unity Engine:

I don't know if unity has a linux version and frankly after their recent shit i'm not even interested in finding out. So may be this is for some other brave soul to explore and post here.

PS: Sorry for the long post but i was a little hesitant to jump with my both feet in for using the Deck as a development Machine, This post hopefully shows that you can jump in and it works well to get your gamedev journey going. :)

Comments

Popular posts from this blog

Epic Games Store on Steam Deck

EGS ( Epic Games Store ) like it or hate it, has been giving away free games and if you like free games you would have picked up atleast a couple of them. So given that some of those games are Deck Verified / Playable, its fair to assume you would like to install the EGS on the Deck.  Installing EGS on Steam Deck Switch to Desktop Mode on your Steam Deck Download the EGS installer for windows from the Epic Store website: https://store.epicgames.com/en-US/download (using your web browser of choice)      Open Steam in the desktop mode and add the installer as a non-steam game                                In the browse window, switch from .desktop files to All files. Select EpicInstaller-xxx.msi and add it to steam library. Find EpicInstaller in your steam library and open its' properties by hitting the "Gear" icon on the right side of game details page. Set the proton compatibility to latest one. Now hit the play button and go through the install screens of EGS.  Once t

Vehicle Physics (Godot 2D)

I've always been fascinated with the vehicle physics used in games. I played so many racing games / the hill climb games and every single time i would wonder wow that must be really hard to do. Thanks to the new generation of game development tools, developing physics based games has become almost a second nature to most people. I didn't want to be left out so i gave it a shot.. I tried setting up vehicle physics in GoDot Engine for a 2D vehicle. Here is what the vehicle scene looks like.. 2D vehicle setup in GoDot As you can see the body collision shape is not right but the rest of the stuff just works. The idea is simple think of what parts move along with the body vs what doesn't. I was kinda stuck setting up the pinJoint2D in GoDot, it actually clearly takes two nodes under the properties. This makes sure that the wheels are hinged to the DampingSpring2D. The Damping Spring2D takes two physics bodies(Body and the PinJoint2D) and makes it work like shock ab

Flash animations in GoDot Engine

If you have not heard about GoDot game engine,.. you should check it out right away.. godotengine.org Last time, i wrote a blog post about my experience making a simple physics game to GoDot Engine. Though there are a bunch of free options announced during the GDC this year, i thought ill' contribute to the engine. The one piece that is most important for game dev is the pipeline for the engine. One of the most common tools used for 2D animations is Flash. I have been using a library called Super Animation for almost all the games we've made for android at TMG. It's  a  free tool which lets you convert swf files to .sam files. This file can then be loaded in Cocos2Dx using the Open source loader library  https://github.com/raymondlu/super-animation-samples I thought it would be a good idea to port this cpp library to GoDot so that i understand how to write custom modules for the engine. This is the video of the module in action. I have exposed