Sunday 29 March 2020

Protective mask and goggles, infrared thermometer, protective clothing (Quick delivery)

Hope you are keeping healthy.

 

As the current outbreak of the Coronavirus Disease (COVID-19) continues to develop, in order to battle new coronavirus, we are now offering the personal protective products as below, belowing picture for your reference.

Our original production line can produce of protective mask and goggles, infrared thermometer, protective clothing, disinfectants, hand sanitizers.

We can deliver the goods in the shortest time. Now we feel the same about your epidemic situation with the spread of Coronavirus. We have experience, equipment and fighting spirit in fighting it. Don't panic, we are with you. The price can be discussed, the experience can be shared, we can be your friends!

We sincerely wish you and your family, your colleagues and friends all good health!

-------------
Best regards,
Alice
Customer service Dept. Merchandiser
Ican Furniture Enterprise Co.Ltd(Guangzhou Xinmeng Trading)
Add:RM706,Quanfeng Mansion, Yuancun Erheng Rd,Tianhe District 510655,Guangzhou,CN.
Tel:+8620-29058180
Fax:+8620-62614140
Website:www.ican100.com

Email: service01@ican100.com
Secondary Email: ican100furniture@gmail.com
Complaints Email: admin@ican100.com



If you prefer not to receive emails from us, you may unsubscribed .

Saturday 28 March 2020

People Of Frictional: Gregor Panič

WHO AM I?


Hi there! I'm Gregor and I'm a designer and programmer at Frictional, which means I'm responsible for all the fun events in our levels. Okay, maybe they're fun just for us.

It's me! And the sign on our door, printed on an A4 and a little crumpled...

I'm a more recent recruit, having joined around September 2016. My job description, gameplay programmer / designer, is purposefully vague. While I mainly work on level scripting, I also spend time on AI, gameplay systems and level design. I also worked on our collaboration with the Tobii Eye Tracker, which I will talk about later. The great part about this is that my work never gets stale and almost none of my days feel the same.

I'm originally from a little known country called Slovenia, but I've recently moved to the land of the vikings to become one myself. Or, in other words: I moved to Malmö around two months ago and now work from our fairly new office.

My setup at work - right next to the fanart wall! No deskmate yet, though. :'(
I absolutely adore our office and go there pretty much every day to socialize with and get inspired by my co-workers. I'm also the one who nags everyone with occasional movie and gaming nights, where we usually grab some snacks, relax and watch a horror movie (obviously), or games like FIFA and Jackbox Party Pack!

BACKGROUND


I can't really remember the time when I first started playing games. I do know that around the late 90s my dad brought home an Intel 80186 PC one day, thinking he would use it for work. He was wrong. After he showed me a couple of MS-DOS games and I realized I could make things move by pressing buttons, I became glued to that PC. My parents didn't manage to pry me from it, so I've been playing games ever since. Not on the same machine, obviously.

I played a lot of games, but didn't touch the horror genre for the longest time. I still remember having vivid nightmares and being unable to sleep whenever I saw something remotely scary on television. When I was older, however, a friend of mine bought me Amnesia as a "gift". It was a dare, of course, but because I didn't want to disappoint my friend, I played through it. It was just as scary as everyone was telling me, perhaps even more so.

But while I was playing it I also realized that it was about more than just scaring the living hell out of me. It managed to fully immerse me in its world and story, which I had not experienced to this degree before. This is how I got introduced to the horror genre, and to Frictional, which would later impact my life more than I could have possibly imagined.

Making games has been my dream ever since I can remember. Given how much fun I had playing them, I thought it would be great if I could make my own – which is why I always liked messing around with settings, seeing what I could do with cheat codes, and figuring out damage formulas so I could get an advantage. It wasn't until I got sucked into a game called Jedi Knight: Jedi Academy, however, that I actually made my first array into creating my own content. I made lightsaber hilts, maps, and even modified some scripts to make the game play like I wanted to.

Unfortunately, growing up in Slovenia there was no real game dev scene there, so I forgot about my dream. It simply never occured to me that I could make games for a living. However, since I was already using my computer so much, I thought it would be fun to work in IT. So I learned some basic C++ programming in high school, then went to a computer science university where I learned a lot more about programming and software in general.

For a long time I resigned myself to becoming a web developer, taking some summer jobs and part-time work in that field. The job became more and more mundane and boring, until I finally realized that I couldn't do it long term, and that I had to find something more fulfilling. That is when I remembered my dream of making games, how much fun they brought me and how great it would be to be able to help someone else have the same experience. I already had a lot of programming experience, so I became determined to join the games industry.

I immediately quit my part-time job and started working on my first small game. I wanted to do everything on my own so that I would learn all the intricacies of game development. A year or so of studying and work amounted to Welkin Road, a little puzzle platformer with grappling hooks.

In Welkin Road you use your two grappling hooks to solve movement-based puzzles.

While I was in the process of finishing Welkin Road, I started looking at potential studios I could join. That's when I saw a tweet from Frictional, mentioning that they were looking for a designer / programmer. I didn't think I was ready, but I figured this was my only chance to work with the company, so I sent my resume in anyway.

To my big surprise they offered me a work test, to see whether I was suitable for the role. I gave it my best, but after I sent in my project I tried to prepare myself for the inevitable let-down. Instead I got a positive reply and an invitation to an interview. The final decision came a couple of weeks later.

Spoiler alert: I got the job.

Given that I was a big fan of Amnesia and SOMA, the decision to accept was a no-brainer. However, it took me quite a while to properly register that I had fulfilled my lifelong dream. A year and a half later I realize how lucky I am to be one of the few people who can wake up on Mondays with a smile on their face.

After joining, I immediately started working on my introductory tasks aimed at learning the new tools. I joined at the same time as Max, so we bonded over struggling to understand all the new stuff. When those tasks were done, I started working on my first real project: designing and implementing eye tracking features in SOMA, which I will talk about in more detail in the next section.

A while after I was brought on, the company started looking to set up a studio in Malmö. I already knew that if I wanted to make games, I would most likely have to move, so the decision to move to Malmö didn't take me long to make. Finding a place to stay took a while, but I eventually managed to find a nice apartment and settle in, in no small part thanks to my incredibly kind and welcoming co-workers.

The setup in my new home in Malmö!


FIRING LASERS (more commonly known as Eye Tracking)


As promised, I will now spend some time talking about my adventures in eye tracking. After receiving a unit from Tobii, I first tested it with a bunch of games that already had eye tracking support. Deus Ex: Mankind Divided was a particularly useful use case study, since it had a robust implementation and used the eye tracker in interesting ways. I was initially very surprised at how well the eye tracker worked in that game, and how seamless and intuitive it was to use without putting any strain on my eyes. This gave me the confidence that we could use this to enhance SOMA.

Once I got a feel for what the technology was capable of, I read through Tobii's SDK documentation and code samples to figure out how it all worked. In simple terms, the Tobii eye tracker provides a continuous data stream of screen coordinates that represent the location on the screen the user is looking at. Think of it as firing 60+ laser beams per second from your eyes to your monitor. Bring it on, Cyclops!

After I was done feeling like a superhero, I looked into how we could use this in our own engine, HPL3. Since Tobii's SDK was easy to use, integrating it into HPL3 wasn't too difficult, especially with the help of our engine programmer Peter.

With the technical aspects more or less dealt with, I started thinking about the design of our eye tracking features, and how we could best make use of this technology to enhance the game. This included brainstorming sessions, quick prototyping and a lot of feedback from the rest of the team.

It quickly became clear that while controlling and moving stuff around on the screen with your eyes is fun, it becomes tiring and uncomfortable really fast. For a good experience, the player must never be actively thinking about using their eyes. Instead, the game should react to the player's natural eye movements and try to enhance the experience. A negative side effect of this design principle is that unfortunately quite a lot of features become very subtle and hard for the player to notice consciously, despite having an overall positive effect.

The white circle is where the player is looking.

Another interesting aspect of designing these features was how eye tracking could be used in a very immersive first person horror game. Horror games often rely on where the player is looking to trigger certain events, which always means a certain level of uncertainty about whether the player actually registered what was happening on the screen or not. With eye tracking, this uncertainty became very minimal, which meant that the timing of a lot of the events in SOMA naturally improved.

In the end, we ended up with a number of eye tracking features we were happy with. The most noticeable ones are extended view, which makes the viewport pan towards where the player is looking, and the ability to control the flashlight with your eyes. A number of enemies also react to the player's gaze, such as the flesher monster becoming aggressive when looked at and teleporting when the player blinks, or the deep sea diver stopping when the player maintains eye contact.

Other features are much more subtle and designed to enhance immersion and mood. For example, staring at creepy and gory scenes zooms the screen slightly, giving the impression that Simon is in a trance or shock-like state and can't look away. When the player looks at enemies, the screen distortion effect intensifies to further discourage players from looking at them.

Additionally there are some really secret ones, such as Ross' distorted computer messages appearing exactly when the player blinks, to further reinforce how Ross is inside Simon's head. My personal favorite, however, is a subtle reaction from K8, the incredibly friendly and helpful swimbot, which gives the player a small opportunity to communicate with it.

The developer showcase of eye tracking features.


In summary, working on eye tracking has been an incredibly fun and rewarding experience both because of the challenge, knowledge gained and the creative freedom. Besides, who doesn't enjoy firing lasers with their eyes? The end result hopefully enhances the SOMA experience, even if just a tiny little bit. So if you have the PC version on Windows and a Tobii eye tracker, consider giving an even more immersive version of SOMA a go!

The official trailer for eye tracking in SOMA.

Eye tracking is just a small part of my work at Frictional though, as I'm currently working on one of our next projects. I'm already really proud of what we're creating and I'm happier than ever with my choice to follow my dream of making games. We're all really excited to be able to share more of what we're doing, but until then we'll just keep doing our best. This also reminds me it is time for another gaming night, to keep our spirits up!

Quality Frictional Humour™ from a recent Jackbox Party night.


Wanna see who else works at Frictional? Check out the rest of the People of Frictional posts!

Dead Island: Definitive Collection Free Download

Dead Island: Definitive Collection - is a collection of survival horror action role-playing video game developed by Polish developer Techland and published by German studio Deep Silver for Microsoft Windows.


Featuring: Definitive Collection contains Dead Island Definitive Edition, Dead Island: Riptide Definitive Edition and a brand new stand-alone 16-bit game Dead Island Retro Revenge. Dead Island Definitive Edition and Dead Island: Riptide Definitive Edition are fully remastered versions of Dead Island and Dead Island Riptide including all released DLC and patches plus Dead Island Retro Revenge: A brand new stand-alone 16-bit game set in the style of a classic side-scrolling action/endless runner within the Dead Island universe.
1. FEATURES OF THE GAME

Plus caught in the Midst of an Epic Zombie Outbreak on the tropical island of Banoi, your only thought is: Survive.
Featuring epic Dead Island: Smash heads, Crack skulls, and Slice up with the visceral Astounding Melee Combat.
Contains Dead Island & its Undead successor, Dead Island: Riptide Bundled with all the previously released DLC.
Brand new standalone 16bit game set in the style of a classic sidescrolling action within the Dead Island universe.
• Introducing: Welcome to the Epic Zombie apocalypse experience of a Lifetime plus, now more Beautiful than ever.

Game is updated to latest version

Included Games

▪ Dead Island Retro Revenge - Updated to version 1.0
▪ Dead Island Definitive Edition - Updated to version 1.1.2
▪ Dead Island Riptide Definitive Edition - Updated to version 1.1.2

2. GAMEPLAY AND SCREENSHOTS
3. DOWNLOAD GAME:

♢ Click or choose only one button below to download this game.
♢ View detailed instructions for downloading and installing the game here.
♢ Use 7-Zip to extract RAR, ZIP and ISO files. Install PowerISO to mount ISO files.

DEAD ISLAND DOWNLOAD LINKS
http://pasted.co/af29b5ae      
PASSWORD FOR THE GAME
Unlock with password: pcgamesrealm

4. INSTRUCTIONS FOR THIS GAME
➤ Download the game by clicking on the button link provided above.
➤ Download the game on the host site and turn off your Antivirus or Windows Defender to avoid errors.
➤ When the download process is finished, locate or go to that file.
➤ Open and extract the file by using 7-Zip, and run 'setup.exe' as admin then install the game on your PC.
➤ Once the installation is complete, run the game's exe as admin and you can now play the game.
➤ Congratulations! You can now play this game for free on your PC.
➤ Note: If you like this video game, please buy it and support the developers of this game.
Turn off or temporarily disable your Antivirus or Windows Defender to avoid false positive detections.









5. SYSTEM REQUIREMENTS:
(Your PC must at least have the equivalent or higher specs in order to run this game.)
Operating System: Windows 7, Windows Vista, Windows 8, Windows 10 | requires 64-bit
Processor: Intel Core i5 Processors GHz or higher for better gaming experience
Memory: at least 4GB System RAM
Hard Disk Space: 26GB free HDD Space
Video Card: Geforce GTX 560 Ti or AMD Radeon HD 6870 1GB VRAM or higher graphics
Supported Language: English, French, Italian, German, Spanish, Russian, Czech, Polish and language.
If you have any questions or encountered broken links, please do not hesitate to comment below. :D

Hiring: Project-based 3D Artist



Title: 3D artist
Focus: Polishing environments and props
Type: Full-time, project-based (approx. 1 year)
Last day to apply: 4th of November 2018


After 3 years of hard work, we are now close to finishing one of our new games. We want it to look amazing, and to accomplish that we need more (hu)manpower.

This is where you come in.

We are now looking for an experienced 3D artist, who will focus on environments and props for our upcoming horror game. Our ideal person loves horror, and is able to convey atmospheric environments and terrifying scenes through 3D art. The position is full-time and project-based, lasting for about a year until the new game is ready to be shipped.


What will you work on?

We are quite a small team, but we consider that our strength. As an environment artist you will get to work on every level of the game, ranging from small props to whole levels. This means your contribution will greatly influence how the final game looks, plays, and evokes emotions.

Here are some of the things you will be working on:
  • Creating basic models that make up the levels, such as walls and floors
  • Modelling props of various complexity, both with and without the help of concept art, and often having to take gameplay concerns into account
  • Constructing particle systems, both by drawing textures and using parameters in our editor
  • Combining various techniques to create special effects, such as flowing water or fire.

If you want to know more about Frictional work practices, you can check out the introduction post of Rasmus, who will be your closest teammate.


What are we looking for?

You have to be a EU/EEA resident to apply.

The person we're looking for is creative, driven and most importantly self-sufficient.

Since the position is project-based, we are looking for a person who can start as soon as possible, end of November the latest.

Here are some essential skills we require:
  • Excellent skills at adapting to a style and taking it to a finished state
  • Strong self-drive and ability to organise your own work
  • Interest in and ability to do research for interesting prop and environment solutions
  • Love for working on a variety of tasks
  • Fluency in English
  • Team communication skills
  • Knowledge of game design
  • A Windows PC that runs recent games (such as SOMA) that you can use for work (unless you live in Malmö and will work from the office)
  • A fast and stable internet connection.
And here are some more techie skills:
  • Excellent skills in 3D software. Modo preferred
  • Familiarity with Zbrush/Mudbox/similar
  • Excellent skills in Substance
  • Excellent skills in Photoshop or similar software
  • Familiarity with issue-tracking software
  • Experience in classic/non-PBR workflow.
If you want to impress us:
  • Love for horror and narrative games
  • A major role in completing at least one game
  • Great free-drawing skills
  • Experience in level design
  • Strong game design skills
  • Experience kitbashing/working with modular sets.
For this position you can work from home. We have a central hub in Malmö, Sweden, which you can use if you wish.


What we offer:
  • Flexible working hours, a no-crunch approach
  • Opportunities to influence your work flow
  • Variety in your work tasks, and ability to influence your work load
  • Participation in Show & Tell of games, having a say in all aspects of the game making
  • An inclusive work environment
  • A possibility to become a permanent employee.

How to apply?

If all of the above piqued your interest, we would love to hear from you! Send us your application 4th of November the latest - but the sooner, the better.

Please attach all the following:
  • Cover letter (why you should work with us, what do you bring to the table)
  • CV
  • Portfolio (link or PDF)
  • Examples of works that have inspired you or blown you away.
Please notice that you need to send all of the applications to be considered.

Send your application to apply@frictionalgames.com!


Privacy Policy

By sending us your application, you give us permission to store your personal information and attachments.

We store all applications in a secure system. The applications are stored for two years, after which they are deleted. If you want your your information removed earlier, please contact us through our Contact form. Read more in our Privacy Policy.

Monday 23 March 2020

Tech Book Face Off: Seven Concurrency Models In Seven Weeks Vs. CUDA By Example

Concurrency and parallelism are becoming more important by the day, as processor cores are becoming more numerous per CPU and more widespread in every type of computing device, while single core performance is stagnating. Something that used to be barely accessible to the average programmer is now becoming ubiquitous, which makes it even more pertinent to learn how to utilize all of these supercomputers effectively. Besides, parallel processing is a fascinating topic, and I think it's great that it is now so easy to experiment at home with things that used to be reserved for huge companies and university research departments. In order to become more proficient at programming in this way, I started with the book Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher for an overview of the current state of affairs in concurrent and parallel programming. Then I went for an introduction to CUDA programming for GPUs with CUDA by Example by Jason Sanders and Edward Kandrot. I've been looking forward to digging into these fascinating books for a while now, so let's see how they stack up.

Seven Concurrency Models in Seven Weeks front coverVS.CUDA By Example front cover

Seven Concurrency Models in Seven Weeks

I had previously enjoyed reading three other Seven in Seven Weeks books so I figured this one was an obvious choice for a solid book on concurrency, and that hunch held true. Butcher gives an excellent tour of the current state of concurrency and parallelism in the software development world, and he does it with a compelling story that builds up from the foundations of concurrency to the modern state-of-the-art services available for Big Data processing, at least circa 2014.

The main rationale for paying more attention to concurrency and parallelism is that that is where the hardware is taking us. As Butcher argues in the introduction:
The primary driver behind this resurgence of interest is what's become known as the "multicore crisis." Moore's law continues to deliver more transistors per chip, but instead of those transistors being used to make a single CPU faster, we're seeing computers with more and more cores.
As Herb Sutter said, "The free lunch is over." You can no longer make your code run faster by simply waiting for faster hardware. These days if you need more performance, you need to exploit multiple cores, and that means exploiting parallelism.
So if we're going to take advantage of all of these multiplying cores, we'd better figure out how to handle doing multiple things at once in our programs.

Our concurrency story begins with the little things. The first week focuses on the fundamentals of concurrency: threads and locks. Each week is split into three days, each day building on the day before, with the intention of being able to learn and experiment with the chapter's contents over a weekend. This first week on threads and locks is not meant to show the reader how to do modern parallel programming with threads, but to give a foundation of understanding for the higher-level concepts that come later. Threads are notoriously difficult to use without corrupting program state and crashing programs, and locks are a necessary evil that can help solve those corruption problems but have problems of their own, like deadlocks and livelocks. These problems are especially insidious because they're most often invisible, as Butcher warns:
To my mind, what makes multithreaded programming difficult is not that writing it is hard, but that testing it is hard. It's not the pitfalls that you can fall into; it's the fact that you don't necessarily know whether you've fallen into one of them. 
The first concurrency model gives us a view into that abyss, but then pulls back and moves on to better alternatives right away. The first better model turns out to be an old programming paradigm that has recently become more and more popular: functional programming. One of the biggest problems with programming languages like C or Java is that they have mutable state. That means most of their data structures and variables can and do change by default. Functional languages, on the other hand, default to immutable data structures that don't have the same problems when sharing state across threads.

The next model goes into detail about how one functional language, Clojure, uses the basic advantages of immutable state by separating identity and state. The identity of a data structure is what that data structure is inherently, like a list of names. It doesn't change. The state, which specific names are in the list, can change over time, and a persistent data structure in Clojure will guarantee that if the state changes for one thread, it will not change for other threads unless that state is explicitly passed from one thread to another. This separation of identity and state is accomplished by atoms and agents, but we don't have time to get into the specifics here. It's in the book.

After Clojure, we move on to Elixir, another functional language that takes a different approach to parallelism. Instead of threads, Elixir has extremely lightweight processes that can be used to make highly reliable applications out of unreliable components. The perspective to take when programming in Elixir is to design the application so that individual processes are not critical and can fail. Then instead of trying to do thorough error checking, we can just let them crash and depend on the system to recover and restart them. This approach makes for incredibly reliable systems, and with Elixir running on the Erlang VM, it has a solid foundation for bulletproof systems.

With the next model, we come back to Clojure to explore communicating sequential processes (CSP). Instead of making the endpoints in a message the important thing, CSP concentrates on the communication channel between the endpoints. In Clojure this is implemented with Go Blocks, and it's an intriguing change to the normal way of thinking about message passing between threads or processes.

What are we at now, the sixth model? This model steps outside of the CPU and takes a look at the other supercomputer in your PC, the massively parallel GPU. This chapter was a little too short for the subject to get a great understanding of what was going on, but it does use OpenCL for some simple word-counting applications that run on the GPU. It was neat to see how it works, but it was a lot of boilerplate code that was pretty opaque to me. I'm hoping the other book in this face-off will shed much more light on how to do GPU programming.

The final model takes us into the stratosphere with serious Big Data processing using Hadoop and Storm, frameworks that enable massively parallel data processing on large compute clusters. It was surprising to see how little code was needed to get a program up and running on such an industrial strength framework. Granted, the program was a simple one, but thinking about what the framework accomplishes is pretty intense.

That brings us to the end of the tour of concurrency models. The breadth of topics covered was exceptional, and the book flowed quite nicely. Butcher's explanations were clear, and he did an excellent job covering a wide-ranging, complex topic in a concise 300 pages. If you're looking for an overview of what's out there today in the way of concurrent and parallel programming, this is definitely the book to start you on that journey.

CUDA by Example

CUDA used to be an acronym that stood for Compute Unified Device Architecture, but Nvidia, it's creator, rightly decided that such a definition was silly and stopped using it. Now CUDA is just CUDA, and it refers to a programming platform used to turn your Nvidia graphics card into a massively parallel supercomputer. This book takes the reader through how to write this code using the CUDA libraries for your very own graphics card. It does a fairly decent job at this task.

The first chapter starts out with a bit of history on the graphics processing unit (GPU) and why we would need a general-purpose platform such as CUDA for doing computations on it. The short answer is that the prior situation was dire. The longer answer is as follows:
The general approach in the early days of GPU computing was extraordinarily convoluted. Because standard graphics APIs such as OpenGL and DirectX were still the only way to interact with a GPU, any attempt to perform arbitrary computations on a GPU would still be subject to the constraints of programming within a graphics API. Because of this, researchers explored general-purpose computation through graphics APIs by trying to make their problems appear to the GPU to be traditional rendering.
Suffice it to say, people were not particularly satisfied shoehorning  their algorithms into the GPU through graphics programming, so CUDA and OpenCL were a welcome development.

The next chapter goes through how to get everything ready on your computer in order to start writing and running CUDA code, and the chapter after that finally unveils the first program to run on the GPU. It's not exciting, just the standard "Hello, World!" program, but this example does introduce some of the special syntax and keywords that are used in CUDA programming.

Chapter 4 is where the real fun begins. We get to run an honest-to-goodness parallel program on the GPU. It's still simple in that it's only summing two vectors together element by element, but it's doing the calculation with each pair of elements in its own thread. Each thread gets assigned to its own resource on the GPU, so theoretically, if the GPU had at least as many compute resources as there are pairs of elements, all of the additions would happen simultaneously. It may not seem quite right to use compute resources in this way since we're so used to programming on much more serial CPUs, but the GPU hardware is designed specifically to do thousands of small calculations in parallel in a highly efficient manner. It's definitely a programming paradigm shift.

After another more interesting example of calculating and displaying the Julia Set, a kind of fractal set of numbers, the next chapter follows up with how to synchronize these thousands of threads in calculations that aren't completely parallel. The example here is the dot product calculation, and this example ends up getting used multiple times throughout the rest of the book. So far the examples have been unique, but they'll start to get reused from here on, partly in order to not need to keep introducing more new algorithms for each example.

The next couple chapters discuss the different types of memory available in a GPU. A small amount of constant memory is there to hold values that are, well, constant, for fast access instead of needing to keep fetching those unchanging values from main memory or having them fill up the cache unnecessarily. Then there's texture memory available for optimized 2-D memory accesses, which are common in certain algorithms that operate on neighboring memory locations in two dimensions instead of the normal one dimension of vector calculations.

Chapter 8 discusses how to combine the use of the GPU as both a CUDA processor and a graphics processor without needing to copy buffers back and forth to the host memory. Actually, a lot of CUDA programming is optimized by thinking about how best to use the memory resources available. There are now at least three more memories to consider: the GPU main memory, constant memory, and texture memory, in addition to the normal system memory attached to the CPU we're used to thinking about. The options have multiplied, and it's important to use both the CPU and GPU efficiently to get the best performance.

We're nearing the end now, with chapters on using atomics to maintain memory consistency when multiple threads are accessing the same locations, using streams to more fully utilize a GPU's resources, and using multiple GPUs to their full potential, if your system is blessed with more than one GPU. By this point much of the content is starting to feel redundant, with incremental features being added to the mix and most of the examples and explanations of the code being copies of previous examples with minor tweaks for the new features.

The last chapter is a review of what was covered in the book, some recommendations of more resources to learn from, and a quick tour of the debugging tools available for CUDA. While overall this book was fairly good for learning how to do massively parallel programming with CUDA, and I certainly enjoyed coming up to speed with this exciting and powerful technology, the second half of the book especially felt drawn out and repetitive. The explanations got to be too verbose, and frankly, the cringe-worthy sense of humor couldn't carry the redundancy through. The book could have easily been half as long without losing much, although the pace was certainly easy to keep up with. I never struggled to understand anything, and that's always a plus. I've got a couple other CUDA books that may be better, but CUDA by Example is sufficient to learn the ropes in a pinch.


Of these two books, Seven Concurrency Models in Seven Weeks was the more wide-ranging and enlightening book. It gave a wonderful overview of the landscape for concurrent and parallel programming, even though it couldn't go into enough depth on any one topic to do it justice or allow the reader to competently start working in that area. Like all of the Seven in Seven books, its purpose is not to make the reader an expert, but to provide enough information to give the reader a fighting chance at making their own decision on a path. Then, the reader can follow that path further with a more specialized book. CUDA by Example is one such specialized book, although it was somewhat light on the real details of GPU programming. As an introductory book, it was adequate, but I'm hoping the next couple of books I read on GPU programming will have more substance. In any case parallel programming is growing in importance, and it's exciting to be able to play around with it on consumer-grade hardware today.

Friday 20 March 2020

CGDD4303 Educational And Serious Games Fall 2019 Showcase!

CGDD4303 Educational and Serious Games is taught by Dr. Joy Li.  The student project showcase was held on 12/9 night.  All projects were in collaboration with local educators, including instructors from local schools, Carter's Lake Museum, Augusta University Medicine School, etc.  The deliverables are game prototypes designed for educational purposes, including STEM education, museum visitings, or some interesting topics.  All collaborators including kids who participated in art design and playtesting stages were all invited to the showcase.  Some kids volunteered in student presentations to help demos.  Collaborators were all very happy and showed interest in collaborating again in the following semesters.



Thursday 19 March 2020

What Is SOMA's Safe Mode?

Tomorrow we will be releasing SOMA for Xbox One and along with this comes Safe Mode. This is a new way of playing the game that will also be available via Steam and GOG at the same time.

Since we announced Safe Mode there have been a lot of questions about it, so we thought this would be a good time to answer some of those and to clear up a few things. Here goes:


What is Safe Mode?
It is a version of the game where you cannot die - you are safe from harm. The game's various creatures are still there, they just won't attack you. If you've heard of the SOMA Steam mod "Wuss Mode", by steam user The Dreamer, then you should know the basic idea. The important thing to point out is that we don't simply turn off the creature's ability to attack and harm you. Instead, we've redesigned their behavior. Our goal has been for Safe Mode to not feel like a cheat, but for it to be a genuine way of experiencing the game. So we've considered what each creature should be doing, given their appearance, sound, and voice.

You can pick between Safe Mode and normal mode when starting up a new game.

Is the game still scary?
This obviously depends on what scares you, but the short answer is: yes, the game is still a horror game. However, since you can explore without a constant fear of failure, you will no longer have that type of tension. For people who aren't great at handling that aspect of horror gameplay, their journey through SOMA will be a lot easier in Safe Mode. But if it is the overall atmosphere that gets to you in a horror game - and, above all, the central themes - then game will still have plenty to be scared of.

What is the major difference in gameplay?
All of the puzzles, events, and so forth are still there. The big difference is that you'll no longer have to sneak past enemies. You don't need stealth in order to complete the game. Monsters might sound and act more threatening if they spot you, so there is still an incentive to being careful, but it's no longer mandatory to keep hidden. This will also allow you to explore some of environments more carefully.

Why release it now?
We actually considered releasing something similar at launch, but chose not to because we felt it would make the core intent of the game too unfocused. As people started to say that they really wanted to play the game and experience the philosophical sci-fi narrative, but couldn't because of the monsters, we started considering doing something about it. People liking the "Wuss Mode" mod was a good sign that we could solve this. However going back to a game you have already completed is not tempting so we put it off.

What eventually tipped the scales was the Xbox release where we wanted an extra feature to make the launch more interesting. Adding some sort of no-monster mode felt like the best option, and so Safe Mode was born! It also felt like it had been long enough since the original release, and the intended version of the game had been played and evaluated enough. Adding a new play mode wouldn't be a problem.

Will it come to PS4?
Yes! We hope to have it ready about 2 months from now. Sorry for not releasing it now, but a couple of issues have kept us from doing a simultaneous launch of Safe Mode.


I hope that clears things up! Let us know in the comments if you have any other questions!

A Fresh-faced Warmaster Army

I finished the leather on the dwarves this week, man did that suck. There's just a bunch of tiny leather details everywhere. Anyway, the base-coat for the flesh is down now so it's that and the hair, plus decals and basing.

Warmaster Dwarves Warmaster Dwarf Command Warmaster Dwarf General

It's unlikely that I'll get to these before Fall In! but they're playable at least.

Warmaster Dwarf Artillery Warmaster Dwarf Butts Warmaster Dwarf Thunderer Hero Warmaster Dwarf Anvil of Doom (+2)

2017 Holiday Gift Guide

This guide includes games for young and old, for every sex, generation, temperament, and culture.

Whatever you do, and whatever you celebrate, there is no better way to spend a Christmas, Hanukkah, or what have you than together with friends, family, and neighbors with a warm cup of (fair trade) cocoa and a stack of casual board and/or card games.

Remember that the most valuable gift you can give is time. Don't just give your loved ones a game; play it with them. Find or start a local game group and join or form a community.

I hope you enjoy the guide. Remember: the holidays are not only for sharing the warmth with family and friends, but also for sharing with those who have no one else to share with them. Give to your local shelters, hospitals, and so on, because that's the gift that keeps on giving.

Samsung Galaxy Tab 4 10"

Tablets are perfect platforms for playing thousands of face to face games for two to four players. Because you don't need to buy the physical components, you can stack all your games in a teeny space, the games (if not the tablet) cost very little, and you don't have to cut down old trees to make them or use fossil fuels to ship them. Tablets have their own environmental impact in their making, so that's a trade off; but if you're getting one anyway, most of the games on this list are available electronically.

Nowadays, most games are also available on consoles, too.
7 Wonders: Ages 9+, 4 to 7 players

This is a game of drafting cards and building a wondrous city. You get a hand of cards; pick one and pass the rest. Everyone reveals the card they picked and puts it into their tableaux. Repeat. Done. Score points based on the combinations of cards you have at the end of all the passing.

The graphics are fantastic, the theme not so visible. It's easy to learn, provides great choices, with depth enough to spare.

Antike II: Ages 8+, 2 to 6 players

Risk is a long game of laying low, with player elimination and just too much in the luck department; this game (and its predecessor but very rare and expensive Antike) is the perfect evolution to, and replacement for, Risk.

It plays quicker, there's dice-less conflict, no one gets to lay low watching while others fight, and - excepting truly poor play - everyone has a chance for most of the game. There's also a lot more to the game than just conflict, but the rules are short and elegant.

Other alternatives for the Risk player are Antike Duellum (for two players) and Risk Legacy (an odd game that moves in one game affect the next).

Backgammon: Ages 6+, 2 players

Backgammon is a classic game that can be enjoyed by children and parents alike. While there is a large amount of luck in the game, there are also many meaningful decisions, which makes this a good stepping stone to future games with more challenge, such as Checkers or Chess.
Blokus, Blokus Trigon, Blokus Duo: Ages 8+, 4 players (Blokus), 2-4 players (Blokus Trigon), or 2 players (Blokus Duo)

Blokus, Blokus Trigon, and Blokus Duo are abstract games with very simple rules. Each round you take a piece and place it on the board such that it touches any previous pieces you have played, but only corner to corner. It can touch other players' pieces along corners or sides.

The rules are easy, the components are beautiful, and it's fun.
Boggle: Ages 8+, 2 to 10 players

Boggle is a word game, whose simple rules - find all the words you can within three minutes - make it a game that is both fun and quick. Adults can play with kids by restricting the adults to have to find words of four or five letters.

The pictured version is a little quieter and less bulky than the old boxy version, and comes with a built-in electronic timer.
Candle Quest: Ages 6+, 2 to 4 players

A little plug for my own game. This is a simple set-collection auction game with a Hanukkah theme. It fits in well with the other games on the list: easy to learn, quick to play, lots of replayability. The theme makes it appropriate for all ages, and there's nothing overtly Jewish about it, other than that it's a menorah, so anyone should feel comfortable playing it.

Of course, I may be biased, since I designed it.
Carcassonne, variants, and expansions: Ages 10+, 2 to 5 players

Carcassonne is a bit more complex than some of the other games here, but the beautiful pieces and the fun game play are worth the time to learn. Pick a piece from the pile, rotate and place it so that it fits on the board (like dominoes), and then optionally place one of your pieces on that tile. There are several ways to score, some of which occur during the game and some of which only at the end of the game.

There are some more rules than that, but not too many more. The game play is engaging enough to make you want to play it more than once in a single sitting.

There are dozens of versions to the game, and some of the versions have several expansions.

Catan: Ages 8+, 3 to 4 players

This game, formerly known as The Settlers of Catan, and Ticket to Ride, are the perfect adult games for beginning gamers.

All you need to do is collect ten points through building settlements and cities, connecting roads, adding developments and trading with your fellow players. A unique board that changes each time you play, constant interaction even when it's not your turn, and a great balance of luck versus strategy makes this The Game to acquire if you still think that board games are only for kids.

Chess / Xiangqi / Shogi: Ages 6+, 2 players

These three games, Chess, XiangQi (Chinese Chess), and Shogi (Japanese Chess), are all top-tier 2-player games that can occupy a curious mind for an entire lifetime. They also have wide followings, so learning the game is learning a language that will admit you to a culture of fellow players around the world.

Board and piece prices range from inexpensive to very expensive, and Chess pieces come in many different themes.
Chinese Checkers: Ages 6+, 2 to 6 players

Another great abstract, and a pretty one if you find one with nice marbles. The rules are simple: move or jump your pieces from one side to the other. Finding chains of jumps is a thrill for all ages.
Carrom / Crokinole / Nok-Hockey / Air Hockey / Billiards / Foosball, etc.: Ages 6+, 2 players

Carrom is the most played tabletop game in India. Like Billiards, the object is to knock pieces off the table area, which you do by flicking wooden disks with your fingers. Crokinole is another classic finger flicking game, as is a racing game called Pitchcar. I finally picked up Crokinole for myself this year, and it is a constant hit with my nephews and their friends.

All kinetic tabletop games, from snooker to billiards to foosball, are loved by players of all ages.
Cards: Ages 3+, 1 to any number of players

Decks of cards, whether they are the well known Western type with 52 cards in 4 suits, or special European or Asian decks, are a great starting point for any number of wonderful games, including Bridge, Hearts, Skat, Cribbage, Pinochle, Oh Hell, Bullsh*t, Durak, President, Spades, Solitaire, and many others.

Check out Pagat.com for the rules to these games and to thousands of others.
Codenames: Ages 10+, 4-10 players

Codenames is a new, fun game that uses words in an unusual way. Two teams, the clue givers alternate trying to give one word clues that match as many of their team's cards as possible. You must find a word that matches multiple other words, but not any of your opponent's words or the assassin's word. It's mindbending, and the game is infinitely replayable.

A great game for non-gamers and gamers alike.

Dixit: Ages 10+, 3-6 (12) players

Dixit is an incredible game, especially for non-gamers. It is loved as a creative exercise: pick a card and give a word, phrase, song, dance, or any other clue to describe it, but not too perfectly. The other players try to play cards that also match your clue. You only get points if some people guess which was your card and some people don't.

The fun is in the creativity of the clues, and I've yet to see a game where even the most stodgy non-gamer doesn't have fun.

There are now several expansions, which are all good. This game, like many others, was inspired by Apples to Apples, another nifty game for the casual non-gamers who walk among us.
Froggy Boogie: Ages 3-9, 2 to 4 players

Froggy Boogie is a brilliant game to frustrate grownups and please younger children. All you have to do is remember where the picture of the fly is, under the left eye or the right eye? The dice have only colors - no counting necessary. It's a perfect first game.
Go / Pente: Ages 6+, 2 players

Beyond Chess, Checkers, or XiangQi is the absolute perfect game of Go (aka Weiqi); it's so popular, there are twenty-four hour television stations dedicated to it, an anime series based on it, and it's considered one of the four arts of the Chinese scholar.

It really is that good, and the rules are easy, too. Best of all, a built-in handicap system allows two people of any skill levels to enjoy a challenging game against each other.

You should play with the nicest board you can afford.

Pente, a game of getting five stones in a row, can be played on the same board. The rules are just as easy as Go, and while the game has much less depth, it is also a little less intimidating to new players.
Jungle Speed: Ages 8+, 3 to 8 players

There are several games of speed reaction / pattern recognition on the market; I chose this one because of the components. Players flip cards in turn and grab for the totem in the middle as soon as two matching cards are revealed. Don't play with friends who have sharp nails or finger jewelry.

Love Letter: Age 8+, 2-4 players

This game has just 16 cards, but it packs a full, replayable deduction, bluffing game into 10 minutes. It's a top seller, takes 30 seconds to learn, and is challenging to play.

It's not my type of game, but I'm in the minority.
Magic the Gathering: Ages 8+, 2 players

After two decades, Magic is still The Bomb when it comes to collectible card games, although Yu-Gi-Oh sells more cards. These are not easy games to learn, but quick start guides can get you off the ground fairly quickly, and then you have months and years of challenging game play ahead of you.

Don't get sucked into having to buy endless amounts of boosters; to play the game outside of a tournament, you only need a few hundred common cards which can be picked up for a penny each on various sites.
Mancala: Ages 5+, 2 players

This is widely known around the world under various names (e.g. Oware), and the national game of many African countries.

The rules are easy: pick up all the seeds in one of your bowls and place one in each bowl around the table. If you land on an empty space on your side, you win the seed and any seeds opposite.

There are a few more rules, but that's about it. It takes a few games to get up to speed; early victories tend to be lopsided. Once you get the hang of it, you can play several, quick, challenging games in succession.
Memory: Ages 3 to 12, 2 to 5 players

This is a first game for kids and adults, and a great game for it, because kids get the hang of it very quickly and adults find it a real challenge without having to pretend. All you need are one or two decks of cards, but an infinite number of these games are sold with various different pictures and themes.

You can play with more than 5 players, but I wouldn't recommend it.
Nefarious: Ages 8+, 2 to 6 players

This is a game of mad scientists that is great for 2 to 6 players, and doesn't sacrifice speed with more players. Each round, you select one of four actions. collect money from any neighbors who selected actions that your minions are invested in, perform your action, and then check to see if you won. The actions are: invest minions, play cards, take cards, or take money.

The cards are fun and the game is quick and replayable, because, in each game, you play with some random twists that make that game's experience unique.
No Thanks: Ages 7+, 3 to 5 players

This is an easy to learn and addictive little card game. A card is flipped up, and you either take the card and any tokens on it or place one of your tokens on it and pass it to the next player. Cards are bad, and tokens are good. But runs of cards only penalize you for the lowest valued card.

A simple and fun game.

Pandemic / Pandemic Legacy

Cooperative games used to be either very boring, very childish, or very hippy. A new breed of cooperative games are nail-bitingly challenging and fun.

Pandemic is a cooperative game of saving the world from disease. Other cooperative games include Lord of the Rings, Shadows Over Camelot, and the much simpler Forbidden Island.

The new Pandemic Legacy (like Risk Legacy, mentioned above), is a version that plays out: each time you play the world is permanently changed with stickers and torn cards; after dozens of plays, the game is over.
Poker: Ages 6+, 2 to any number of players

Playing for money is not a good habit, but a nice set of poker chips and some decks of cards is a great way to spend an evening. There are countless poker games, too.
Scrabble: Ages 8+, 2 (or 2 to 4) players.

Scrabble purists will tell you that you should only play with 2 players and a Chess clock, but for casual purposes it can be played with up to four. It is The word game, and for a good reason.

My favorite way to play is to ditch the board and just play Anagrams: turn over tiles, and first to call a word gets it. A similar, recommended game is Bananagrams, where players race to create their own crossword boards.
Set: Ages 6+, 2 to 10 players

Those who don't have it won't enjoy it. For those who do, it hits just the right spot in the brain. All you have to do is call out matches when you see them, but the matches have to match or not match in all four characteristics.
Stratego: Ages 6 to 15, 2 players

By the time I was in my teens, I had outgrown this, but it remains a seminal game for early players, a great introductory war game with all the basic elements: strategy, tactics, and bluffing. Avoid the electronic ones; they break and they're noisy.

Splendor: Ages 8+, 2 to 5 players

The new game on this list, this is a little resource management game of taking jewels and buying trade routes (i.e. cards). The components and decisions are few and pretty, and there are a few options for strategy, but they are well balanced, making this a tight game every time.

Very simple to understand, challenging to win.
Ticket To Ride: Ages 8+, 2 to 5 players

Many of my fellow bloggers think that this, rather than Catan, is The Game. I used to disagree, but I think I have come around. New players will find this a great intro game, with lots of choices and great game play.

There are several editions of the game, and the 1910 expansion is recommended.
Tichu: Ages 8+, 4 players

A partnership "ladder" game, similar to the game President (sometimes known by its crude name). It's similar, but the addition of a few special cards, a partnership, and passing elevate this to a perfect game for two couples. This is THE card game in gamer circles, and it's not at all complicated.
Time's Up: Ages 8+, 4 to 10 players

This consistently ranks as the number one party game on all of my fellow bloggers' lists. It's the number one ranked party game on Board Game Geek. Which says something.

It plays a lot like the parlor game Celebrities.
Uno: Ages 6 to 12, 2 to 8 players

This could be a child's second game, after Memory, and before moving on to real games. There's not much in the way of thinking involved, but its simple rules, portability, and quick play make it an ideal game for younger kids in almost any situation.

Just be sure to move up to better games when the kids are ready.
Wits and Wagers / Balderdash: Ages 8+, 4+ players

These are party trivia games where knowledge of trivia is not so important. The question is asked, and each player writes down an answer. These are revealed and players then bid on the answers they think are best. The winning answer, and the winning bids, all score points.

Wits and Wagers does this in the form of a poker game setting, while Balderdash requires you to make up funny possible answers. Both have won awards and acclaim as an order of magnitude better than you-know-which famous trivia game.
Zooloretto: Ages 8+, 2 to 5 players

Winner of dozens of awards, Zooloretto is a cute game for kids and decent game for adults. Simply take the animals as they are revealed from the deck and try to fit them into your zoo without overcrowding.

A few extra rules and some clever mechanisms makes the game enjoyable for all ages.


Enjoy,
Yehuda