Cheap Xbox Games

Porting SimBlob to the web

 tháng 6 13, 2013     emscripten, programming, project     No comments   


I first saw Emscripten a few years ago. It compiled C++ to
Javascript. My mind boggled! How cool! This year at
Game Developers Conference there was a talk showing that Emscripten
plus asm.js
could run C++ games in the browser with good performance. I was
amazed.



After publishing my article on hex grids, I decided I should do
something different for a little while. I remembered Emscripten looked
intriguing, and I should try it out. Could I make BlobCity, an OS/2-only game from 15 years ago, run in the browser?



TL;DR: Yes, try it out here!




Here's what I started with, a game that only runs in OS/2:



Screenshot of OS/2 version








Porting to SDL




The first problem is that SimBlob (the simulation/game engine for
BlobCity) is written for multithreaded OS/2, using the Presentation
Manager graphical library. The game isn't cross-platform, and nobody
uses OS/2 anymore. Even I couldn't run my own game, even as a
reference for this port. To use Emscripten, I needed to make SimBlob
work with either SDL or OpenGL. I chose SDL as a better match.



I'm developing on a Mac with Homebrew, so I used brew install sdl to
get SDL. I went through a few examples from this tutorial, then used
the SDL docs as a reference.



I took inventory of the SimBlob modules. Only one third of the code
was independent of OS/2. Yuck. I was hoping that it'd be better than
that. That means I have 10,000 lines of code that I need to
port. Ugh. Do I really want to do this?



I decided it'd be ok to port just part of the game. After all, my main
goal was to play with Emscripten, not to make BlobCity run. I first
got the simulation code running, and output the map in ASCII. Then I
made some simple rendering code in SDL. After a bit of fighting with
SDL, I got things to work. The game simulation was
running successfully, and showed up in the minimap!



Minimap works!



I started wondering how much work it would be to make the main map
display. I started digging into the code, cursing at my 15-year-ago
self for making it so convoluted and undocumented. I commented out
OS/2 specific code, or created extra typedefs and no-op functions to
make it compile. After I had it compiling, over the next week I either
ported OS/2-specific code to SDL, or I emulated parts of the OS/2 API
in SDL. Some notes:



  • OS/2 has a vector graphics object called "PS" in my code. It handles
    text, line drawing, rectangles, etc. If I were porting directly to
    Canvas or SVG or Flash, I would have equivalent vector graphics
    available. SDL has only a subset of this functionality in SDL_gfx and SDL_ttf, and Emscripten has only a small subset of that, so I decided not to port that code.

  • OS/2 has multiple overlapping windows, each with an event
    handler. SDL has none of this. At first I decided to comment out the
    code, and hard-code the main map and minimap. As the week went on,
    and I wanted the toolbar, status bar, and tabbed information pane, I
    ported the display code to SDL and emulated multiple windows with
    their own event loops.

  • The multiple layers in my code made porting easier in some ways. The
    Window hierarchy had a subclass that only dealt with bitmaps, so I
    could port that to SDL, and the Glyph hierarchy didn't deal with
    OS/2 at all. Most of the game graphics are rendered to an
    platform-independent bitmap.

  • Without the vector graphics and text rendering, I couldn't generate
    the procedural graphics at run time. The code generated these and
    saved them to files, so I was able to reuse those files. I can't
    regenerate them but at least I can use them.

  • The OS/2 blitting code used multiple approaches, WinDrawBitmap,
    GpiDrawBits, DIVE. I also used heuristics to choose blitting on
    the fly (each frame) based on the size of the dirty rectangles. This
    extra layer made it easier to plug in SDL as a rendering target.

  • I had wrappers around OS/2 low-level data types: colors, sizes,
    points, rectangles, damage regions, mutexes, event semaphores. I
    reimplemented these to not use OS/2. Since I wasn't going to use
    threads this time, mutexes and related constructs became no-ops.

  • I also found a bug that's been there for over 15 years. If more than
    one builder tries to do a job, the first one does it and the second
    one undoes it. In a typical game you have only one builder working
    at a time, so this bug escaped my detection until now.





Over the period of a week, I continued to either port OS/2 specific
code or emulate OS/2 APIs, and I ended up getting almost all of the
code running. The only thing I didn't tackle was the OS/2 menubar.



Getting a little bit drawing on the screen encouraged me to work on more.



Here's a screenshot of the SDL version – looks the same as the OS/2
version except for the menus!



Screenshot of the SDL version of the game



Using Emscripten





Setting up emscripten: I installed llvm and clang through homebrew
(brew install llvm --using-clang). Note that clang on the Mac isn't
enough. It doesn't have the right version number, and it doesn't
include the rest of LLVM. And using the Homebrew regular install
(brew install llvm) isn't enough. I needed to install both through
Homebrew.


I used the Emscripten FAQ and the #emscripten IRC channel on
irc.mozilla.org as references. I also read through some of the
Emscripten code when I needed to understand what was going on.



The first thing the Emscripten limitations page says is that it
"CANNOT compile Code that is multithreaded and uses shared state. JS
has threads - web workers - but they cannot share state, instead they
pass messages." SimBlob is very much multithreaded. Yikes!



Other notes:



  • OS/2 is multithreaded. This was one of the reasons I was using OS/2
    instead of Windows 3. For SimBlob, I had multiple main loops running
    simultaneously, communicating with event semaphores, shared state, and
    lock-free data structures. To make this work with Emscripten, I had
    to switch to a single threaded model. I had to merge all the main
    loops together into a single SDL event loop. It wasn't as bad as I
    had feared. Although I could've used threads with SDL, Javascript is
    event-based, and Emscripten wouldn't work if I left the game
    multithreaded. Emscripten needs the standard SDL event loop changed to this.

  • SimBlob uses an 8-bit palette. I got this ported to SDL, but I had
    some trouble making it work in Emscripten. I decided it'd be easier
    to switch to 32-bit color. Since the game graphics draw to my own
    bitmap structures, I used the palette there, and expanded the
    palette when copying it over to the SDL surface.

  • There's an Emscripten open issue that recommends disabling
    "copy on lock" to make palettes work. I had tried this out, but
    didn't need this anymore once I switched to 32-bit color. But I saw
    no harm in keeping it disabled. As far as I can tell, if you disable
    it, it will not copy the browser canvas back to your internal SDL
    surface. I don't need that copy.

  • The binary includes SDL, so it's relatively large. Use -O2 to
    shrink it. I also needed -O2 to make the simulation code run
    acceptably fast.

  • SDL's event.type is Uint8 in the SDL docs, but Emscripten needs
    more than 8 bits. I ended up using an int instead, but keep this
    in mind when porting your code.

  • I had considered implementing the OS/2 menus on the HTML side, and
    then using Javascript to send those events back to the C++ code. To
    do this, you need to export some of the C++ code using "C" linkage,
    and then listing those functions in the command line flags, -s LINKABLE=1 -s EXPORTED_FUNCTIONS "['main', '_invoke_command']" You
    can then import the function into the Javascript side with
    invoke_command = Module.cwrap('invoke_command', 'void', ['number']) although for reasons I don't yet understand I was able to call _invoke_command directly without the wrapper. I added buttons for each of the OS/2 commands, and had those buttons call into the C++ code.

  • I also used these flags: --jcache -s ASM_JS=1 -s WARN_ON_UNDEFINED_SYMBOLS=1

  • I wanted the game to start with the window size I used back in 1997,
    but a large window makes the game more fun to play. I added resize
    support to the SDL version, then added a "Zoom" button to resize in
    the browser. You can call Browser.setCanvasSize(width, height) to
    do this. I experimented with full screen but haven't gotten that working.

  • It was awesome to see the game running in the browser, but even more
    awesome to see it running on my phone! Emscripten needs
    Float64Array which is supported in iOS 6 but not iOS 5. The game
    also runs on Android 4.1; I haven't tried it on older versions of
    Android. It runs very slowly but it runs.


    Screenshot of the game running on my phone

  • Once I saw it running on the phone, I decided to add touch event
    support. I trapped touchstart, touchmove, and touchend and
    redirected them to SDL mouse down/move/up. This makes it feel much
    nicer on iOS. It didn't seem to help as much on Android.

  • I had to switch drawing byte order when using the putpixel() code
    from SDL's docs. I filed a bug, but the workaround is easy. It's one
    of the few places where I have #ifdef EMSCRIPTEN in my code.

  • SDL_GetKeyState() wasn't supported; I worked around it by tracking down/up events myself.

  • Shift, control, alt modifiers didn't show up in Emscripten. SDL
    event.key.keysym.mod always contained 0. I filed a bug, and
    inolen on irc gave me a branch with a fix.





The process of getting Emscripten to compile the game to HTML5 was
surprisingly easy. The OS/2 to SDL port took most of my time; after
that, emscriptening (is that a word?) took only a few tweaks.



Thoughts





Try it out here!




I'm still amazed Emscripten is possible. Javascript doesn't
support pointer arithmetic, unsafe casts, unsafe unions, etc., and yet
it all works! I dug into how it works and I was amazed even
more. I'm also quite impressed by how fast asm.js is. In some
microbenchmarks, I found that C++ code compiled to Javascript ran
faster than equivalent Java code.



I've not been able to run BlobCity for 15 years. Although I could have
ported SimBlob to SDL, it was Emscripten that motivated me to do
it. This was a fun project. I love being able to run the game in the
browser. I don't plan to do anything more with SimBlob/BlobCity but I
will probably use Emscripten for a future game project.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Gửi email bài đăng nàyBlogThis!Chia sẻ lên XChia sẻ lên Facebook
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ

0 nhận xét:

Đăng nhận xét

Popular Posts

  • Games Design and Games programming students team up.
    Our Games design students collaborating with web design coding students @JAMUCLAN . Coding Tutor Mark Porter and Design tutor, Bev Bush brou...
  • Hexoshi - inspired by Metroid
    Hexoshi ( forum thread ) is a libre game generally inspired by the Metroid series, notably the older versions. It is seeking funding using ...
  • Cara Klaim PS+ 14 Hari Secara Gratis (new trick 2019)
    Sebuah trick yang saya coba beberapa hari yang lalu, saya menggunakan trick ini untuk mengklaim game gratisan PS+ Region 2 karena di region...
  • Introduction to TiltBrush by Google.
    My first experience of drawing with Tiltbrush with the Vive headset was exciting as it felt like a very new experience.   We also arranged...
  • White Paper Games launch 'The Occupation' at EGX Rezzed 2017.
    White Paper Games are showing their new game 'The Occupation' at EGX Rezzed this week, March 2017. See the trailer here : Check out...
  • Marco Carmo is Games Design Nominee for Lancs Arts festival 2018
    Many congratulations to  Marco Carmo  who is our Nominee for Games Design in the Media Tech Lancashire Arts Festival Awards 2018.  #lancsart...
  • Review Indie Game: Sigi - A Fart for Melusina (PS4)
    Sigi - A Fart for Melusina merupakan sebuah game 2D plat former adventure buatan dari  pixel.lu , game ini bercerita kan tentang petualanga...
  • Review Indie Game: FullBlast (PS4)
    FullBlast , merupakan sebuah game indie pesawat arcade developer dari Ratalaika Games , Game yang cukup menarik, dan saat memainkan nya kita...
  • Posting iseng Out of Box
    Iseng-iseng posting out of box aja, setelah coba searching di youtube dengan key "Kenapa Harus ASUS ROG?" ternyata banyak juga vid...
  • Examples of work by UCLan first year Games Design students.

OpenGameArt Summer Game Jam #3 has begun

One of our affiliate websites OpenGameArt (OGA), a free repository for public domain and copyleft licensed art, has just begun hosting this...

Tìm kiếm Blog này

Được tạo bởi Blogger.

Lưu trữ Blog

  • tháng 7 2019 (1)
  • tháng 6 2019 (11)
  • tháng 5 2019 (7)
  • tháng 4 2019 (10)
  • tháng 3 2019 (7)
  • tháng 2 2019 (14)
  • tháng 1 2019 (16)
  • tháng 12 2018 (20)
  • tháng 11 2018 (14)
  • tháng 10 2018 (12)
  • tháng 9 2018 (25)
  • tháng 8 2018 (6)
  • tháng 7 2018 (5)
  • tháng 6 2018 (10)
  • tháng 5 2018 (12)
  • tháng 4 2018 (33)
  • tháng 3 2018 (5)
  • tháng 2 2018 (10)
  • tháng 1 2018 (25)
  • tháng 12 2017 (5)
  • tháng 11 2017 (5)
  • tháng 10 2017 (2)
  • tháng 9 2017 (6)
  • tháng 8 2017 (3)
  • tháng 7 2017 (8)
  • tháng 6 2017 (13)
  • tháng 5 2017 (12)
  • tháng 4 2017 (17)
  • tháng 3 2017 (14)
  • tháng 2 2017 (10)
  • tháng 1 2017 (9)
  • tháng 12 2016 (3)
  • tháng 11 2016 (13)
  • tháng 10 2016 (14)
  • tháng 9 2016 (3)
  • tháng 7 2016 (3)
  • tháng 6 2016 (5)
  • tháng 5 2016 (1)
  • tháng 4 2016 (8)
  • tháng 3 2016 (2)
  • tháng 2 2016 (3)
  • tháng 1 2016 (3)
  • tháng 12 2015 (5)
  • tháng 11 2015 (8)
  • tháng 10 2015 (2)
  • tháng 9 2015 (5)
  • tháng 8 2015 (3)
  • tháng 7 2015 (2)
  • tháng 6 2015 (2)
  • tháng 5 2015 (6)
  • tháng 4 2015 (6)
  • tháng 3 2015 (5)
  • tháng 2 2015 (4)
  • tháng 1 2015 (4)
  • tháng 12 2014 (4)
  • tháng 11 2014 (4)
  • tháng 10 2014 (5)
  • tháng 9 2014 (5)
  • tháng 8 2014 (4)
  • tháng 7 2014 (8)
  • tháng 6 2014 (9)
  • tháng 5 2014 (4)
  • tháng 4 2014 (6)
  • tháng 3 2014 (8)
  • tháng 2 2014 (5)
  • tháng 1 2014 (8)
  • tháng 12 2013 (8)
  • tháng 11 2013 (8)
  • tháng 10 2013 (9)
  • tháng 9 2013 (11)
  • tháng 8 2013 (8)
  • tháng 7 2013 (7)
  • tháng 6 2013 (10)
  • tháng 5 2013 (12)
  • tháng 4 2013 (14)
  • tháng 3 2013 (8)
  • tháng 2 2013 (3)
  • tháng 1 2013 (2)
  • tháng 7 2012 (2)
  • tháng 6 2012 (1)
  • tháng 5 2012 (1)
  • tháng 4 2012 (1)
  • tháng 2 2012 (1)
  • tháng 1 2012 (2)
  • tháng 12 2011 (1)
  • tháng 10 2011 (1)
  • tháng 9 2010 (3)
  • tháng 8 2010 (1)
  • tháng 6 2010 (1)
  • tháng 4 2010 (1)
  • tháng 2 2010 (1)
  • tháng 1 2010 (1)
  • tháng 11 2009 (1)
  • tháng 8 2009 (1)
  • tháng 7 2009 (1)
  • tháng 6 2009 (3)
  • tháng 5 2009 (3)
  • tháng 4 2009 (1)
  • tháng 3 2009 (2)
  • tháng 1 2009 (3)
  • tháng 12 2008 (1)
  • tháng 11 2008 (2)
  • tháng 8 2008 (1)
  • tháng 6 2008 (2)
  • tháng 2 2008 (2)
  • tháng 11 2007 (1)
  • tháng 7 2007 (1)
  • tháng 6 2007 (2)
  • tháng 4 2007 (1)
  • tháng 3 2007 (1)
  • tháng 2 2007 (1)

Nhãn

  • ‘Drawing for Games’ session!
  • 'Plinky Plonk' version 2 is out!
  • #DS16 Uclan Games Design Private view.
  • #UCLanCF - MA Show
  • 0ad
  • 14 Uclan Games Design Alumni are credited on Lego Starwars Force Awakens.
  • 2d
  • 2x0ng
  • 3D
  • 3rd Year student
  • 9-Bit Idol pitch for Dare To Be Digita
  • A Grand Day Out with UCLan Games Design.
  • a las barricadas
  • A very Merry Christmas to you all
  • AAA Game Review
  • Action Games
  • Adam Mattis.
  • Adventure Games
  • alienarena
  • Alpha Texturing
  • ALUMNI GAMES DESIGNERS HAVE ‘THE FORCE’
  • Alumni Robin Willians work results in demand for GTA vehicle.
  • Alumni Sian Knight begins job with Fat Fraken Studios.
  • ancientbeast
  • Andy Gahan
  • Andy Wood of Double Fine Productions QA Session
  • annex-glest-mod
  • antargis
  • arcade
  • arewealone
  • art
  • Arthur Parsons
  • Arthur Parsons of TTGames awarded an Honorary Fellowship from Uclan
  • Arthur Parsons visit to Uclan Games Design Course 2017
  • article
  • arxendofsun
  • arxliberatis
  • assaultcube
  • Athletic achievements by Uclan Games Design student
  • AtomicGameEngine
  • Augsburg University of Applied Sciences visit to Uclan
  • award
  • BA Games Design at UCLan
  • BA(Hons) Games Design at Uclan.
  • BA(Hons) Games Design UCLan Graduates
  • Bajakan
  • ball-rolling
  • Bank BTN
  • Berita
  • Best Game Award at Uclan Games Jam 2016 .
  • bge
  • BIG CONGRATULATIONS to WHITEPAPERGAMES
  • Blackvoxel
  • blender
  • bombable
  • bos
  • bos-wars
  • boswars
  • BugBox- visual programming experiment.
  • bullet
  • bushidoblocks
  • bygfoot
  • canvas
  • cataclysm
  • Chocolate Doom
  • codecombat
  • commercial
  • community
  • competition
  • Computer
  • conquests
  • contest-gamedev
  • corebreach
  • Crates and Barrels
  • creativecommons
  • Crosby Game WIP
  • crowdfunding
  • crowdsourcing
  • crystalspace
  • Cube2
  • cytopia
  • Dan Bavin starts new job at Ninja Theory
  • Dan Bavin wins Creative Focus Award for Design 2015
  • darkmod
  • darkplaces
  • data dealer
  • deadmorning
  • Debut
  • deceiver
  • design
  • Design Director at Travellers Tales
  • devcorner
  • dhewm3
  • Diablo
  • Digital
  • Doom
  • Doom3
  • Double presentation by Alumni for UCLan Games Design
  • duckmarines
  • eatthewhistle
  • ecksdee
  • emiliapinball
  • emscripten
  • Emulator
  • Engine
  • engines
  • erebus
  • escoria
  • European Women in Games Conference 2016
  • Even more recent graduates now working in the Games industry
  • event-conference
  • Excellent NSS Uni Stats for Uclan BA(Hons) Games Design.
  • extremetuxracer
  • FGD
  • Fighting Games
  • Finale of the Games Design Degree Show
  • Finalist in 'Break Through Talent' Award.
  • First week of Uclan Games Jam 2015
  • First Year Games Design Students make games at UCLan
  • First year project examples
  • flare
  • flash
  • flightgear
  • Fraud
  • Freeablo
  • freedink
  • freegamer
  • freeorion
  • freesound
  • Freshers Games Design Challenge 2018
  • frogatto
  • FS-UAE
  • Further good news for UCLAN 3rd year student
  • future
  • Gagal
  • Game
  • Game by Nellie Sandblom as published on Scirra Arcade.
  • game engine
  • GameDevelop
  • Games
  • Games Course Alumni Postcards
  • Games Design and Games programming students team up.
  • Games Design course visit from Concept Games Artist
  • Games Design day of Speakers from industry.
  • Games design first years using 'actual' Ether-One assets.
  • Games Design Graduation ceremony 2018
  • Games Design students at the Harris.
  • Games Guru
  • Games student chosen for Noise Festival
  • Games students visit Blackpool Zoo and Tower
  • Gatget Review
  • genre-adventure
  • genre-buildingsim
  • genre-cards
  • genre-educational
  • genre-engine
  • genre-exploration
  • genre-flighsim
  • genre-fps
  • genre-mmo
  • genre-platformer
  • genre-precision
  • genre-puzzle
  • genre-racing
  • genre-roguelike
  • genre-rpg
  • genre-rts
  • genre-sandbox
  • genre-shooter
  • genre-space
  • genre-stealth
  • genre-tbs
  • geometry
  • gigalomania
  • Girls design games @jamuclan
  • glamour
  • GLSL
  • godot
  • Gorynlich
  • Grads In Games visit to UCLAN for the Get in the Game Careers Talk Tour
  • Graduate success
  • graphics
  • Gratis
  • grids
  • gsoc
  • h-craft
  • Hand Painted texturing
  • Hardware
  • haxe
  • HDD
  • hedgewars
  • hero of allacrost
  • hexagons
  • hexenedgeofchaos
  • hexoshi
  • Horror Games
  • html5
  • http://gamescourse.blogspot.co.uk/2017/03/ba-games-design-at-uclan.html
  • https://www.uclan.ac.uk/about_us/case_studies/game-jam-2018.php
  • ideas
  • idtech2
  • idtech3
  • idtech4
  • Indie Games Review
  • indiegogo
  • Induction week for BA(Hons) Games Design Uclan.
  • Info Handheld 3DS
  • Info PS4
  • Info TV
  • infrastructure
  • International Women's Day celebration
  • Introducing Pinterest to students as a visual research tool
  • Introduction to PanoPainter.
  • Introduction to TiltBrush by Google.
  • ioquake3
  • ironbane
  • irrlamb
  • irrlicht
  • James Burton - MA Games Design - UCLan
  • jediknight
  • jme
  • jmonkey3
  • jrpg
  • Jual
  • keeperrl
  • Knowledge
  • language
  • Lego Game Design Live brief
  • licensing
  • lincityng
  • linux
  • linuxgameawards
  • lipsofsuna
  • Live Stream on Twitch TV.
  • love
  • löve
  • löve2d
  • lugaru
  • MA Design Degree Show - UCLan. Featuring our MA Games Design students!
  • MA Games Design Show at Uclan 2013
  • mac
  • making-of
  • Mandiri
  • mapgen4
  • maps
  • Marco Carmo is Games Design Nominee for Lancs Arts festival 2018
  • math
  • MCV talk to the finalists ahead of this year’s Women in Games Awards.
  • Meet the Developer - Steven Thornton
  • Meet the Developer. Stephen Morris of Greenfly Studios
  • MegaGlest
  • MIT
  • mode-multiplayer
  • mode-onedevicemultiplayer
  • mode-singleplayer
  • Moonshades
  • More robot games designed by Year 1 Uclan Games design students
  • More Top-down shooter games- designed by year 1 Uclan students.
  • More Uclan Games Graduates from class of 2017 now have jobs!
  • Movie Review
  • My Story
  • Mystery
  • naev
  • neverball
  • New Games Design Students arrive for Induction week
  • Nik Hughes. Realtime Job Update
  • Nintendo Switch
  • noise
  • Nominated for Develop Award
  • nova pinball
  • occulusrift
  • oceansheart
  • octaforge
  • ogre3d
  • olpc
  • open-source
  • openart
  • opencaesar3
  • opencity
  • opendungeons
  • openflashpoint
  • openfootball
  • opengameart
  • openig
  • openjk
  • openmw
  • openra
  • openxcom
  • osx
  • overdose
  • ows
  • pathfinding
  • patreon
  • Pete Bottomley to talk at GDC 2015
  • Peter Dimitrov makes his mark.
  • Peter Dimitrov.
  • Peter Field - Games Designer at Naughty Dog
  • Peter Field from 'Media Molecule' visits Uclan Games design
  • Peter Field of Media Molecule visits Uclan Games Design
  • pinball
  • pixel art
  • Platform Games created by Year 1 Games Design students @UclanCF
  • platform-android
  • platform-handheld
  • platform-html5
  • platform-linux
  • platform-osx
  • platform-webgl
  • platform-windows
  • Playful ideas by Bev Bush - try them on GameJolt.
  • pleethebear
  • Plinky Plonk Xmas App is live
  • Portable Console
  • portrait-marathon
  • PotM
  • power
  • programming
  • project
  • projectfootball
  • projectofthemonth
  • PS Plus
  • PS+
  • PS4
  • PS4 Bajakan
  • PS4 Original
  • PS5
  • PSN Store
  • Puzzle Games
  • racer
  • racing
  • Racing Games
  • ransom
  • Recent Graduate employed as a Games Designer
  • Recent Uclan Games Design Graduates now in work!
  • redeclipse
  • retro
  • retro games
  • retux
  • Review
  • roguerepublic
  • Role-Playing Games
  • ROTC
  • rpg
  • rts
  • Rumor dan isu
  • ryzom
  • Saija Sipila interviewed on Linkedin.
  • Sarah Akers and Will Butterworth visit Uclan Games Design
  • scifi
  • SDD
  • sdl
  • Secret Santa day for Uclan Games Design
  • Shaun Mooney
  • Shooting Games
  • Siân Knight
  • Simulation Games
  • sintel
  • sintelthegame
  • solarus
  • Some of our UCLan Games Design Success Stories.
  • space station 13
  • spacenerdsinspace
  • Spider Man
  • Sports Games
  • SSD
  • standalone
  • Stealth Games
  • steam
  • strategy
  • Strategy Games
  • Strife
  • structure
  • Student Hero Nomination for James Moorby
  • stuntrally
  • style-historical
  • style-retro
  • style-sci-fi
  • summerofcards
  • superpowers
  • supertuxkart
  • Survival Games
  • systemshock
  • Tales of Maj'Eyal
  • TBS
  • td
  • terminal-overload
  • Terra Centauri
  • Tesseract
  • The Castle Doctrine
  • The Great Northern Creative Festival
  • The Great Northern Creative Festival Games Event.
  • The Great Northern Expo award for Games Design 2108
  • The Great Northern Festival - Games Design UCLan
  • The Impact of Play in Society.
  • THE NORTHERN FESTIVAL AWARDS
  • theskyofverdun
  • theyearning
  • Three more Games course Alumni Posters
  • Tips and Trick PS4
  • tobutobugirl
  • tol
  • ToME
  • Top Down Shooter Bugs
  • Top Down Shooter BUGS!
  • torque2d
  • torque3d
  • tournament
  • towerdefense
  • tremulous
  • triangles
  • Trip and Trick PS4
  • tutorial
  • UCLan Alumni selected as part of BAFTA Games Crew.
  • UCLan Alumni Steph McStea named in the 100 rising stars of the UK games industry.
  • Uclan BA(Hons) Games Design Book
  • Uclan Game Jam 2015
  • UCLan Game Jam 2017
  • UCLan Games Alumni 'White Paper Games' featured in both Edge and Games TM Magazines.
  • Uclan Games Design - Night of the Private View 2014
  • UCLan Games Design Alumni
  • Uclan Games Design Alumni are amongst the best at EGX 2017
  • Uclan Games Design Christmas Party 2018.
  • UCLan Games Design Course trip to EGX 2018
  • Uclan Games Design Degree Show 2013
  • Uclan Games Design degree show 2014
  • UCLan Games Design Degree Show 2018
  • UCLan Games Design Degree Show 2019
  • Uclan Games Design Easter Quiz
  • UCLan games design groups present Lego game ideas.
  • Uclan Games Design Induction week 2014
  • Uclan Games Design Second Year student showcase 2014
  • Uclan Games Design Student
  • Uclan Games Design students in Global Game Jam
  • Uclan Games Design visit EUROGAMER 2015
  • Uclan Games Grad Steph McStea is now...
  • Uclan Games Jam 2016 Finale and Awards
  • Uclan Games Student designs Summer Reading Scheme characters for The SCART Club
  • UCLan Games Student enters Rookies Competition 2019
  • Uclan Games students working with 'Soccer Manager'.
  • UCLan Global Game Jam 2016
  • Uclan Groups present GAME JAM concepts
  • Uclan Lecturer
  • Uclan's Games Design Alumni
  • Ukie team on the UK pavilion at Gamescom
  • unvanquished
  • UPS
  • Urho3D
  • valyriatear
  • vdrift
  • vdrift-ogre
  • veraball
  • video
  • video games
  • Views of Preston created by Uclan Games Design Students
  • Visit from Tom Kewell of Foundry 42
  • Visit to Uclan Games Design by Joe Nelson
  • visits Uclan Games Design course
  • voadi
  • voronoi
  • vote
  • voxel
  • vue
  • Warner Bros. visits Uclan
  • warsow
  • warzone2100
  • wesnoth
  • White Paper Games launch 'The Occupation.
  • White Paper Games launch 'The Occupation' at EGX Rezzed 2017.
  • WhitePaper Games QA session with Uclan Games Course
  • windows
  • worldforge
  • wtactics
  • WTS
  • Wurmsyn
  • wyrmsun
  • xonotic
  • ya3dag
  • Year 1 Games Design student completes timelapse concept art film.
  • yodasoccer
  • ysoccer
  • zelda
  • zero-k

Báo cáo vi phạm

Giới thiệu về tôi

Admin
Xem hồ sơ hoàn chỉnh của tôi

Copyright © Cheap Xbox Games | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates