Created by Paul Balchin
← → ↑ ↓ navigate,
S speaker's view and notes,
Esc bird's eye view
Game Development |
![]() |
Web Development |
| Games (complexity: 3) | Web (complexity: 6) | |
|---|---|---|
| Design | (1) Layout and images | (1) Layout and images |
| Develop | (2) unity 3d |
(2) Front-end Code
(html, css, js, images, videos)
|
|
(3) Back-end Code
Language: C#? Java? PHP?
Database: MSSQL? MySQL? NoSQL? Platform? None? CMS? |
||
| Compile | Compile for iOS, Android, Windows Mobile |
Front-end
Minification (css, js, images)
Back-end
Depends on back-end language
|
| Test | (3) QA | (4) QA |
| Make Public | Upload to iTunes, Google Play, Windows Store |
(5) Local and Web Hosting
At Fuel?
At Client? At Third Party: MS Azure? Amazon WS? |
| Documentation | N/A? | (6) Setup, maintenance, modification |
| Consume | Download from iTunes, Google Play, Windows Store |
Load in web browser |
| Games | Web | |
|---|---|---|
| Device | Screen size | Browser width |
| Screen orientation | Landscape only | Landscape and portrait |
| Resizing | Scaling | Responsive |
| Games | Web | |
|---|---|---|
| Device | Phones, tablets | Phones, tablets, laptops, desktops |
| Input | Touch only | Mouse, keyboard, touch |
| Screen size | Small-ish | Any |
| Screen orientation | Landscape only | Landscape and portrait |
| Resizing | Scaling | Responsive |
| Browser * | N/A | All |
| Older browsers * | N/A | Depends on browser ** |
| Desktop OS * | N/A | All |
| Mobile OS * | iOS, Android (Mobile Windows?) | All |
| Data | User's device | Cookies, LocalStorage, Server-side |
* Some combinations can cause strange behaviours.
Major offenders = Internet Explorer, Mobile Safari = massive time suck.
** ... or whatever browsers the layout framework will support, whichever is more restrictive.
| CMS (e.g. Wordpress or Joomla) * | Fuel Internal | |
|---|---|---|
| Layout Framework | Already using Bootstrap or Foundation | Download Bootstrap or Foundation |
| HTML 4 or 5? | HTML 4 or 5 | HTML 5 |
| Platforms |
built, tested, and debugged by a large team of developers, across all platforms, under continuous improvement (i.e. full-time employees). |
|
| Third Party Libraries * |
built, tested, and debugged by a small team or single developer, across some platforms, under sporadic improvement (i.e. volunteers). |
|
| Internal Coding * |
built, tested, debugged by the project's developer and QA, across whatever devices are available in QA that day, under improvement only until pushed out the door. |
|
* Content Management Systems (CMS) typically include their own ecosystem of plugins and, rarely, might not allow external libraries or code.
<www/>
What is CMS?,
Drupal,
Joomla,
Wordpress
General web development and responsive design
Common, accepted practices
HTML is content (plain text, ebooks)
CSS adds style and structure (glossy magazine layouts)
<www/> CSS Zen Garden
<www/>
Bootstrap,
Foundation
Responsive web design asks two simple questions:
What is the width of the browser's window
and how do we react to it?
Ask “What width?”
Not “What Browser?”
Ask “What width?”
Not “What Operating System?”
Ask “What width?”
Not “What Device?”
Text
Containers (e.g. paragraphs, tables)
Objects (e.g. images, videos)
One column
Multiple columns
Grids
Floating or fixed elements
<html/> Inheritance demo
Even a simple web page is a lot of work.
<video/> Gecko Reflow Visualization demo
Requires constant, high-bandwidth communication
between designers and developers.
So close, yet so far.
Exact layouts and element placement across all operating systems, devices, and browsers is impossible.
Within the same browser or device
<html/> Fixed and fluid layout demo
The width of any container affects only the width of its child containers.
<html/> Responsive demo
Many aspects of the page can change based on the browser's width.
<html/> Adaptive demo
"Scaling" is a game design process.
We can set the width of any object, such as images and videos, as a percentage of its parent container.
We don't scale text; we change its size based on responsive rules.
CSS Scaling is an advanced CSS3 method and supported only by the latest browsers.
CSS Scaling objects is not pretty; font smoothing is not guaranteed, images may not re-render properly.
CSS Scaling is limited to the "parent/child" relationship.
From phones to 4k monitors,
there are an infinite number of browser window widths.
We use media queries to keep it under control.
Browser width and height
Is landscape or portrait? (hand-helds)
Is high resolution? (retina displays)
Is screen or print?
<www/> CSS Media Queries
Big changes.
“When do we change the layout?”
<html/> Adaptive demo
Small changes.
“What do we do between layout changes?”
<html/> Responsive demo
It's easier to start small and add complexity,
than to start large and then try to simplify.
HTML + CSS
+ JavaScript
+ Animation
Rounded corners
Gradients
Drop shadows
Rounded corners not supported?
Allow for squared corners
Gradient not supported?
Pick a solid color (req'd)
Web font failed to load?
Create a font stack
Scalable vector art
<www/>Font Awesome
Games: 200% of largest possible
and then scale down as needed.
Web: actual size, e.g. buttons and icons.
Web: responsive, e.g. background images.
Save on bandwidth: smaller images for smaller devices.
Phones vertical and horizontal
Tablets vertical and horizontal
Laptops ("small" desktops)
Desktops ("large" desktops)
4k monitors?
Otherwise, what's the point of using a framework?
Only if the framework doesn't meet a specific need.
Out of the box layout frameworks are amaze-balls.
Before media queries
we laid out pages using tables
and nothing was responsive
and with every site
something beautiful died